Saltar al contenido principal

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.

Las consultas y las ediciones no necesitan llave: repetirlas no crea objetos nuevos.

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:

Llave ligada al pedidoTypeScript
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.

Suscripción idempotenteTypeScript
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.