Registro de entregas
Cada evento que enviamos a tu endpoint, con cada intento y lo que respondió. Reenvía uno y rota tu secreto sin perder entregas.
Cada evento que enviamos a un endpoint queda en su registro de entregas: qué evento era, cuántas veces lo intentamos, qué respondió tu servidor y cómo terminó. Es lo primero que miras cuando tu sistema dice que no le llegó un aviso.
Consulta las entregas
curl "https://api.fiscalbase.io/v1/webhook-endpoints/8d1f…/deliveries?status=failed" \
-H "Authorization: Bearer $FISCALBASE_API_KEY"{
"object": "list",
"data": [
{
"id": "0192f7b0-…",
"object": "webhook_delivery",
"endpoint_id": "8d1f…",
"event": {
"id": "3c1a7e52-…",
"type": "invoice.authorized",
"data": {
"id": "0f6c8f4e-…",
"object": "invoice",
"status": "authorized",
"environment": "live",
"country": "ec",
"entity_id": "01926c10-…",
"number": "001-002-000004813"
},
"created_at": "2026-09-29T14:03:52.118Z"
},
"status": "failed",
"attempts": [
{
"at": "2026-09-29T14:03:52.301Z",
"status_code": 500,
"error": null,
"duration_ms": 212
},
{
"at": "2026-09-29T14:04:23.090Z",
"status_code": null,
"error": "timeout",
"duration_ms": 15000
}
],
"created_at": "2026-09-29T14:03:52.118Z",
"updated_at": "2026-10-02T13:51:10.442Z"
}
],
"next_cursor": null,
"prev_cursor": null
}Las entregas van de la más reciente a la más antigua y se paginan como toda lista. Filtra con:
| Parámetro | Qué filtra |
|---|---|
status | pending (enviándose o esperando un reintento), succeeded (respondiste 2xx) o failed (se agotaron los reintentos) |
event_type | Un tipo de evento: invoice.authorized |
document_id | Los eventos de un comprobante: lo que la plataforma muestra en su pestaña de entregas |
Cada intento dice qué respondió tu endpoint (status_code) o por qué no respondió (error):
error | Qué pasó |
|---|---|
timeout | No respondiste en 15 segundos |
connection | No pudimos conectarnos: DNS, TLS o conexión rechazada |
forbidden_address | La URL apunta a una dirección que no es pública, y nunca nos conectamos a esas |
endpoint_disabled | Desactivaste el endpoint antes de que se enviara |
Reintentamos durante unos tres días, cada vez más espaciado. Después del último intento la entrega queda failed y avisamos por correo a los owner y admin de tu organización.
Reenvía una entrega
Cuando arreglas tu endpoint, reenvía lo que falló:
curl -X POST https://api.fiscalbase.io/v1/webhook-endpoints/8d1f…/deliveries/0192f7b0-…/resend \
-H "Authorization: Bearer $FISCALBASE_API_KEY"Responde 201 con una entrega nueva del mismo evento; la anterior se queda en el registro tal como terminó. La entrega nueva lleva el mismo webhook-id, así que si ya la habías procesado la descartas como duplicada.
Rota tu secreto
Si sospechas que tu secreto whsec_… se filtró, o simplemente lo cambias cada cierto tiempo, rótalo:
curl -X POST https://api.fiscalbase.io/v1/webhook-endpoints/8d1f…/rotate-secret \
-H "Authorization: Bearer $FISCALBASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "expires_in_hours": 24 }'La respuesta trae el secreto nuevo en secret, solo esta vez, y previous_secret_expires_at, hasta cuándo sigue valiendo el anterior. Durante ese traslape cada entrega lleva dos firmas en webhook-signature, una por secreto, y cualquier librería de Standard Webhooks acepta la entrega si una coincide. Así cambias el secreto en tu servidor cuando quieras dentro del traslape, sin perder ninguna entrega.
expires_in_hours | Cuándo usarlo |
|---|---|
24 (por defecto), hasta 72 | Una rotación planificada: tienes ese tiempo para desplegar el secreto nuevo |
0 | El secreto se filtró: el anterior deja de firmar enseguida |
Webhooks
Entérate en segundos de cada decisión del SRI, con entregas firmadas y reintentos durante tres días.
Fiscalbase para Shopify
Cada pedido pagado de tu tienda Shopify se convierte en una factura autorizada por el SRI, cada reembolso en una nota de crédito y, si lo activas, cada despacho en una guía de remisión.