Skip to content

M-Pesa Payments

One record per M-Pesa payment to the company's numbers. The record is created by the Safaricom payment notification; if the notification did not arrive, the payment can be entered by hand. The key of a payment is its transaction code: the one the customer sees in the SMS. The register exists only in the Kenya version of ERPJS.

A payment is free until it is taken into a receipt or a Payments document. A till (into a receipt) or a Payments document (a prepayment, an invoice payment) can take it — once and whole.

Where to find it: Modules → M-Pesa → Registers → M-Pesa Payments

Worked example

The customer paid 1,500 KES to Till 512345:

Field Value Meaning
M-Pesa transaction code SJC1ABC2DE the code from the customer's SMS; there will be no second payment with it
Payment time 12/10/2026 12:15:04 Safaricom time (Kenya)
Amount 1 500 KES
M-Pesa number (Till / Paybill) 512345 the number paid to
M-Pesa account VIC-MALL the account whose address received the notification
Payer JOHN K DOE the name Safaricom sent
Payer phone (as sent by Safaricom) 2547****149 Safaricom masks the number — payments cannot be searched by it
Source Safaricom notification or "Entered manually"
Invoice 100 the receipt the payment was taken into; empty — not taken into a receipt
Payment document empty the Payments document the payment was taken into (a prepayment); empty — not taken
Used, Used by 12/10/2026 12:17:31, K1 when and by which till (or whom) it was taken

For a Paybill, "Account number entered by payer" is filled too — the number the customer typed when paying.

What can and cannot be done

  • Change — only the comment. The rest was sent by Safaricom, and the link to a receipt or a document is kept by the till and the Payments document.
  • Enter by hand — when the money reached the number but the notification did not: transaction code (8–12 Latin letters and digits), amount, number. The source becomes "Entered manually", the payment is free. Enter the number exactly: the till sees only payments to the numbers of its accounts. The amount — as in the Safaricom statement: a later notification with the same code does not correct it.
  • Delete — only a payment entered by hand and not yet taken into a receipt or a document. A payment from Safaricom is never deleted: it is the basis of the money in the till.

Payment and receipt

The till takes a payment into a receipt with the third payment method button; the receipt number appears in the "Invoice" column. A payment taken by one receipt cannot be taken by another. The receipt deleted before it is posted — the payment is free again. If the draft receipt's number was changed, the payment stays with that receipt: the number in the column is refreshed when the receipt is posted.

A receipt whose M-Pesa amount does not equal the payments it took is not posted — neither from the till nor from the invoice window.

Payment and Payments document

The money came in advance (a deposit) — the payment window menu "Create customer payment (prepayment)" opens a new Payments document with a prepayment row for the whole amount and the payment's code in the "M-Pesa transaction code" column. The bookkeeper chooses the customer and saves — the document number appears in the Payment document column, and the till no longer offers this payment. The unposted document deleted or the code removed from the row — the payment is free again. In detail — in the instruction.

Personal data: the payer's name and (masked) phone. Give access to the register to those who may see till receipts.