- 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 completed payment 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 paymentId. 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.