# An OSS line keeps the destination country's VAT

Our OSS examples set `percentage: 0`, which drops the destination VAT from the breakdown. The API never required it. Check your `regime_key: "17"` lines.

Sep 17, 2026 · Fixed

This is a documentation fix, not an API change: nothing about the server's behaviour changed today. But the guides were telling you to build the wrong payload, so a line issued by following them came out wrong.

We said an OSS line had to carry `exemption_reason: NO_SUJETA_LOCALIZACION` and `main_tax.percentage: 0`, and that the API rejected the line without that reason. Neither was true. Worse, an exemption reason forces the rate to 0 %, so the destination country's VAT disappeared from the breakdown — the cookbook example billed 480 € to a German customer with 0 € of VAT instead of 91,20 €.

## What else changed

- **Leave `exemption_reason` unset on OSS lines.** `regime_key: "17"` is what classifies the operation as N2; that has always been enough. Adding a reason forces the rate to 0 % and costs you the destination VAT in the breakdown.
- **Keep the destination rate on the line.** The regime widens the accepted rates beyond the Spanish menu, so 19 % (Germany) or 22 % (Italy) are valid on a `"17"` line and would be rejected anywhere else.
- **Two rows in the cross-field table had the sign flipped.** `regime_key: "02"` without `EXENTA_ART_21` is not "allowed but unusual" — it is rejected with `REGIME_REQUIRES_INCOMPATIBLE_EXEMPTION`. And `"17"` without an exemption reason is accepted, not rejected.
- **What to do.** If you built your OSS flow from these pages, look at any invoice issued with `regime_key: "17"`: a 0 % line means the destination VAT was never charged, and that is a fiscal correction, not a display one.

## Where to go next

- [Regime keys — OSS / IOSS](/verifactu/regime-keys)
- [International customers — B2C above the OSS threshold](/verifactu/international-customers)

---

Full OpenAPI spec: https://docs.beel.es/api/openapi