Actualitzar un webhook endpoint
Actualitza un webhook endpoint (URL, descripció, esdeveniments habilitats, estat, llista d'accés d'IP).
A: header
Paràmetres de ruta
Cos de la petició
application/json
Definicions de TypeScript
Usa el tipus request body a TypeScript.
Cos de la resposta
application/json
application/json
application/json
application/json
application/json
application/json
application/json
{
"data": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a0b",
"object": "webhook_endpoint",
"url": "https://example.com/webhooks/factuarea",
"description": "Webhook principal de producció.",
"enabled_events": [
"invoice.created",
"invoice.paid",
"quote.approved"
],
"status": "enabled",
"ip_allowlist": [
"203.0.113.10",
"198.51.100.0/24"
],
"delivery_success_rate_24h": 99.5,
"last_delivery_at": "2026-01-25T18:00:00Z",
"last_failure_at": "2026-01-20T09:14:33Z",
"previous_secret_valid_until": "2026-01-26T18:00:00Z",
"created_at": "2025-12-15T12:00:00Z",
"updated_at": "2026-01-25T18:00:00Z",
"api_version": "2026-05-01",
"metadata": {
"erp_code": "IVA-GEN",
"ledger_account": "477000"
},
"custom_headers": {
"Authorization": "Bearer integration-token",
"X-Custom-Auth": "tenant-a"
},
"timeout_seconds": 10,
"degraded_since": "2026-01-24T07: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": "idempotency_error",
"code": "idempotency_key_reused",
"message": "La cabecera `Idempotency-Key` ya se usó con un body distinto. Usa una clave nueva o reenvía exactamente el mismo body.",
"param": null,
"doc_url": "https://docs.factuarea.com/guides/errors#idempotency_key_reused",
"request_id": "req_01HKQS5NHT9A4U7R2E3F8GZWTJ"
}
}{
"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"
}
}Obtenir un webhook endpoint
Obté un webhook endpoint pel seu `uuid`. El secret de signatura mai s'exposa en aquesta representació.
Llistar tipus d'esdeveniment
Llista el catàleg tancat de tipus d'esdeveniment que Factuarea pot emetre als webhook endpoints. Fes-lo servir per poblar una UI de subscripció en lloc de hardcodejar els noms d'esdeveniment. Cada entrada exposa el seu `name`, `category` (derivada del prefix `<category>.*`), una `description` en castellà i un `status`: `available` significa que el tipus s'emet avui i pot subscriure's via `enabled_events`; `coming_soon` significa que el tipus està reservat per a una versió futura — es llista per descobrir-lo però NO és encara subscriptible (passar-lo en `enabled_events` retorna 422). El conjunt de tipus actualment emesos (`available`) és la font de veritat tancada `EventName::CATALOG`.