Help

Your customer wants to pay the invoice you sent

Tap Pay. Card details. Done. You get the WhatsApp receipt back to them automatically.

Where the Pay button lives

On the public invoice page at /p/i/{id} (signed URL from the WhatsApp / email link), or on the signed-in portal at /portal/invoices/{id}. Both pages have the same Pay button.

If the invoice is already paid or partially paid, the Pay button shows the remaining outstanding amount and only collects that. If the outstanding is zero, the button is hidden.

What happens when they tap it

They go to your gateway’s hosted checkout — Stripe (UK/AU/NZ) or Paystack (SA), based on your shop setting. They type card details on the gateway’s page, not ours. We never see card numbers; we get back a webhook saying "payment succeeded" with the gateway’s reference.

Our webhook handler verifies the signature, checks the amount and currency match, marks the invoice paid, fires a WhatsApp receipt to the customer, and audit-logs the whole thing. You see it on your dashboard immediately.

If the payment fails

Card declined, 3D Secure not completed, whatever. The gateway shows the customer what went wrong; the invoice stays unpaid; no webhook fires. They can try again with a different card or method without doing anything on your end.

The WhatsApp receipt

Goes out automatically the moment the payment lands. Default template: "Thanks {name}! We’ve received your payment of {amount} for invoice {INV-202605-001}. PDF receipt: {link}." You can edit this template in Settings → WhatsApp templates.