Newchaining_hash leaves the documentation
BeeL
Get StartedMulti-NIFVeriFactuStripeAPI ReferenceChangelog

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.


ChangelogFixed

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