Deposit processing lifecycle
See Deposit statuses for the full status table and integration notes.
Create, listen, then settle
Section titled “Create, listen, then settle”- Create a deposit through the API (
POST /deposit) withaccountId,cryptoCurrencyCode, andorderId - Show the customer the deposit address, QR code, or payment link
- Listen for
deposit.statusChangedwebhook events - Update your internal balance or fulfilment logic when the deposit reaches
completed
Deposit lifecycle
Section titled “Deposit lifecycle”-
Merchant creates a deposit request
A deposit can be created either:
- through the admin panel
- via the API
When creating a deposit through the API, the merchant provides:
accountIdcryptoCurrencyCodeorderId(idempotency key)
Optional fields include
customerIdandwebhookUrl. -
Cryptonly assigns a unique deposit address
Cryptonly assigns a deposit address that is used for this deposit only and returns a payment link, QR code, and
expiresAttimestamp (default 20 minutes).The customer can send any amount at or above the currency minimum. The network fee for moving the funds off this address is fixed at this point and withheld from the received amount.
If the payment arrives after
expiresAtbut within 4 hours after expiry, it is still processed through the steps below (the deposit moves fromexpiredtoprocessing). See Late payments. -
Customer sends crypto to the deposit address
Unlike invoice payments, the amount is flexible as long as it meets the minimum deposit requirement for the selected currency.
-
Cryptonly waits for the required on-chain confirmation(s)
Once the transfer is detected on-chain, Cryptonly waits for the required number of blockchain confirmations before proceeding. See Onchain confirmations for the number required per chain.
The deposit moves to
processingat this stage. -
Cryptonly performs an AML check
After the required confirmations, Cryptonly screens the transaction. It can pass and continue, be flagged for review, or be held.
-
If the AML check passes, the deposit is completed and the balance is credited
Cryptonly marks the deposit as
completedand credits the merchant’s internal balance with the received amount minus the network fee and commission. -
Cryptonly sends webhooks on status changes
Cryptonly sends a
deposit.statusChangedwebhook on each deposit status transition.The webhook endpoint can be defined in the admin panel, set as an organization default, or passed directly in the deposit creation API call.