TF Fiscal
Documentación

Webhooks

Registrar webhook

Registra o actualiza la URL de callback que recibe los resultados de emisión y demás eventos.

POST/openapi/v1/webhooks
Requiere las cabeceras de firma token, timestamp y sign, vea Autenticación.

Una configuración de callback por aplicación: webHookId es el identificador de la aplicación y llamar de nuevo sobrescribe la configuración. Es la misma configuración que se edita en la consola: registrar aquí o guardar allí tiene el mismo efecto, prevalece el último guardado, y el formato de los callbacks depende solo del tipo de evento. Llamar de nuevo al registro también restaura la entrega después de que el cortacircuitos por fallos consecutivos apagó el webhook. El modelo de entrega, la verificación de la firma y la política de reintentos están en Webhooks.

Cuerpo de la petición

id*
obligatorio para actualizar
stringIdentificador del webhook
uri*
stringURL de callback
contentType*
stringFormato del cuerpo del callback
token*
stringToken de verificación
eventos
arrayEventos suscritos

* Campo obligatorio

200
Configuración guardada.
webHookId
stringIdentificador del webhook

La plataforma hace POST a uri con cuerpo JSON (Content-Type: application/json; charset=utf-8). Un HTTP 2xx en hasta 10 segundos cuenta como entregado; cualquier otra respuesta se reintenta tras 1 min, 5 min, 30 min, 2 h y 6 h. Diez fallos consecutivos apagan el webhook; llamar de nuevo a este registro restaura la entrega y pone el contador a cero. Ejemplos de verificación de la firma en Node.js y Java están en Webhooks.

Cabeceras de cada entrega

Deduplique por el id del evento y verifique la firma sobre los bytes originales del cuerpo.

json
{
"Content-Type": "application/json; charset=utf-8",
"X-Tffiscal-Event": "invoice.authorized",
"X-Tffiscal-Event-Id": "1950000000000001",
"X-Tffiscal-Delivery-Id": "1950000000000002",
"X-Tffiscal-Timestamp": "1758200000",
"X-Tffiscal-Signature": "9f2c...e1",
"token": "dGt6eXp5ZGRra2tzc3Nra2hoaGFha2tha2FhamFoaGFoNzc3Nz",
"x-token": "dGt6eXp5ZGRra2tzc3Nra2hoaGFha2tha2FhamFoaGFoNzc3Nz"
}
X-Tffiscal-Event*
stringCódigo del evento
X-Tffiscal-Event-Id*
stringId del evento
X-Tffiscal-Delivery-Id*
stringId de la entrega
X-Tffiscal-Timestamp*
stringTimestamp de la firma
X-Tffiscal-Signature*
stringFirma
token*
cuando hay token definido
stringToken de verificación
x-token*
cuando hay token definido
stringCopia del token

* Campo obligatorio