Fixture ID: badUnit · XPath: /ubl:Invoice/cac:InvoiceLine[1]/cbc:InvoicedQuantity/@unitCode
Line 1 has a unit of measure code (BT-130) of "hours", which is not in UN/ECE Recommendation 20 (with the Rec 21 extension). The unit is a code, not a word: "hours", "Stk", "each" and "pcs" are all rejected, and so is a valid code in the wrong case.
BR-CL-23Set line.unitCode to "HUR" (Rec 20: "hour"), which is what "hours" stands for. resolveUnitCode() in this package does the same for the common English, German and French unit words, so a unit your system stores as a word can be converted before it reaches the invoice.
"quantity": 10, "unitCode": "HUR"