Saltar al contenido principal
Cada paso de Firma electrónica produce un resultado por firmante. Se encuentra como un elemento de signatures[] en: 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 de documents[].fields[] es un campo del documento, con su valor en la copia de este firmante:

Descargar los documentos firmados

Usa las rutas de signed_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:
  1. Las páginas del documento que se mostró al firmante, con el valor de cada campo estampado donde lo colocaste.
  2. La página de evidencia, salvo que hayas desactivado signature_evidence_page.
  3. 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.
En un PDF Advanced (AES), la firma abarca todos los bytes anteriores a ella, incluidos los valores de los campos y la página de evidencia. Cualquier cambio posterior en el archivo la invalida, y cualquier validador compatible con PAdES lo muestra. Los detalles de la firma identifican al firmante y hacen referencia a su sesión de identidad verificada y a la confirmación mediante código. Los valores de los campos pasan a formar parte del contenido de la página, no de campos de formulario, por lo que no se pueden editar después y cualquier visor de PDF los muestra. Una casilla de verificación marcada muestra una marca, y una sin marcar se deja tal como la dibujó el documento. Un recuadro de firma de más de 24 puntos de alto también recibe un pequeño texto bajo la firma: 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.
La página que se añade a cada PDF firmado tiene el mismo contenido sin la sección del certificado, porque se añade antes de aplicar la firma.

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. Pasa pages=signature para imprimir solo esa sección.

Relacionado

Última modificación el 1 de noviembre de 2026