Quotes
Lock a rate for 10 minutes. A quote is single-use.
A quote locks a rate for 10 minutes. Creating an order against it consumes it, so each quote works once.
Direction is inferred
You do not name onramp or offramp on a quote. Pulse infers the direction from the currency pair. Exactly one side must be NGN.
- NGN to crypto is an onramp.
- Crypto to NGN is an offramp.
If neither side is NGN, or both are, the request fails with invalid_currency.
Network is required
network names the chain the crypto leg settles on. Pulse never infers it,
because a wrong chain means unrecoverable funds. Send one of these.
BASE POLYGON ARBITRUM OPTIMISM ETHEREUM CELO PLASMAAn unsupported asset fails with invalid_asset. An unsupported chain for that
asset fails with invalid_network.
Create a quote
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",
"amount": "150000"
}'{
"status": true,
"data": {
"id": "0198e2c1-…",
"rate": "1538.46",
"source_amount": "150000",
"destination_amount": "97.50",
"expires_at": "2026-07-30T11:42:00Z"
}
}amount is the source amount as a decimal string. expires_at is when the rate
lapses. Create the order before then.
Onramp quotes support ₦10,000–₦100,000,000. Offramp quotes support a minimum of
10 USDC or USDT and a maximum amount whose NGN destination is ₦100,000,000. An
amount outside the applicable range returns invalid_amount.
Pricing and fees
The quoted rate is all-in. It includes Pulse's pricing adjustment and any network conversion cost required for the route. Pulse does not add a separate fee to the quoted source or destination amount.
The order read keeps destination.amount as the quoted amount. Reconcile settlement
against the amount on order.completed, because execution can produce a different
delivered amount.
Expiry and reuse
A quote is spent once an order consumes it, or the 10 minutes pass. A create against
a spent quote fails with quote_expired. Get a new quote and try again.
Using an onramp quote on the offramp endpoint, or the reverse, fails with
quote_flow_mismatch.
Do not hold quotes
Get a quote right before you create the order. The rate you accept is returned on
the order later as rate, so you do not need to keep the quote to reconcile.
See the full request and response in the Create a quote reference.