π Complete API Integration Flow
Choose your integration path and follow our comprehensive guide from authentication to transaction completion. Each step includes direct links to API documentation for seamless integration.
- π° On-Ramp Flow
- π³ Off-Ramp Flow
π° On-Ramp Integration Flowβ
Complete flow for converting Fiat β Crypto. Users deposit fiat currency and receive cryptocurrency.
π Step-by-Step On-Ramp Processβ
π User Login
Authenticate user with email and generate JWT access token for all subsequent API calls. Token expires in 1 hour.
POST /api/user-login β
π Fetch KYC Status
Check user's KYC verification status. If KYC is completed, proceed to link bank/UPI. Otherwise, upload KYC documents first.
POST /api/fetch-kyc-status β
π Upload KYC
Upload user's PAN card, Aadhaar, selfie and other information for identity verification. Required for compliance.
POST /api/upload-kyc β
π¦ Fetch Linked Bank Accounts/UPI IDs
Get list of user bank accounts or UPI IDs that are already linked. If not linked then link them first.
π¦ Link Bank/UPI
Connect user's bank account or UPI ID if not linked already or user wants to add new for payment processing. Bank account or UPI details are verified via our verification partner and must match the userβs KYC name.
π± Fetch Quotation
Get real-time exchange rates and pricing for the transaction. Quotation valid for 30 seconds with live market rates.
POST /api/fetch-buy-quotation β
π Create Order
Initialize the on-ramp transaction with confirmed details. Order created with status fiatPending.
POST /api/create-onramp-order β
πΈ Submit UTR
Submit payment reference (UTR) after completing bank transfer. Required to process the transaction and verify payment.
POST /api/update-utr β
β³ Fetch Order Status
Monitor transaction progress and current state. Poll this endpoint to track order status from fiatPending to completed.
POST /api/fetch-order-status β
π On-Ramp Order Status Guideβ
π Order Status Flow
π³ Off-Ramp Integration Flowβ
Complete flow for converting Crypto β Fiat. Users deposit cryptocurrency and receive fiat currency.
π Step-by-Step Off-Ramp Processβ
π User Login
Authenticate user with email and generate JWT access token for all subsequent API calls. Token expires in 1 hour.
POST /api/user-login β
π Fetch KYC Status
Check user's KYC verification status. If KYC is completed, proceed to link bank account. Otherwise, upload KYC documents first.
POST /api/fetch-kyc-status β
π Upload KYC
Upload user's PAN card, Aadhaar, selfie and other information for identity verification. Required for compliance.
POST /api/upload-kyc β
π¦ Fetch Linked Bank Accounts
Get list of user bank accounts that are already linked. If not linked then link them first.
GET /api/fetch-bank-accounts β
π¦ Link Bank Account
Connect user's bank account if not linked already or user wants to add new for receiving fiat payments. Bank details must match KYC information.
POST /api/link-bank-account β
π± Fetch Sell Quotation
Get real-time exchange rates for crypto to fiat conversion. Quotation valid for 30 seconds with live market rates.
POST /api/fetch-sell-quotation β
π Create Off-Ramp Order
Initialize the off-ramp transaction with confirmed details. Order created with status cryptoInit.
POST /api/create-offramp-order β
π Submit Transaction Hash
Provide blockchain transaction hash after sending crypto. Required to verify the crypto transfer on-chain.
POST /api/update-transaction-hash β
β³ Fetch Order Status
Monitor transaction progress and current state. Poll this endpoint to track order status from cryptoInit to completed.
POST /api/fetch-offramp-order-status β
π Off-Ramp Order Status Guideβ
π Order Status Flow
π― Feature Comparisonβ
On-Ramp Features
- Direction: Fiat β Crypto
- Payment: Bank Transfer & UPI
- Verification: UTR Submission
- Delivery: Crypto to Wallet
Off-Ramp Features
- Direction: Crypto β Fiat
- Payment: Bank Transfer
- Verification: TX Hash Submission
- Delivery: Fiat to Bank Account
π Important Notesβ
KYC verification is mandatory for all users. Always check KYC status before proceeding with bank linking. Bank account details must match KYC information.
UPI or Bank linking is mandatory before order creation for INR on-ramp transactions:
- INR_UPI method: UPI addition required via Link UPI ID API
- INR_IMPS method: Bank account addition required via Link Bank Account API
- Off-Ramp: Bank addition mandatory to receive fiat payouts in user's account
On-Ramp orders expire after 3 hours if payment is not received. Ensure users complete payment and submit UTR within the validity period. If the UTR is not submitted before the order expires, the user may create a new order for the same amount and submit the previous UTR.
Poll the order status API every 10-15 seconds to track real-time progress. Don't poll too frequently to avoid rate limiting.