01 link02 payment03 confirm04 your wallet
Your customer pays in crypto. The money lands in your wallet.
Add one payment link to your site and we handle the rest. The customer picks which coin to pay with, we watch the chain for it, and the settlement goes straight to your own wallet. There is no account of ours sitting in between.
No setup fee · no monthly fee · test on testnet as much as you like
24,318400 USDT
- network
- TON
- order
- A-1043
- confirmations
- 0 / 3
The life of one payment
Payment page created.
Invoice status: Payment page created.
Four steps, then forget it.
Once it's set up, the only thing left to watch is your orders. The chain side is ours.
- 01
Create a payment link.
You send an amount — in lira, in dollars, or directly in crypto. We hand back a ready payment page. Drop it on your site as a button, or send the link to the customer.
- 02
The customer picks how to pay.
Which network, which coin — entirely their call. Whatever sits in their wallet, one tap pays with it. We track each payment separately, so nothing gets mixed up.
- 03
We watch the payment for you.
We listen to the chain on your behalf. The moment funds arrive, reach enough confirmations, or come up short, your system hears about it. No refreshing, no waiting.
- 04
The money goes straight to your wallet.
Nothing parks in an intermediary account. Settlement moves to the wallet you nominate. The private keys stay yours from start to finish.
Whatever your customer pays with.
Six options, three networks. Someone holding USDT and someone holding TRX go through the same payment page — you don't set each one up separately.
| Network | Coin | Minimum | Collection method |
|---|---|---|---|
| TRON | TRX | 1 TRX | A unique address for every order |
| TRON | USDT | 1 USDT | One fixed address, matched instantly by a unique amount |
| BSC | BNB | 0.001 BNB | A unique address for every order |
| BSC | USDT | 1 USDT | One fixed address, matched instantly by a unique amount |
| TON | GRAM | 0.1 GRAM | A unique address for every order |
| TON | USDT | 1 USDT | One fixed address, matched instantly by a unique amount |
Contract addresses, decimal places and the technical detail are in the docs.
For your developer: one request.
That's the whole integration. You send one request, the payment page URL comes back, and you show that URL to the customer. The rest runs itself.
BODY='{"fiat_amount":"25.00","fiat_currency":"USD","order_id":"A-1043","callback_url":"https://shop.example/hooks/coinzen"}'TS=$(date +%s)NONCE=$(openssl rand -hex 16)HASH=$(printf '%s' "$BODY" | openssl dgst -sha256 -hex | awk '{print $2}')CANON=$(printf '%s\n%s\n%s\n%s\n%s' POST /v1/invoices "$TS" "$NONCE" "$HASH")SIG=$(printf '%s' "$CANON" | openssl dgst -sha256 -hmac "$COINZEN_SECRET" -hex | awk '{print $2}') curl -sS https://coinzen.cerceyn.com/v1/invoices \ -H "X-Api-Key: $COINZEN_KEY_ID" \ -H "X-Timestamp: $TS" \ -H "X-Nonce: $NONCE" \ -H "X-Signature: $SIG" \ -H 'Content-Type: application/json' \ -d "$BODY"{ "id": "0f7a2c1e-…", "status": "selecting", "network": null, "asset": null, "address": null, "amount": null, "amount_exact": null, "fiat_currency": "USD", "fiat_amount": "25.00", "locked_rate": null, "expires_at": "2026-08-16T14:31:00Z", "checkout_url": "https://coinzen.cerceyn.com/pay/ck_0f7a2c1e…", "payment_uri": null}You don't pay until you earn.
No monthly fee, no setup fee, no commitment. We take a share only of the payments you actually collect — and that share comes out of credit you topped up beforehand, not out of the payment itself. So the money always reaches you in full.
New accounts · first 45 days
0.1%
For the first 45 days. The standard rate is 1% after that; see how it's charged
Monthly fee
None
Opening an account and using the dashboard are free.
Testnet
Free
Run as many test payments as you want before going live.
Try it on testnet today.
See for yourself how smooth and fast the flow is, without sending any real money.