- Without a credential: Your server returns a
402(payment required) listing the ways it accepts payment. - With a credential: Your server verifies the credential in-process and settles it by submitting to Atum’s Payment Gateway — there is no separate facilitator — then returns the requested resource and a
Payment-Receipt.
Agentic receives
Run a working example merchant locally, no code changes needed.
Develop with Atum SDK
Gate your own route, tool, or API directly.
The example merchant uses a stub submitter that returns a canned settlement confirmation locally, with no gateway or on-chain funds. Set
USE_STUB_SUBMITTER=false and point GATEWAY_URL at Atum’s Payment Gateway when you’re ready to settle against testnet or mainnet.Idempotency on the acceptance side
Stamp anintentId from a value your route already has, submit and return (do not poll inside verify()), and deliver once per receipt payment_id. Quote the same amount and the same accounts every time you re-issue a challenge for one intentId — re-price it and the payer’s next attempt is refused with a 409 instead of resuming. Full model: Idempotency.