Create an offramp order
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 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" }}Resolve a bank account POST
Confirms an account exists and returns the registered name. Call it before creating an offramp order so the customer can check the name first.
Create an onramp order POST
NGN to crypto. Returns a virtual account for the customer to transfer into. Once it is funded, Pulse delivers crypto to the destination address. The virtual account remains valid for 30 minutes. Use its `expires_at` value as the exact deadline and require the customer to transfer `account.amount`. `reference` is your idempotency key. Send the same one again and you get the original order, not a second. Max 128 characters, and unique within your business across both flows. `nin` and `bvn` are required for regulatory purposes. Each value must contain 11 digits. Pulse encrypts both at rest and omits them from API responses.