What is Onramp?
Onramp lets your customers convert fiat currency (AUD, EUR, GBP, SGD ,USD and Other currencies) into cryptocurrency (USDT, USDC ). The flow works like this:- Customer sends fiat to a virtual account
- Coinut detects the deposit
- Coinut executes the trade
- Crypto arrives at the customer’s wallet or your designated wallet address
Architecture
Step-by-Step Implementation
Create Customer
Call Store the returned
POST /customer/create with name, email, type="DEPOSITOR", and isIndividual=true.customerId. The customer receives a KYC link via email to complete identity verification.Wait for KYC Approval
Listen for the
CUSTOMER_APPROVED webhook event. You can also poll GET /customer/detail to check status.Customer status transitions: CREATED → PENDING → APPROVED | REJECTEDCreate Virtual Account
Call
POST /virtual-account/create with customerId and currency (AUD, EUR, GBP).For AUD accounts, optionally include a whitelist to pre-register allowed senders.Store all returned VA banking details (PayID, BSB, account number, IBAN, etc.).Add Crypto Address
Call
POST /crypto-address/add with:customerIdcurrency="USDT"address— the customer’s wallet addresslabel— a display labelnetwork—ETHfor ERC-20 orTRXfor TRC-20
Create Autoramp Flow
Call This links the virtual account deposits to automatic crypto conversion.
POST /autoramp-flow/onramp with the fiat source and crypto destination:Display VA to Customer
Show the virtual account details in your UI:
- AUD: Display PayID (e.g.,
john.doe@example.com) and BSB + Account Number - EUR: Display IBAN and SWIFT/BIC
- GBP: Display IBAN and Sort Code
- USD: Display IBAN and Sort Code
- SGD: Display IBAN and Sort Code
- other currencies : Contact Coinut support for the exact banking fields
Monitor Deposits
Listen for webhooks:
DEPOSIT_RECEIVED— funds detectedDEPOSIT_APPROVED— funds cleared
GET /deposit/list with the customer ID.Track Trade
After deposit approval, listen for:
TRADE_CREATED— trade initiatedTRADE_SETTLED— trade complete, crypto sent
GET /trade/list.Confirm Settlement
The
TRADE_SETTLED webhook includes txHash. Use it to verify the crypto transaction on-chain:- ERC-20: https://etherscan.io/tx/
- TRC-20: https://tronscan.org/#/transaction/
Confirm Settlement
The
TRADE_SETTLED webhook includes txHash. Use it to verify the crypto transaction on-chain:- ERC-20: https://etherscan.io/tx/
- TRC-20: https://tronscan.org/#/transaction/
Complete Code Example
Environment
| Environment | Base URL |
|---|---|
| Production | https://ramp.hexarails.ai |
| Sandbox | https://ramp-sandbox.hexarails.ai |
Go-Live Checklist
- KYC flow tested end-to-end
- All webhook events handled (
CUSTOMER_APPROVED,DEPOSIT_RECEIVED,DEPOSIT_APPROVED,TRADE_SETTLED) - Error handling implemented for API failures and timeouts
- Retry logic with exponential backoff for idempotent requests
- Monitoring dashboards set up for deposit and trade volumes
- IP whitelist configured in Partner Dashboard
- Webhook signature verification implemented
- Sandbox testing completed with multiple currencies

