Skip to main content

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. Buyer Side (Purchase 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"
    }
  ]
}

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 an exonerated tax code (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"
    }
  ]
}

✅ Summary

RoleTax TreatmentChift API Handling
BuyerSelf-assess VATtax_amount = 0, tax code reversed = true → API generates offsetting VAT entries
SellerVAT exempttax_amount = 0, tax_rate = 0, use exonerated tax code
I