← ALL PLUGINS
ESTONIAv1.0.0·MIT · FORKABLE

Estonian VAT Declaration.

artifi-ee-vat-declaration

KMD + KMD INF + EC Sales List for EMTA

A complete Estonian VAT return workflow. A pre-close validation gate runs first — flagging payments without a document, cut-off issues, tax-code/jurisdiction mismatches, GL tie-out differences, and INF-threshold inconsistencies — and blocks generation until they are resolved. It then produces the KMD2 machine CSV (the format e-MTA accepts for upload) plus an XSD-validated vatDeclaration XML carrying the KMD main form and the KMD INF A/B annexes. The EC Sales List (Form VD) for intra-community B2B supplies is a separate filing. Tax codes are dynamically discovered and classified — never hardcoded — so the plugin adapts to your specific setup, including reverse-charge and intra-community acquisition handling and VAT GL reconciliation.

Pre-close validation gate blocks errors before filingKMD2 machine CSV + XSD-validated XML for e-MTAKMD INF annex + EC Sales List, reverse-charge handlingDynamic tax code discovery (never hardcoded)
COMMANDS · 2

Slash commands, shipped.

Each command is a guided procedure Claude follows step by step — with your review at every decision point.

/prepare-vat-declaration
Monthly KMD preparation

Run the full monthly VAT return. Discovers and classifies tax codes dynamically, fetches posted transactions, then runs a pre-close validation gate (payments without a document, cut-off, tax-code jurisdiction, GL tie-out, INF threshold) that blocks generation until issues are fixed. Generates the KMD2 machine CSV (e-MTA upload format) plus an XSD-validated vatDeclaration XML with KMD INF A/B annexes. Add "validate" to run the gate only, without generating.

/prepare-ec-sales-list
EC Sales List for intra-EU

Prepare the EC Sales List (Form VD) for intra-community B2B supplies — a separate e-MTA filing. Discovers tax codes indicating IC supply, fetches AR invoices, groups by purchaser VAT number (one row per purchaser, full euros), classifies goods / services / triangular per the official form columns, validates EU VAT numbers via VIES, and reconciles goods with KMD line 3.1.1 and services with line 3.1 − 3.1.1.

HOW IT BEHAVES

One run, step by step.

The plugin prepares, validates, and previews. You confirm. Only then does anything reach the ledger — through the same governed gateway everything else uses.

Full VAT Declaration Workflow
Discover and classify tax codes dynamically — map each to the appropriate KMD line
Fetch all posted AR invoices, AP invoices, credit notes, and journal entries with VAT impact
Verify tax code coverage — flag any transaction lines with missing or inactive tax codes
Run the pre-close validation gate (BLOCK/WARN): payments without a document, cut-off, tax-code jurisdiction, GL tie-out, INF threshold — refuse to generate while any BLOCK is open
Compute the KMD main form: taxable bases by rate, input VAT, reverse charge (lines 6/7), IC acquisitions, adjustments (e-MTA derives total VAT and net payable)
Prepare KMD INF Annex: group sales (Part A) and purchase (Part B) partners above EUR 1,000 threshold
Reconcile the KMD to the GL VAT accounts (trial-balance tie-out)
Generate the KMD2 machine CSV (primary) and XSD-validated vatDeclaration XML with INF A/B annexes — ready for e-MTA upload
Hand off the EC Sales List (Form VD) when intra-community supplies exist; provide filing guidance — deadline is the 20th of the following month
VALIDATION GATE · 5 CHECKS

Every run
must pass.

If any checkpoint fails, the workflow stops and reports the issue. Nothing posts to the ledger until every check passes — the same dry-run-first discipline as the rest of the platform.

All transactions for the period are posted (no drafts remain)
All transaction lines have tax codes assigned
KMD calculations balance: output VAT minus input VAT equals net VAT
KMD INF totals reconcile with KMD output VAT lines
EC Sales List reconciles with KMD Lines 3.1 (goods) and 3.2 (services)
REFERENCE DATA · 7 FILES

Knowledge you can read and edit.

Formulas, templates, and regulatory rules live in plain files — not hardcoded values. Swap them for your firm’s policies when you fork.

tax-codes-ee.md

Dynamic tax code classification rules: check reporting_code_override, then classify by rate, reverse charge, recoverability, type, and scope

kmd-form-structure.md

Complete KMD2 form structure (real e-MTA element names), line mapping, and the transaction classification decision tree

kmd-inf-annex.md

KMD INF Part A (sales) and Part B (purchases) structure; EUR 1,000 threshold; registration code validation

ec-sales-list.md

Form VD structure for IC supplies; supply type classification (Goods/Services/Triangular); VAT number validation

vat-rates-ee.md

Estonian VAT rates (24% standard, 13%/9% reduced, zero-rated) and reverse charge rules

validation-checklist.md

Pre-submission validation checks with severity levels and resolution guidance

emta-filing-guide.md

Step-by-step EMTA portal filing instructions; deadline 20th of following month; digital signature requirement

MIT · BUILT FOR ARTIFI · OPEN FOR EVERYONE

Run it here.
Or take it with you.

Out of the box it works with the Artifi ledger: Claude fetches your data, runs the procedure, validates the result, and submits through the governed gateway via MCP.

Or fork it. Skills, commands, validation logic, and reference data are all MIT-licensed. Swap the MCP tool calls for your own backend, or use the reference files as standalone Claude project resources.

MORE ESTONIA PLUGINS