TapstallWhatsApp orders, paid properly
Guide · updated 12 October 2026

“I paid you” is not a payment

A TxID, a ShapID, an Ozow confirmation and a screenshot are four different things. This one is about what each payment method actually gives you, what to ask a buyer for before you lose the sale, and the message to send when it does not arrive.

Four kinds of proof, and they are not interchangeable

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

MethodAsk for?Why
EcoCash USD / ZiGYes — the TxID from the SMSSearchable in your own app; the amount usually matches too
InnBucks, OnePayYes — the referenceSame reason; shorter, so buyers actually send it
PayShapYes — the ShapID reference, if their app shows one0.5% and fast, but the statement line is thin
Bank ZIPIT / RTGSRequire it40 transfers, one amount, no code: without the reference you are guessing
Ozow, PayFastNoThe gateway confirms; asking is theatre
Cash on pickupNoMoney is in your hand at the door
The wording matters more than the field. Ask for a “code from the app” and half of Zimbabwe sends you their phone number. Ask for the thing their bank actually calls it and it arrives in the first message. Whatever you call it, that is the name the buyer sees — on the payment page, on the order slip and in the ledger.

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

  1. Open today's list. Anything flagged “no reference” sits at the top, not buried at the bottom of a chat.
  2. Search the amount in your bank or wallet app. Found, and it matches the order's name → mark it paid.
  3. Not found → send the message above. Do not chase the buyer twice in one day; they are not yet a customer.
  4. 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.
If you change only one thing today: stop reading the amount and start searching it. A total with odd cents attached turns “who paid R120?” into one keystroke, on every rail, with no code required and no app to open.

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.