Skip to content
FirmWorks
All help

Help

Documents & Tax

Quotations, invoices, receipts, recurring docs — Thai-aware tax built in.

Issuing your first invoice

Open /app/docs and click "New invoice". Pick or create a customer (the same contact record is shared across modules — your project lead can see it later), add line items with quantity, unit price, and a per-line VAT rate, and the totals roll up automatically.

On save, the document gets the next available number for its type and year (INV-2026-0001 etc.) — atomic per-organization, so concurrent saves can never mint a duplicate. Quotations (QT-) and receipts (RC-) follow the same rule with their own counters.

Email the invoice to the customer with the "Send" button, or copy the public link from the document detail page. Either path lands on a clean PDF-style preview the customer can pay or download.

VAT and withholding tax

Each line item carries its own VAT rate, defaulting to 7%. Lines flagged with a different rate (0% for exempt goods, for example) just override that line — the document footer rolls VAT up by rate so the customer sees the breakdown.

Withholding tax has its own field on the document footer (typical Thai rates: 1% for transport, 3% for services, 5% for rentals — set what applies). The amount payable on the document is automatically gross-of-VAT minus WHT, so the number printed on the invoice matches what the customer will actually pay.

Your organization’s tax ID lives in Settings → Workspace and prints on every tax invoice and receipt. Your customer’s tax ID lives on each contact record and prints next to their name on documents that include them.

Recurring invoices

Schedule weekly, monthly, or yearly recurring documents at /app/docs/recurring. Pick a template (existing customer, line items, tax treatment), set a cadence and a next-run date, and the nightly cron will mint a fresh document on schedule with a new atomic number.

Need to issue this month right now without waiting for the cron? Hit "Run now" on the schedule — it’s atomic, so it can’t double-issue. The next scheduled run is rolled forward to the next cadence point as if it had fired on time.

Public payment links

Every document has a "Public link" toggle. When on, the document is available at /p/<token> for anyone with the URL — no FirmWorks account required. Customers can preview, download the PDF, and (if Stripe is connected) pay directly.

Toggling off the public link revokes the URL. There’s no separate "publish then unpublish" history — the link is simply live or not, and the document detail page tells you which.

Expenses and receipts

Capture expenses at /app/docs/expenses. Each expense has a vendor, date, amount, VAT, and an optional WHT field. Attach the receipt image and it lives next to the row for audit later.

For inbound invoices you’ve actually paid, "Receipts" issue the customer-facing acknowledgement. Receipts inherit the same numbering and tax treatment rules as invoices.

PDF export and document numbering

Every document has a "Download PDF" button on the detail page. The PDF is generated server-side from the same template as the public link, so what your customer sees on the link is what they get attached to email.

Counters reset per organization, per type, and per year. So /app/docs in two different workspaces don’t share numbering, INV- and QT- don’t share numbering, and INV-2026-0001 / INV-2027-0001 are independent. If you need a custom prefix (e.g. INV/2026/), Settings → Workspace lets you configure it.

Need more help?

Reply to any FirmWorks email — sign-up, invoice, invite, password reset. A real person answers within one business day, Bangkok hours.

Other topics