Request a deposit address
POST /v1/payments/{id}/addressCredential: 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
token | string | Yes | Token symbol, for example "USDC" |
network | string | Yes | Network name, for example "polygon" |
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" }'Response
Section titled “Response”{ "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}| Field | Description |
|---|---|
address | Where the payer sends the funds |
network, chain_id | The network to send on (name and CAIP-2 id) |
token | The token to send |
pay_amount | Amount of token to send, fees included |
qr | Wallet payment link (EIP-681) with the token, address and amount; render it as a QR code |
quote_expires_at | End of the window to pay at this address |
price | The payment’s price in USD |
processing_fee | USD added to the price when the payer pays the fees; "0.00" otherwise |
total | price + processing_fee: what pay_amount is worth |
price_locked | true when the token’s price moves: pay_amount is a quote valid for 15 minutes; request the address again after it ends |
window_seconds | Length of the window: 3600 for stablecoins, 900 for other tokens |
route | How the payment settles; currently always "forwarder" |
due | null, or when the payment is underpaid (payer view only): { "amount", "base_units", "qr" } for the remaining amount |
Errors
Section titled “Errors”| Status | Code | When |
|---|---|---|
400 | invalid_request | Unknown network, or a token not supported on that network |
409 | conflict | The payment is no longer awaiting_payment, or it has expired |
422 | method_unavailable | The method is not accepted for this payment, or can’t be converted to your payouts right now |
429 | rate_limited | The payment already issued 50 addresses; create a new payment |
503 | network_busy | A network provider is busy; retry after the Retry-After header |