Chapa
Payouts

List Payouts

List payouts with cursor pagination.

GET /v2/payouts
Host: api.chapa.global
Authorization: Bearer <PRIVATE_KEY>

The optional limit defaults to 10. The collection describes optional filters but does not list their request fields or a cursor query parameter.

Example Request

For cURL, set PRIVATE_KEY in your shell. Replace the placeholders in the JavaScript example before running it.

cURL
curl -X GET 'https://api.chapa.global/v2/payouts?limit=10' \
  -H "Authorization: Bearer $PRIVATE_KEY"
JavaScript
const response = await fetch("https://api.chapa.global/v2/payouts?limit=10", {
  method: "GET",
  headers: {
  "Authorization": "Bearer <PRIVATE_KEY>"
},
});
const data = await response.json();

console.log(data);
Example Response
200 Success
{
  "status": "success",
  "message": "Payouts retrieved successfully",
  "data": {
    "items": [
      {
        "chapa_reference": "CP_T_17902410738754",
        "merchant_reference": "ref-1759656600",
        "amount": 10000,
        "currency": "ETB",
        "status": "SUCCESS",
        "service_fee": 500,
        "account": {
          "account_number": "0900****71",
          "account_name": "Abebe Kebede",
          "bank_slug": "telebirr",
          "bank_name": "telebirr"
        },
        "reason": "Vendor payout",
        "created_at": "2026-10-05T09:30:00Z",
        "updated_at": "2026-10-05T09:30:00Z",
        "processed_at": "2026-10-05T09:30:00Z"
      }
    ],
    "pagination": {
      "limit": 10,
      "next_cursor": null,
      "prev_cursor": null,
      "has_more": false
    }
  }
}
401 Error
{
  "status": "error",
  "message": "Invalid API key or User does not exist",
  "error": {
    "code": "UNAUTHORIZED",
    "details": null
  }
}
403 Error
{
  "status": "error",
  "message": "API key environment does not match business environment.",
  "error": {
    "code": "INVALID_VALUE",
    "details": null
  }
}
500 Error
{
  "status": "error",
  "message": "Failed to fetch payouts",
  "error": {
    "code": "PROCESSING_FAILED",
    "details": null
  }
}

Payouts are returned in data.items, with nested account details. Amounts and fees are in cents. Pagination contains limit, next_cursor, prev_cursor, and has_more. Status values in payout data are uppercase.