Deposits
A deposit is a standalone crypto top-up to a merchant balance. You create it through the API (POST /deposit) or the admin panel; Cryptonly returns a unique deposit address, a QR code, a payment link, and expiresAt.
The customer sends crypto to that unique deposit address, used for this deposit only. Cryptonly monitors the blockchain, runs compliance checks, and settles the payment into your merchant balance.
Deposit amounts are expressed in crypto. The customer can send any amount at or above the currency minimum. There is no fixed total.
Amount
Section titled “Amount”- The minimum for a currency is
minDepositAmountonGET /currencies. - The network fee is fixed when the deposit is created and withheld from the received amount. Commission is taken on what remains.
- Pass
orderIdonPOST /deposit. It is the idempotency key. - The payment link is valid for 20 minutes by default. A payment that arrives within 4 hours after
expiresAtis still processed — see Late payments. - Each top-up needs its own deposit. Create a new one when the same customer pays again.
How status and webhooks work
Section titled “How status and webhooks work”Deposits have statuses. Cryptonly sends a signed deposit.statusChanged webhook when a standalone deposit’s status changes.
Important behaviors for integrators:
- On create, the deposit is
created: the address is already assigned, and Cryptonly is waiting for an on-chain payment. - When an on-chain transaction is first detected, the deposit moves to
processing, then tocompleted(balance credited) orsuspended(not credited). suspendedis a final status for a standalone deposit. The funds stay on the deposit address.- A deposit that ends in
expiredcan still move toprocessingif a payment reaches its address within 4 hours — see Late payments.
Invoice-linked deposits do not send deposit.statusChanged webhooks. Listen for invoice.statusChanged for checkout payments.