callback_url
Where status is delivered
CryptPays sends signed payment data to this URL.
Merchant API
CryptPays is a non-custodial payment gateway. Create a deposit address, let the customer pay, and receive a signed callback after CryptPays confirms and forwards the payment.
Start here No API key required
Introduction
You supply the destination for payment notifications and the wallet that should receive funds. CryptPays returns a new or previously associated deposit address for that payment identity.
callback_url
CryptPays sends signed payment data to this URL.
address_out
The merchant payout address for the selected blockchain family.
address_in
The deposit address returned by the create request.
After the customer pays address_in, CryptPays detects the deposit, applies the asset’s minimum and finality rules, forwards the eligible payment to address_out, and delivers a signed confirmed callback.
Merchant identity
Normal Merchant API use does not require an API key. A payment configuration is identified by its callback URL and selected address family, while funds are forwarded to its stored address_out.
First integration
This path uses confirmed callbacks only. Pending notifications and other advanced controls can be added after the basic payment flow works.
Read the live catalog instead of maintaining a currency list in your application. It contains the assets currently enabled for merchant use and their current minimums.
curl https://api.cryptpays.com/api/cryptocurrencies
Use the canonical ticker returned by discovery. The info response provides that ticker, the current minimum, the default confirmation or finality setting, and the generic public fee percentage.
curl https://api.cryptpays.com/api/bep20_usdt/info
The essential inputs are callback_url and address_out. The create request does not register or require an expected payment amount.
callback_urlYour public HTTPS payment-notification URL.
address_outYour payout address for the selected asset family.
post=1, json=1Use JSON POST callbacks for a new integration.
Recommended JSON callback setup
curl -X POST https://api.cryptpays.com/api/bep20_usdt/create \
-H 'Content-Type: application/json' \
-d '{
"callback_url": "https://merchant.example/payments/order-123",
"address_out": "0x1111111111111111111111111111111111111111",
"post": 1,
"json": 1
}'
Illustrative success response
{
"address_in": "0x2222222222222222222222222222222222222222",
"address_out": "0x1111111111111111111111111111111111111111",
"callback_url": "https://merchant.example/payments/order-123",
"priority": "default",
"minimum_transaction_coin": "1.000000000000000000",
"status": "success"
}
Example addresses and minimum are illustrative. Read current values from the live API.
address_inShow the returned deposit address to the customer together with the selected asset and current public minimum. Each blockchain deposit is processed independently; CryptPays does not need an invoice amount in advance.
Fulfill the order only from the signed confirmed event: result=sent and pending=0. The abridged JSON example below uses illustrative values.
{
"uuid": "c2d4ec37-6e24-48bc-b58a-0e569451d3cc",
"txid_in": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"value_coin": "100.000000000000000000",
"value_forwarded_coin": "98.800000000000000000",
"fee": "1.00",
"fee_coin": "1.200000000000000000",
"coin": "bep20_usdt",
"result": "sent",
"pending": 0
}
Pending notifications are optional and off by default (pending=0). See pending and confirmed callbacks before enabling them.
Before trusting any callback data, verify X-CryptPay-Signature and X-CryptPay-Timestamp. See the signature verification guide for the exact canonical request format.
After signature verification and successful idempotent processing, return exactly HTTP 200. CryptPays ignores the response body; any other status is a delivery failure and may be retried.
At a glance
A normal payment moves through one independent lifecycle from address creation to merchant acknowledgement.
Live configuration
This table is loaded once from the canonical Merchant API. It is the runtime authority for enabled assets, canonical tickers, and current minimums.
/api/cryptocurrenciesIf the live table is unavailable, call the catalog endpoint directly. The explanatory documentation and API reference remain available without JavaScript.
Continue