signatures[] en:
GET /v3/session/{sessionId}/decision/, para sesiones de Verificación de usuarios (KYC) y Verificación de empresas (KYB).- La
decisionde los webhooks de sesión de V3, que se envían cuando la sesión está enApproved,Declined,In ReviewoAbandoned. - La pestaña Firma de la sesión en la consola y la sección de firma del informe en PDF.
signatures solo aparece en la decisión cuando el workflow tiene un paso de Firma electrónica. Es un array vacío hasta que un firmante llega al paso. Un paso de KYC tiene un elemento; un paso de KYB tiene un elemento por firmante.
Ejemplo
El objeto de firma
Nunca consideres que un firmante ha firmado hasta que
status sea signed. En una firma avanzada (AES), un certificado, un sello de tiempo o un signed_file con valor null significa que aún no hay firma. Una firma simple ya firmada tiene un signed_file, pero siempre tiene el certificado y el sello de tiempo en null.
Firmante
Documentos
Campos
Cada elemento dedocuments[].fields[] es un campo del documento, con su valor en la copia de este firmante:
Descargar los documentos firmados
Usa las rutas designed_file y evidence_file con tu clave de API. Cada ruta responde con el propio PDF.
Antes de responder, Didit comprueba el archivo almacenado con su SHA-256 registrado. Si no coinciden, las rutas del PDF firmado y de la evidencia devuelven
409 y la ruta de la imagen devuelve 400, en todos los casos con signature_document_changed. Pasa siempre signature_id a la ruta de la evidencia cuando un paso de KYB tenga varios firmantes.
El PDF firmado
El PDF firmado contiene, en este orden:- Las páginas del documento que se mostró al firmante, con el valor de cada campo estampado donde lo colocaste.
- La página de evidencia, salvo que hayas desactivado
signature_evidence_page. - Solo en el nivel Advanced (AES), la firma PAdES, con el sello de tiempo RFC 3161 emitido por Didit y los datos de revocación necesarios para validarla en el futuro. Un PDF Simple termina después de la página de evidencia y no tiene firma digital, sello ni sello de tiempo.
Signed with Didit · seguido de los primeros 8 caracteres del id de la firma.
Didit añade los valores de los campos, la página de evidencia y la firma a continuación de los bytes del documento que se mostró al firmante. Ese documento es un prefijo exacto del archivo firmado, por lo que sha256_original se puede seguir comprobando con el PDF firmado.
El PDF de evidencia
El PDF de evidencia registra, para un firmante:- El nivel y el formato.
- El nombre del firmante, la calidad en la que firma y, en KYB, la empresa.
- La sesión de identidad verificada (solo Advanced (AES)).
- La confirmación: canal, destino enmascarado y hora (solo Advanced (AES)).
- La dirección IP del firmante.
- Cada documento: título, número de páginas y SHA-256 del original. En un documento de Word, el nombre y el SHA-256 del archivo de Word, la versión del conversor y el SHA-256 del PDF.
- La firma adoptada: escrita (con su estilo caligráfico) o dibujada, cuándo se adoptó, y las imágenes de la firma y de las iniciales.
- Cada campo, por documento: su etiqueta, página y tipo, su valor (la imagen en el caso de una firma o unas iniciales), de dónde procede el valor (por ejemplo, Typed by the signer, Verified ID o Your API), cuándo se rellenó (UTC) y, si el valor lo escribió el firmante, su dirección IP en ese momento.
- El consentimiento final: el texto que el firmante aceptó en la pantalla de revisión, y cuándo.
- El SHA-256 de cada archivo firmado y, en Advanced (AES), el certificado (emitido a, emisor, número de serie y validez) y el sello de tiempo.
Validar una firma de nuevo
POST /v3/session/{session_id}/signatures/{node_id}/validate/ vuelve a leer cada PDF firmado del paso y comprueba su SHA-256. En una firma avanzada (AES), también valida la firma PAdES, su certificado, los datos de revocación y el sello de tiempo. Una firma simple no tiene firma digital, así que solo se comprueba la integridad del archivo. El resultado se guarda en validation y la respuesta devuelve el signatures[] actualizado. Envía signature_id para comprobar un solo firmante. Requiere write:sessions y, en la consola, corresponde al botón Validar de nuevo. Si un PDF firmado almacenado ya no coincide con su sha256_signed, se devuelve 400 con signature_document_changed.
Hasta que los documentos estén firmados, validation es null. Si Didit no puede confirmar el resultado de la firma, validation es { "valid": null, "reason": "signature_provider_outcome_unknown", "checked_at" } y status se mantiene en signing hasta que se resuelva: trátalo como no firmado.
En el informe PDF
El informe PDF incluye una sección de firma con el firmante, la confirmación, el certificado, el sello de tiempo y los documentos con sus hashes. Cuando los documentos tienen campos, a continuación aparece una página E-signature · fields, con una tabla por documento: el valor de cada campo, las imágenes de la firma y de las iniciales, las horas y las fuentes. La sección de firma va después de Verificación bancaria en un informe KYC y después de Documentos en un informe KYB. Pasapages=signature para imprimir solo esa sección.