Skip to content

Commit 8ce6442

Browse files
committed
20250414
1 parent fc1128a commit 8ce6442

File tree

3 files changed

+101
-3
lines changed

3 files changed

+101
-3
lines changed

docs/blog/2025/0411.rst

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
:date: 2025-04-11
2+
3+
======================
4+
Friday, April 11, 2025
5+
======================
6+
7+
8+
I made an XML file named "VKR-2025-33.xml", then POSTed
9+
it to https://api.ibanity.com/einvoicing/peppol/suppliers/249e6232-5d7d-4654-8547-c8b252309698/invoices?
10+
11+
And the response was {'id': '7031b2c6-acfa-450b-84ab-4ac557fd6f69', 'type':
12+
'peppolInvoice', 'attributes': {'createdAt': '2025-04-11T13:34:20.548Z',
13+
'status': 'created', 'technicalStatus': 'created'}, 'relationships':
14+
{'supplier': {'data': {'id': '249e6232-5d7d-4654-8547-c8b252309698', 'type':
15+
'supplier'}}}}
16+
17+
And then I request GET
18+
https://api.ibanity.com/einvoicing/peppol/suppliers/249e6232-5d7d-4654-8547-c8b252309698/invoices/e62dd6dc-b094-49b9-af02-8fd630171dab
19+
to see the status of the document.
20+
21+
And the response is {'data': {'id': 'e62dd6dc-b094-49b9-af02-8fd630171dab',
22+
'type': 'peppolInvoice', 'attributes': {'createdAt': '2025-04-11T12:53:53.702Z',
23+
'errors': [{'code': 'invalid-format', 'detail': 'Document format is not
24+
supported'}], 'status': 'invalid', 'technicalStatus': 'invalid'},
25+
'relationships': {'supplier': {'data': {'id':
26+
'249e6232-5d7d-4654-8547-c8b252309698', 'type': 'supplier'}}}}}
27+
28+
But AFAICS my XML file is valid according to
29+
https://ecosio.com/en/peppol-and-xml-document-validator/
30+
31+
What am I missing?

docs/blog/2025/0414.rst

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
:date: 2025-04-14
2+
3+
======================
4+
Monday, April 14, 2025
5+
======================
6+
7+
8+
For one of my demo invoices the `UBL validator <https://www.ubl.be/validator>`__
9+
says: [BR-Z-01]-An Invoice that contains an Invoice line (BG-25), a Document
10+
level allowance (BG-20) or a Document level charge (BG-21) where the VAT
11+
category code (BT-151, BT-95 or BT-102) is "Zero rated" shall contain in the VAT
12+
breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Zero
13+
rated".
14+
15+
And yes this invoice sells a bottle of gas with normal VAT rate, and the bottle
16+
itself without VAT (because the bottle is actually not sold, the customer gets
17+
this money back when he returns the empty bottle).
18+
19+
Does this mean that it's not allowed to issue invoices with a mixture of
20+
normal-vat and zero-vat?
21+
22+
To be exact, my example is even a bit more complex, it contains three different
23+
:term:`VAT categories <VAT category>` "normal", "reduced" and "exempt".
24+
25+
>>> from lino import startup
26+
>>> startup('lino_book.projects.cosi1.settings')
27+
>>> from lino.api.doctest import *
28+
29+
>>>
30+
31+
>>> obj = trading.VatProductInvoice.objects.get(pk=111)
32+
>>> print(obj)
33+
SLS 6/2014
34+
35+
>>> rt.show(trading.ItemsByInvoice, obj, language="en")
36+
==================== ================ ========== ======== ======== ============== ========
37+
Product Heading Discount Pr Qty TotExcl InvObj
38+
-------------------- ---------------- ---------- -------- -------- -------------- --------
39+
Book Book 29,90 10 299,00
40+
Stamp Stamp 1,40 8 11,20
41+
Wooden table Tisch aus Holz 199,99 4 799,96
42+
**Total (3 rows)** **22** **1 110,16**
43+
==================== ================ ========== ======== ======== ============== ========
44+
<BLANKLINE>
45+
46+
>>> rt.show(vat.MovementsByVoucher, obj, language="en")
47+
================== ==================== ============== ============== ================================= ================ =========
48+
Account Partner Debit Credit VAT class Match Cleared
49+
------------------ -------------------- -------------- -------------- --------------------------------- ---------------- ---------
50+
(7000) Sales 299,00 Goods at reduced VAT rate (12%) Yes
51+
(4510) VAT due 35,88 Goods at reduced VAT rate (12%) Yes
52+
(7000) Sales 11,20 Goods exempt from VAT Yes
53+
(7000) Sales 799,96 Services Yes
54+
(4510) VAT due 167,99 Services Yes
55+
(4000) Customers Garage Mergelsberg 1 314,03 **SLS 6/2014** Yes
56+
**1 314,03** **1 314,03**
57+
================== ==================== ============== ============== ================================= ================ =========
58+
<BLANKLINE>
59+
60+
61+
Later it told me "Specification identifier MUST have the value
62+
'urn:cen.eu:en16931:2017#conformant#urn:UBL.BE:1.0.0.20180214'."
63+
Aha. But what is a Specification identifier?
64+
https://docs.peppol.eu/edelivery/specs/reporting/tsr/trn-transaction_statistics/semantic-model/trbt-001/
65+
66+
67+
Error message: [BR-CL-17]-Invoice tax categories MUST be coded using UNCL5305 code list

docs/shared/include/tested.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
All **code snippets on this page** (lines starting with ``>>>``) are being
2-
:ref:`tested as part of our development workflow <tested_docs>`. The following
3-
snippet initializes a :term:`demo project` to use throughout this page.
1+
This page contains **code snippets** (lines starting with ``>>>``), which are
2+
being :ref:`tested <tested_docs>` during our development workflow. The following
3+
snippet initializes the :term:`demo project` used throughout this page.

0 commit comments

Comments
 (0)