Idempotencia
Idempotencia en la librería landapay: cada creación lleva una Idempotency-Key automática para reintentar sin duplicados y puedes enviar la tuya en cada llamada.
Llave automática
Cada creación, como paymentLinks.create o customers.create, lleva una Idempotency-Key única que la librería genera por ti. Si la petición falla por la red o por un error temporal y se reintenta, el reintento usa la misma llave, así que Landa Pay devuelve la respuesta original sin crear duplicados.
Usar tu propia llave
La llave automática protege los reintentos de una misma llamada. Si tu propio proceso puede repetir la operación, por ejemplo un job que se ejecuta dos veces, envía una llave ligada a tu operación:
const orderId = "A-1001"; const link = await landapay.paymentLinks.create( { title: `Pedido ${orderId}`, amount: 15_000_000 }, { idempotencyKey: `link-${orderId}` },);- Usa una llave por operación, por ejemplo el id del pedido o un UUID guardado.
- Durante 24 horas, la misma llave con los mismos datos devuelve el mismo resultado.
- Acepta hasta 255 caracteres.
En las suscripciones
subscriptions.create puede hacer hasta tres peticiones: crear el plan, crear el cliente y crear el checkout. Cada paso usa tu llave con un sufijo (:plan, :customer y :checkout), así que repetir la llamada con la misma llave no duplica ninguno.
await landapay.subscriptions.create( { plan: { interval: "monthly", amount: 4_990_000 }, customer: { name: "María Gómez", email: "[email protected]" }, externalId: "user_42", }, { idempotencyKey: "alta-user_42" },);Conflictos
Si reutilizas una llave con otros datos recibes un IdempotencyError. Si la petición original sigue en curso, la librería espera y reintenta sola.