curl --request GET \
--url https://api.bachs.io/v1/payouts/destinations \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.bachs.io/v1/payouts/destinations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.bachs.io/v1/payouts/destinations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bachs.io/v1/payouts/destinations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"destinations": [
{
"id": "pd_7Kq2mNv4XbR9dLc0",
"name": "My GTBank Savings",
"type": "bank_account",
"currency": "NGN",
"status": "approved",
"status_reason": null,
"is_usable": true,
"is_default": false,
"account_number": "0123456789",
"account_name": "JOHN DOE",
"bank_code": "058",
"bank_name": "Guaranty Trust Bank",
"phone_number": null,
"mobile_provider": null,
"wallet_address": null,
"network": null,
"reviewed_at": "2026-01-24T15:00:00.000Z",
"created_at": "2026-01-24T14:30:00.000Z",
"updated_at": "2026-01-24T14:30:00.000Z"
}
],
"total": 1,
"limit": 20,
"offset": 0
}{
"detail": "Invalid request parameters",
"error_code": "VALIDATION_ERROR",
"errors": [
{
"field": "amount",
"message": "Amount must be a positive decimal string",
"type": "value_error"
}
]
}{
"detail": "Invalid API key",
"error_code": "UNAUTHORIZED"
}{
"detail": "API key does not have permission for this operation",
"error_code": "FORBIDDEN"
}{
"detail": "Resource not found",
"error_code": "NOT_FOUND"
}{
"detail": "Rate limit exceeded. Please retry after a few seconds.",
"error_code": "TOO_MANY_REQUESTS"
}{
"detail": "An unexpected error occurred. Please try again later.",
"error_code": "INTERNAL_SERVER_ERROR"
}List Payout Destinations
List all configured payout destinations (bank accounts, mobile money, crypto wallets) for your account.
curl --request GET \
--url https://api.bachs.io/v1/payouts/destinations \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.bachs.io/v1/payouts/destinations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.bachs.io/v1/payouts/destinations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bachs.io/v1/payouts/destinations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"destinations": [
{
"id": "pd_7Kq2mNv4XbR9dLc0",
"name": "My GTBank Savings",
"type": "bank_account",
"currency": "NGN",
"status": "approved",
"status_reason": null,
"is_usable": true,
"is_default": false,
"account_number": "0123456789",
"account_name": "JOHN DOE",
"bank_code": "058",
"bank_name": "Guaranty Trust Bank",
"phone_number": null,
"mobile_provider": null,
"wallet_address": null,
"network": null,
"reviewed_at": "2026-01-24T15:00:00.000Z",
"created_at": "2026-01-24T14:30:00.000Z",
"updated_at": "2026-01-24T14:30:00.000Z"
}
],
"total": 1,
"limit": 20,
"offset": 0
}{
"detail": "Invalid request parameters",
"error_code": "VALIDATION_ERROR",
"errors": [
{
"field": "amount",
"message": "Amount must be a positive decimal string",
"type": "value_error"
}
]
}{
"detail": "Invalid API key",
"error_code": "UNAUTHORIZED"
}{
"detail": "API key does not have permission for this operation",
"error_code": "FORBIDDEN"
}{
"detail": "Resource not found",
"error_code": "NOT_FOUND"
}{
"detail": "Rate limit exceeded. Please retry after a few seconds.",
"error_code": "TOO_MANY_REQUESTS"
}{
"detail": "An unexpected error occurred. Please try again later.",
"error_code": "INTERNAL_SERVER_ERROR"
}Authorizations
Bearer token authentication. Pass your API key as Authorization: Bearer sk_.... See Authentication for keys, scopes, and sandbox vs production.
Query Parameters
Filter by destination currency code.
Filter by admin review status: pending_review, approved, or rejected.
pending_review, approved, rejected Number of records to return.
1 <= x <= 100Number of records to skip.
x >= 0Response
Success - Payout destinations list retrieved
Paginated list of configured payout destinations. total counts every matching destination, not just the ones on this page.
Array of payout destination objects.
Show child attributes
Show child attributes
Total number of destinations matching the query, across all pages.
1
The limit used for this page of results.
20
The offset used for this page of results.
0

