Idempotencia
Duemint utiliza un sistema de idempotencia para evitar que se ejecuten operaciones duplicadas cuando se envía la misma solicitud más de una vez (por ejemplo, ante reintentos automáticos o fallas de conexión).
Cada request puede incluir un operationToken, que permite identificar de forma única una operación y asegurar que solo se procese una vez, incluso si se reenvía.
operationToken aplica únicamente para los endpoints de Cuentas por Pagar y Tesorería.
No se utiliza en los endpoints de Cuentas por Cobrar.
Implementación
const crypto = require('crypto');
// Genera un UUID único por operación
const idempotencyToken = crypto.randomUUID();
const options = {
method: 'POST',
headers: {
'Authorization': 'TU_TOKEN_SECRETO',
'X-Duemint-Idempotency-Token': idempotencyToken, // <-- Clave de idempotencia
'Content-Type': 'application/json'
},
body: JSON.stringify({
// ...cuerpo de tu solicitud
})
};
// fetch('https://api.duemint.com/tu-endpoint', options)
Ejemplo de cURL
curl -X POST https://api.duemint.com/tu-endpoint \
-H "Authorization: TU_TOKEN_SECRETO" \
-H "X-Duemint-Idempotency-Token: <UUID-de-la-operacion>" \
-H "Content-Type: application/json" \
-d '{"monto": 1000, "moneda": "CLP"}'
- Genera un
X-Duemint-Idempotency-Tokennuevo para cada operación distinta. - Reutiliza el mismo
X-Duemint-Idempotency-Tokensolo si estás reintentando exactamente la misma operación tras un error de comunicación.
Idempotencia (Idempotency-Token)
Para evitar pagos duplicados ante reintentos de red, debes enviar un token de idempotencia por cada operación. Si repites el request con el mismo token, Duemint devuelve la misma respuesta en lugar de crear una nueva operación.
Cómo se envía
| Header | Tipo | Ejemplo |
|---|---|---|
| X-Duemint-Idempotency-Token | UUIDv4 | 550e8400-e29b-41d4-a716-446655440000 |
Estructura del UUIDv4
Un UUIDv4 es un identificador pseudoaleatorio de 128 bits,
representado por 32 caracteres hexadecimales en el formato 8-4-4-4-12:
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
La tercera sección empieza en 4 (versión),
y la cuarta sección (y) es 8, 9, A o B.
Updated about 5 hours ago
