Ir al contenido

Firmar con e.firma

Ver como Markdown Lee esta página como texto plano Abrir en ChatGPT Haz preguntas sobre esta página Abrir en Claude Haz preguntas sobre esta página Abrir en Perplexity Haz preguntas sobre esta página

e.firma (antes Firma Electrónica Avanzada) es el certificado digital personal que emite el SAT. En Verificamex Firma, un firmante puede usarlo para firmar un documento directamente con su propio certificado, sin pasar por el flujo guiado de validación de identidad.

Método: POST https://api.digitafirma.com/v1/sign/{signatureId}

EncabezadoValorDescripción
X-Api-Key{id}:{secret}Tu API Key, ver Uso de tokens.
Content-Typemultipart/form-dataEl certificado y la llave se envían como archivos binarios.
CampoTipoRequeridoDescripción
cerfileSí*Certificado público de la e.firma (.cer).
keyfileSí*Llave privada de la e.firma (.key).
pfxfileSí*Alternativa a cer + key: certificado en formato PKCS12 (.pfx).
passwordstringSíContraseña de la llave privada.

* Envía cer + key, o bien pfx — no es necesario enviar los tres. Si no envías ninguna de las dos combinaciones completas, el endpoint responde con error de validación.

Ventana de terminal
curl --location 'https://api.digitafirma.com/v1/sign/ac110005-9d7a-148c-819d-9cdca24f033e' \
--header 'X-Api-Key: TU_ID:TU_SECRET' \
--form 'cer=@"/ruta/a/certificado.cer"' \
--form 'key=@"/ruta/a/llave.key"' \
--form 'password=contraseña_de_la_llave'
  1. El certificado debe ser una e.firma personal, no un CSD. Un Certificado de Sello Digital (el que se usa para timbrar facturas) tiene un campo OU que la e.firma personal no tiene. Si subes un CSD por error, la firma se rechaza.

  2. El certificado debe estar vigente. El sistema valida las fechas de vigencia del propio certificado antes de firmar. Un certificado vencido o aún no vigente se rechaza.

  3. El RFC o CURP debe coincidir con el firmante registrado, si al crear el documento le asignaste un rfc a ese firmante. El sistema extrae el RFC y el CURP directamente del certificado y los compara; si no coinciden con el firmante esperado, la firma se rechaza. Si no le asignaste un RFC al firmante, esta validación se omite.

  4. La contraseña debe corresponder exactamente a la llave privada enviada. Una contraseña incorrecta impide abrir la llave y la firma falla.

  5. En producción, el certificado no debe estar revocado. El sistema consulta al SAT (OCSP) para confirmar que la e.firma sigue vigente y no fue revocada antes de aplicar la firma.

CódigoMensajeCausa
400El formato ingresado pertenece a un CSD, favor de ingresar una e.firma (FIEL)Se envió un Certificado de Sello Digital en vez de una e.firma personal.
400El certificado digital no está vigenteEl certificado está vencido o su vigencia aún no inicia.
400El RFC o CURP asignado a este firmante no coincide con el certificado digital esperadoEl firmante fue registrado con un RFC distinto al que trae el certificado.
400El certificado digital no es soportadoEl emisor del certificado no es reconocido (no es SAT, Judicatura Federal, TEPJF ni Verificamex).
400El documento no permite firmas de este tipoEl documento no incluyó "EFIRMA" en allow_type_signatures al crearse.
400El documento ya ha sido firmadoEse signatureId ya está en estatus SIGNED o REJECTED.