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
- 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_rateis the applicable VAT rate (used for self-assessment)
- Output VAT (as if the buyer had issued the invoice)
- Input VAT (as if the buyer had paid it)
Example — purchase invoice
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)
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_infomust be attached to the expense linetax_amountshould be calculated as:
amount excl. tax × VAT rate linked to the tax code and must not be zerovat_accountshould typically be the deductible VAT account returned by the Get VAT Codes endpointreversed_vat_accountshould typically be the payable VAT account returned by the Get VAT Codes endpoint
Example
2.2 Sales-side reverse VAT
No specific reverse VAT handling is required. Create the journal entry as a normal VAT-exempt sale.VAT ledger accounts logic in France
VAT ledger accounts logic in France
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
445xledger accounts present on the transaction, using the following logic:
Purchases
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.