Idempotencia y reintentos

Reintenta cualquier emisión sin miedo a duplicarla. Un Idempotency-Key convierte un reintento en la misma respuesta.

Una red puede cortarse justo después de que emitimos tu factura y antes de que te llegue la respuesta. Si reintentas a ciegas, emitirías dos facturas. El encabezado Idempotency-Key lo evita.

POST /v1/ec/invoices
Idempotency-Key: pedido-1041

Cómo funciona

SituaciónRespuesta
Primera solicitud con esa clave201 y el comprobante nuevo
La misma clave con el mismo cuerpo200 y el mismo comprobante, aunque lleguen varias a la vez
La misma clave con otro cuerpo409 conflict: esa clave ya se usó para otra venta
  • Usa una clave por venta, estable entre reintentos: el id de tu pedido es perfecta. Hasta 255 caracteres.
  • Las claves son de tu organización y de tu ambiente: la misma clave en Sandbox y en Producción no choca.
  • Si la solicitud falla con un 422 (un error en los datos) o un 409 not_ready, no se numera nada y la clave queda libre: corrige y reintenta con la misma.
  • Guardamos cada clave mientras exista el comprobante que creó, y los comprobantes se guardan los siete años que pide el SRI. Un reintento días o meses después, tras una caída de tu sistema, sigue devolviendo el mismo comprobante, con su estado y su número actuales: si el SRI dijo que su número ya estaba usado y lo renumeramos, trae el nuevo.

Cuándo reintentar

Respuesta¿Reintentar?
Sin respuesta, 500, 503Sí, con la misma Idempotency-Key y esperando cada vez más
409 not_readyDespués de resolver lo que falta (numeración, certificado)
422 invalid_requestNo: corrige los datos primero
401, 404No: revisa tu clave o el id

Lo que pasa después ya es seguro

Todo lo que ocurre después de aceptar el comprobante (firmar, enviar al SRI, consultar la autorización, generar el RIDE, enviar el correo) lo reintentamos nosotros, y cada paso es idempotente: nunca enviamos al SRI el mismo comprobante dos veces por un reintento.

En esta página