Achekam

Refunding an M-Pesa payment

Achekam cannot reverse M-Pesa payments. How a Kenyan business refunds through its M-Pesa org portal and records it at the till or on an invoice.

By Achekam · · 4 min read · For Running a business businesses in Kenya

M-Pesa refund reversal

A customer pays the same invoice twice by M-Pesa, once by prompt and once from their own phone. Another brings back a faulty kettle bought at the counter. A third paid a deposit for an order you can no longer fill. All three want their money back on M-Pesa, and your cashier is looking for a refund button that sends it.

In Achekam there isn't one for M-Pesa. The refund itself is made in Safaricom's own portal, and Achekam records it. That split is easy to manage once everyone knows it, and risky when they do not. This article explains why it works this way and how to handle each kind of refund.

Why Achekam cannot reverse M-Pesa

Sending money back through M-Pesa needs Safaricom's reversal service, and that service needs initiator credentials which the platform does not hold. So Achekam does not refund or reverse M-Pesa payments. Safaricom's Daraja documentation on reversals describes how a recent C2B transaction is reversed and what is needed before the service can be used in production.

The business makes the refund in its own M-Pesa org portal and then records the refund in Achekam. The money moves in Safaricom's system; the record of it lives in your books.

Refunding in the M-Pesa org portal

The org portal is where your business manages its paybill or till with Safaricom. Refunds sent from it are real money leaving the business, so treat access to it the way you treat access to the bank:

  • give portal access only to the people who need it, by name;
  • agree who may send a refund and up to what level of authority;
  • send refunds only against a request that has been checked, not on a phone call alone;
  • note the M-Pesa transaction code of every refund you send.

That transaction code is the link between the two systems. Without it, nobody can later prove which refund in Safaricom's records matches which entry in Achekam.

Recording the refund at the till

For a sale made at the till, a supervisor or manager can refund all or part of it with a reason. The refund is its own document, linked to the original sale, and any goods are put back into stock.

For a sale paid by M-Pesa, the refund is made in the provider's own portal and recorded at the till with a reference. In practice:

  1. The customer returns the item and asks for a refund.
  2. A supervisor checks the sale and approves the refund at the till, with a reason.
  3. Someone with portal access sends the M-Pesa refund in the org portal.
  4. The M-Pesa transaction code is recorded at the till as the refund's reference.

Do steps 3 and 4 together. A refund recorded at the till but never sent leaves an angry customer; one sent but never recorded leaves your books out of step with Safaricom's records.

Not every refund has to leave as money. A till refund can be given as store credit instead, issued as a voucher with its own code. For a customer who will be back next week, that avoids a trip to the org portal altogether, provided the customer agrees to it. The voucher is then redeemed by its code on a later visit, so make sure the customer leaves with it.

Recording a refund of an invoice payment

Refunds of online invoice payments are never sent through the gateway by Achekam, whichever gateway took the money. The refund is made in the gateway's own dashboard, or for M-Pesa in the org portal, and then recorded by a person.

On the receivables side, a customer's extra payment is held on their account, and a receipt can be re-allocated to another invoice. Administrators can also refund or reverse a receipt. For the customer who paid twice:

  • send the second payment back through the org portal, or agree with the customer to keep it as credit for their next invoice;
  • if you refund, an administrator records the refund against the duplicate receipt, quoting the M-Pesa transaction code;
  • if you keep it, leave it on the customer's account and tell them in writing.

Which providers refund through Achekam

At the till, some providers can be refunded through Achekam and some cannot:

ProviderTill refundInvoice payment refund
Paystack, Flutterwave, Pesapal, StripeSent through the provider's API by AchekamMade in the provider's dashboard, recorded by a person
M-PesaMade in the org portal, recorded at the tillMade in the org portal, recorded by a person
PayFast, Ozow, PeachMade in the provider's portal, recorded at the tillMade in the provider's dashboard, recorded by a person
Bank EFTRecorded by the cashierPaid from the bank, recorded by a person

Where Achekam does send a till refund through a provider, the refund counts as completed only on the provider's own confirmation.

A refund routine for your team

  • Every refund needs a reason and an approver.
  • The person sending money from the org portal is not the person who asked for the refund.
  • The M-Pesa transaction code goes into Achekam the same day.
  • Each week, compare the refunds in the org portal with the refunds recorded in Achekam.

If you have not yet connected M-Pesa, start with taking M-Pesa live. And for the payroll side of your M-Pesa-heavy month, read Kenyan payroll deductions and who collects them.

Write down today who in your business has access to the M-Pesa org portal. If the answer surprises you, that is the first thing to fix.

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

More on Running a business

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