Your allowlist is the set of agents allowed to pay you. No agent — regardless of its credit line — can settle a payment to your merchant account unless it’s on this list. This guide covers managing the allowlist via API and dashboard, and explains how enforcement actually works.

Add an agent

Add an agent by its agt_ ID. You’ll typically get this ID from the operator integrating with you, or from your own agent setup if you run both sides.
The response includes the on-chain transaction that wrote the entry:
Response
Allowlist changes are written on-chain and take effect within ~1 block (about 2 seconds on Base). A payment submitted in that window may still be evaluated against the old list — retry once if timing matters in a test.

Remove an agent

Removal is immediate and also written on-chain. Any in-flight orders from that agent will fail at settlement.
Response

List allowlisted agents

Response

Dashboard alternative

Everything above is also available in the dashboard under Agents → Allowlist: search agents by ID or label, add or remove them with a click, and see the on-chain transaction for each change. The dashboard is a convenience layer over the same API — there is no separate permission model.

How enforcement works on-chain

The allowlist is not an API-layer filter. Every settlement requires a 2-of-3 MPC co-signature from the Policy Service, and the allowlist check reads on-chain state. If the paying agent is not on your list, the Policy Service refuses to co-sign, so the USDC transfer can never be constructed — the payment fails with:
403 AGENT_NOT_ALLOWLISTED
This means a compromised API server, a buggy operator integration, or a rogue agent still cannot move funds to you outside your allowlist. The guarantee is cryptographic, not procedural.

Error cases

Adding an agent that’s already on the list returns the existing entry with 200 — the operation is idempotent, and sending an Idempotency-Key on POSTs makes retries safe. Full envelope details are in the error reference.

Test it

  • Add a sandbox agent and confirm the response contains an onchain_tx hash
  • View the entry on Sepolia Basescan using that hash
  • Submit a payment from a non-allowlisted agent and confirm you get 403 AGENT_NOT_ALLOWLISTED
  • Remove the agent, retry the payment, and confirm it now fails too
  • Confirm the dashboard Agents → Allowlist view matches GET /merchants/{id}/allowlist

Next steps

Settlements & Payouts

Where the money lands once allowlisted agents start paying.

Policy Service

The co-signing checks behind allowlist enforcement.

Error Reference

Every error code, status, and the standard envelope.