M-Pesa Ethiopia Receipt Format

Complete technical reference for M-Pesa receipt format.

Read the API docs

M-Pesa endpoint URL format

The M-Pesa receipt endpoint is: https://m-pesabusiness.safaricom.et/api/receipt/getReceipt?trxNo={REFERENCE}. The URL takes only the transaction reference as a path parameter. Example: SE12345678.

PDF-in-JSON response structure

M-Pesa returns a small JSON envelope, {responseCode, responseDescription, base64Data}, whose base64Data is the receipt PDF. cheki checks the base64, caps the decoded PDF at 5 MB, extracts its text, and maps the labelled fields. This shape is inferred from other open-source verifiers and is in beta until a real receipt confirms it.

Field mappings for M-Pesa

cheki normalizes M-Pesa receipts into a standard JSON shape regardless of the source format:

  • senderName: the account holder who sent the payment
  • receiverName: the account holder who received the payment
  • amount: the transferred amount in ETB
  • currency: always ETB for domestic transfers
  • date: transaction date and time
  • reference: the M-Pesa transaction reference number
  • sourceUrl: the full URL cheki fetched the receipt from

Frequently asked questions

What format does M-Pesa use for receipts?

M-Pesa Ethiopia publishes receipts as PDF document inside a JSON response (base64). The endpoint is https://m-pesabusiness.safaricom.et/api/receipt/getReceipt?trxNo={REFERENCE}. The JSON response carries the receipt as a base64 PDF with the transaction ID, payer, receiver, amount, fees and date.

Do I need authentication to access M-Pesa receipts?

No. The M-Pesa receipt endpoint at https://m-pesabusiness.safaricom.et/api/receipt/getReceipt?trxNo={ref} is publicly accessible without authentication. However, it is geo-blocked to Ethiopian IP addresses. This is by design: banks want merchants to be able to verify payments without needing API keys or login credentials.

What fields are in a M-Pesa receipt?

M-Pesa answers with JSON that carries the receipt as a PDF. The PDF contains: transaction ID, receipt number, payer name and number, receiver name and number, settled amount, service fee, VAT, total, and payment date. (Beta: inferred from other verifiers, not yet confirmed with a real receipt.)

Read the API docs

Open cheki

Related guides