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 pairFlow
NGN to cryptoOnramp
Crypto to NGNOfframp

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

NetworkUSDTUSDC
BASE
POLYGON
ARBITRUM
OPTIMISM
ETHEREUM
CELO
PLASMA

Choose which amount to fix

Send exactly one amount. Pulse computes the other and returns both.

You sendMeaningPulse computes
source_amountWhat the customer sends.destination_amount
destination_amountWhat 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.

On this page