Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.nexapay.ng/llms.txt

Use this file to discover all available pages before exploring further.

Withdrawals

Request Withdrawal (API Key)

POST /business/withdrawal/request Withdrawal requests are processed by NexaPay, and the final outcome is also sent to your webhook URL as a signed event.

Response (Production)

{
  "success": true,
  "msg": "Withdrawal successful",
  "withdrawal": {
    "transactionId": "NEXA-...",
    "amount": 10000,
    "fee": 250,
    "totalDebit": 10250,
    "bankAccount": "0123456789",
    "status": "COMPLETED"
  }
}

Response (Test Key)

{
  "success": true,
  "msg": "Test withdrawal completed successfully",
  "withdrawal": {
    "transactionId": "NEXA-...",
    "amount": 10000,
    "fee": 250,
    "totalDebit": 10250,
    "bankAccount": "0123456789",
    "status": "COMPLETED",
    "environment": "test",
    "simulated": true
  }
}

Notes

  • Production-key withdrawals validate the recipient and call the real transfer provider.
  • Test-key withdrawals use sandbox balances only and do not trigger a real transfer.
  • Successful withdrawals emit a withdrawal.completed webhook.
  • Failed withdrawals emit a withdrawal.failed webhook.

Webhook Events

The webhook payload includes the merchant reference data stored with the transaction so your backend can reconcile the payout against the correct customer or order. See Webhooks for the full payload shape and signature headers.

Invalid Example (Insufficient Balance)

{
  "success": false,
  "msg": "Insufficient balance. You need ₦10,250"
}

Withdrawal History

Withdrawal history is currently available in the merchant dashboard only and is not exposed for server-to-server integrations.