Help

I want to turn an approved estimate into an invoice and get paid

One button. The lines copy over. They pay via the portal or you record cash.

Converting

Open the approved estimate. Top-right has a "Convert to invoice" button. Click it. We create a new invoice in draft state with all the lines copied over — same prices, same tax, same currency. The estimate is marked "Converted to invoice" and links to the new invoice.

The invoice is editable until you hit Send. Add a line, remove one, fix a typo. Once sent, it locks the same way an estimate does.

Sending the invoice

Hit Send. WhatsApp or email, same as estimates. The customer gets a link to a public invoice page at /p/i/{id} with a Pay button and a Download PDF button.

Invoice status moves draft → sent → paid (or partially_paid → overdue if it ages past due date with a balance).

Getting paid

Three ways the money comes in.

  • Customer taps Pay on the public link. Routes to Stripe (UK/AU/NZ) or Paystack (SA) based on your shop’s gateway setting. Webhook flips the invoice to paid and fires a WhatsApp receipt automatically.
  • Customer pays cash, EFT, or cheque at the counter. On the invoice page, click "Record manual payment", pick the method, type the amount. Owner / admin only. Audit-logged.
  • Customer pays half now, half on collection. The invoice goes to partially_paid. Record the rest the same way when they pay it off. Once outstanding hits zero, status flips to paid automatically.
A paid invoice showing the customer, line items, VAT, total, and a payment-history panel marked paid in full.
A paid invoice — the payment history records how it was paid and marks the invoice off automatically.

Refunds

Per payment, one click. On the invoice page, find the payment row, hit Refund. Owner / admin only. If the original was Stripe / Paystack, we send a refund instruction back to the gateway. If it was cash, we just record the refund on our side. Audit-logged either way.