Factu API Documentación

Reintentos e idempotencia

Esta es la página que evita el daño caro.

Manda siempre referencia_externa

Es el id de la venta en tu sistema. Reenviar el mismo pedido devuelve el comprobante ya emitido, sin crear uno nuevo:

POST con referencia "venta-8842"  →  BOLETA-B001-5   (emitió)
POST con referencia "venta-8842"  →  BOLETA-B001-5   (el mismo, no emitió otro)

Sin referencia_externa, cada POST emite un comprobante nuevo. Un reintento por timeout te deja dos documentos legales por la misma venta, y deshacerlo exige una nota de crédito.

Si repites la referencia con otros datos

{ "error": "ReferenciaReutilizada",
  "mensaje": "La referencia 'venta-8842' ya se uso para un comprobante con otros datos" }

Es a propósito: devolverte el comprobante viejo dejaría esta venta sin el suyo y nadie se enteraría.

Si dos peticiones idénticas llegan a la vez

La segunda recibe 409 EmisionEnCurso. Espera un segundo y consulta: la primera va a terminar.