/api/{ticker}/createUse a canonical ticker such as bep20_usdt.
Payments
Create or reuse a deposit address, configure callback delivery, and reconcile each independent blockchain payment.
Overview
Supply a callback_url and merchant payout address_out. CryptPays returns an address_in for the customer to pay. The create request is amount-independent: it does not register an invoice amount, and each qualifying blockchain deposit is processed as a separate payment.
callback_url + address_outaddress_inSee address families, minimum transactions, confirmations, priority, and accounting.
Create
Both route forms accept GET or POST. The route selects the requested network and asset; no ticker is required in the request body.
/api/{ticker}/createUse a canonical ticker such as bep20_usdt.
/api/{chain}/{token}/createUse separate chain and token path segments when preferred.
Request contract
Only callback_url and address_out are required. Optional values apply when a new configuration is created; they do not update a compatible existing configuration.
| Parameter | Required | Type | Default | Description |
|---|---|---|---|---|
callback_url | Yes | URL, max 2048 | — | Stable callback destination and payment identity. Production URLs must use HTTPS and resolve safely to a public destination. Merchant query parameters such as ?order_id=123 are preserved. |
address_out | Yes | String, max 500 | — | Single merchant payout address, valid for the requested network. |
pending | No | Integer: 0 or 1 | 0 | Set to 1 for an optional early pending notification after a qualifying deposit is detected. |
confirmations | No | Integer ≥ 1 | Network default | Requests a numeric-chain threshold. Values below the operator default use the default; values above the configured maximum are rejected. Solana accepts the value for compatibility but retains its 0/1 finality model. |
post | No | Integer: 0 or 1 | 0 | 0 delivers GET callbacks; 1 delivers POST callbacks. |
json | No | Integer: 0 or 1 | 0 | With post=1, selects JSON when 1 and form encoding when 0. With post=0, delivery remains GET. |
priority | No | String | default | Syntactic values are slow, default, and fast; network support differs. |
convert | No | Integer: 0 or 1 | 0 | Set to 1 to request USDT-denominated conversion snapshot fields when a valid confirmed price exists. |
Omit post, or use post=0. The json value does not change GET delivery.
Use post=1 and json=0 for application/x-www-form-urlencoded.
Use post=1 and json=1 for application/json. Recommended for new integrations, but not the API default.
| Network or family | Supported values | Notes |
|---|---|---|
| BTC, LTC, BCH, DOGE | slow, default, fast | Selected priority affects the actual forwarding fee rate. |
| SOL and SPL | slow, default, fast | Selected priority affects Solana compute-unit pricing. |
| EVM, ZEC, TRON | default only | Explicit slow or fast returns 1103 UNSUPPORTED_PRIORITY. |
Examples
All addresses and identifiers are illustrative. Replace them with values valid for the selected network.
Minimal request — callback delivery remains GET
curl -X POST 'https://api.cryptpays.com/api/bep20_usdt/create' \
-H 'Content-Type: application/json' \
-d '{
"callback_url": "https://merchant.example/payments/callback?order_id=123",
"address_out": "0x1111111111111111111111111111111111111111"
}'Recommended JSON POST callbacks
curl -X POST 'https://api.cryptpays.com/api/bep20_usdt/create' \
-H 'Content-Type: application/json' \
-d '{
"callback_url": "https://merchant.example/payments/callback?order_id=124",
"address_out": "0x1111111111111111111111111111111111111111",
"post": 1,
"json": 1
}'Optional pending notification
curl -X POST 'https://api.cryptpays.com/api/bep20_usdt/create' \
-H 'Content-Type: application/json' \
-d '{
"callback_url": "https://merchant.example/payments/callback?order_id=125",
"address_out": "0x1111111111111111111111111111111111111111",
"post": 1,
"json": 1,
"pending": 1
}'Custom confirmations and priority
curl --get 'https://api.cryptpays.com/api/bitcoin_btc/create' \
--data-urlencode 'callback_url=https://merchant.example/payments/callback?order_id=126' \
--data-urlencode 'address_out=bc1qexamplemerchantaddress000000000000000000' \
--data-urlencode 'confirmations=6' \
--data-urlencode 'priority=fast'Success response
The response contains the effective existing or newly created configuration. Monetary values are decimal strings.
{
"address_in": "0x2222222222222222222222222222222222222222",
"address_out": "0x1111111111111111111111111111111111111111",
"callback_url": "https://merchant.example/payments/callback?order_id=124",
"priority": "default",
"minimum_transaction_coin": "1.250000000000000000",
"status": "success"
}| Field | Type | Meaning |
|---|---|---|
address_in | String | Deposit address to present to the customer. |
address_out | String | Stored merchant payout destination. |
callback_url | String | Exact stored callback URL identity. |
priority | String | Stored effective transaction priority. |
minimum_transaction_coin | Decimal string | Minimum snapshot stored when this address configuration was created. |
status | String | success. |
For current network economics, consult asset info or the live catalog; an older wallet snapshot can differ from the current minimum.
Identity and reuse
The exact callback URL and address family identify a configuration. A compatible repeated create returns the existing values; it is not an update operation.
Same callback URL and EVM family—for example BSC then Ethereum—returns the same address_in and original configuration.
Same callback URL across families—for example EVM then Bitcoin—returns HTTP 409 with 1202 CALLBACK_ADDRESS_FAMILY_CONFLICT.
Keep the callback URL string stable. Do not assume normalization of query ordering, trailing slashes, or host casing. See Address Families.
Customer instructions
address_inShow the deposit address together with the intended network and asset. Display or enforce the current minimum from /info or /cryptocurrencies; /create does not register an expected amount.
Processing threshold
A deposit below the current processing minimum is not forwarded and produces neither a pending nor a confirmed callback. It is not combined with another deposit; a later valid deposit remains independent.
Use the live minimum before presenting payment instructions. See Minimum Transactions and troubleshooting.
Reconciliation
Look up payment and callback-delivery history using the canonical ticker and exact callback URL stored at creation.
/api/{ticker}/logs?callback=...The callback query parameter is required. Encode it as a query value and keep the underlying callback URL string identical to the stored value.
curl --get 'https://api.cryptpays.com/api/bitcoin_btc/logs' \
--data-urlencode 'callback=https://merchant.example/payments/callback?order_id=126'Each item in callbacks includes the same stable uuid sent in merchant callbacks. For UTXO payments, txid_in is the bare transaction hash and vout is a separate integer.
Practical notes
post=1 with json=1, while recognizing that GET remains the API default.Continue with Callbacks for delivery details and API Reference for compact endpoint schemas.