Test this entire flow against the Sandbox at
https://crypto-sandbox.yativo.com/api/v1/ before going live. Sandbox deposits are simulated — no real funds are used.Overview
The deposit flow has four components:- Account — a logical container for assets belonging to one user or entity
- Wallet addresses — per-chain addresses derived from the account
- Webhooks — real-time notifications when deposits are detected and confirmed
- Business logic — your code credits the user after confirming the deposit
1
Create an account
Each user or entity in your system maps to a Yativo account. Create one at onboarding time and store the returned Response:
accountId.2
Create wallet addresses per chain
For each blockchain you want to support, add an asset to the account. This returns a deposit address on that chain.Response (Ethereum example):
3
Register webhooks for deposit events
Register a webhook endpoint to receive Response:
deposit.detected (immediate, unconfirmed) and deposit.confirmed (safe to credit) events.4
Display wallet addresses to users
Fetch the wallet addresses for an account and present them in your UI. Users send crypto to these addresses.
5
Handle webhook events and credit user accounts
When a deposit confirms, your webhook handler receives a
deposit.confirmed event. Verify the signature (next step), then credit the user.Here is a complete Express.js webhook handler:TypeScript (Express webhook handler)
6
Verify webhook signatures
All webhook requests from Yativo include an
X-Webhook-Signature header containing an HMAC-SHA256 signature of the raw request body.Webhook Payload: deposit.confirmed
Next Steps
- See Webhook Integration for the full webhook reference including all event types and retry policy.
- Use Send Crypto to move funds back out on behalf of users.

