Four kinds of proof, and they are not interchangeable
- A code the buyer's app prints. EcoCash sends an SMS with a TxID. InnBucks and OnePay print a reference. It is copyable, searchable, and it exists whether or not the buyer is honest.
- An identifier that is the account. PayShap works off a ShapID; the transfer carries it, so the number you search is short and yours.
- Nothing at all, but a bank statement. A ZIPIT or RTGS transfer arrives as an amount on a line. Without the reference the bank printed, it is unfindable in a busy day.
- A gateway that tells you itself. Ozow and PayFast confirm the payment to your systems. The buyer's claim is irrelevant, which is why those methods need nothing from anybody.
A screenshot of any of the four is a picture. Pictures are not records, and a "paid" tick that depends on trust is a liability you are carrying for free.
What to ask, per method
| Method | Ask for? | Why |
|---|---|---|
| EcoCash USD / ZiG | Yes — the TxID from the SMS | Searchable in your own app; the amount usually matches too |
| InnBucks, OnePay | Yes — the reference | Same reason; shorter, so buyers actually send it |
| PayShap | Yes — the ShapID reference, if their app shows one | 0.5% and fast, but the statement line is thin |
| Bank ZIPIT / RTGS | Require it | 40 transfers, one amount, no code: without the reference you are guessing |
| Ozow, PayFast | No | The gateway confirms; asking is theatre |
| Cash on pickup | No | Money is in your hand at the door |
Ask, never block
There is a version of this where the code is mandatory and the order cannot be placed without it. It is tidy, and it costs sales: a buyer standing at a till with a bad signal and a five-minute-old order will not go looking for an SMS, they will buy from the next shop.
So the rule that works is: ask before they pay, flag after, never refuse. An order without the code is still money on its way. What you need is for the missing thing to be impossible to overlook — a row in the ledger that says what is missing, the same note on the WhatsApp handoff and in the exported CSV, and a follow-up message already written so asking costs one tap instead of a paragraph.
Hi — thanks for your order! Just need the payment reference to confirm it: the code your app shows after you send (EcoCash calls it a TxID). Send a screenshot if that is easier. Amount was R120.43 — that exact amount is how we find it.
The last line is doing real work. A payment matched by its amount needs no code at all, which is why the odd cents on the total are not a rounding accident. The mechanics of that are in the main guide: taking payment for a WhatsApp shop.
The five-second routine
- Open today's list. Anything flagged “no reference” sits at the top, not buried at the bottom of a chat.
- Search the amount in your bank or wallet app. Found, and it matches the order's name → mark it paid.
- Not found → send the message above. Do not chase the buyer twice in one day; they are not yet a customer.
- At close, export the day. Every row should carry: order code, buyer, amount, method, reference, and whether a reference was still missing. A CSV you cannot audit next week is not a record.
Setting this up in a shop
On Tapstall each method carries its own account or number — an EcoCash number is not a PayShap ShapID and not a bank account — and each one states how much proof it needs: nothing, “ask”, or “require”. The label is editable in the seller's own words, and a required code still never blocks an order. The shop is created from a phone in about a minute: a name, a menu, a PIN.