Skip to main content
Los endpoints de emisión de Factio soportan idempotencia: si envías el mismo request más de una vez, recibes el mismo resultado sin crear duplicados.

Cuándo usar idempotency_key

Úsala siempre que exista riesgo de retry:
  • Timeouts de red.
  • Reintentos automáticos de tu sistema.
  • Errores de red en conexiones móviles.
  • Retries de Zapier, Make u otras integraciones.

Cómo funciona

Incluye el header Idempotency-Key con un UUID v4 único por operación:
curl -X POST https://api.staging.factioapp.com/documents \
  -H "X-API-Key: fct_test_..." \
  -H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
  -H "Content-Type: application/json" \
  -d '{ ... }'
Si reenvías el mismo request con la misma Idempotency-Key:
  • Recibes exactamente la misma respuesta que la primera vez.
  • No se reserva un nuevo secuencial.
  • No se crea un nuevo comprobante.

Reglas

  • La Idempotency-Key es única por emisor (issuer_id). Dos emisores distintos pueden usar la misma key sin conflicto.
  • Las keys expiran después de 24 horas.
  • Un UUID v4 aleatorio por operación es suficiente. No uses timestamps, IDs de tu sistema ni valores predecibles.
import uuid
import httpx

idempotency_key = str(uuid.uuid4())  # Generar una vez por operación

response = client.post(
    "/documents",
    json=payload,
    headers={"Idempotency-Key": idempotency_key},
)
Si omites el header Idempotency-Key, la emisión funciona igualmente, pero asumes el riesgo de duplicados en caso de retry. Se recomienda siempre incluirlo.