Merchant Top-ups
Create Top-up
Pay with x402 and credit the merchant-side balance
POST
Creates (or resumes) a top-up. Unpaid requests receive
The challenge below abbreviates the enabled source list for readability. The
live response contains one
402 Payment Required with the exact payment requirements to sign; paid requests settle the payment and perform the merchant deposit. Replaying the same X-PAYMENT returns the existing top-up idempotently.
Path
string
default:"antseed"
required
Merchant id. Currently
antseed. Unsupported merchant paths return 404.Headers
string
required
Must be
application/json.string
Base64-encoded signed x402 payment payload. Omit on the first request to
receive the payment requirements via a 402 response.
Body
string
Address to credit on the merchant contract. Required on an unpaid request;
on a paid request it defaults to the payment signer. It may differ from
authorization.from when the paid request includes a valid beneficiary
binding.string
Gross payment-token amount in 6-decimal base units (for example,
"5000000" = 5 tokens). When omitted, the gateway uses the buyer’s maximum
available headroom. When paying, it must match authorization.value and be
within the bounds returned by the challenge or quote endpoint.object
Signed x402 payment payload as JSON. Use either this field or the
base64-encoded
X-PAYMENT header.object
Required when the payment signer (payer A) differs from
buyer (buyer B).
The preferred shape is
{ "kind": "payer-commitment-v1", "salt": "0x…32 bytes" }; the signed
EIP-3009 nonce must be the corresponding commitment. Use
@meridian/topup-client to construct this automatically.Responses
accepts[] and topup.sources[] entry per source
that can accept the requested amount.