On-Ramp Integration Guide
This guide walks you through integrating the Zet On-Ramp API to let your users buy crypto with Nigerian Naira (NGN) via bank transfer.Overview
Step 1: Get a quote
Before initiating a transaction, get a real-time quote that shows the user exactly what they’ll pay and receive.Quote response
Quotes expire in ~5 minutes. If the user doesn’t proceed in time, request a new quote.
Fee breakdown
Buying CNGN directly? No swap fee — cheapest option.
Step 2: Initiate the on-ramp
Once the user confirms, initiate the transaction with thequoteId:
Response — display these bank details to the user
Step 3: Wait for completion
Option A: Webhooks (recommended)
Register a webhook and listen foronramp.completed:
Option B: Polling
Poll the status endpoint every 30 seconds:Step 4: Non-custodial flow
If you’re not using Zet-managed wallets, providedestinationAddress instead of walletId:
Supported tokens
Best practices
- Always display the quote before initiating — show fees, rate, and estimated crypto amount
- Use idempotent references — if a user refreshes, use the same
referenceto avoid duplicate orders - Set a reasonable expiry UI — quotes expire in ~5 minutes, deposit windows in ~30 minutes
- Prefer webhooks over polling — more efficient and real-time
- Handle the
onramp.failedevent — notify the user and offer to retry
