π Complete API Integration Flow
Complete flow for converting Fiat β Crypto. Users deposit fiat currency and receive cryptocurrency.
π Step-by-Step OnRamp 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 onramp 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 β
π OnRamp Order Status Guideβ
π Order Status Flow
π 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 onramp transactions:
- INR_UPI method: UPI addition required via Link UPI ID API
- INR_IMPS method: Bank account addition required via Link Bank Account API
OnRamp 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.