> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atum.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Accept payments using Atum and MPP

> Gate an HTTP route or agent-facing tool behind an MPP payment with Atum.

This guide is for the **resource-server side** of an [MPP payment](/payment-protocols/mpp/overview): a merchant, an API, or an **agent-facing platform** — an MCP tool, an agent-callable API, a dataset — that wants to charge for access without holding funds or keys.

* **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`.

Two paths, depending on where you're starting from:

<CardGroup cols={2}>
  <Card title="Agentic receives" icon="robot" href="/payment-protocols/mpp/accept-payments/agentic-payment-acceptance">
    Run a working example merchant locally, no code changes needed.
  </Card>

  <Card title="Develop with Atum SDK" icon="code" href="/payment-protocols/mpp/accept-payments/develop-with-the-sdk">
    Gate your own route, tool, or API directly.
  </Card>
</CardGroup>

<Note>
  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.
</Note>

## Idempotency on the acceptance side

Stamp an `intentId` 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](/payment-protocols/idempotency).

## Next steps

| Topic                                 | Link                                                                                 |
| ------------------------------------- | ------------------------------------------------------------------------------------ |
| Idempotency                           | [Idempotency](/payment-protocols/idempotency)                                        |
| Payer-side guide                      | [Make payments](/payment-protocols/mpp/make-payments/overview)                       |
| Direct SDK integration                | [Develop with Atum SDK](/payment-protocols/mpp/accept-payments/develop-with-the-sdk) |
| How MPP settles without a facilitator | [MPP overview](/payment-protocols/mpp/overview)                                      |
| Accepting via x402 instead            | [Accept payments (x402)](/payment-protocols/x402/accept-payments/overview)           |
