Achekam

Taking client fees by M-Pesa paybill

How a Kenyan accounting firm takes fees by M-Pesa paybill, till or payment prompt, and how Achekam matches each payment to the right client invoice.

By Achekam · · 4 min read · For Accountants & audit firms in Kenya

M-Pesa paybill invoice matching accounting firm

Most of a Kenyan firm's clients would rather pay a fee from their phone than walk into a bank. The firm is happy to be paid. The trouble starts afterwards, when someone in the office opens the M-Pesa statement, sees a payment from a name that matches no client, and has to work out which invoice it settles.

Multiply that by every client, every month, and fee collection turns into detective work. Worse, an unallocated payment leaves an invoice looking overdue, and a client who has paid gets a reminder they did not deserve.

Achekam's M-Pesa set-up is built to cut that work down without guessing. This is how it works for a firm's own fee invoices.

Paybill, till and payment prompts

There are two ways a client's M-Pesa money can reach an invoice in Achekam.

A payment prompt on the client's phone. When a client pays an invoice through its pay link and chooses M-Pesa, Achekam sends a payment prompt to the phone, known as an STK push, through the firm's own Daraja app. The client enters their PIN. Achekam records the payment only after confirming it with Safaricom, not on the strength of the client's screen or a forwarded SMS.

A payment the client makes on their own to the firm's paybill or till. Achekam can register the firm's paybill or till with Safaricom so that these payments reach Achekam as well.

Pay links come from the firm's own payment gateway set-up under SETTINGS > Integrations & Webhooks > Payment Gateways & Checkout. The firm uses its own keys; Achekam is not the merchant of record. With no gateway configured there is no pay link, and a payment is recorded only from the gateway's verified notification, a status query, or a person's capture.

Before any of this works in production, the firm must complete Safaricom's Go-Live for its short code, then enter its own production short code, passkey and Daraja keys in Achekam. Safaricom e-mails the production passkey after Go-Live. The steps are covered in going live with M-Pesa.

One registration detail is worth knowing early. Registering the production addresses is a one-time step per short code at Safaricom, and changing it later needs two operators in the M-Pesa org portal. Decide which short code fees will be paid to before you register it.

Asking clients to quote the invoice number

For a paybill payment, the client types an account number. That field is what makes automatic matching possible. Ask clients to enter the invoice number there, exactly as it appears on the invoice.

Say so wherever the client will see it:

  • on the invoice itself, near the payment details;
  • in the e-mail that carries the invoice;
  • in the engagement letter's payment terms;
  • in the reminder for an overdue fee.

Safaricom's own description of M-PESA Paybill explains how the service collects customer payments against an account number, with reports and statements for the business.

A till works differently for the client, because a till payment is made to the till number rather than to an account. If you use a till, check what reference your clients can give, and expect more of those payments to need a person.

Exactly one open invoice: matched

When a payment arrives quoting an invoice number as the account, Achekam looks for an open invoice carrying that number. If exactly one open invoice matches, the payment is matched to it.

The rule is deliberately narrow. It does not match on the client's name, the amount or the phone number. A name on an M-Pesa statement can belong to a director, a bookkeeper or a relative paying on someone's behalf, and two clients can owe the same amount. Matching only on a single open invoice number keeps the automatic step to the cases where there is no doubt.

Everything else waits for a person

Any payment that does not meet that rule waits in suspense for a person to allocate. Typical reasons:

  • the client typed their own name, phone number or company name instead of the invoice number;
  • the invoice number has a typing error;
  • one payment covers two invoices;
  • the invoice it names is already paid or has been credited.

Make clearing suspense a routine, ideally daily during busy months. The person allocating should look at the client's open invoices, the amount and the payer's details, allocate the payment, and where the client keeps making the same mistake, tell them how to pay next time. Unallocated money is one of the commonest reasons for a mistaken reminder, which is why suspense should be empty before overdue fees are chased; see chasing overdue client fees.

Refunds in the M-Pesa portal

Achekam does not refund or reverse M-Pesa payments. If a client overpays, pays twice or pays the wrong firm, the refund is made in the firm's M-Pesa org portal, by the people who hold that access. The refund is then recorded in Achekam so that the client's account and the books agree with what actually happened.

Agree in advance who may approve an M-Pesa refund, and keep the portal reference with the record in Achekam.

A short set-up checklist

  1. Complete Safaricom's Go-Live and receive the production passkey.
  2. Enter the production short code, passkey and Daraja keys in Achekam.
  3. Register the paybill or till, knowing that changing it later needs two portal operators.
  4. Add "use the invoice number as the account number" to invoices, e-mails and letters.
  5. Name the person who clears suspense, and how often.
  6. Name the people who approve refunds in the M-Pesa portal.

Start with the instruction to clients, because every payment that quotes the right invoice number is one nobody in the office has to investigate.

General guidance only, not advice on your own circumstances. Tax and payroll rules change: check the current position with the authority or your adviser.

Related articles

  • Taking M-Pesa live: Go-Live, keys and URLs — What a Kenyan business needs from Safaricom before M-Pesa invoice payments work in Achekam, from its own Daraja app and Go-Live to registering its URLs.
  • Chasing overdue client fees — A practical order for following up overdue fees with statements of account, pay links and conversations before an accounting firm writes anything off.

More on Time, WIP and billing

See how Achekam handles it with your own records: create your account