Introduction
The AOC-based VAT 2025 calculator is an evolution of the original AOC VAT calculator with additional logic for:
- Private flights — flight types that withhold the AOC exemption
- Governmental/diplomatic flights — flight types that make the whole order exempt with a dedicated VAT code
- Airside goods — a separate exemption code for goods (vs services) delivered airside
- Out-of-scope (non-EU) businesses — a dedicated exemption code for business customers outside the EU
- Debtor-only checking — optionally ignore the "use operator settings" mechanism
Read the AOC VAT calculator article first — AOC validity criteria and the general concept are the same; this article focuses on what the 2025 version adds and changes.
When Does the Calculator Run?
The calculator logic only runs when the debtor's Charge VAT setting is Controlled by calculator (or via operator settings). By default the setting ForceDebtorSettingsOnly=true makes the calculator always validate the debtor's AOC, even when the debtor is configured to use operator settings.
Order-Level Logic
-
Flight type check — using the configured flight type groups and
AocVatFlightTypeCheck(ArrivalOnly / DepartureOnly / Both):- Private flight → VAT from product. Info: "The flight is Private. AOC does not apply"
- Government flight → all order lines receive the dedicated government VAT code. Info: "The flight is Governmental. VAT exemption applies"
-
AOC validation — if the flight is neither private nor governmental:
- Valid AOC and aircraft not excluded → Airside Exempt. Info: "[Contact] has valid AOC"
- Aircraft excluded from AOC → VAT from product. Info: "Aircraft excluded from AOC"
- Invalid/expired/missing AOC → VAT from product, with warnings ("AOC number of [contact] is unknown…", "…has no AOC expiration date…", "…has an expired AOC…")
- When not exempt, the info message also shows: "Customer country for VAT purposes is [ISO code]"
Note on the "Both" setting: unlike the original AOC calculator, the flight counts as private/governmental when either the arrival or the departure flight type matches (the original required both legs to be present and checked both).
Per-Service VAT Code Selection
Each product's Is Airside Product flag and its VAT category for reversed purposes (Goods / Services) drive the code selection:
| Situation | VAT Code Applied |
|---|---|
| Government flight (any product) | The government VAT code (tagged via custom property, see Configuration) |
| Landside goods | Product's own VAT code |
| Airside service, valid AOC, not private | Administration's VAT code for air-side service VAT exemptions |
| Airside goods, valid AOC, not private | Administration's airside goods exempt VAT code (separate code for goods) |
| Service (no AOC exemption), local customer (country for VAT = administration country) | Product's own VAT code |
| Service (no AOC exemption), EU business customer (valid VAT number, EU country) | EC reversed VAT code |
| Service (no AOC exemption), out-of-scope business (non-EU country + VAT number) | Administration's VAT code for the non-EU-business exemption |
| Anything else | Product's own VAT code |
EC Reversed VAT changes
- EC reversed VAT additionally requires the customer's country to be an EU member (the original calculator allowed any foreign country configured for reversed purposes)
- EC reversed VAT is never applied on government flights
Configuration
Calculator Settings (VAT Rule Group)
| Setting | Default | Description |
|---|---|---|
ForceChargeVatOnAirsideServicesForFlightTypes |
(not set) | Flight Type Price Category with the "private" flight types |
GovernmentFlightsGroup |
(not set) | Flight Type Price Category with the governmental/diplomatic flight types |
AocVatFlightTypeCheck |
ArrivalOnly | Which leg(s) to check: ArrivalOnly, DepartureOnly, Both (either leg matching counts) |
ForceDebtorSettingsOnly |
true | Always validate the debtor's AOC and country, ignoring "Validate AOC from operator" configurations |
GovernmentVatCodeCustomProperty |
(not set) | Name of the custom property that tags the government VAT code. The VAT code must carry this property with value Yes; if no code matches, the calculator fails with a configuration error. |
Administration VAT Codes
| Setting | Purpose |
|---|---|
| VAT code for air-side service VAT exemptions | 0% code for airside services under a valid AOC |
| Airside goods exempt VAT code | 0% code for airside goods under a valid AOC |
| EC reversed VAT code(s) | For EU business customers without AOC exemption |
| VAT code for non-EU business exemption | For out-of-scope business customers |
Product Settings
- Is Airside Product — airside vs landside
- VAT category for reversed purposes — Goods vs Services; this now also selects between the two airside exemption codes
Contact Settings
- Standard AOC fields (AOC Number, Expiration Date, Has AOC)
- Country for VAT purposes and VAT Number — drive the local / EU-reversed / out-of-scope classification
Example Scenarios
Scenario 1: Airline with valid AOC, commercial flight
- Airside services → airside service exempt code; airside goods (e.g. de-icing fluid) → airside goods exempt code; landside services → depends on the customer (see below); landside goods → product VAT
Scenario 2: EU business customer without valid AOC
- All services (airside and landside) → EC reversed VAT code; goods → product VAT
- Info: "Customer country for VAT purposes is DEU"
Scenario 3: US (non-EU) business customer without AOC
- Services → non-EU business exemption code; goods → product VAT
Scenario 4: Private flight
- Flight type in the private group → no AOC exemption; codes follow the service rules for the customer type
- Info: "The flight is Private. AOC does not apply"
Scenario 5: Governmental flight
- Flight type in the government group → every order line gets the government VAT code, EC reversed VAT suppressed
- Info: "The flight is Governmental. VAT exemption applies"
Differences vs the Original AOC VAT Calculator
| Feature | AOC VAT calculator | AOC-based VAT 2025 |
|---|---|---|
| Government/diplomatic flights | Not supported | Dedicated flight type group + VAT code |
| Airside goods | Same code as services | Separate airside goods exempt code |
| Non-EU businesses | Standard EC reversed rules | Dedicated out-of-scope exemption code; EC reversal restricted to EU members |
| Contact checked | Debtor or operator per debtor settings | Debtor only by default (ForceDebtorSettingsOnly) |
| "Both" flight type check | Requires both legs present; both must be non-private | Either leg matching counts |
Important Notes
- Local customers keep product VAT on services even without an AOC — the out-of-scope and reversed logic only applies to foreign customers.
- Government flights are exempt for everyone — the customer's AOC and country are irrelevant on a governmental flight.
- The government VAT code must be tagged with the configured custom property (value "Yes") before enabling the setting, otherwise the calculator fails to initialise.
- Product Goods/Services categorisation matters more than before — it selects between two different airside exemption codes and controls the landside-goods behaviour.
Comments
0 comments
Please sign in to leave a comment.