@getpeppr/cli 0.8.2 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,30 @@ All notable changes to `@getpeppr/cli` are documented here.
4
4
 
5
5
  The CLI bundles `@getpeppr/sdk` into its published artifact (tsup `noExternal`), so `validate`, `convert` and `init` run the SDK's validators, country rules and UBL builder locally — an SDK release only reaches CLI users once the CLI is rebundled. Rebundle-only releases are listed with the SDK version they ship.
6
6
 
7
+ ## [0.8.4] — 2026-08-22
8
+
9
+ `getpeppr init` now scaffolds an invoice that a fresh sandbox account can send:
10
+ the SPF Economie test receiver plus out-of-scope `O/0` lines. The previous
11
+ template targeted the correct receiver but still carried VAT-bearing and
12
+ reverse-charge lines, so a new sender with no VAT identifier received 422.
13
+
14
+ Every generated `O` line includes the builder-only exemption reason required by
15
+ the SDK's local validator. The quick `getpeppr send --to …` payload remains on
16
+ the same contract. This release bundles SDK 4.7.0.
17
+
18
+ ## [0.8.3] — 2026-08-21
19
+
20
+ Rebundles `@getpeppr/sdk` **4.6.0** (was 4.5.0), so `getpeppr validate` and
21
+ `getpeppr convert` understand exempt VAT breakdowns instead of accepting XML
22
+ that the Peppol rulebook rejects. Category `O` omits the VAT rate; `E`, `AE`,
23
+ `G`, `O`, and `K` require an exemption reason; `S` and `Z` never render one.
24
+
25
+ The built-in `getpeppr send` sandbox payload now supplies its category `O`
26
+ reason so the stricter local pre-validation does not stop the command before
27
+ the network call. The field is builder-only and is stripped from the JSON
28
+ request; Storecove continues to derive its own provider-specific exemption
29
+ text on the send path (GPR-1068).
30
+
7
31
  ## [0.8.2] — 2026-08-21
8
32
 
9
33
  **`getpeppr lookup` accepts both spellings of a scheme** (GPR-1116). A Peppol
package/README.md CHANGED
@@ -241,7 +241,7 @@ Scaffolding (`init`), validation, and conversion run fully offline — no API ke
241
241
 
242
242
  ## Invoice format
243
243
 
244
- The input file must be a JSON object matching the getpeppr `InvoiceInput` type. `number`, `to`, and `lines` are required for API sends. The `from` party is included in the scaffold because offline validation and UBL conversion need seller metadata; API sends use the legal entity linked to your key.
244
+ The input file must be a JSON object matching the getpeppr `InvoiceInput` type. `number`, `to`, and `lines` are required for API sends. The `from` party is included in the scaffold because offline validation and UBL conversion need seller metadata; API sends use the legal entity linked to your key. The generated file is an integration fixture: a fresh sandbox sender has no VAT identifier, so every line uses category `O` at rate `0`.
245
245
 
246
246
  ```json
247
247
  {
@@ -271,14 +271,17 @@ The input file must be a JSON object matching the getpeppr `InvoiceInput` type.
271
271
  "description": "Conseil en transformation numérique",
272
272
  "quantity": 10,
273
273
  "unitPrice": 950,
274
- "vatRate": 21
274
+ "vatRate": 0,
275
+ "vatCategory": "O",
276
+ "taxExemptReason": "Integration test"
275
277
  },
276
278
  {
277
279
  "description": "Software license — annual subscription",
278
280
  "quantity": 1,
279
281
  "unitPrice": 2400,
280
282
  "vatRate": 0,
281
- "vatCategory": "AE"
283
+ "vatCategory": "O",
284
+ "taxExemptReason": "Integration test"
282
285
  }
283
286
  ],
284
287
  "paymentTerms": "Net 30 days",