Bank Accounts
Create, retrieve, update, and delete the authenticated user's bank accounts
Manage the authenticated user's local and foreign bank account details. The \{type\} path parameter is local or foreign.
Create and update operations require a verified account.
Retrieve Bank Accounts
Retrieve one or both bank account configurations.
Endpoint
GET /user/banks/{type?}| Access | Requirement |
|---|---|
| Authenticated | Yes |
| Required Scope | wapi-user-retrieve, or wapi-user-all |
| Rate Limit | 15 requests per minute |
Request
Headers
| Header | Value |
|---|---|
Accept | application/json |
Authorization | Bearer <access_token> |
X-WAPI-Key | wapi_live_<kid>_<secret> or wapi_test_<kid>_<secret> |
Send exactly one of Authorization or X-WAPI-Key.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | No | local or foreign. Omit to retrieve both. |
Responses
200 OK
When type is omitted, both keys are returned. When type is specified, only the matching key is returned.
{
"message": "OK",
"data": {
"local": {
"bank_account": "123456789012",
"bank_account_type": null,
"bank_branch": null,
"bank_name": "Republic Bank LTD",
"currency": "TTD",
"has_all_details": true,
"name_in_bank": "John Smith"
},
"foreign": {
"bank_address": null,
"beneficiary_account_number": null,
"beneficiary_address": null,
"beneficiary_bank": null,
"beneficiary_bank_swift_or_routing_code": null,
"beneficiary_name": null,
"currency": "USD",
"has_all_details": false,
"intermediary_bank": null,
"intermediary_bank_address": null,
"intermediary_bank_routing_number_or_aba": null,
"intermediary_bank_swift_code": null
}
}
}Local Bank Fields
| Field | Type | Description |
|---|---|---|
bank_account | string | null | Bank account number |
bank_account_type | string | null | "chequing" or "saving" (Jamaica only) |
bank_branch | string | null | Bank branch (Jamaica only) |
bank_name | string | null | Bank name |
currency | string | Local currency code |
has_all_details | boolean | Whether all required bank details are configured |
name_in_bank | string | null | Name on the bank account |
Foreign Bank Fields
| Field | Type | Description |
|---|---|---|
bank_address | string | null | Bank address |
beneficiary_account_number | string | null | Beneficiary account number |
beneficiary_address | string | null | Beneficiary address |
beneficiary_bank | string | null | Beneficiary bank name |
beneficiary_bank_swift_or_routing_code | string | null | SWIFT or routing code |
beneficiary_name | string | null | Beneficiary name |
currency | string | Foreign currency code |
has_all_details | boolean | Whether all required bank details are configured |
intermediary_bank | string | null | Intermediary bank name |
intermediary_bank_address | string | null | Intermediary bank address |
intermediary_bank_routing_number_or_aba | string | null | Intermediary routing number or ABA |
intermediary_bank_swift_code | string | null | Intermediary SWIFT code |
Example
curl -X GET "https://ttsb.wipayfinancial.com/wapi/user/banks" \
-H "Accept: application/json" \
-H "Authorization: Bearer <access_token>"curl -X GET "https://ttsb.wipayfinancial.com/wapi/user/banks/local" \
-H "Accept: application/json" \
-H "Authorization: Bearer <access_token>"Create Bank Account
Configure a local or foreign bank account. Fails if a bank account of that type is already configured — use Update instead.
Endpoint
POST /user/banks/{type}| Access | Requirement |
|---|---|
| Authenticated | Yes (verified account) |
| Required Scope | wapi-user-create, or wapi-user-all |
| Rate Limit | 5 requests per minute |
Request
Headers
| Header | Value |
|---|---|
Accept | application/json |
Authorization | Bearer <access_token> |
X-WAPI-Key | wapi_live_<kid>_<secret> or wapi_test_<kid>_<secret> |
Send exactly one of Authorization or X-WAPI-Key.
Body — Local Bank (form-data)
| Parameter | Type | Required | Description |
|---|---|---|---|
bank_name | string | Yes | Must be a valid bank name for the platform's country |
name_in_bank | string | Yes | Account holder name (max 255 characters) |
bank_account | string | Yes | Digits only. Length must match the bank's requirements. |
bank_account_type | string | Jamaica only | "chequing" or "saving" |
bank_branch | string | Jamaica only | Bank branch name (max 255 characters) |
Body — Foreign Bank (form-data)
| Parameter | Type | Required | Description |
|---|---|---|---|
beneficiary_name | string | Yes | Beneficiary name (max 255) |
beneficiary_account_number | string | Yes | Beneficiary account number (max 255) |
beneficiary_address | string | Yes | Beneficiary address (max 255) |
beneficiary_bank | string | Yes | Beneficiary bank name (max 255) |
beneficiary_bank_swift_or_routing_code | string | Yes | SWIFT or routing code (max 255) |
bank_address | string | Yes | Bank address (max 255) |
intermediary_bank | string | Yes | Intermediary bank name (max 255) |
intermediary_bank_address | string | Yes | Intermediary bank address (max 255) |
intermediary_bank_swift_code | string | Yes | Intermediary SWIFT code (max 255) |
intermediary_bank_routing_number_or_aba | string | Yes | Intermediary routing number or ABA (max 255) |
Responses
201 Created
{
"message": "Created"
}409 Conflict
Returned if a bank account of that type is already configured.
{
"message": "A local bank account is already configured."
}{
"message": "A foreign bank account is already configured."
}403 Forbidden
Returned if the account is not verified.
{
"message": "Please verify your account before proceeding."
}Example
curl -X POST "https://ttsb.wipayfinancial.com/wapi/user/banks/local" \
-H "Accept: application/json" \
-H "Authorization: Bearer <access_token>" \
-F "bank_name=Republic Bank LTD" \
-F "name_in_bank=John Smith" \
-F "bank_account=123456789012"Update Bank Account
Update fields on an existing bank account. Only supplied fields are changed. Fails if no bank account of that type is configured — use Create first.
Endpoint
PATCH /user/banks/{type}| Access | Requirement |
|---|---|
| Authenticated | Yes (verified account) |
| Required Scope | wapi-user-update, or wapi-user-all |
| Rate Limit | 5 requests per minute |
Request
Headers
| Header | Value |
|---|---|
Accept | application/json |
Authorization | Bearer <access_token> |
X-WAPI-Key | wapi_live_<kid>_<secret> or wapi_test_<kid>_<secret> |
Send exactly one of Authorization or X-WAPI-Key.
Body (form-data)
Same fields as Create, but all fields are optional. At least one field must be provided.
Responses
200 OK
{
"message": "OK"
}400 Bad Request
{
"message": "No fields provided to update."
}Returned if no bank account of that type is configured:
{
"message": "No local bank account is configured."
}{
"message": "No foreign bank account is configured."
}403 Forbidden
Returned if the account is not verified.
{
"message": "Please verify your account before proceeding."
}Example
curl -X PATCH "https://ttsb.wipayfinancial.com/wapi/user/banks/local" \
-H "Accept: application/json" \
-H "Authorization: Bearer <access_token>" \
-F "name_in_bank=Jane Smith"Delete Bank Account
Remove a local or foreign bank account configuration. Fails if no bank account of that type is configured.
Endpoint
DELETE /user/banks/{type}| Access | Requirement |
|---|---|
| Authenticated | Yes |
| Required Scope | wapi-user-delete, or wapi-user-all |
| Rate Limit | 5 requests per minute |
Request
Headers
| Header | Value |
|---|---|
Accept | application/json |
Authorization | Bearer <access_token> |
X-WAPI-Key | wapi_live_<kid>_<secret> or wapi_test_<kid>_<secret> |
Send exactly one of Authorization or X-WAPI-Key.
No request body required.
Responses
200 OK
{
"message": "OK"
}400 Bad Request
Returned if no bank account of that type is configured:
{
"message": "No local bank account is configured."
}{
"message": "No foreign bank account is configured."
}Example
curl -X DELETE "https://ttsb.wipayfinancial.com/wapi/user/banks/local" \
-H "Accept: application/json" \
-H "Authorization: Bearer <access_token>"Common Responses
These apply to all bank account operations.
401 Unauthorized
{
"message": "Unauthorized"
}403 Forbidden
{
"message": "Invalid scope(s) provided."
}