Docs
Quickstart

Offramp

Accept crypto and deliver NGN to a verified bank account.

An offramp accepts crypto from the customer and pays NGN to a beneficiary's bank account. You need a pilot API key. Unlike an onramp, it starts with bank account resolution.

Resolve the beneficiary's bank account

List banks with GET /v1/banks, then resolve the selected account before you create an order.

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",
    "amount": "100"
  }'

Save data.id. The quote expires after 10 minutes and can create one order.

Create the offramp order

curl https://engine-api.pilot.pulseshiga.io/v1/offramp/orders \
  -H "X-API-Key: <your key>" \
  -H "Content-Type: application/json" \
  -d '{
    "reference": "piggy-txn-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.deposit_address. The customer must send the quoted asset on the quoted network.

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.

On this page