ChapaChapa Docs

Initiate Payments

Start a direct charge payment with Chapa's Direct Charge API.

Designed for physical stores and ERP integrations that need a fully custom payment flow.

Chapa Inline, Standard, and HTML checkout bundle UI and flow. Direct charge is for when you need full control and collect payment details yourself. Integrate separately for each method you support.

How does direct charge work?

  1. Initiate the payment: Send transaction + customer payment details to the relevant charge endpoint.
  2. Authorize the charge: Customer authorizes via their provider (wallet/bank/USSD/OTP).
  3. Verify the payment: Call verify to confirm success before delivering value.

Flows vary by payment method (some require OTP or USSD steps).

Direct charge options

  • telebirr
  • mpesa
  • cbebirr
  • ebirr
  • enat_bank (portal view)
  • awashbirr
  • yaya

Query

ParameterRequiredTypeDescription
typeyesstringPayment method to charge. Allowed: telebirr, mpesa, cbebirr, ebirr, enat_bank.

Body Params

Provide customer and transaction details:

Required fields

ParameterRequiredTypeDescription
keyyesBearer KeyPrivate key (test or live).
amountyesdigitsCharge amount.
mobileyesdigitsCustomer phone number.
tx_refyesstringUnique transaction reference.
currencyyesstringCurrency (ETB).

Optional fields

ParameterRequiredTypeDescription
emailnoemailCustomer email.
first_namenostringCustomer first name.
last_namenostringCustomer last name.

Initialize the transaction

Endpoint: https://api.chapa.co/v1/charges?type={payment_method_name}
Method: POST

Types of Direct charges

  1. USSD — push to customer for authorization (telebirr, mpesa, AwashBirr, Yaya Wallet, CBEBirr, Coopay-Ebirr).
    Example response:

  2. Portal View — response includes HTML to open in a new tab for completion (e.g., Enat Bank).
    Example response:

Refer to Error Codes for response details.

On this page