thai-invoice
Skill4 starsChanged 2 months agoMITView on GitHub
Use this skill for any task involving Thai tax invoices, receipts, quotations, credit/debit notes, or withholding-tax (WHT) certificates. Trigger on "ออกใบกำกับภาษี", "ใบเสร็จ", "ใบเสนอราคา", "ใบลดหนี้", "ใบเพิ่มหนี้", "หนังสือรับรองหักภาษี ณ ที่จ่าย", "ภ.ง.ด.3", "ภ.ง.ด.53", "Thai tax invoice", "VAT 7%", "withholding tax Thailand", or any request to draft or calculate a Thai accounting document under Revenue Code §86/4. If the task is bookkeeping-level aggregation across many invoices (filing ภ.พ.30, reconciling a ledger), this skill drafts the source document only — direct the user to their accounting system or accountant for the return itself.
2 other projects use a version of this, 2 of them edited.
Adopted by
Most recently taken up by
- Boom-Vitt/claude-thai-skillsedited, first seen Nov 1, 2026
- Aether-GenesiZ/thai-agent-skillsedited, first seen Nov 1, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 2
- Boom-Vitt/claude-thai-skills★ 5818% same
- Aether-GenesiZ/thai-agent-skills★ 117% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository58 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/project-docs-prep/templates/AGENTS.mdAGENTS.md
- skills/project-docs-prep/templates/CLAUDE.mdCLAUDE.md
- deep-planningSkill
- deep-planningSkill
- deprecatedSkill
- architecture-reviewSkill
- code-reviewSkill
- diagnoseSkill
- tddSkill
- ui-design-engineeringSkill
- ux-ui-design-assessmentSkill
- in-progressSkill
- mcp-tool-managementSkill
- skill-managementSkill
- obsidian-canvasSkill
- obsidian-markdownSkill
- obsidian-notion-bridgeSkill
- obsidian-vault-workflowSkill
- boomz-preferencesSkill
- personal-agent-workflowSkill
- personalSkill
- automation-designSkill
- grill-with-docsSkill
- handoffSkill
- inbox-meeting-triageSkill
- markdown-reportSkill
- prompt-improvementSkill
- project-docs-prepSkill
- claim-citation-checkSkill
- daily-news-reportSkill
- github-skill-researchSkill
- project-discoverySkill
- repo-tourSkill
- research-methodologySkill
- seo-website-evaluatorSkill
- thaiSkill
- thai-addressSkill
- thai-customer-serviceSkill
- thai-date-formatSkill
- thai-festival-cardSkill
- thai-government-formSkill
- thai-id-validateSkill
- thai-pdpaSkill
- thai-resumeSkill
- thai-social-captionSkill
- thai-text-processingSkill
- thai-translateSkill
- backtest-expertSkill
- dividend-value-screenerSkill
- drawdown-circuit-breakerSkill
- exposure-coachSkill
- market-breadth-analyzerSkill
- portfolio-managerSkill
- position-sizerSkill
- tradingSkill
- trader-memory-coreSkill
- uptrend-analyzerSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 45
Only a VAT-registered seller (ผู้ประกอบการจดทะเบียน VAT) may issue ใบกำกับภาษี
- Distinctive: line 79
Not issuing the WHT certificate to the payee within the required window after filing ภ.ง.ด.3/53.
- Distinctive: line 87
All templates use synthetic placeholder data — replace every bracketed field, and never fill in a real Thai national ID, tax ID, or company …
- Very specific: line 98
Run python3 calc.py for the self-test.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Thai Tax Documents (ใบกำกับภาษี / ใบเสร็จ / ใบเสนอราคา / WHT)
Overview
Thai tax invoices, quotations, and WHT certificates follow specific structural rules (Revenue Code §86/4) and specific VAT/WHT math. A model without this skill tends to skip the mandatory VAT line, guess a WHT rate, or produce Thai-English hybrid documents that omit the required Thai phrase. This skill supplies the required fields, the current common VAT/WHT rates, and a Decimal-based calculator so totals don't drift.
Not legal or tax advice. This skill drafts documents and does arithmetic; it does not replace a licensed accountant or the Revenue Department for a real filing.
When to use
- ออกใบกำกับภาษีให้ลูกค้านิติบุคคลหรือบุคคลธรรมดา
- คำนวณ VAT 7% (แยกจากราคา หรือถอดจากราคารวม)
- คำนวณภาษีหัก ณ ที่จ่าย และออกหนังสือรับรอง (ภ.ง.ด.3/53)
- เขียนใบเสนอราคา / ใบลดหนี้ / ใบเพิ่มหนี้
- Drafting a bilingual Thai-English invoice for a foreign buyer
When NOT to use
- The task needs the monthly return (ภ.พ.30, ภ.ง.ด.1/3/53) aggregated across many transactions — this skill produces the source document, not the filing; point the user to their bookkeeping system
- The task is generic (non-Thai) invoicing with no VAT/WHT/Revenue Code requirement — plain markdown-report is enough
Required fields — full tax invoice (Revenue Code §86/4)
A full ใบกำกับภาษี must contain all seven elements (quote the Thai labels exactly):
- คำว่า "ใบกำกับภาษี" ในที่ที่เห็นได้ชัดเจน
- ชื่อ ที่อยู่ และเลขประจำตัวผู้เสียภาษีอากรของผู้ออก
- ชื่อ ที่อยู่ ของผู้ซื้อ (+ เลขประจำตัวผู้เสียภาษีถ้ามี)
- หมายเลขลำดับและเล่ม (ถ้ามี)
- ชื่อ ชนิด ประเภท ปริมาณ และมูลค่าของสินค้า/บริการ
- จำนวนภาษีมูลค่าเพิ่ม แยกออกจากมูลค่าสินค้า/บริการให้ชัดเจน
- วัน เดือน ปี ที่ออกใบกำกับภาษี — use thai-date-format for the formal date string
A short-form (อย่างย่อ) invoice may omit buyer address/TIN when issued at point of sale by an approved retailer.
VAT
- Reduced rate currently applied: 7% (statutory rate under the Revenue Code is 10%; the 7% rate is set by a renewable Royal Decree — do not treat 7% as permanent, see Known limitations)
- VAT-exempt items (Sec 81): basic unprocessed agricultural products, education, healthcare, books, public transport — do not add VAT and do not issue ใบกำกับภาษี for these; use ใบส่งของ/บิลเงินสด instead
- Only a VAT-registered seller (ผู้ประกอบการจดทะเบียน VAT) may issue ใบกำกับภาษี
Withholding tax (ภาษีหัก ณ ที่จ่าย)
| Service | Form | Rate (resident payee) |
| บริการทั่วไป (services) | ภ.ง.ด.3 / 53 | 3% |
| ค่าเช่าอสังหาริมทรัพย์ | ภ.ง.ด.3 / 53 | 5% |
| ค่าโฆษณา | ภ.ง.ด.3 / 53 | 2% |
| ค่าขนส่ง | ภ.ง.ด.3 / 53 | 1% |
| ค่าวิชาชีพอิสระ (individual) | ภ.ง.ด.3 | 3% |
| ดอกเบี้ย | ภ.ง.ด.2 | 15% |
| เงินปันผล | ภ.ง.ด.2 | 10% |
ภ.ง.ด.3 = payee is บุคคลธรรมดา (individual). ภ.ง.ด.53 = payee is นิติบุคคล (juristic person, e.g. บริษัท). WHT base is always the pre-VAT amount.
Numbering, credit/debit notes, quotation
- Sequential invoice numbers required (e.g.
INV-2026-0001); reset annually is optional - ใบลดหนี้ (credit note): reference original invoice number, state the reduction reason
- ใบเพิ่มหนี้ (debit note): same structure, upward adjustment
- ใบเสนอราคา is not a tax document — state clearly whether "ราคานี้ไม่รวมภาษีมูลค่าเพิ่ม" or "ราคารวม VAT 7% แล้ว", and specify validity period (e.g. "ยืนราคา 30 วัน")
- Combined "ใบเสร็จรับเงิน/ใบกำกับภาษี" is allowed for cash sales by a VAT-registered seller
Common mistakes
- Omitting the separate VAT line — Revenue Code requires the VAT amount shown distinctly, not folded silently into the total.
- Issuing a combined ใบเสร็จ/ใบกำกับภาษี when the seller is not VAT-registered.
- Issuing ใบกำกับภาษี for VAT-exempt goods (books, unprocessed agricultural products) instead of ใบส่งของ.
- Wrong WHT rate — rent (5%) and advertising (2%) are the most commonly confused pair with services (3%).
- Missing the buyer's TIN on a B2B invoice, which can block the buyer's input-VAT claim.
- Computing WHT on the VAT-inclusive amount instead of the pre-VAT base.
- Mixing up ภ.ง.ด.3 (individual payee) and ภ.ง.ด.53 (juristic payee) — using the wrong form requires refiling.
- A bilingual invoice that includes "Tax Invoice" but drops the required Thai phrase "ใบกำกับภาษี".
- Not issuing the WHT certificate to the payee within the required window after filing ภ.ง.ด.3/53.
Templates
templates/tax-invoice-full.md— full ใบกำกับภาษีtemplates/quotation.md— ใบเสนอราคาtemplates/wht-certificate.md— หนังสือรับรองการหักภาษี ณ ที่จ่าย
All templates use synthetic placeholder data — replace every bracketed field, and never fill in a real Thai national ID, tax ID, or company name as a "sample."
Calculator
calc.py — Decimal-based, no dependencies:
calculate_vat(subtotal, rate=Decimal("0.07"))→{subtotal, vat, total}calculate_vat_inclusive(total, rate=Decimal("0.07"))→ backs VAT out of a VAT-inclusive totalcalculate_wht(amount, rate)→{amount, wht, net_payable}(ratecan be aWHT_RATESkey or a Decimal)WHT_RATES— the table above as a dict
Run python3 calc.py for the self-test.
Known limit: calc.py operates on a single transaction. It does not aggregate many invoices into a ภ.พ.30 or ภ.ง.ด.3/53 monthly total — that belongs in the user's bookkeeping system.
Known limitations
- VAT rate (7%) is set by a renewable Royal Decree, not permanent statute. It has been extended repeatedly, but re-verify the currently effective rate against a Revenue Department (rd.go.th) source before relying on it for a real filing, especially near a decree's stated expiry date.
- WHT category boundaries (e.g. what counts as "rent" vs. "service") are sometimes disputed in practice — this table covers the common, uncontested cases only.
- Templates and disclaimers here are drafting aids. Do not remove the "not legal/tax advice" language when reusing or editing these files.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

