Skip to content

Request a deposit address

POST /v1/payments/{id}/address

Credential: secret key or the payment’s checkout token.

Issues a deposit address and quotes the amount to send for one token on one network. Calling it again for the same method while the quote is valid returns the same address.

ParameterTypeRequiredDescription
tokenstringYesToken symbol, for example "USDC"
networkstringYesNetwork name, for example "polygon"
Terminal window
curl https://api.unizpay.com/v1/payments/pay_01K8Z3M0Q4V7Y2B9C6D1E5F8G3/address \
-H "Authorization: Bearer $CHECKOUT_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "token": "USDC", "network": "polygon" }'
{
"address": "0x5b1C…9e40",
"network": "polygon",
"chain_id": "eip155:137",
"token": "USDC",
"pay_amount": "25",
"qr": "ethereum:0x3c49…3359@137/transfer?address=0x5b1C…9e40&uint256=25000000",
"quote_expires_at": "2026-10-31T13:01:12.000Z",
"price": "25.00",
"processing_fee": "0.00",
"total": "25.00",
"price_locked": false,
"window_seconds": 3600,
"route": "forwarder",
"due": null
}
FieldDescription
addressWhere the payer sends the funds
network, chain_idThe network to send on (name and CAIP-2 id)
tokenThe token to send
pay_amountAmount of token to send, fees included
qrWallet payment link (EIP-681) with the token, address and amount; render it as a QR code
quote_expires_atEnd of the window to pay at this address
priceThe payment’s price in USD
processing_feeUSD added to the price when the payer pays the fees; "0.00" otherwise
totalprice + processing_fee: what pay_amount is worth
price_lockedtrue when the token’s price moves: pay_amount is a quote valid for 15 minutes; request the address again after it ends
window_secondsLength of the window: 3600 for stablecoins, 900 for other tokens
routeHow the payment settles; currently always "forwarder"
duenull, or when the payment is underpaid (payer view only): { "amount", "base_units", "qr" } for the remaining amount
StatusCodeWhen
400invalid_requestUnknown network, or a token not supported on that network
409conflictThe payment is no longer awaiting_payment, or it has expired
422method_unavailableThe method is not accepted for this payment, or can’t be converted to your payouts right now
429rate_limitedThe payment already issued 50 addresses; create a new payment
503network_busyA network provider is busy; retry after the Retry-After header