Nigeria
Bank transfer, OPay, PalmPay, Pay Attitude wallets payouts in NGN
Before you start
Authorization
How to sign your requests with the API token.
Payouts overview
Common request format, response fields and statuses.
This payout destination is not enabled for all merchants. Check availability with your manager, and make sure your merchant balance is sufficient before creating a payout.
Overview
| Currency | Country code | Destination | paymentType |
|---|---|---|---|
NGN | NG | Bank transfer, OPay, PalmPay, Pay Attitude wallets | BANK_ACCOUNT |
Every operator or bank method is a separate payout service. Get the services enabled for you with GET /v1/payouts/services and pass the serviceId of the one you need; without it your default service is used.
The required set depends on the service enabled for you. If a field it needs is missing, the phone does not match the country or the payment type does not match the service, the payout is rejected with 400 before it is created and nothing is debited. Send userEmail whenever you have it.
Get the bank code
Bank transfer services need the recipient bank. Request the bank list for the service and pass the chosen id as account.bankName:
curl -X GET "https://api.1capital.capital/v1/payouts/banks?serviceId=123" \
-H "X-Api-Token: YOUR_API_TOKEN"{
"data": [
{ "id": "000013", "name": "Example Bank" },
{ "id": "000014", "name": "Another Bank" }
]
}account fields
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✅ Yes | Recipient name |
requisites | string | ✅ Yes | Recipient requisites: card number, phone number, PIX key, etc., depending on paymentType |
userId | string | ✅ Yes | User ID in your system |
| Field | Type | Required | Description |
|---|---|---|---|
requisites | string | ✅ Yes | Recipient bank account or wallet number (OPay, PalmPay and Pay Attitude wallets use the account number) |
bankName | string | ⚠️ Depends on the service | Recipient bank: the id from GET /v1/payouts/banks?serviceId=… |
userEmail | string | ⚠️ Depends on the service | Recipient email |
userPhone | string | ⚠️ Depends on the service | Recipient phone, digits with the country code: 2348012345678 |
userIp | string | ❌ No | Recipient IP address |
Request example
curl -X POST "https://api.1capital.capital/v1/payouts" \
-H "Content-Type: application/json" \
-H "X-Api-Token: YOUR_API_TOKEN" \
-d '{
"amount": 50000,
"currency": "NGN",
"paymentType": "BANK_ACCOUNT",
"serviceId": 123,
"externalId": "payout-123",
"account": {
"name": "John Doe",
"requisites": "0123456789",
"userId": "user_12345",
"bankName": "000013",
"userEmail": "john.doe@example.com",
"userPhone": "2348012345678"
},
"note": "Payout for order #1234"
}'Response
The response is a standard payout object with the CREATED status. Store the id to track the payout.
Payout object fields
The final status usually arrives within a few minutes.