Global Tax Compliance (VAT/GST/Sales Tax)
1. Goal: Automated Filing & Cross-Border Safety
Problem: VAT rules are complex. Calculating the boxes for the monthly return (e.g. UStVA in Germany) is manual and error-prone.
Solution: A tax engine that validates every invoice line and automatically generates the XML/JSON payload to file directly to the Tax Authority (ELSTER, HMRC, etc.).
2. Core Value Proposition
- Validation: Stops invoices with wrong tax codes before they are booked.
- Automation: Auto-fills the boxes for the VAT Return (e.g., UK Box 1, DE UStVA Line 81).
- Direct Filing: API integration with Tax Authorities (e.g., ERiC for ELSTER).
3. Key Logic: The "Tax Determination Engine"
- Inputs:
- Vendor Country (Origin)
- Buyer Country (Destination)
- Line Item Type (Goods vs Services)
- Tax ID presence (on both sides)
- Rules:
- EU ↔ EU (B2B): Reverse Charge applies?
- US ↔ EU: Import VAT?
- Domestic: Standard Rate correct?
4. Data Model
TaxRuling
ruling_id
invoice_line_id
detected_regime: DOMESTIC_STANDARD | INTRA_COMMUNITY_SUPPLY | EXPORT | REVERSE_CHARGE
expected_rate
actual_rate_on_invoice
status: MATCH | MISMATCH
Tax Return Submission (Filing)
- Mechanism:
- Aggregation: Sums all
TaxRuling entries by period.
- Mapping: Maps
detected_regime -> Box Number (e.g., REVERSE_CHARGE -> UStVA Kennziffer 46).
- Submission: Generates the official XML (e.g., via ELSTER API for Germany).
- Audit Proof: Stores the "Transmission Protocol" (Protokoll) linked to the return.
TaxReturnDraft
period
jurisdiction (e.g., DE, UK, US-NY)
boxes: JSON object mapping { "Box1_Sales": 1000, "Box4_Purchases": 200 }
5. UX/UI
- The "Tax Mismatch" Inbox: "Vendor charged 19% VAT, but this is a cross-border EU service (Reverse Charge). Please request credit note."
- Filing Cockpit:
- "Preliminary VAT Return (UStVA) - Oct 2024"
- Status:
Ready to File
- Action: "Submit to Finanzamt" (Triggers API call).