Deposits
1
Create a deposit address
Request an address for the end user on a
network enabled for your account (e.g. ETHEREUM). Calling it again returns the same address.The response is a list: networks of the same family share an address, so one EVM address is returned for every EVM network enabled for your account. On networks where addresses are shared between users, the response also includes a memo that identifies the user — show it to them, since a deposit without it can’t be credited to them.→ Create Address for End User · List End User’s Addresses2
The user sends crypto to the address
Ripio detects the deposit on-chain and credits the user’s balance once it is confirmed.
3
Follow the deposit
Each status change of the deposit is notified with a
DEPOSIT webhook; the final one for a credited deposit is DEPOSIT.COMPLETED. You can also poll the deposits list — to catch up on changes, sort by updated_at and filter by update date.→ List Deposits · Retrieve Deposit · Crypto as a Service WebhooksAuto-swap addresses
An auto-swap address is a deposit address that converts every deposit into an asset preset for your account and withdraws the result to atarget_address. It runs at the best market price once the deposit is confirmed, with trading and withdrawal fees deducted before sending. Each run is notified with an AUTOSWAP.UPDATE webhook.
→ Create Auto Swap Address · List Auto Swap Addresses · Update target_address
Creating an auto-swap address that already exists returns it without changing its
target_address. To change the destination, use the update endpoint.Withdrawals
1
Get a withdrawal fee
Request a fee for the
currency and network of the withdrawal. The fee is held for a short time (see expires_at) and does not depend on the amount.→ Create Withdrawal Fee2
Create the withdrawal
Send the
end_user, currency, network, destination address, amount, an external_ref, and the fee’s id as withdrawal_fee. currency and network must match the ones of the fee.amountis what the destination receives. The user’s balance is debitedamountplus the fee (debited_amount).- On networks that use a memo (Ripple, Stellar, TON and similar),
memois mandatory; on the others it is rejected. external_refis unique per account: retrying with the same one returns the withdrawal already created instead of sending a second one.
3
Follow the withdrawal
Each status change is notified with a
WITHDRAWAL webhook; WITHDRAWAL.COMPLETED comes with the on-chain hash. You can also retrieve it or list the withdrawals.→ Retrieve Withdrawal · List WithdrawalsWebhooks and missed notifications
Deposits, withdrawals and auto-swaps are notified through IPN webhooks. Usemessage_id to deduplicate: the same operation is notified several times as its status advances. If your endpoint was down, recover what you missed from the IPN messages history.
→ Webhooks Introduction · List IPN Messages
Common errors
The full list is in Error handling.
Testing in sandbox
- Deposit addresses are created on test networks (for example
ETHEREUM_SEPOLIA); send test funds to them to credit an end user. - Register your webhook URL with the IPN Webhooks endpoints, available only in sandbox. In production, ask the Ripio team to configure it.
- To check that your endpoint receives and parses notifications, send a test message with Create Deposit IPN Notification for Testing. It sends a fixed sample message only: it does not create a deposit or credit any balance.