Available Banks
Get the list of available banks for deposit transactions.
GET
/v1/available-banksReturns a list of banks available for your account with their transaction limits.
Description
Use this endpoint to retrieve the list of banks that are currently available for processing deposit transactions. The response includes bank options with their minimum and maximum limits, plus a single FAST transfer option if available.
Call this endpoint before creating a deposit transaction to show available payment options to your users. Use the bank's _id as the bankCode parameter, or use "FAST" for FAST transfers when creating deposit transactions.
Request Headers
| Header | Required | Description |
|---|---|---|
X-API-Key | Required | Your API Key |
X-Signature | Required | HMAC-SHA256 signature |
X-Timestamp | Required | Unix timestamp in seconds |
Signature Format
For GET requests without a body, the signature is generated as follows:
signature = HMAC-SHA256(timestamp + "GET" + "/v1/available-banks" + "", apiSecret)Request Example
cURL
curl -X GET "https://<service_name>.api.wiapay.co/v1/available-banks" \
-H "X-API-Key: pk_live_abc123..." \
-H "X-Signature: a1b2c3d4e5f6..." \
-H "X-Timestamp: 1705320000"JavaScript
const crypto = require('crypto');
const API_KEY = 'your-api-key';
const API_SECRET = 'your-api-secret';
const BASE_URL = 'https://<service_name>.api.wiapay.co';
// Generate signature for GET request (no body)
function generateSignature(timestamp, method, path) {
const message = timestamp + method + path + '';
return crypto
.createHmac('sha256', API_SECRET)
.update(message)
.digest('hex');
}
async function getAvailableBanks() {
const timestamp = Math.floor(Date.now() / 1000).toString();
const method = 'GET';
const path = '/v1/available-banks';
const signature = generateSignature(timestamp, method, path);
const response = await fetch(BASE_URL + path, {
method: 'GET',
headers: {
'X-API-Key': API_KEY,
'X-Signature': signature,
'X-Timestamp': timestamp
}
});
const data = await response.json();
console.log('Available banks:', data);
return data;
}
getAvailableBanks();PHP
<?php
$apiKey = 'your-api-key';
$apiSecret = 'your-api-secret';
$baseUrl = 'https://<service_name>.api.wiapay.co';
function generateSignature($apiSecret, $timestamp, $method, $path) {
$message = $timestamp . $method . $path . '';
return hash_hmac('sha256', $message, $apiSecret);
}
$timestamp = (string) time();
$method = 'GET';
$path = '/v1/available-banks';
$signature = generateSignature($apiSecret, $timestamp, $method, $path);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $baseUrl . $path);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: ' . $apiKey,
'X-Signature: ' . $signature,
'X-Timestamp: ' . $timestamp
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data);Response
Success Response (200 OK)
{
"success": true,
"data": {
"banks": [
{
"_id": "FAST",
"name": "Fast",
"code": "FAST",
"minAmount": 10,
"maxAmount": 100000
},
{
"_id": "5fe25f6e3e73770018d47b15",
"name": "Garanti BBVA",
"code": "GARANTI",
"minAmount": 10,
"maxAmount": 100000,
"logo": "https://cdn.wiapay.co/banks/garanti.png"
},
{
"_id": "5fe25f6e3e73770018d47b16",
"name": "Yapi Kredi",
"code": "YAPIKREDI",
"minAmount": 50,
"maxAmount": 100000,
"logo": "https://cdn.wiapay.co/banks/yapikredi.png"
}
]
},
"timestamp": 1705320000
}Response Fields
| Field | Type | Description |
|---|---|---|
success | boolean | Indicates if the request was successful |
data.banks | array | Array of available banks |
banks[]._id | string | Unique bank identifier |
banks[].name | string | Bank display name |
banks[].code | string | Bank code for API requests |
banks[].minAmount | number | Minimum transaction amount |
banks[].maxAmount | number | Maximum transaction amount |
banks[].logo | string | URL to bank logo image |
timestamp | number | Unix timestamp of the response |
Integration Flow
1
Get Available Banks
Fetch the list of banks available for transactions
2
Display to User
Show the available banks and their limits to your customer
3
Create Transaction
Use the bank code when creating deposit or withdrawal requests
Fast Integration
Cache the bank list and refresh periodically. Banks and limits may change, so we recommend refreshing every few hours.
Error Responses
401 Unauthorized
{
"success": false,
"error": {
"code": "INVALID_API_KEY",
"message": "Invalid API key"
},
"timestamp": 1705320000
}401 Unauthorized - Invalid Signature
{
"success": false,
"error": {
"code": "INVALID_SIGNATURE",
"message": "Signature verification failed"
},
"timestamp": 1705320000
}403 Forbidden
{
"success": false,
"error": {
"code": "IP_NOT_WHITELISTED",
"message": "Your IP address is not whitelisted"
},
"timestamp": 1705320000
}