FinchContext
Run with

File a VAT ledger into the Belgian Periodic VAT Return XML (Intervat)

Skill: Convert a VAT ledger into the Intervat periodic VAT-return XML

Region: Belgium (België / Belgique) Category: VAT — Intervat periodic return (FPS Finances / FOD Financiën — aangifte / déclaration TVA) Does: Takes a period's VAT ledger (sales, purchases, intra-Community and import operations) and produces the Intervat VATConsignment / VATDeclaration XML — the periodic VAT return uploaded to the Intervat portal, with each ledger total mapped to its official grid (<Data Sequence="…">) and the payable-or-refundable balance computed in grids 71/72. Standard: FPS Finances Intervat — VATConsignment (namespace http://www.minfin.fgov.be/InputCommon + …/VATConsignment), schema version aligned with the current Intervat release (NewAsk / NewTVA grid model)

This XML is the file you upload to the Intervat portal (or send via its web service) and sign there; the AI does not file it. Periodic returns are due by the 20th of the month following the reporting period (monthly or quarterly filers). This skill builds the standard return — it does not cover the special VAT account, the annual client listing (a separate skill), or intra-Community sales listings. Grid definitions and the schema change; validate against the current Intervat XSD and grid instructions from FOD Financiën / SPF Finances before filing.


When this applies


Filing procedure

  1. Read the source. Accept the VAT ledger as CSV/JSON (per-grid totals or per-invoice rows), spreadsheet export, or pasted figures. Identify the declarant's VAT number, the period (month or quarter + year), and the amount per operation type.
  2. Aggregate to grids. Map every ledger amount to its grid number (see code tables). Sum per-invoice rows into grid totals if the source is line-level. If an amount cannot be confidently assigned to a grid, stop and ask — do not guess a grid.
  3. Normalize.
    • VAT number → BE + 10 digits, no dots/spaces (cbc-style attribute uses the bare 10 digits where the schema requires VATNumber).
    • Amounts → EUR, 2 decimals, dot separator, non-negative (the grid model carries the sign by grid, not by minus sign).
    • Period → month 0112 or quarter 14 with the 4-digit year.
  4. Compute the output VAT, deductible VAT, and balance per the calculation rules. Grid 71 (to pay) or 72 (refundable) is derived, never copied.
  5. Emit the VATConsignment with one VATDeclaration per declarant, listing each non-empty grid as a <Data Sequence="NN">value</Data>. Follow the document structure and worked example.
  6. Validate against the checklist and the Intervat XSD/grid coherence rules before uploading.

Source → grid field map

From the source → Grid (Data Sequence)
Sales taxed at 0%/exports/intra-EU triangulation base 00
Sales taxed at 6% (base) 01
Sales taxed at 12% (base) 02
Sales taxed at 21% (base) 03
Intra-Community supplies of goods (base) 46
Other exempt sales / services abroad (base) 47
Credit notes issued on outgoing operations (base) 48
Other corrections / non-listed outgoing 49
Output VAT on sales (6/12/21%) 54
VAT due on intra-Community acquisitions (reverse charge) 55
VAT due under other reverse-charge (cocontractant) 56
VAT due on imports with deferral (ET 14000) 57
Corrections to output VAT (credit notes received side) 61/62
Total output VAT due (54+55+56+57+61+63) XX→ feeds grid 71
Purchases of goods/services (base) 81
Purchases of fixed assets (capital goods, base) 83
Other purchases / general expenses base 82
Credit notes received (base) 84/85
Intra-Community acquisitions of goods (base) 86
Other incoming reverse-charge purchases (base) 87
Imports with VAT deferral (base) 88
Deductible input VAT 59
Corrections to deductible VAT 62/64
VAT to pay to the State 71
VAT refundable by the State 72
Request for refund (checkbox) Ask/Restitution
Request for payment forms Ask/Payment

The non-empty grids appear above. Emit only grids with a non-zero value plus the structural balance grids your figures imply.


Document structure

VATConsignment                                   (root; one upload, ≥1 declaration)
├── @VATDeclarationsNbr                           (count of declarations)
└── VATDeclaration                                (one per declarant per period)
    ├── @SequenceNumber                           (1, 2, … within the file)
    ├── ns2:ReplacedVATDeclaration                (optional — period of the return being replaced)
    ├── ns2:Declarant                             (filing taxpayer)
    │   ├── ns2:VATNumber                         (BE 10 digits)
    │   ├── ns2:Name
    │   ├── ns2:Street / ns2:PostCode / ns2:City
    │   └── ns2:CountryCode                       (BE)
    ├── ns2:Period                                (reporting period)
    │   ├── ns2:Month   (01–12)   — monthly filer
    │   │   or ns2:Quarter (1–4)  — quarterly filer
    │   └── ns2:Year                              (yyyy)
    ├── ns2:Data Sequence="NN"                    (one per non-empty grid; repeatable)
    ├── ns2:ClientListingNihil                    (optional flag)
    ├── ns2:Ask                                   (optional refund / payment-form requests)
    │   ├── ns2:Restitution                       (refund request, true/false)
    │   └── ns2:Payment                           (request payment forms)
    └── ns2:Comment                               (optional free text)

Mandatory: Declarant/VATNumber, Period, and the Data grids; either Month or Quarter (not both). Ask/Restitution only when grid 72 shows a refund and the taxpayer requests it.


Code tables

Outgoing-operation grids (bases — sales)

Grid Meaning
00 Sales subject to 0% (and other special-rate/exempt-with-credit bases)
01 Base of sales at the 6% rate
02 Base of sales at the 12% rate
03 Base of sales at the 21% rate
44 Services to EU taxable persons (B2B services, reverse-charge in customer's state)
45 Supplies where Belgian VAT is due by the co-contractor (domestic reverse charge — supplier side)
46 Intra-Community supplies of goods (and certain triangular) — base
47 Other exempt operations / supplies outside Belgium — base
48 Credit notes issued relating to grid 46 operations — base
49 Credit notes issued / other corrections on outgoing operations — base

Output-VAT grids

Grid Meaning
54 VAT due on grids 01/02/03 (domestic taxed sales)
55 VAT due on intra-Community acquisitions (grid 86) — reverse charge
56 VAT due under domestic reverse charge / other (cocontractant, grids 87)
57 VAT due on imports with deferred accounting (ET 14000, grid 88)
61 Various adjustments increasing VAT due
63 VAT on credit notes received (to be repaid)

Incoming-operation grids (bases — purchases)

Grid Meaning
81 Purchases of goods, raw materials, merchandise — base
82 Purchases of services and miscellaneous goods — base
83 Purchases of capital goods / fixed assets — base
84 Credit notes received relating to grid 86 — base
85 Credit notes received / other corrections (incoming) — base
86 Intra-Community acquisitions of goods — base
87 Other incoming operations with VAT due by declarant (reverse charge) — base
88 Imports with VAT deferral — base

Deductible-VAT and balance grids

Grid Meaning
59 Deductible input VAT
62 Various adjustments increasing deductible VAT
64 VAT on credit notes issued (recoverable)
71 VAT to pay to the State (when output VAT > deductions)
72 VAT refundable by the State (when deductions > output VAT)

Period type

Element Values
ns2:Month 0112 (monthly filers)
ns2:Quarter 14 (quarterly filers) — mutually exclusive with Month

Calculation rules


Worked example (end-to-end)

Input — quarterly VAT ledger (Q1 2026)

Declarant: Voorbeeld Diensten BV, VAT BE 0888.222.333
Address: Kerkstraat 12, 9000 Gent, BE
Period: Quarter 1, 2026
Domestic sales at 21%: base 50000.00, output VAT 10500.00
Domestic sales at 6%:  base 10000.00, output VAT 600.00
Intra-Community acquisitions of goods: base 8000.00 (VAT due at 21% = 1680.00, fully deductible)
Purchases of goods/services (domestic): base 20000.00, input VAT 4200.00
Purchases of capital goods: base 5000.00, input VAT 1050.00

After extraction + normalization (intermediate)

{
  "declarant": { "vat": "BE0888222333", "name": "Voorbeeld Diensten BV",
                 "street": "Kerkstraat 12", "post": "9000", "city": "Gent", "country": "BE" },
  "period": { "quarter": "1", "year": "2026" },
  "grids": {
    "01": 10000.00, "03": 50000.00,
    "54": 11100.00, "55": 1680.00,
    "81": 20000.00, "83": 5000.00, "86": 8000.00,
    "59": 6930.00,
    "71": 5850.00
  }
}

Derivation: grid 54 = 50000×21% + 10000×6% = 10500.00 + 600.00 = 11100.00. Grid 55 = 8000×21% = 1680.00. Grid 59 = 4200.00 (purchases) + 1050.00 (capital) + 1680.00 (deductible IC-acquisition VAT) = 6930.00. Total due = 11100.00 + 1680.00 = 12780.00; total deductible = 6930.00; balance = 12780.00 − 6930.00 = 5850.00 → grid 71.

Output — Intervat VATConsignment XML

<?xml version="1.0" encoding="UTF-8"?>
<ns2:VATConsignment xmlns="http://www.minfin.fgov.be/InputCommon"
                    xmlns:ns2="http://www.minfin.fgov.be/VATConsignment"
                    VATDeclarationsNbr="1">
  <ns2:VATDeclaration SequenceNumber="1">
    <ns2:Declarant>
      <VATNumber>0888222333</VATNumber>
      <Name>Voorbeeld Diensten BV</Name>
      <Street>Kerkstraat 12</Street>
      <PostCode>9000</PostCode>
      <City>Gent</City>
      <CountryCode>BE</CountryCode>
    </ns2:Declarant>
    <ns2:Period>
      <ns2:Quarter>1</ns2:Quarter>
      <ns2:Year>2026</ns2:Year>
    </ns2:Period>
    <ns2:Data Sequence="01">10000.00</ns2:Data>
    <ns2:Data Sequence="03">50000.00</ns2:Data>
    <ns2:Data Sequence="54">11100.00</ns2:Data>
    <ns2:Data Sequence="55">1680.00</ns2:Data>
    <ns2:Data Sequence="59">6930.00</ns2:Data>
    <ns2:Data Sequence="81">20000.00</ns2:Data>
    <ns2:Data Sequence="83">5000.00</ns2:Data>
    <ns2:Data Sequence="86">8000.00</ns2:Data>
    <ns2:Data Sequence="71">5850.00</ns2:Data>
    <ns2:Ask>
      <ns2:Restitution>false</ns2:Restitution>
      <ns2:Payment>false</ns2:Payment>
    </ns2:Ask>
  </ns2:VATDeclaration>
</ns2:VATConsignment>

Normalisations shown: VAT BE 0888.222.333 → bare 0888222333 in VATNumber; quarterly period → Quarter 1 + Year 2026 (no Month); amounts to 2dp dot-decimal, non-negative; grid 54 recomputed 50000×21% + 10000×6% = 11100.00; grid 55 reverse-charge 8000×21% = 1680.00; grid 59 deductible 4200 + 1050 + 1680 = 6930.00; balance to pay grid 71 12780.00 − 6930.00 = 5850.00. Because the result is payable, grid 72 is absent and Restitution is false. Upload to Intervat and sign there by the 20th of the month following Q1 (20 April 2026).


Validation checklist


Last updated: 2026-06-13 — verify the active Intervat schema (VATConsignment) namespace/version, the official grid numbers and coherence rules, and the filing deadline against the current FOD Financiën / SPF Finances Intervat documentation before use.