Ir al contenido

Webhook de eventos de Facturapi

POST
/invoices/webhook
curl --request POST \
--url https://api.dev.lade.com.mx/invoices/webhook \
--header 'Content-Type: application/json' \
--data '{ "type": "invoice.updated", "data": { "id": "5f8a1b2c3d4e5f6a7b8c9d0e", "status": "valid" } }'

Recibido directamente por Facturapi (no requiere Cognito), verificado con HMAC-SHA256 sobre el header X-Facturapi-Signature usando el secreto configurado. Procesa invoice.updated e invoice.canceled: sincroniza el status local con el de Facturapi y, si pasa a VALID y aún no hay PDF/XML guardados, los descarga y sube a S3. Eventos de otro tipo, o de una factura no encontrada localmente, se ignoran respondiendo 200.

Media typeapplication/json
object
type
string
Allowed values: invoice.updated invoice.canceled
data
object
id

ID de factura en Facturapi

string
status
string
Allowed values: valid canceled cancellation_in_progress draft
Example
{
"type": "invoice.updated",
"data": {
"id": "5f8a1b2c3d4e5f6a7b8c9d0e",
"status": "valid"
}
}

Webhook procesado (o evento ignorado)

Media typeapplication/json
object
message
string
Example
{
"message": "Webhook processed"
}

Solicitud inválida

Media typeapplication/json
object
error
required
string
message
string
field
string
Example
{
"error": "Validation failed",
"field": "email",
"message": "Invalid email format"
}

No autenticado

Media typeapplication/json
object
error
required
string
message
string
field
string
Example
{
"error": "Unauthorized",
"message": "Invalid or expired token"
}