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.