Ir al contenido

Webhooks para los comprobantes electrónicos del SRI

El SRI decide después de que envías el comprobante. Un webhook te avisa en el momento: autorizado, devuelto o no autorizado, firmado para que sepas que es nuestro.

Sandbox gratis, sin RUC ni tarjeta

Por qué conviene un aviso

La decisión del SRI llega cuando llega.

El SRI recibe el comprobante y lo autoriza en un paso aparte. Casi siempre es cuestión de segundos, pero a veces tarda y a veces no responde.

Preguntarle al SRI cada tanto si ya decidió gasta llamadas y complica tu código. Con un webhook, tu sistema reacciona a la decisión cuando ocurre: marcar el pedido como facturado, imprimir, avisar a quien corrija.

Cómo funcionan los webhooks

El estándar de siempre, con reintentos.

  • Un evento por decisión: invoice.authorized, invoice.returned, invoice.not_authorized e invoice.annulled, y lo mismo para cada tipo de comprobante.
  • Cada entrega va firmada según Standard Webhooks, con los encabezados webhook-id, webhook-timestamp y webhook-signature. Cualquier librería del estándar la verifica.
  • Respondes con cualquier 2xx en menos de 15 segundos. Si no, reintentamos con espera creciente durante unos tres días.
  • El evento trae el id, el estado y el número del comprobante; consultas el detalle por la API.
  • Puedes rotar el secreto sin perder entregas: durante el traslape cada entrega lleva dos firmas.
  • La dirección debe ser HTTPS y pública, incluso en Sandbox.

En la API

La misma solicitud que enviarías desde tu sistema.

Registrar un endpoint

El secreto solo se muestra en esta respuesta; con él verificas las entregas.

POST /v1/webhook-endpoints
Authorization: Bearer fb_sandbox_…

{
  "url": "https://tu-sistema.ec/webhooks/fiscalbase",
  "events": [
    "invoice.authorized",
    "invoice.not_authorized"
  ]
}

201 Created

{
  "id": "…",
  "url": "https://tu-sistema.ec/webhooks/fiscalbase",
  "events": ["invoice.authorized", "invoice.not_authorized"],
  "secret": "whsec_…"
}

Una entrega

webhook-id: msg_3c1a7e52…
webhook-timestamp: 1790883610
webhook-signature: v1,K5oZ…

{ "type": "invoice.authorized",
  "data": { "id": "0f6c8f4e-…", "object": "invoice",
            "status": "authorized",
            "number": "001-001-000000042" } }

Preguntas frecuentes

Lo que suelen preguntar antes de integrar.

¿Cómo verifico la firma de un webhook?

Con cualquier librería de Standard Webhooks y el secreto del endpoint: usa los encabezados webhook-id, webhook-timestamp y webhook-signature de la entrega.

¿Qué pasa si mi servidor está caído?

Reintentamos con espera creciente, desde 30 segundos hasta cada 6 horas, durante unos tres días.

¿Qué eventos recibo?

Uno cuando el SRI autoriza, uno cuando devuelve y uno cuando no autoriza, para cada tipo de comprobante, y otro cuando registras una anulación. También puedes suscribirte a todos.

¿Puedo recibir webhooks en mi computador mientras desarrollo?

La dirección debe ser HTTPS y pública, incluso en Sandbox, así que necesitas un túnel o un servidor de pruebas accesible desde internet.

Sigue leyendo

Otras guías para la misma integración.

API de facturación electrónica

Emite facturas, notas de crédito, retenciones y guías del SRI con una API REST. Firmamos, enviamos al SRI, reintentamos y avisamos con webhooks. Sandbox gratis.

Errores del SRI

Qué hacer cuando el SRI devuelve un comprobante, no lo autoriza o responde código 70, 43 o 45. Cómo Fiscalbase corrige y reenvía con la misma clave de acceso.

Ambiente de pruebas

Prueba tu facturación electrónica en Sandbox sin RUC ni certificado, y en el ambiente de pruebas del SRI (celcer) con tu RUC, antes de emitir en producción.

Facturación para Shopify

Instala la app de Fiscalbase en tu tienda Shopify y cada pedido pagado sale con su factura autorizada por el SRI. También en el punto de venta.

Tu primera factura hoy

Crea tu cuenta y emite en Sandbox en minutos.