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.

📌
El parámetro 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"}'
Importante:
  • Genera un X-Duemint-Idempotency-Token nuevo para cada operación distinta.
  • Reutiliza el mismo X-Duemint-Idempotency-Token solo 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

HeaderTipoEjemplo
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.