Trace a UBL invoice line from its group identifier through the quantity, item, price and net amount, then compare those values with the confirmed source supply. Do not read repeated local names in isolation. Their parent contexts establish which line and role they describe.
The UBL preparation workflow reviews this relationship before relying on a final exporter. The current creator provides editable application lines but no UBL generator, formal line-identifier mapping or standards validator.
Start with one source supply
Choose a fictional line whose description, quantity, unit and price basis are clear. Keep the accepted calculation and any adjustment evidence in the test record. A vague service label makes it harder to distinguish a mapping mistake from an ambiguous source.
OpenPeppol’s published UBL line binding shows a related group including line identity, quantity, net amount, item information and price details. This is a profile-specific structure, not a list of features already implemented by the creator.
Record the source line and intended target context. Do not assume screen position is a stable external identifier. Adding or removing rows changes positions without creating a formal order-line relationship.
Read quantity and unit together
Inspect the actual invoiced quantity and the target’s unit representation. A number alone does not explain what is measured. Three hours and three packages must not become indistinguishable because an adapter copied only the numeric value.
Confirm any code mapping from the source label to the required target list. The creator’s unit field is editable text, not a verified code selector. A plausible abbreviation is not evidence of correct list membership or commercial meaning.
Use the unit and price-base review when the source basis is more complex. A quoted price per hundred items needs deliberate handling rather than being copied as a per-item rate.
Trace item and price facts
Keep the item description and any required typed identifiers attached to the intended line. A product code written in a description remains text unless the adapter implements a confirmed typed mapping. Do not infer the identifier’s role from its appearance.
Inspect the price group and base relationship against the agreed charge. The current app has no separate price-base quantity and supports two-decimal prices. A final mapper cannot recover a higher-precision original rate that was removed before export.
Do not alter the supplied quantity to compensate for an unsupported price. A matching net amount can conceal a changed commercial statement. Preserve the accepted basis and use suitable final software where the model requires it.
Check adjustments and net amount
Establish whether a reduction is already included in price or represented as a separate allowance. Applying it twice changes the charge. Keep the adjustment level and reason clear before comparing the target line net amount.
The creator supports percentage line discounts under its documented rounding sequence. It does not implement every UBL adjustment or financial relationship. A target requiring unsupported features needs additional source facts and a real final implementation.
Review intermediate values as well as the final line contribution. Two lines can have the same net amount after different calculations, so an amount-only test cannot establish that each price, quantity and adjustment role was preserved.
Add a second distinguishable line
Use another fictional supply with a different unit, quantity and price. Trace its target group separately and check that the mapper did not exchange facts across lines. A test using identical rows is too weak to reveal that error.
Change only one source quantity and regenerate the target. Confirm that the intended line and related totals change while the other line remains consistent. This tests revision behaviour and grouping, not just first-time generation.
Remove one line in a controlled test and inspect references and aggregate amounts. A correct output should follow the implemented rules without retaining stale group content or silently reassigning an external reference to another supply.
Retain the complete review evidence
Keep the input record, mapping rules, generated file and required validation configuration together. A screenshot of the visible invoice cannot establish the structured line content, and a schema result cannot establish every source fact.
If the final profile needs line periods, order-line references or other unsupported components, record the gap explicitly. A date or identifier embedded in prose is not automatically the corresponding typed field.
The current JSON, CSV and printable output support source preparation. Formal UBL line conformance, tax correctness and recipient acceptance require the appropriate implemented workflow and evidence. The useful trace shows where each confirmed fact went and which remaining requirements still need completion, rather than merely proving that an XML file contains recognisable words and a familiar total.
For a revision test, keep the expected source-line relationships in a small table before generation. After adding a third fictional supply, check every existing target line as well as the new one. A mapper that rebuilds identifiers or references incorrectly can alter earlier rows while the grand total still recalculates. The test should therefore compare stable intended relationships, not only line count and sum. Preserve the actual before-and-after files so a failure can be reproduced.