Seller in Ireland, customer in France, electronically supplied service. Answers below are live responses from a working API, not written from memory.
Charge FR VAT at 20% (customer's country) and report via the One-Stop Shop (OSS).
Charge FR VAT at 20% (customer's country) and report via the One-Stop Shop (OSS).
For digital goods sold to EU consumers the place of supply is where the customer belongs, so the customer's national rate applies and it is reported through the One-Stop Shop. Applying the seller's own rate is the single most common mistake in hand-rolled checkouts.
B2C electronically supplied services taxed where the customer belongs (Art. 58); reported via OSS.
| Case | Charge VAT? | Rate | Mechanism |
|---|---|---|---|
| Consumer (B2C) | Yes | 20% | standard |
| Business with VAT ID (B2B) | Yes | 20% | standard |
| Standard digital rate in France | 20% (VAT) | ||
curl "https://checkout-tax-api.pages.dev/decide?seller_country=IE&buyer_country=FR&product_type=digital"
Free, no key. A valid VAT number in buyer_vat_id flips it to reverse charge.
The decision above — place of supply, reverse charge, out of scope, and the invoice wording for each — is about 30 branches once you cover the EU, UK, US, Canada and Australia. It also ships as a one-time $49 self-host kit, which is off sale for the moment — a packaging fault broke its install step, and rather than take money for something that fails on the first command I have pulled the buy link until the corrected build is listed. Email craniusmaximusllc@gmail.com if you want it now and I will send it. The hosted API is free either way.