Quotes
Create a rate quote for an onramp or offramp order.
A quote sets the rate for one NGN-to-crypto or crypto-to-NGN order. It expires after two minutes.
Set the direction
Set source_currency to the currency that the customer sends. Set
destination_currency to the currency that the customer receives. Exactly one
currency must be NGN.
| Currency pair | Flow |
|---|---|
| NGN to crypto | Onramp |
| Crypto to NGN | Offramp |
The request returns invalid_currency when both currencies are NGN or neither
currency is NGN.
Choose a network
Set network to the chain for the crypto transfer. Pulse does not infer it. Funds
sent on another chain cannot be recovered.
Supported assets and networks
| Network | USDT | USDC |
|---|---|---|
BASE | ✓ | ✓ |
POLYGON | ✓ | ✓ |
ARBITRUM | ✓ | ✓ |
OPTIMISM | ✓ | ✓ |
ETHEREUM | ✓ | ✓ |
CELO | ✓ | ✓ |
PLASMA | ✓ | ✗ |
Choose which amount to fix
Send exactly one amount. Pulse computes the other and returns both.
| You send | Meaning | Pulse computes |
|---|---|---|
source_amount | What the customer sends. | destination_amount |
destination_amount | What the customer receives. | source_amount |
Sending both amounts, or neither, returns amount_required.
Use destination_amount when the customer names a figure in the currency they
receive: naira for an offramp, crypto for an onramp. Pulse solves for the amount to
send in a single call, at the rate that executes.
The quote is the commitment
Whatever the quote returns is the figure to show the customer. Their input is a
request. If a customer asks for ₦140,000 and the quote returns 102.432779, that is
the amount to send.
Pulse rounds each computed amount to the precision its currency supports, so every
figure it returns can be sent as-is. A computed source_amount rounds up, so it
always covers the requested destination_amount. A computed destination_amount
rounds down, so it never exceeds what the source_amount buys.
Amount limits
Limits apply to the naira side of the trade, whichever amount you send.
- Onramp: ₦15,000 to ₦100,000,000.
- Offramp: at least 10 USDC or USDT. The quoted NGN amount cannot exceed ₦100,000,000.
Send amounts as decimal strings. A value outside these limits returns
invalid_amount.
Create a quote
This onramp fixes the naira the customer spends.
curl https://engine-api.pilot.pulseshiga.io/v1/quotes \
-H "X-API-Key: <your key>" \
-H "Content-Type: application/json" \
-d '{
"source_currency": "NGN",
"destination_currency": "USDT",
"network": "POLYGON",
"source_amount": "150000"
}'This offramp fixes the naira the customer receives. Pulse returns the crypto to send.
curl https://engine-api.pilot.pulseshiga.io/v1/quotes \
-H "X-API-Key: <your key>" \
-H "Content-Type: application/json" \
-d '{
"source_currency": "USDT",
"destination_currency": "NGN",
"network": "POLYGON",
"destination_amount": "140000"
}'Store the quote ID from data.id.
Pricing and fees
The rate includes Pulse's pricing adjustment and applicable network conversion costs. The quote has no separate fee line.
Refresh a quote
You can refresh a quote when the customer needs more time:
curl -X POST https://engine-api.pilot.pulseshiga.io/v1/quotes/0198e2c1-…/refresh \
-H "X-API-Key: <your key>"The endpoint keeps the quote ID and the amount you fixed, then uses current pricing to
reset the rate, the computed amount, and expires_at. A quote created with
source_amount returns a new destination_amount; a quote created with
destination_amount returns a new source_amount.
You can refresh an active or expired quote. Pulse returns quote_not_refreshable for
a consumed quote.
Use the quote
Your integration must create the order before data.expires_at. Pulse returns
quote_expired if the quote expired or already created an order.
Pulse returns 409 quote_changed if a refresh changes the quote during order
creation. Your integration must refresh the quote again and review the response. It
can then retry the order request.
Use the quote with the matching order endpoint. A mismatch returns
quote_flow_mismatch.
See the Create a quote reference for all fields.