Factuarea API
Integration events

Replay a parked integration event

Reprocess a gateway event that was parked, once the cause that prevented it from producing its effect is gone.

Before you call it

  • The event must be published with is_replayable set to true — anything else returns 422.
  • Fix the cause first: turn automatic invoicing back on, re-link the connected account, wait for the exchange rate.
  • It needs the write scope integration_events:write, never the read scope of the inbox.

What it can do

This action can have real fiscal consequences. If the cause is already resolved, the replay CAN ISSUE A REAL INVOICE, with its series number and its registration in VeriFactu. Confirm with the account owner before calling it.

What comes back

  • 202 means accepted and queued, not completed.
  • The body returns the event as it stands now, not the outcome of the retry.
  • The outcome appears as a NEW event in the inbox — poll GET /v1/integrations/events to see how it ended.
  • It never duplicates invoices: the replay goes through the same idempotency check as the original attempt.
POST
/integrations/events/{event}/replay
AuthorizationBearer <token>

In: header

Path Parameters

event*string

Header Parameters

Factuarea-Version?string

Pin the API version (YYYY-MM-DD, Stripe-style date versioning) for this request; omit to use the key's pinned version, or the latest if none. Unsupported version → 400 unsupported_api_version; malformed → 400 parameter_invalid_format. The effective version is echoed in the Factuarea-Version response header. See the Versioning guide.

Formatdate
X-Active-Profile?string

Operate on behalf of a child company (gestoría master key): pass its public id (UUID v7) and the request runs against that child's data without changing the key's scope, tier or environment (omit to use the key's own company). Invalid UUID → 400 parameter_invalid_uuid; unknown or non-owned id → 404 profile_not_found. See the Acting on behalf guide.

Formatuuid

Response Body

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"
  }
}