Reprocesa un evento de integración aparcado
Reprocesa un evento de pasarela que se aparcó, una vez desaparecida la causa que le impidió producir su efecto.
Antes de llamarlo
- El evento debe estar publicado con
is_replayableatrue; cualquier otro devuelve 422. - Resuelve antes la causa: vuelve a activar la facturación automática, vuelve a vincular la cuenta conectada, espera al tipo de cambio.
- Exige el scope de escritura
integration_events:write, nunca el scope de lectura de la bandeja.
Qué puede provocar
Esta acción puede tener consecuencias fiscales reales. Si la causa ya está resuelta, el reproceso PUEDE EMITIR UNA FACTURA REAL, con su número de serie y su registro en VeriFactu. Confírmalo con el titular de la cuenta antes de llamarlo.
Qué devuelve
- Un
202significa aceptado y encolado, no completado. - El cuerpo devuelve el evento tal y como está ahora, no el resultado del reintento.
- El resultado aparece como un evento NUEVO en la bandeja: consulta
GET /v1/integrations/eventspara ver cómo acabó. - Nunca duplica facturas: el reproceso pasa por la misma comprobación de idempotencia que el intento original.
En: header
Parámetros de ruta
Parámetros de cabecera
Fija la versión de la API (YYYY-MM-DD, versionado por fecha estilo Stripe) para esta petición; omítelo para usar la versión fijada de la clave, o la última si no hay ninguna. Versión no soportada → 400 unsupported_api_version; malformada → 400 parameter_invalid_format. La versión efectiva se refleja en la cabecera de respuesta Factuarea-Version. Consulta la guía de Versioning.
dateOpera en nombre de una empresa hija (API key maestra de gestoría): pasa su id público (UUID v7) y la petición se ejecuta contra los datos de esa hija sin cambiar el scope, el tier ni el environment de la clave (omítelo para usar la propia empresa de la clave). UUID inválido → 400 parameter_invalid_uuid; id desconocido o no propio → 404 profile_not_found. Consulta la guía de Acting on behalf.
uuidCuerpo de la respuesta
application/json
application/json
application/json
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! });const result = await factuarea.integrations.events.replay("01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a01");{
"data": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a9b",
"object": "integration_event",
"provider": "stripe",
"event_type": "invoice.paid",
"direction": "inbound",
"status": "skipped",
"discard_reason": "autoinvoicing_disabled",
"discard_reason_label": "Auto-facturación desactivada",
"is_actionable": true,
"is_replayable": true,
"error_message": null,
"duration_ms": 184,
"created_at": "2026-07-15T09:30:12+00:00",
"recommended_action": "Elige una de las dos salidas, no las dos: activa la auto-facturación en la configuración de la integración y reprocesa el evento, o crea la factura a mano. Si haces ambas, el cobro acabará con dos facturas."
}
}{
"error": {
"type": "invalid_request_error",
"code": "parameter_unknown",
"message": "El parámetro 'per_page' no está reconocido por este endpoint.",
"param": "per_page",
"doc_url": "https://docs.factuarea.com/guides/errors#parameter_unknown",
"request_id": "req_01HKQS5N7UR6PWJ8K2T5BWPMZ9"
}
}{
"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": "not_found_error",
"code": "resource_not_found",
"message": "El recurso solicitado no existe o pertenece a otra empresa.",
"param": null,
"doc_url": "https://docs.factuarea.com/guides/errors#resource_not_found",
"request_id": "req_01HKQS5NEQ6X1R4N9B0C5DWTPG"
}
}{
"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"
}
}