Help us improve
Share bugs, ideas, or general feedback.
From tax-essentials
Validates supplier invoices against EU VAT Directive 2006/112/EC full-invoice content rules (Articles 226 et seq.) in batch, checking supplier and customer VAT identification numbers, sequential numbering, dates, taxable amount, rate, VAT amount and required mentions such as reverse charge, and produces a tax exceptions report; use for VAT compliance reviews, accounts-payable input-VAT recovery checks, indirect tax audit testing, or pre-filing data quality control across a folder of invoices in CSV or Excel.
npx claudepluginhub kimonarrow/ledgerskills --plugin tax-essentialsHow this skill is triggered — by the user, by Claude, or both
Slash command
/tax-essentials:vat-invoice-checkerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill performs a batch compliance review of supplier invoices against the content requirements of the EU VAT Directive 2006/112/EC (principally Articles 226-231). It is for indirect tax teams, accounts-payable controllers, and auditors who need to confirm that invoices carry every mandatory particular before input VAT is recovered or before a return is filed. It works only on the invoice d...
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Share bugs, ideas, or general feedback.
This skill performs a batch compliance review of supplier invoices against the content requirements of the EU VAT Directive 2006/112/EC (principally Articles 226-231). It is for indirect tax teams, accounts-payable controllers, and auditors who need to confirm that invoices carry every mandatory particular before input VAT is recovered or before a return is filed. It works only on the invoice data you provide in your session and produces a structured exceptions report flagging missing or inconsistent fields.
Provide a folder of invoices, or a single tabular extract, with one row per invoice. A CSV (preferred for batch) or Excel sheet works best. See the bundled sample samples/sample_invoices.csv.
Expected columns (header names may vary; map them at the start):
invoice_id / sequential numberissue_date (and supply_date / tax point if different)supplier_name, supplier_vat (VAT identification number)customer_name, customer_vatdescription (nature of goods/services, quantity)net_amount (taxable amount per rate)vat_rate (%)vat_amountgross_amount (optional; for cross-foot)currencyspecial_mention (e.g. "reverse charge", "exempt", "intra-Community supply", "margin scheme")If invoices are individual PDFs or images, ask the user to extract the fields into a table first (or transcribe the visible fields), then run the checks. Do not invent values; flag anything illegible as UNREADABLE.
Work from the EU VAT Directive 2006/112/EC. Article 226 lists the mandatory particulars of a full invoice. Apply the following checks per invoice row.
Sequential number (Art. 226(2)). Confirm invoice_id is present and non-blank. Across the batch, check the numbering is unique (no duplicates) and note gaps if the population claims to be a complete sequence. Flag duplicates as a high-severity exception (risk of double deduction).
Date of issue (Art. 226(1)). Confirm issue_date is present and a valid calendar date. If a separate supply_date / tax point (Art. 226(7)) exists and differs materially, retain both; the tax point drives the period of recovery.
Supplier VAT identification number (Art. 226(3)). Must be present. Validate structure against the EU country format for the country prefix:
DE + 9 digits, FR + 2 chars + 9 digits, NL + 9 digits + B + 2 digits, BE + 10 digits, IT + 11 digits, ES + 9 chars, IE + 8-9 chars, PL + 10 digits. (Note: since the VIES system replaced the old GB prefix for EU purposes, treat GB/XI numbers per current rules.)Customer VAT number (Art. 226(4)). Required where the customer is liable to pay the tax (reverse charge) or for an intra-Community supply of goods. Apply the same structural validation. Flag a missing customer VAT number specifically when special_mention indicates reverse charge or intra-Community supply.
Supplier full name and address; customer full name and address (Art. 226(5)). Confirm supplier_name and customer_name are present and non-generic. Flag blanks or placeholders ("Customer", "Cash sale").
Description of goods or services (Art. 226(6)). Confirm description is present and specific enough to identify the supply (quantity/extent). Flag empty or vague entries ("Services", "Sundry") as a medium-severity quality issue.
Taxable amount, unit price, rate, and VAT amount (Art. 226(8)-(10)). For each rate present:
net_amount, vat_rate, and vat_amount must all be present.net_amount x vat_rate / 100, 2). Flag if the stated vat_amount differs from the recomputed figure by more than a rounding tolerance (suggest 0.02 per rate line, or 1 cent times the number of lines). This catches transposed digits and wrong rates.gross_amount is supplied, cross-foot: net_amount + vat_amount should equal gross_amount within tolerance.Required special mentions (Art. 226(11)-(11a) and related). Conditional checks:
vat_amount should be zero/blank. Flag a reverse-charge invoice that nonetheless charges VAT, or one liable to reverse charge but missing the mention.special_mention.Currency and consistency. Note the currency. Per Art. 230, amounts may be in any currency but the VAT payable must be expressed in the national currency using a valid exchange rate. Flag mixed-currency batches for manual review.
Simplified invoices. If the gross is below the national simplified-invoice threshold (Art. 220a / 238; commonly around EUR 100, but country-specific), a reduced data set may be acceptable. Do not force full-invoice failures on clearly simplified invoices, but note the assumption and the threshold used.
Assign each exception a severity: High (blocks input-VAT recovery - e.g. missing supplier VAT number, VAT miscalculation, duplicate number), Medium (compliance gap needing correction - vague description, missing mention), Low (advisory - formatting, VIES recommended).
Produce two artifacts.
Exceptions report (CSV or Markdown table) named vat_exceptions_report.csv with columns:
invoice_id, supplier_name, supplier_vat, check_id, requirement (Article ref), severity, finding, expected_vs_actual, recommended_action
One row per failed check. Pass invoices need not appear, but include a count.
Summary memo (Markdown) with: population size and total value reviewed; count of invoices clean vs with exceptions; breakdown by severity and by check; a duplicate-number list; and a short "preliminary analysis" narrative of the main risks (e.g. "12 of 80 invoices lack a structurally valid supplier VAT number, putting input-VAT recovery at risk pending VIES confirmation"). End the memo with the disclaimer.
Using samples/sample_invoices.csv (5 fictional invoices):
INV-1001 (Aurora Components Ltd, DE supplier): net 1,000.00 at 19%, VAT stated 190.00. Recompute 1,000.00 x 19% = 190.00 - passes the arithmetic check; supplier VAT DE123456789 is structurally valid (DE + 9 digits). Clean.INV-1002 (Northwind Trading BV, NL): net 500.00 at 21%, VAT stated 95.00. Recompute = 105.00. High exception: VAT miscalculation (expected 105.00, actual 95.00, delta 10.00) - likely wrong figure; blocks recovery until corrected.INV-1003 (Helios Software GmbH): supplier VAT blank. High exception under Art. 226(3): missing supplier VAT identification number.INV-1004 (Meridian Logistics SARL, FR, cross-border): special_mention = "reverse charge" but vat_amount = 84.00. High exception: reverse-charge invoice should not charge VAT, and Art. 226(11a) mention present but inconsistent; verify customer VAT number is shown.INV-1001 (Borealis Energy AS, electricity supply): High exception: duplicate sequential number (Art. 226(2)), since INV-1001 already appears on the first row - double-deduction risk.The report would surface four exceptions across five invoices, one clean, framed as preliminary analysis pending VIES confirmation and professional review.
Disclaimer: This skill is a drafting and analysis aid, not professional advice. It does not provide accounting, audit, tax, investment, or legal advice. All output must be reviewed and approved by a qualified professional before use or reliance.
Because this is a tax skill: every generated determination or position (VAT validity, deductibility, reverse-charge treatment, registration status) must be framed as "preliminary analysis - verify with a qualified tax advisor", and NEVER presented as a definitive position. Structural VAT-number checks are not confirmation of an active registration; confirm via the official VIES service.
Part of LedgerSkills - security-vetted Claude Code skills for finance teams. New skills scanned and tested weekly; subscribe on the site.