Chapa
Payments

Payment Methods

Retrieve payment methods enabled for your business.

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

No parameters are required. data is an array of enabled payment methods.

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/payments/methods' \
  -H "Authorization: Bearer $PRIVATE_KEY"
JavaScript
const response = await fetch("https://api.chapa.global/v2/payments/methods", {
  method: "GET",
  headers: {
  "Authorization": "Bearer <PRIVATE_KEY>"
},
});
const data = await response.json();

console.log(data);
Example Response
200 Success
{
  "status": "success",
  "message": "<message>",
  "data": [
    {
      "name": "Telebirr",
      "slug": "telebirr",
      "logo": "https://…/telebirr.png",
      "is_mobile_money": true,
      "can_process_payments": true,
      "can_process_direct_charge": true,
      "supported_currencies": {
        "ETB": {
          "default_max": 100000000,
          "default_min": 100,
          "countries": {
            "ET": {
              "is_enabled": true,
              "max_amount": 100000000,
              "min_amount": 100
            }
          }
        }
      },
      "created_at": "2026-10-05T09:30:00Z",
      "updated_at": "2026-10-05T09:30:00Z"
    }
  ]
}
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
  }
}

Use each method's slug in requests. Check can_process_payments, can_process_direct_charge, and the currency and country limits in supported_currencies before offering the method. Limits are in cents.