Por comprobante Firma XAdES-BES cURL

Cómo firmar comprobantes XML con tu archivo .p12 usando una API

Para que un comprobante sea válido debe ir firmado con tu certificado de firma electrónica. En vez de integrar librerías de firma, subes tu .p12 una vez y la API firma cada comprobante por ti.

LO QUE VAS A HACER5 pasos

  1. Revisa tu certificado
  2. Súbelo a tu cuenta
  3. Verifica que quedó cargado
  4. Emite un comprobante firmado
  5. Cuida tu certificado

Antes de empezar

Tu archivo .p12 vigente y su clave

Una API key de pruebas de Flashpi

Solicítala aquí

Paso 1 · Revisa tu certificado

Antes de subirlo, confirma que el archivo es el .p12 que te entregó la entidad certificadora, que no esté vencido y que conoces su clave.

Un certificado vencido es la causa más común de firmas inválidas.

Paso 2 · Súbelo a tu cuenta

bashPOST /v1/certificados
curl -X POST https://api.flashpi.ec/v1/certificados \
  -H "Authorization: Bearer $FLASHPI_API_KEY" \
  -F "[email protected]" \
  -F "clave=$CLAVE_DEL_P12"

Guarda la clave en una variable de entorno o en un gestor de secretos. No la escribas en el comando ni en tu historial de terminal.

Paso 3 · Verifica que quedó cargado

bashGET /v1/certificados
curl https://api.flashpi.ec/v1/certificados \
  -H "Authorization: Bearer $FLASHPI_API_KEY"

Deberías ver el titular del certificado y su fecha de vencimiento. Anota esa fecha en tu calendario para renovarlo a tiempo.

Paso 4 · Emite un comprobante firmado

Emite una factura de prueba como en el quickstart. Si la respuesta es AUTORIZADO, la firma es válida.

Paso 5 · Cuida tu certificado

  • Nunca subas el .p12 ni su clave a un repositorio.
  • Úsalo solo desde tu backend.
  • Renueva antes del vencimiento.
  • Para entender cómo se protege en la nube, lee Almacenamiento seguro de archivos .p12.

Errores frecuentes

SíntomaCausa probableQué hacerReferencia
SRI 39Firma inválida.Vuelve a cargar tu .p12, confirma su clave y su vigencia.Ver detalle
SRI 35El archivo no cumple la estructura XML.Revisa los campos obligatorios y sus formatos.Ver detalle
401 UnauthorizedAPI key ausente, inválida o de otro ambiente.Revisa el header Authorization y que uses la key del ambiente correcto.Ver detalle

Siguientes pasos

Empieza hoy

Obtén tu API key y prueba la firma

Prueba la API en el ambiente de pruebas del SRI y pasa a producción cuando estés listo.