Idempotency-Key en operaciones write.
request
Cuando usarlo
Usalo en:POST /v1/hosted-checkout/sessionsPOST /v1/payment-linksPOST /v1/refundsPOST /v1/productsPOST /v1/customer-hub/customersy demas writes/v1/customer-hub/*POST /v1/bookable-payments/setupPOST /v1/bookable-payments/holdsPOST /v1/bookable-payments/holds/{id}/paymentPOST /v1/bookable-payments/bookings- Cualquier create, update o lifecycle mutation Bookable.
Buenas keys
Malas keys
Evita keys aleatorias si tu backend puede reintentar el mismo trabajo desde cero.bad
Patron recomendado
1
Crea una entidad local pendiente
Por ejemplo
orders.status = pending_payment.2
Genera una key deterministica
Usa el ID local y una version de operacion:
order_1001_checkout_v1.3
Llama SimplePay
Incluye
Idempotency-Key y guarda el ID que responde SimplePay.4
Reintenta con la misma key
Si hay timeout, repite exactamente la misma operacion con la misma key.
idempotent-checkout.ts