Docs
Orders

Create an offramp order

POST
/v1/offramp/orders

Crypto to NGN. Returns a deposit address. Once the crypto arrives, Pulse settles NGN to the beneficiary's bank account.

The account number is verified with the bank before the order is created. A wrong one fails with account_verification_failed; no order is created. Account numbers are 10 digits. Use GET /v1/banks for valid bank codes.

reference is your idempotency key, unique within your business across both flows.

beneficiary.nin and beneficiary.bvn are required for regulatory purposes. Pulse encrypts both at rest and omits them from API responses.

Authorization

ApiKeyAuth
X-API-Key<token>

Your API key. Identifies your business; you never send a business id.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/offramp/orders" \  -H "Content-Type: application/json" \  -d '{    "reference": "string",    "quote_id": "string",    "beneficiary": {      "name": "string",      "email": "user@example.com",      "nin": "string",      "bvn": "string",      "bank_account": {        "bank_code": "string",        "account_number": "string"      }    }  }'
{  "status": true,  "data": {    "id": "0198e400-3c2b-7d5e-9f01-2a3b4c5d6e7f",    "reference": "piggy-txn-88214",    "type": "offramp",    "status": "awaiting_payment",    "source": {      "currency": "USDT",      "network": "POLYGON",      "amount": "100"    },    "destination": {      "currency": "NGN",      "amount": "138305"    },    "deposit_address": "0xDeF0000000000000000000000000000000000000",    "created_at": "2026-07-30T11:40:00Z",    "updated_at": "2026-07-30T11:40:00Z"  }}