Payment EU VAT
Applies destination-based EU VAT to payment fees (for example an invoice or card surcharge). A payment fee charged to the buyer is an incidental expense of the supply (Art. 78(b) VAT Directive: "incidental expenses, such as commission, packing, transport and insurance costs, charged by the supplier to the customer") and not a separate exempt payment service: the Court of Justice holds that a charge for paying in a particular way is part of the consideration for the main supply (C-276/09 Everything Everywhere).
Registration
import { pluginRegistry } from '@unchainedshop/core';
import { PaymentEuTaxPlugin } from '@unchainedshop/plugins/pricing/payment-eu-tax';
pluginRegistry.register(PaymentEuTaxPlugin);
Or register all EU tax adapters (product, delivery and payment) via the country preset:
import { registerEuTaxPlugins } from '@unchainedshop/plugins/presets/countries/eu';
registerEuTaxPlugins();
How It Works
- Resolves the destination country like Product EU VAT (delivery address → billing address → order or request country)
- Determines the tax category from the payment provider's
eu-tax-categoryconfiguration entry, falling back to the destination country's standard rate - Resolves the rate valid at order time from the bundled per-country era tables, extracts it from gross fees and adds it to net fees
Payment fees of goods delivered outside of the EU stay untaxed, like the goods. The fee follows the rate of the main supply: a shop that only sells goods at a reduced rate sets that category on its payment providers; for orders mixing rates, the fee has to be split by the share of each rate, which needs a custom adapter.
Rate data and category semantics are shared with the Product EU VAT adapter (bundled eu-tax-rates.json, era-based, EC-verified).
Configuration
mutation ConfigurePaymentProvider {
updatePaymentProvider(
paymentProviderId: "provider-id"
paymentProvider: {
configuration: [
{ key: "eu-tax-category", value: "reduced" }
]
}
) {
_id
}
}
Adapter Details
| Property | Value |
|---|---|
| Key | shop.unchained.pricing.payment-eu-tax |
| Version | 1.0.0 |
| Order Index | 80 |
| Source | pricing/payment-eu-tax/adapter.ts |
Related
- Product EU VAT - EU VAT for products
- Delivery EU VAT - EU VAT for delivery fees
- Payment Swiss Tax - Swiss VAT for payment fees