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-1041Cómo funciona
| Situación | Respuesta |
|---|---|
| Primera solicitud con esa clave | 201 y el comprobante nuevo |
| La misma clave con el mismo cuerpo | 200 y el mismo comprobante, aunque lleguen varias a la vez |
| La misma clave con otro cuerpo | 409 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 un409 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, 503 | Sí, con la misma Idempotency-Key y esperando cada vez más |
409 not_ready | Después de resolver lo que falta (numeración, certificado) |
422 invalid_request | No: corrige los datos primero |
401, 404 | No: 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.