List webhook deliveries
List delivery attempts for a webhook endpoint with cursor-based pagination. Each delivery captures the HTTP response status, body (truncated), duration, and retry schedule.
In: header
Path Parameters
Query Parameters
Number of objects to return. Integer between 1 and 100. Defaults to 25.
251 <= value <= 100Cursor for forward pagination. Use the uuid of the last object on the previous page.
uuidCursor for backward pagination. Use the uuid of the first object on the current page.
uuidDelivery status (pending, succeeded, failed). Exact match on status.
Delivery status (pending, succeeded, failed). Comma-separated list. Any of the values matches.
Type of the delivered event. Exact match on event.
Type of the delivered event. Comma-separated list. Any of the values matches.
Delivery creation date (ISO 8601). Greater than or equal to the given value.
date-timeDelivery creation date (ISO 8601). Less than or equal to the given value.
date-timeDelivery creation date (ISO 8601). Strictly greater than the given value.
date-timeDelivery creation date (ISO 8601). Strictly less than the given value.
date-timeResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
import { Factuarea } from "@factuarea/sdk";const factuarea = new Factuarea({ apiKey: process.env.FACTUAREA_API_KEY! });// List endpoints return an async-iterable Page (cursors handled for you).for await (const item of await factuarea.webhookEndpoints.deliveries.list("01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a01", { limit: 25 })) { console.log(item.id);}{
"has_more": true,
"next_cursor": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a0c",
"data": [
{
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a0c",
"object": "webhook_delivery",
"webhook_endpoint_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a0b",
"event_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a0d",
"event_name": "invoice.paid",
"status": "delivered",
"attempt": 1,
"next_retry_at": "2026-01-25T18:05:00Z",
"response_status": 200,
"response_body_truncated": "{\"received\":true}",
"duration_ms": 142,
"signature": "t=1737830400,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd",
"request_headers": {
"Content-Type": "application/json",
"Factuarea-Event-Id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a0d"
},
"completed_at": "2026-01-25T18:00:01Z",
"created_at": "2026-01-25T18:00:00Z",
"payload": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"type": "invoice.created",
"api_version": "string",
"created": 0,
"livemode": true,
"correlation_id": "807686c4-116c-44b3-a01c-b14b50e31bcc",
"data": {
"type": "invoice.created",
"object": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a42",
"object": "invoice",
"number": "FAC-2026-00042",
"is_number_assigned": true,
"type": "F1",
"series": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8b02",
"code": "FAC-2026"
},
"client": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a01",
"name": "Acme Soluciones SL"
},
"status": "paid",
"issued_on": "2026-03-15",
"due_on": "2026-04-14",
"subtotal": 1000,
"taxes_total": 210,
"total": 1210,
"currency": "EUR",
"notes": "Servicios profesionales marzo 2026.",
"external_id": "ERP-2026-0042",
"lines": [
{
"object": "invoice_line",
"description": "Consultoría técnica (10 h)",
"product": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8b03",
"name": "Consultoría técnica (hora)"
},
"quantity": 10,
"unit_price": 100,
"tax_rate": 21,
"discount_percent": 0,
"subtotal": 1000,
"taxes": 210,
"total": 1210
}
],
"metadata": {
"order_id": "PO-2026-0042"
},
"tags": [
"consultoria",
"cliente-vip"
],
"custom_fields": [
{
"field": "centro_coste",
"value": "CC-2026-001"
},
{
"field": "numero_pedido",
"value": "PO-2026-0042"
}
],
"operation_regime": "general",
"exclude_347": false,
"verifactu_status": "accepted",
"paid_amount": 1210,
"pending_amount": 0,
"payments": {
"detail": [
{
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a90",
"object": "payment",
"invoice_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a42",
"amount": 1210,
"payment_date": "2026-03-20",
"payment_method": "bank_transfer",
"payment_method_text": "Transferencia bancaria",
"reference": "TRF-2026-0042",
"notes": null,
"created_at": "2026-03-20T10:30:00Z",
"updated_at": "2026-03-20T10:30:00Z"
}
],
"total": 1210,
"pending": 0
},
"is_corrective": false,
"corrective": null,
"payment": {
"method": "bank_transfer",
"reference": "TRF-2026-0042",
"date": "2026-03-20"
},
"public_link": {
"object": "public_link",
"url": "https://app.factuarea.com/d/01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a42",
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a42",
"enabled": true,
"expires_at": "2026-09-15T23:59:59Z",
"max_days": 120
},
"substituted_by": null,
"recurring": null,
"paid_at": "2026-03-20T10:30:00Z",
"paid_on": "2026-03-20",
"sent_at": "2026-03-15T11:45:00Z",
"voided_at": null,
"void_reason": null,
"created_at": "2026-03-15T11:30:00Z",
"updated_at": "2026-03-20T10:30:00Z"
}
}
}
}
]
}{
"error": {
"type": "authentication_error",
"code": "missing_api_key",
"message": "No se ha proporcionado una API key válida en el header Authorization.",
"param": null,
"doc_url": "https://docs.factuarea.com/guides/errors#missing_api_key",
"request_id": "req_01HKQS5N8VR7QXJ9K3T6BWPMZA"
}
}{
"error": {
"type": "authorization_error",
"code": "insufficient_scope",
"message": "Esta API key no tiene el scope requerido para esta operación.",
"param": null,
"doc_url": "https://docs.factuarea.com/guides/errors#insufficient_scope",
"request_id": "req_01HKQS5NBC3P8M1KX4V7SLNHQD"
}
}{
"error": {
"type": "invalid_request_error",
"code": "parameter_invalid",
"message": "El campo `name` es obligatorio y no puede estar vacío.",
"param": "name",
"doc_url": "https://docs.factuarea.com/guides/errors#parameter_invalid",
"request_id": "req_01HKQS5NGS8Z3T6Q1D2E7FYVSI"
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Has excedido el rate limit de 60 peticiones por minuto. Reintenta tras 30 segundos.",
"param": null,
"doc_url": "https://docs.factuarea.com/guides/errors#rate_limit_exceeded",
"request_id": "req_01HKQS5NKW1C6W9T4G5H0JBZVL"
}
}{
"error": {
"type": "api_error",
"code": "internal_error",
"message": "Ha ocurrido un error inesperado. Si persiste, contacta con soporte adjuntando el request_id.",
"param": null,
"doc_url": "https://docs.factuarea.com/guides/errors#internal_error",
"request_id": "req_01HKQS5NLX2D7X0U5H6J1KCAWM"
}
}