Skip to content
Back to News
Changelog

CLI 0.7.1 — the corrected rule identifiers finally reach getpeppr validate

clipeppolbugfix

If you use getpeppr validate, this one is worth taking.

What was wrong

Four rule identifiers reported by validate pointed at the wrong rule. They were not invented — BR-S-01, BR-S-06 and BR-S-08 all exist in the Peppol rulebook — which is exactly what made them worse than a typo. You could look one up, read a genuine rule, and find it had nothing to do with your document.

validate reported It now reports What the check actually verifies
BR-S-01 BR-S-05 standard-rated line must carry a VAT rate above zero
BR-S-05 BR-Z-05 zero-rated line must carry a rate of exactly zero
BR-S-06 BR-E-05 VAT-exempt line must carry a rate of exactly zero
BR-S-08 BR-AE-05 reverse-charge line must carry a rate of exactly zero

The checks themselves were always right. A zero-rated line carrying 21 % was always caught — it was simply reported under a label that sent you to the wrong page of the rulebook.

Concretely, on a Z line with vatRate: 21:

✗ lines[0].vatRate — Line 0: zero-rated (Z) requires vatRate = 0, got 21. (BR-Z-05)

0.7.0 printed the same message ending in (BR-S-05).

⚠️ If you branch on any of these identifiers in a pipeline, they change with this version.

Why the CLI lagged behind the SDK

This was fixed in @getpeppr/sdk@4.1.0 earlier today. CLI users receive it only now, and the reason is structural: the CLI bundles the SDK into its published artifact rather than importing it at runtime. validate, convert and init all run the SDK's validators locally, so an SDK fix reaches CLI users only when the CLI is rebundled.

Nothing signals that gap on its own — no test fails, no dependency resolves differently, the build is green. We caught it by reading the SDK version embedded inside the published CLI tarball, which is now a step in our release checklist rather than something we remember to do.

Also in this release

SDK 4.1.1 rides along, correcting the inline documentation on importFile(): raw import does not preserve your document byte for byte, and the SDK said it did. Details in the SDK 4.1.1 note.

Upgrading

npm install -g @getpeppr/cli@0.7.1

No command signatures changed, no flags added or removed.