ChapaChapa Docs

All Transactions

Retrieve a list of all transactions created through the Chapa API with filtering and pagination.

The All Payments endpoint allows you to retrieve a list of all payments created through the Chapa API. It's commonly used for:

  • Transaction history and reporting
  • Admin dashboards
  • Reconciliation and auditing
  • Customer support investigations

You can filter transactions by status, currency, customer, reference, and date range, and paginate through large result sets.

Endpoint

GET /v2/payments
Host: api.chapa.co

Authentication

Headers

NameRequiredDescription
AuthorizationYesBearer <PRIVATE_API_KEY>
Content-TypeYesapplication/json

Query Parameters

All parameters are optional.

ParameterTypeDescription
referencestringFilter by payment reference
statusstringFilter by status (pending, success, failed, cancelled, etc.)
currencystringFilter by currency (ETB, USD, UGX, DJF)
emailstringFilter by customer email
fromstringStart date (ISO8601), based on created_at
tostringEnd date (ISO8601), based on created_at
pageintegerPage number (default: 1)
per_pageintegerRecords per page (default: 20)

Example Request

GET https://api.chapa.co/v2/payments?status=success&per_page=20&page=1
Authorization: Bearer CHAPA_TEST_xxxxxxxxxxxxx
Content-Type: application/json

Example Response

{
  "status": "success",
  "message": "Payments retrieved successfully",
  "data": {
    "items": [
      {
        "chapa_reference": "CHAPA123456789",
        "merchant_reference": "ORDER_1001",
        "payment_type": "payment link",
        "amount": 25000,
        "currency": "ETB",
        "status": "success",
        "payment_method": "card",
        "service_fee": 1000,
        "customer": {
          "first_name": "John",
          "last_name": "Doe",
          "email": "john.doe@example.com",
          "phone_number": "251722927727"
        },
        "created_at": "2025-11-07T11:00:00Z",
        "updated_at": "2025-11-07T11:05:00Z"
      }
    ],
    "pagination": {
      "next_cursor": null,
      "prev_cursor": null,
      "limit": 20,
      "has_more": false
    }
  }
}

Response Structure

Top-Level Fields

FieldTypeDescription
statusstringsuccess or error
messagestringSummary of the result
dataobjectTransaction items + pagination

Transaction Object (items[])

FieldTypeDescription
chapa_referencestringUnique Chapa payment reference
merchant_referencestringMerchant-generated reference
payment_typestringAPI, Event, Donation, Hosted, Direct charge, etc.
amountnumberTransaction amount
currencystringISO currency code
statusstringPayment status
payment_methodstringMethod used (card, telebirr, etc.)
service_feenumberFee charged (if applicable)
customerobjectCustomer details
created_atstringISO8601 creation timestamp
updated_atstringISO8601 last update timestamp

Pagination

Pagination is cursor-based internally, but exposed as:

FieldDescription
next_cursorCursor for next page
prev_cursorCursor for previous page
limitNumber of records returned
has_moreIndicates if more records exist

Always paginate when working with large datasets.

Common Use Cases

Admin Dashboard

  • List all payments
  • Filter by date, status, or currency
  • Monitor payment volumes and trends

Reconciliation

  • Compare transaction records with internal orders
  • Track service fees and net revenue
  • Audit completed vs failed transactions

Customer Support

  • Search by merchant_reference or customer email
  • Check payment status and method
  • Investigate disputes or failed payments

Best Practices

  • Always paginate large datasets
  • Filter by date ranges to improve performance
  • Store chapa_reference for support and audits
  • Use Verify Payment for individual transaction confirmation
  • Log both merchant_reference and chapa_reference

Common Errors

HTTPError CodeDescription
400INVALID_VALUEInvalid filter values
500PROCESSING_FAILEDFailed to fetch payments

Next Steps

On this page