Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.chift.eu/llms.txt

Use this file to discover all available pages before exploring further.

Reverse VAT Overview

The Reverse VAT (reverse charge) shifts VAT reporting from the seller to the buyer.
Common scenarios:
  • Cross-border B2B sales within the EU
  • Domestic transactions for specific goods/services
  • Imported services from non-EU suppliers
Under reverse charge:
  • Seller does not charge VAT
  • Buyer self-assesses VAT, creating both input and output VAT entries
  • Net VAT to pay is usually 0, but declaration is ensured

1. Reverse VAT with create invoice

When using the invoice endpoints, Chift handles the reverse VAT accounting automatically.

1.1 Purchase invoices (supplier_invoice)

For invoices subject to reverse VAT:
  • No VAT is charged on the invoice (tax_amount = 0)
  • Assign the appropriate reverse VAT tax code with reversed = true
  • tax_rate is the applicable VAT rate (used for self-assessment)
Chift’s API will automatically generate two VAT ledger entries:
  • Output VAT (as if the buyer had issued the invoice)
  • Input VAT (as if the buyer had paid it)
These entries offset each other, so no VAT is paid, but both are properly declared in the VAT return.

Example — Purchase Invoice

{
  "invoice_type": "supplier_invoice",
  "invoice_number": "SUP-INV-778",
  "currency": "EUR",
  "untaxed_amount": 2000,
  "tax_amount": 0,
  "total": 2000,
  "reference": "Consulting services from UK supplier",
  "invoice_date": "2025-07-05",
  "due_date": "2025-08-05",
  "partner_id": "supp-789",
  "journal_id": "abcpurchjourid",
  "lines": [
    {
      "line_number": 1,
      "quantity": 1,
      "untaxed_amount": 2000,
      "tax_rate": 21,
      "tax_amount": 0,
      "total": 2000,
      "account_number": "604000",
      "tax_code": "REV-IMPORT-SERVICES",
      "description": "Consulting service - Reverse VAT applicable"
    }
  ]
}

1.2 Seller Side (Sales Invoice)

For sales invoices under reverse charge, the treatment is simpler:
  • Do not charge VAT (tax_amount = 0, tax_rate = 0)
  • Use the appropriate 0% tax code corresponding to the reverse-charge scenario (not necessarily marked reversed)
  • Total = net amount, no VAT included

Example — Sales Invoice (minimal)

{
  "invoice_type": "customer_invoice",
  "invoice_number": "INV-2025-001",
  "untaxed_amount": 1000,
  "tax_amount": 0,
  "total": 1000,
  "lines": [
    {
      "line_number": 1,
      "quantity": 1,
      "untaxed_amount": 1000,
      "tax_rate": 0,
      "tax_amount": 0,
      "total": 1000,
      "tax_code": "REV-EU-B2B"
    }
  ]
}

2. Reverse VAT with create journal entry

Journal entries work differently from invoices. With invoices, Chift derives accounting entries automatically. With journal entries, you are directly providing the accounting data, so reverse VAT must be explicitly described.

2.1 Purchase-side reverse VAT

For purchase reverse VAT:
  • tax_info must be attached to the expense line
  • tax_amount should be calculated as:
    amount excl. tax × VAT rate linked to the tax code and must not be zero
  • vat_account should typically be the deductible VAT account returned by the Get VAT Codes endpoint
  • reversed_vat_account should typically be the payable VAT account returned by the Get VAT Codes endpoint

Example

{
  "reference": "Reverse VAT purchase",
  "journal_id": "HA",
  "currency": "EUR",
  "date": "2026-05-05",
  "items": [
    {
      "account_type": "supplier_account",
      "account": "SUP21",
      "credit": 100
    },
    {
      "account_type": "general_account",
      "account": "601000",
      "debit": 100,
      "tax_info": {
        "tax_code": "445621$445200$021",
        "tax_amount": 21,
        "vat_account": "445621",
        "reversed_vat_account": "445200"
      }
    }
  ]
}
This is different from create invoice.Even though the supplier invoice itself contains no charged VAT, the journal entry must explicitly provide the VAT amount so Chift can generate the reverse VAT postings.

2.2 Sales-side reverse VAT

No specific reverse VAT handling is required. Create the journal entry as a normal VAT-exempt sale.
Some accounting software does not expose VAT codes through their API — or does not use them at all. In these cases, Chift reconstructs VAT codes artificially from the VAT ledger accounts (accounts starting with 445) in order to keep the data model consistent across all connectors. The behavior is identical for the API consumer regardless of the underlying system.There are two scenarios:
  • The accounting software supports VAT codes (and exposes them via API) → no special handling required.
  • The accounting software does not have VAT codes (or they are not accessible via API) → Chift infers the VAT code from the 445x ledger accounts present on the transaction, using the following logic:
Sales
VAT TypeLedger Account(s)
Standard44571 or 44572
Purchases
VAT TypeLedger Account(s)
Standard44566 and 445664
Fixed assets (Immo)44562
Intracom – Reverse charge445662 or 445665+4452
Intracom fixed assets – Reverse charge445621 or 445622+4452
Extracom – Reverse charge4456698+445798, or 445661+4451, or 445663+4453
Domestic reverse charge (Autoliquidation FR)4456699+445799, or 445666+445716
For reverse charge scenarios (Intracom, Extracom, Autoliquidation), the detection relies on a combination of two ledger accounts being present together on the transaction — one representing the output VAT side and one the input VAT side.

✅ Summary

RoleTax TreatmentChift API Handling
Buyer —create invoiceSelf-assess VATtax_amount = 0, reversed tax code required → API generates offsetting VAT entries
Buyer —create journal entrySelf-assess VATThrough tax_info: tax_amount = amount excl. VAT × rate, reversed tax code required, vat_account + reversed_vat_account required
SellerVAT exempttax_amount = 0, tax_rate = 0, use appropriate 0% tax code