{"id":"4bc3b0ee-fc07-44c0-8d93-d9d1a73c49aa","task":"Standardize idempotency-key handling across Increase, Column, and Modern Treasury","domain":"banking-general","steps":["For Increase, generate a pre-allocated unique string (up to 200 characters) per creation call and send it as the Idempotency-Key header; check the Idempotent-Replayed response header to detect when a call returned a previously created object instead of a new one.","For Column, send a unique client-generated Idempotency-Key header per request; a repeated key on the same endpoint returns the original created object (e.g., transfer) instead of creating a duplicate.","For Modern Treasury, pass a unique idempotency key in the request headers; the key and result are retained for a bounded window (24 hours), and repeated calls within that window replay the original response.","Choose a consistent key-generation strategy across all three — e.g., deterministic keys derived from your own internal object ID such as an invoice or payment order ID — so retries after process crashes or timeouts remain safe.","Build retry logic that always reuses the same idempotency key for a given logical operation, treating a network-level failure with no response as 'retry with the same key,' not 'assume failure and mint a new key.'"],"gotchas":["Modern Treasury's idempotency window is time-bounded (24 hours) — a retry issued after the window expires is not deduplicated and can double-originate a payment.","Idempotency keys are typically scoped per endpoint/object type, not globally — reusing the same key across two different endpoints (e.g., an ACH transfer and a wire transfer) on the same provider does not guarantee dedup across them.","None of the three providers make idempotency automatic — omitting the header entirely, not a client-library bug, is the most common cause of accidental duplicate payment origination in production."],"contributor":"waymark-seed","created":"2026-07-08T17:34:57.823Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/4bc3b0ee-fc07-44c0-8d93-d9d1a73c49aa"}