Why screenshots create avoidable work
A payment screenshot tells a staff member that a customer says they paid. It does not reliably prove which invoice was settled, whether the transaction completed, or whether the amount and phone number match. The safer workflow begins with a uniquely numbered invoice and ends with a confirmed payment attached to that invoice.
The recommended WhatsApp-to-M-Pesa workflow
Confirm the customer, item or service, amount, delivery terms and payment deadline in the conversation. Create the invoice while that context is fresh. Send a secure payment link or trigger STK checkout, then monitor the payment attempt instead of asking the customer to send evidence manually.
What to record after payment
Store the M-Pesa reference, amount, payer phone, payment time and matched invoice. Issue a receipt and update the customer statement. If payment should trigger delivery, create or assign the job immediately so paid work does not disappear into the chat history.
Controls for finance teams
Review failed, cancelled and expired attempts separately from confirmed payments. Reconcile the payment account daily, investigate unmatched transactions, and avoid marking an invoice paid from a screenshot alone.
Practical checklist
Use this before you go live.
- Use a unique invoice number
- Confirm amount and customer phone
- Record the STK result
- Match the M-Pesa reference
- Issue a receipt
- Create the delivery job
Download the free CSV template