Payouts
Bank Accounts API
Create and list payout bank account references without exposing full banking details.
Bank accountsSafe referencesPayout destinations
Bank account endpoints
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /bank-accounts | List safe payout bank references. |
| POST | /bank-accounts | Add a GBP-style bank account. |
| POST | /nerodisburse/bank-accounts | Add a payout destination for NeroDisburse workflows. |
Add a GB bank account
| Parameter | Type | Required | Description |
|---|---|---|---|
account_name | string | Yes | Friendly name for the payout destination. |
bank_name | string | Optional | Bank name when known. |
sort_code | string | Yes | Six digit GB sort code. |
account_number | string | Yes | GB account number. |
currency | string | Yes | Usually GBP for GB accounts. |
full_name | string | Yes | Account holder name. |
email | email string | Optional | Account holder or merchant email. |
is_default | boolean | Optional | Set as default payout destination. |
'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $secretKey,
'Accept: application/json',
'Content-Type: application/json',
'X-NeroPay-Timestamp: ' . $timestamp,
'X-NeroPay-Signature: ' . $signature,
'Idempotency-Key: ' . bin2hex(random_bytes(16)),
],
CURLOPT_POSTFIELDS => $rawBody,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $response;
{
"success": true,
"data": {
"id": 59,
"account_name": "Main payout account",
"currency": "GBP",
"bank_name": "Demo Bank",
"bank_account_last4": "2345",
"neropay_bank_account_id": "ba_nero_123",
"is_default": true
}
}
Add an IBAN account
'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $secretKey,
'Accept: application/json',
'Content-Type: application/json',
'X-NeroPay-Timestamp: ' . $timestamp,
'X-NeroPay-Signature: ' . $signature,
'Idempotency-Key: ' . bin2hex(random_bytes(16)),
],
CURLOPT_POSTFIELDS => $rawBody,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $response;
{
"success": true,
"data": {
"id": 60,
"account_name": "EUR payout account",
"currency": "EUR",
"bank_account_last4": "1000",
"neropay_bank_account_id": "ba_nero_456",
"is_default": false
}
}
List bank accounts
true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $secretKey,
'Accept: application/json',
],
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $response;
{
"success": true,
"data": [
{
"id": 59,
"account_name": "Main payout account",
"currency": "GBP",
"bank_name": "Demo Bank",
"bank_account_last4": "2345",
"neropay_bank_account_id": "ba_nero_123"
}
]
}
{
"success": false,
"error": {
"code": "validation_failed",
"message": "The account_number field is required.",
"details": {
"amount": [
"The amount field is required."
]
}
}
}