Wallet Infrastructure
Wallet Infrastructure
Payment Links

Creating a Payment

Create a payment and share its receiving addresses.

Money flow
PayerPayer wallet
exact amount
Wallet InfrastructureDeposit addressaddresses
first match
Wallet InfrastructurePaymentFULFILLED
settle
YouYour addressdestinationAddress
webhooks
YouYour serverreference

Before you start

You need a payment-links project. Payments are created in your business's default payment-links project, set in the dashboard; without one, requests are refused with 409.

Create a payment

Send Create payment with an Idempotency-Key header. The key is required: a retry without it would create a second set of addresses the payer never sees.

FieldValue
referenceYour own reference, for example an invoice number.
destinationsOne entry per network family you accept: evm, bitcoin, spark, solana, tron, ton.

Each destination takes:

FieldValue
assetWhat the payer sends, for example USDT or BTC.
amountExactly what must arrive, for example "10.5".
destinationAddressWhere the funds go once they arrive. It cannot be changed later.

One evm entry covers every EVM network.

Share the addresses

The response has one deposit address per family. Show them to the payer.

  • The first exact payment on any network completes the payment.
  • A short payment does not complete it.
  • An overpayment completes it, and the excess is held for you.
  • Payments that arrive on other networks after it completes are held for you.

See Approvals and Recovered Funds for held funds.

Expiry and cancelling

A payment expires after 30 minutes. Cancel payment stops one sooner, while it is still awaiting payment.

After a payment expires or is cancelled, its addresses stay watched for 24 hours, so funds sent late are held, not lost.

Statuses

StatusMeaning
AWAITING_PAYMENTWaiting for the payer.
FULFILLEDPaid. Funds are sent to your address, after approval when one is needed.
EXPIREDNot paid within 30 minutes.
CANCELLEDCancelled before it was paid.

Tracking

  • List payments and Get payment show each payment with its addresses, attempts and held funds.
  • payment.* events arrive at the webhook endpoints of the project the payment belongs to. See Notifications.

Errors

CodeStatusCause
validation_failed400The Idempotency-Key header is missing.
validation_failed409No default payment-links project is set and the key does not belong to one.
validation_failed409The payment cannot be cancelled because it is no longer awaiting payment.
not_found404No payment has this id.

On this page