Offramp
Accept crypto and deliver NGN to a verified bank account.
An offramp accepts crypto from the customer and pays NGN to a bank account. You need a test API key.
Pulse pays your customer's bank account. If your business pays out only to its own accounts, Pulse pays a payout account instead. See Name a payout account on an order.
Resolve the beneficiary's bank account
List banks with GET /v1/banks, then resolve the
selected account before you create an order. Skip this step if the order names a
payout account.
curl https://engine-api.pilot.pulseshiga.io/v1/banks/resolve \
-H "X-API-Key: <your key>" \
-H "Content-Type: application/json" \
-d '{ "bank_code": "058", "account_number": "0123456789" }'Show data.account_name to the customer and require confirmation. Do not create
the order if the name is wrong.
Get a crypto-to-NGN quote
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",
"source_amount": "100"
}'Your integration must store data.id. The quote expires after two minutes. You can
refresh the quote if the customer needs more time.
Create the offramp order
Set a unique reference. Then name the bank account that receives the naira.
Provide the beneficiary's identity and confirmed bank account.
curl https://engine-api.pilot.pulseshiga.io/v1/offramp/orders \
-H "X-API-Key: <your key>" \
-H "Content-Type: application/json" \
-d '{
"reference": "partner-order-88214",
"quote_id": "0198e3f2-…",
"beneficiary": {
"name": "Ada Obi",
"email": "ada@example.com",
"nin": "12345678901",
"bvn": "22345678901",
"bank_account": {
"bank_code": "058",
"account_number": "0123456789"
}
}
}'The response contains data.funding_account.deposit_address. The customer must send
the quoted asset on the quoted network, before data.expires_at.
Track the order
curl https://engine-api.pilot.pulseshiga.io/v1/orders/0198e400-… \
-H "X-API-Key: <your key>"Poll with backoff or consume webhooks. Stop at completed, expired,
or failed. Do not credit or promise a payout from the deposit alone. Reconcile
the completed amount and payout_reference from the webhook.
See Orders for response fields and network rules.