Read UBL tax totals and document monetary totals as different groups with different amount roles. A tax total, tax-inclusive invoice value and amount due are not interchangeable numbers. Even when two happen to match in a simple invoice, their meanings and required relationships remain distinct.

The UBL preparation workflow confirms those roles before relying on an exporter. The current creator implements its documented line calculation and summed amounts, not every formal UBL financial field or target-profile relationship.

Locate the tax information

OpenPeppol’s published UBL binding uses TaxTotal and related subtotal structures for specified tax information. The breakdown can distinguish categories, rates and reasons. A summed application tax value does not automatically implement that complete representation.

Trace each group to the confirmed treatment and contributing source amounts. Do not assign a line to another category merely to remove a cent difference. Tax determination and arithmetic investigation need separate evidence.

The creator records manual categories and rates but does not decide the treatment or produce every coded explanation and grouped structure the target may need. Preserve missing facts in the preparation record for the final system.

Locate document monetary totals

LegalMonetaryTotal in the published binding contains several distinct totals, including line net sum, amounts excluding and including tax, and payable amount. Read each target definition instead of mapping the source’s generic total into every field.

A simple invoice without extra adjustments may make some amounts equal. That equality is not evidence that the fields are redundant. A later allowance, payment or rounding requirement can reveal a mapping that was only accidentally correct.

Use line tracing to verify the source contributions before inspecting document sums. A total can add correctly while a line contains the wrong price basis or quantity. Structural review cannot establish the commercial inputs by itself.

Preserve adjustments at their level

Document allowances and charges affect the target model according to its rules. They are not the same as line discounts, and a prior payment has a settlement role rather than a price-reduction role. Preserve the accepted basis and required representation.

The current creator lacks document-level adjustments, prepaid reconciliation and a payable-rounding field. Do not imitate those features by changing unit prices, adding unsupported negative rows or placing a deduction in notes.

If the final workflow needs those structures, use software that genuinely implements them. A matching final balance does not justify a changed commercial statement or prove the intermediate relationships are correct.

Review currencies and precision

The invoice currency and any required tax accounting currency have different roles. Confirm the actual target context and calculation basis. The creator has no separate tax-currency model or exchange-rate conversion.

Keep decimal precision and rounding policy visible in the source-to-target record. The app sums rounded line values under its documented sequence. A final profile may require specific grouped relationships beyond that model.

When values differ, locate the first divergent input or intermediate amount. Lost source precision, different grouping and different rounding stages are distinct causes. Do not treat every small mismatch as permission to alter a tax rate or classification.

Use a meaningful reconciliation test

Create a fictional invoice with two distinguishable lines and record expected net and tax values under the final model. Trace those into the actual target groups. Do not approve the mapping only because the final amount looks familiar.

Add a supported allowance or paid-amount case in the final system where that is the feature being tested. Confirm that tax-inclusive value and amount due remain different roles. If the proposed source cannot supply the necessary facts, require a clear gap report.

Use a negative case with an inconsistent amount relationship and inspect the applicable business-rule response. A basic XML parse does not establish that monetary rules were tested. Preserve the exact rule-set context with the result.

Review the final representation

Compare readable and structured amounts against the same confirmed source record. A correct page does not prove every target field is right, and a validator does not determine every real-world tax or payment fact.

After edits, regenerate and retest the exact final version. Earlier reports and downloaded files retain their earlier scope. Keep the intended delivered output clear alongside supporting evidence.

The creator’s current JSON, CSV and printable output help preparation within their scope. They do not provide formal UBL tax/monetary mapping, legal validity or acceptance. A reliable final workflow preserves each amount’s meaning, implements the required relationships and reports evidence of the checks actually performed.

A monetary-role test should include one fictional case where tax-inclusive value and payable amount differ under the final system’s supported model. Record why they differ and the expected intermediate values. A mapping that copies one generic total into every field can look correct on an invoice without adjustments and fail this case. Keep the required source facts explicit; the current creator cannot supply a complete paid-amount model by adding a sentence to notes.

Record the expected distinction between the sale value and settlement balance before generating or comparing the target amounts.