/ubl:Invoice
Invoice
| Context ID | INV0001 |
| Cardinality | 1..1 |
| Usage | - |
Description
A document used to request payment.
VRBL is a general datamodel for an invoice based on UBL2.4 and Peppol PINT, that can be used as base for specializations that are used in various jurisdictions.
The Polish KSeF System uses a specific inhouse invoice format based on XML, which is called e-invoice FA. The currently supported version is FA(3).
Child elements
| Cardinality | Usage | Description | Element |
|---|---|---|---|
| 0..1 | M | Extensions Group | cec:UBLExtensions |
| 0..1 | M |
Customization ID
Identifies a user-defined customization of UBL for a specific use. |
cbc:CustomizationID |
| 0..1 | M |
Profile ID
Identifies a user-defined profile of the customization of UBL being used. |
cbc:ProfileID |
| 0..1 | O |
Unique Unit ID
A universally unique identifier for an instance of this document. |
cbc:UUID |
| 1..1 | M |
Document Number
An identifier for this document, assigned by the sender. |
cbc:ID |
| 1..1 | M |
Issue Date
The date, assigned by the sender, on which this document was issued. |
cbc:IssueDate |
| 0..1 | O |
Due Date
The date on which Invoice is due. |
cbc:DueDate |
| 0..1 | M |
Invoice Type Code
A code signifying the type of the Invoice. |
cbc:InvoiceTypeCode |
| 0..n | O |
Document Note
Free-form text pertinent to this document, conveying information that is not contained explicitly in other structures. |
cbc:Note |
| 0..1 | M |
Document Currency Code
A code signifying the default currency for this document. |
cbc:DocumentCurrencyCode |
| 0..1 | O |
Tax Currency Code
A code signifying the currency used for tax amounts in the Invoice. |
cbc:TaxCurrencyCode |
| 0..n | O |
Invoice Period Group
A period to which the Invoice applies. |
cac:InvoicePeriod |
| 0..1 | O |
Order Reference Group
A reference to the Order with which this Invoice is associated. |
cac:OrderReference |
| 0..n | O* |
Billing Reference Group
A reference to a billing document associated with this document. |
cac:BillingReference |
| 0..n | O |
Dispatch Document Reference Group
A reference to a Despatch Advice associated with this document. |
cac:DespatchDocumentReference |
| 0..n | O |
Contract Document Reference Group
A reference to a contract associated with this document. |
cac:ContractDocumentReference |
| 0..n | M |
Additional Document Reference Group
A reference to an additional document associated with this document. |
cac:AdditionalDocumentReference |
| 0..n | - |
Additional Document Reference
A reference to an additional document associated with this document. |
cac:AdditionalDocumentReference[not(cac:Attachment)] |
| 1..1 | M |
Seller Group
The accounting supplier party. |
cac:AccountingSupplierParty |
| 0..1 | M |
Buyer Group
The accounting customer party. |
cac:AccountingCustomerParty |
| 0..n | O |
Delivery Group
A delivery associated with this document. |
cac:Delivery |
| 0..1 | - |
Delivery Terms Group
A set of delivery terms associated with this document. |
cac:DeliveryTerms |
| 0..n | O |
Payment Means Group
Expected means of payment. |
cac:PaymentMeans |
| 0..n | O* |
Payment Terms Group
A set of payment terms associated with this document. |
cac:PaymentTerms |
| 0..n | O |
Prepaid Payment Group
A prepaid payment. |
cac:PrepaidPayment |
| 0..n | - |
Allowance Charge Group
A discount or charge that applies to a price component. |
cac:AllowanceCharge |
| 0..n | O* |
Allowance Group
A discount or charge that applies to a price component. |
cac:AllowanceCharge[string(cbc:ChargeIndicator) = 'false'] |
| 0..n | O* |
Charge Group
A discount or charge that applies to a price component. |
cac:AllowanceCharge[string(cbc:ChargeIndicator) = 'true'] |
| 0..1 | O |
Tax Exchange Rate
The exchange rate between the document currency and the tax currency. |
cac:TaxExchangeRate |
| 0..n | M |
Invoice Tax
The total amount of a specific type of tax. |
cac:TaxTotal[cbc:TaxAmount/@currencyID = ../cbc:DocumentCurrencyCode] |
| 0..n | O |
Accounting Tax
The total amount of a specific type of tax. |
cac:TaxTotal[cbc:TaxAmount/@currencyID = ../cbc:TaxCurrencyCode] |
| 1..1 | M |
Legal Monetary Total Group
The total amount payable on the Invoice, including Allowances, Charges, and Taxes. |
cac:LegalMonetaryTotal |
| 1..n | M+ |
Invoice Line Group
A line describing an invoice item. |
cac:InvoiceLine |
Details
vrbl-invoice-pl-b2b-3p0
Content
- Mandate
- Official Specifications
- How to issue invoices for specific scenarios
- How to issue a Correction Invoice
Mandate
The Polish government introduced the National e-Invoicing System (KSeF) to facilitate electronic invoicing and ensure real-time reporting of transactions. The e-Invoicing model approach that Poland has chosen is a centralized model. - KSeF will act as a centralized portal for both sending and receiving electronic invoices.
Timeline
- February 1, 2026: Mandatory adoption for large taxpayers (annual turnover exceeding PLN 200 million).
- April 1, 2026: Full implementation for all remaining taxpayers.
The KSeF Platform
-
While e-invoices must be transmitted via KSeF, recipients must consent to receive them in this format. If consent is not granted, the issuer is still required to submit the invoice to KSeF but must also deliver a copy through an alternative method, such as email (PDF) or a printed document via regular mail.
-
The platform follows a credential-based model, meaning only registered users with authorization can access the system. Once authenticated, users can view, issue, receive, and download invoices in a structured format. Taxpayers have the option to grant third-party access, allowing authorized representatives to manage invoices on their behalf.
-
Businesses can either create invoices directly within the KSeF platform using predefined templates or generate them within their own ERP/accounting system before submitting them to KSeF. Option 2 follows standard automatic process i.e. receive data/map/validate/communicate with KSeF.
-
Once submitted, the invoice undergoes automatic validation and a unique KSeF ID number is assigned to every invoice, confirming its authenticity.
-
All invoices processed through KSeF are archived for 10 years, allowing businesses to retrieve them as needed. The platform provides a secure and centralized repository for this archiving functionality.
The Polish FA(3) format is very extensive and covers a wide range of business scenarios some of the less used and edge cases are only supported on demand. In case any of these invoice scenarios apply, do reach out to us. Here a short overview:
- Party Correspondence Addresses
- Supply of goods or provision of services exempt from tax under Article 43 sec. 1, Article 113 sec. 1 and 9 or provisions issued pursuant to Article 82 sec. 3 or pursuant to other provisions (P_19)
- Intra-Community supply of new means of transport (NoweSrodkiTransportu)
- Supply of goods or provision of services taxed under the margin scheme referred to in Article 119 or Article 120 (P_PMarzy)
- Support for the EU OSS procedure (Section XII in Chapter 6a) (P_12_XII)
- Support for excise duty provision (Pursuant to Art. 10 sec. 12 of 6 December 2008 on excise duty) (KwotaAkcyzy)
- Support for designation of the procedure concerning the supply of goods and services (Procedura)
- Advance and Final Invoices and their corrections (ZAL, ROZ, KOR_ZAL, KOR_ROZ)
Official Specifications
How to issue invoices for specific scenarios
In Poland KSeF FA(3) you can find following common invoice scenarios.
- Domestic Invoice in Foreign Currency
- Invoice for Intra-community Supply of Goods
- Export Invoice
- Advance Invoice
- Final Invoice
Domestic Invoice in Foreign Currency
- Include the Document Currency code
cbc:DocumentCurrencyCodewhich must contain the code of the foreign currency, while the local Polish currency must be provided as Tax Currency code incbc:TaxCurrencyCode. - A second Tax Breakdown
cac:TaxTotalgroup is required to provide the Tax Amount for each breakdown in the Tax Currencycbc:TaxCurrencyCode. - On line level the Price Exchange Rate is required and must be provided in the
cac:PricingExchangeRategroup.
Example:
<ubl:Invoice>
<!-- code omitted for clarity -->
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>PLN</cbc:TaxCurrencyCode>
<!-- code omitted for clarity -->
<cac:TaxTotal>
<!-- 1st Tax Breakdown in Document Currency -->
<cbc:TaxAmount currencyID="EUR">3118.8</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">13560</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">3118.8</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>VRBL:PL:01</cbc:ID>
<cbc:Percent>23</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:TaxTotal>
<!-- 2nd Tax Breakdown in Tax Currency -->
<cbc:TaxAmount currencyID="PLN">14036.16</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxAmount currencyID="PLN">14036.16</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>VRBL:PL:01</cbc:ID>
<cbc:Percent>23</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<!-- code omitted for clarity -->
<cac:InvoiceLine>
<!-- code omitted for clarity -->
<cac:Price>
<!-- Code omitted for clarity -->
<cec:UBLExtensions>
<cec:UBLExtension>
<cec:ExtensionContent>
<vrbl:PriceExtension>
<!-- Item Gross Price -->
<vrbl:PriceAmountBeforeAllowanceCharge currencyID="PLN">1000.00</vrbl:PriceAmountBeforeAllowanceCharge>
</vrbl:PriceExtension>
</cec:ExtensionContent>
</cec:UBLExtension>
</cec:UBLExtensions>
<cbc:PriceAmount currencyID="EUR">1000.00</cbc:PriceAmount>
<cac:PricingExchangeRate>
<cbc:SourceCurrencyCode>EUR</cbc:SourceCurrencyCode>
<cbc:TargetCurrencyCode>PLN</cbc:TargetCurrencyCode>
<cbc:CalculationRate>4.5005</cbc:CalculationRate>
</cac:PricingExchangeRate>
</cac:Price>
<!-- code omitted for clarity -->
</cac:InvoiceLine>
</ubl:Invoice>
Invoice for Intra-community Supply of Goods
- Include the Document Currency code
cbc:DocumentCurrencyCodewhich must contain the code of the foreign currency, while the local Polish currency must be provided as Tax Currency code incbc:TaxCurrencyCode. - Provide the EU VAT ID of the Buyer
cac:PartyTaxScheme/cbc:CompanyID - A second Tax Breakdown
cac:TaxTotalgroup is required to provide the Tax Amount for each breakdown in the Tax Currencycbc:TaxCurrencyCode. In case the Total TaxAmount is zero no breakdown is required, but still can be provided. - On line level provide
cac:TaxExemptionCode=VRBL:PL:WDTand zero as Tax Ratecbc:Percent.
Example:
<ubl:Invoice>
<!-- code omitted for clarity -->
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>PLN</cbc:TaxCurrencyCode>
<!-- code omitted for clarity -->
<cac:AccountingCustomerParty>
<cac:Party>
<cac:PartyTaxScheme>
<cbc:CompanyID>DE999999999</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:TaxTotal>
<!-- TaxTotal in Document Currency -->
<cbc:TaxAmount currencyID="EUR">3118.8</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">13560</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">3118.8</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>VRBL:PL:06.02</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:TaxTotal>
<!-- TaxTotal in Tax Currency -->
<cbc:TaxAmount currencyID="PLN">0</cbc:TaxAmount>
</cac:TaxTotal>
<!-- code omitted for clarity -->
<cac:InvoiceLine>
<!-- code omitted for clarity -->
<cac:Item>
<cbc:Name>lodówka Zimnotech mk1</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>VRBL:PL:06.02</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReasonCode>VRBL:PL:WDT</cbc:TaxExemptionReasonCode>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<!-- code omitted for clarity -->
<cac:Price>
<!-- Code omitted for clarity -->
<cbc:PriceAmount currencyID="EUR">1000.00</cbc:PriceAmount>
</cac:Price>
<!-- code omitted for clarity -->
</cac:InvoiceLine>
</ubl:Invoice>
Export Invoice
- Include the Document Currency code
cbc:DocumentCurrencyCodewhich must contain the code of the foreign currency, while the local Polish currency must be provided as Tax Currency code incbc:TaxCurrencyCode. - Provide the Tax Identification Number of the Buyer
cac:PartyTaxScheme/cbc:CompanyID - A second Tax Breakdown
cac:TaxTotalgroup is required to provide the Tax Amount for each breakdown in the Tax Currencycbc:TaxCurrencyCode. In case the Total TaxAmount is zero no breakdown is required, but still can be provided. - On line level provide
cac:TaxExemptionCode=VRBL:PL:EXand zero as Tax Ratecbc:Percent.
Example:
<ubl:Invoice>
<!-- code omitted for clarity -->
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>PLN</cbc:TaxCurrencyCode>
<!-- code omitted for clarity -->
<cac:AccountingCustomerParty>
<cac:Party>
<cac:PartyTaxScheme>
<cbc:CompanyID>DE999999999</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:TaxTotal>
<!-- TaxTotal in Document Currency -->
<cbc:TaxAmount currencyID="USD">3118.8</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="USD">13560</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="USD">3118.8</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>VRBL:PL:06.03</cbc:ID>
<cbc:Percent>23</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:TaxTotal>
<!-- TaxTotal in Tax Currency -->
<cbc:TaxAmount currencyID="PLN">0</cbc:TaxAmount>
</cac:TaxTotal>
<!-- code omitted for clarity -->
<cac:InvoiceLine>
<!-- code omitted for clarity -->
<cac:Item>
<cbc:Name>lodówka Zimnotech mk1</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>VRBL:PL:06.03</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReasonCode>VRBL:PL:EX</cbc:TaxExemptionReasonCode>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<!-- code omitted for clarity -->
<cac:Price>
<!-- Code omitted for clarity -->
<cbc:PriceAmount currencyID="EUR">1000.00</cbc:PriceAmount>
</cac:Price>
<!-- code omitted for clarity -->
</cac:InvoiceLine>
</ubl:Invoice>
Advance Invoice
The advance invoice is used to document or request advance payments related to an order or contract. Basically it contains the lines and the total amount from the order or contract and the amount to be paid in advance.
It has the following specifics:
- Use Invoice Type Code
cbc:InvoiceTypeCode=386to indicate that it is an advance invoice. - In the Document Totals section provide:
- The Amount to be paid
cbc:PayableAmount - The Tax Inclusive Amount
cbc:TaxInclusiveAmount(Usually the same as the Payable Amount). - The value of the related order or contract including tax amount in the
vrbl:OrderTotalAmountextension.
- The Amount to be paid
- Provide the Tax breakdown
cac:TaxTotalgroup, which shows the breakdown for the Payable Amount. - The Invoice Lines
cac:InvoiceLineare a representation of the lines from the order or contract and must contain:- all item specifics
cac:Item - The Price group
cac:Price - The Invoice Line Net Amount
cbc:LineExtensionAmount - Tax Rate
cac:ClassifiedTaxCategory/cbc:Percent - Tax Amount
cac:TaxTotal/cbc:TaxAmount
- all item specifics
Example:
<ubl:Invoice>
<!-- code omitted for clarity -->
<cbc:InvoiceTypeCode>386</cbc:InvoiceTypeCode>
<!-- code omitted for clarity -->
<!-- Tax Breakdown -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PLN">3739.84</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="PLN">16260.16</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="PLN">3739.84</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>VRBL:PL:01</cbc:ID>
<cbc:Percent>23</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent>
<vrbl:LegalMonetaryTotalExtension>
<!-- Order Total Amount -->
<vrbl:OrderTotalAmount currencyID="PLN">369000</vrbl:OrderTotalAmount>
</vrbl:LegalMonetaryTotalExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Amount to be paid -->
<cbc:TaxInclusiveAmount currencyID="PLN">20000</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="PLN">20000</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<!-- Order Lines with Item specifics, etc. -->
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:UUID>aaaa111133339990</cbc:UUID>
<cbc:InvoicedQuantity unitCode="H87">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="PLN">300000</cbc:LineExtensionAmount>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PLN">69000</cbc:TaxAmount>
</cac:TaxTotal>
<cac:Item>
<cbc:Name>mieszkanie 50m^2</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:Percent>23</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="PLN">300000</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
<!-- ... -->
</ubl:Invoice>
Final Invoice
The Final Invoice is used to settle the Advance Invocie. It takes in consideration all possible corrections of the Advance Invoice (in case there have been any).
It has the following specifics:
* Provide the Invoice Type Code cbc:InvoiceTypeCode = VRBL:PL:ROZ.
* Refer to the Advance Invoice in the Billing Reference Group cac:BillingReference.
* In the Document Totals section provide:
* The Prepaid Amount cbc:PrepaidAmount with the up-to-date Paid Amount (optional).
* The Tax Inclusive Amount cbc:TaxInclusiveAmount shows the difference between the already Prepaid Amounts cbc:PrepaidAmount and the total order value from the Advance Invoice or the subsequent corrections.
* The Payable Amount cbc:PayableAmount represents the outstanding balance required to clear this invoice.
* Provide the Tax Breakdown cac:TaxSubtotal of the final Amount to be paid.
Example of document level: This is correction snippet is based on the Advance Invoice example snippet.
<ubl:Invoice>
<!-- Code omitted for clarity -->
<cbc:InvoiceTypeCode>VRBL:PL:ROZ</cbc:InvoiceTypeCode>
<!-- Code omitted for clarity -->
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<!-- Syntactically required -->
<cbc:ID>NA</cbc:ID>
<cbc:UUID>9999999999-20230908-8BEF280C8D35-4D</cbc:UUID>
</cac:InvoiceDocumentReference>
</cac:BillingReference>
<!-- Code omitted for clarity -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PLN">65260.16</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="PLN">283739.84</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="PLN">943.04</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>VRBL:PL:01</cbc:ID>
<cbc:Percent>23</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:TaxInclusiveAmount currencyID="PLN">349000</cbc:TaxInclusiveAmount>
<cbc:PrepaidAmount currencyID="PLN">20000</cbc:PrepaidAmount>
<cbc:PayableAmount currencyID="PLN">349000</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<!-- Code omitted for clarity -->
</ubl:Invoice>
Example snippets of the lines for Final Invoice:
* Provide the lines from the Advance Invoice. Taking in consideration all possible corrections of the Advance Invoice (in case there have been any).
* The Tax Amount on Line Level is optional for the Final Invoice cac:TaxTotal/cbc:TaxAmount (omitted in the snippet).
<!-- First Line -->
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- Code omitted for clarity -->
<cbc:InvoicedQuantity unitCode="H87">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="PLN">300000</cbc:LineExtensionAmount>
<!-- Code omitted for clarity -->
<cac:Item>
<cbc:Name>mieszkanie 50m^2</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:Percent>23</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<!-- Code omitted for clarity -->
<cbc:PriceAmount currencyID="PLN">300000</cbc:PriceAmount>
</cac:Price>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
How to issue a Correction Invoice
In Poland KSeF FA(3) there are multiple invoice correction scenarios.
- Correction of transactional data in an Invoice
- Correction of party master data in an Invoice
- Collective Correction Invoice
Correction of transactional data in an invoice
This correction type applies to correction of amounts, prices, quantities and taxes.
Use the Invoice Type Code 384 to indicate the correction.
Additionally provide:
* The corresponding correction type in Invoice Subtype Code vrbl:InvoiceSubtypeCode = VRBL:PL:KOR
* Refer to the Original Invoice cac:BillingReference
* Correction Method vrbl:CorrectionMethod and Reason vrbl:CorrectionReason
Example:
<ubl:Invoice>
<!-- Code omitted for clarity -->
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent>
<vrbl:InvoiceExtension>
<vrbl:InvoiceSubtypeCode>VRBL:PL:KOR</vrbl:InvoiceSubtypeCode>
</vrbl:InvoiceExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
<cbc:InvoiceTypeCode>384</cbc:InvoiceTypeCode>
<!-- Code omitted for clarity -->
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<cec:UBLExtensions>
<cec:UBLExtension>
<cec:ExtensionContent>
<vrbl:InvoiceDocumentReferenceExtension>
<vrbl:CorrectionData>
<!-- Correction Type/Method -->
<vrbl:CorrectionMethod>VRBL:PL:3</vrbl:CorrectionMethod>
<!-- Correction Reason -->
<vrbl:CorrectionReason>Price reduction of 200 zł due to minor damage.</vrbl:CorrectionReason>
</vrbl:CorrectionData>
</vrbl:InvoiceDocumentReferenceExtension>
</cec:ExtensionContent>
</cec:UBLExtension>
</cec:UBLExtensions>
<!-- Original Invoice Number -->
<cbc:ID>INV12345_Buyer-PL-NIP_01</cbc:ID>
<!-- Original Invoice KSeF Number -->
<cbc:UUID>9999999999-20230908-8BEF280C8D35-4D</cbc:UUID>
<!-- Original Invoice Date -->
<cbc:IssueDate>2025-03-20</cbc:IssueDate>
</cac:InvoiceDocumentReference>
</cac:BillingReference>
<!-- At least one Invoice Line -->
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
</ubl:Invoice>
There are three methods to correct the invoice:
1. Provide original and corrected line
The Correction Invoice includes the original incorrect line that needs correction, and the corrected line containing the updated amounts, prices, and quantities.
The invoice total on document level reflects the difference between the original and corrected invoice.
In order to indicate an original line. The Original Line Indicator vrbl:OriginalLineIndicator must be used.
Example:
In the original invoice in position 1 an Item Price Net cbc:PriceAmount to be corrected: 1626.01 PLN was provided.
All the other positions contained correct prices.
The Correction Reason was indicated in the vrbl:CorrectionReason element: Price reduction of 200 zł due to minor damage.
The correct Item Price Net cbc:PriceAmount is 1463.41 PLN and must be corrected.
Therefore the example contains two invoice lines: the original line and the corrected line.
<ubl:Invoice>
<!-- Code omitted for clarity -->
<cac:TaxTotal>
<!-- Negative amounts because corrected price is lower -->
<cbc:TaxAmount currencyID="PLN">-37.4</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="PLN">-162.6</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="PLN">-37.4</cbc:TaxAmount>
<!-- Code omitted for clarity -->
</cac:TaxSubtotal>
</cac:TaxTotal>
<ext:UBLExtensions>
<ext:UBLExtension>
<ExtensionContent>
<vrbl:LegalMonetaryTotalExtension>
<!-- Negative amounts because corrected price is lower -->
<vrbl:TotalInvoiceAmount currencyID="PLN">-200</vrbl:TotalInvoiceAmount>
</vrbl:LegalMonetaryTotalExtension>
</ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Negative amounts because corrected price is lower -->
<cbc:LineExtensionAmount currencyID="PLN">-162.6</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="PLN">-162.6</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="PLN">-200</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="PLN">-200</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<!-- ORIGINAL (wrong) Invoice Line -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent>
<vrbl:InvoiceLineExtension>
<!-- Indicates the original line -->
<vrbl:OriginalLineIndicator>true</vrbl:OriginalLineIndicator>
</vrbl:InvoiceLineExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:ID>1</cbc:ID>
<cbc:UUID>aaaa111133339990</cbc:UUID>
<cbc:InvoicedQuantity unitCode="H87">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="PLN">1626.01</cbc:LineExtensionAmount>
<!-- Code omitted for clarity -->
<cac:Price>
<!-- Wrong Item Price Net -->
<cbc:PriceAmount currencyID="PLN">1626.01</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
<!-- CORRECTED Invoice Line -->
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:UUID>aaaa111133339990</cbc:UUID>
<cbc:InvoicedQuantity unitCode="H87">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="PLN">1463.41</cbc:LineExtensionAmount>
<!-- Code omitted for clarity -->
<cac:Price>
<!-- Corrected Item Price Net -->
<cbc:PriceAmount currencyID="PLN">1463.41</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
</ubl:Invoice>
2. Provide one delta line
In this case the Correction Invoice line only displays the differences in amounts, prices, and quantities between the original incorrect data and the corrected data. Negative values indicate prices that were initially too high or goods that were returned. Positive values indicate prices that were initially too low. Instead of two lines, the original one and the corrected one, only one delta line is provided.
Example:
In the original invoice in position 1 an Item Price Net cbc:PriceAmount to be corrected: 1626.01 PLN was provided.
All the other positions contained correct prices.
The Correction Reason was indicated in the vrbl:CorrectionReason element: Price reduction of 200 zł due to minor damage.
The correct Item Price Net cbc:PriceAmount is 1463.41 PLN and must be corrected.
Therefore the example contains two invoice lines: the original line and the corrected line.
<ubl:Invoice>
<!-- Code omitted for clarity -->
<cac:TaxTotal>
<!-- Negative amounts because corrected price is lower -->
<cbc:TaxAmount currencyID="PLN">-37.4</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="PLN">-162.6</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="PLN">-37.4</cbc:TaxAmount>
<!-- Code omitted for clarity -->
</cac:TaxSubtotal>
</cac:TaxTotal>
<ext:UBLExtensions>
<ext:UBLExtension>
<ExtensionContent>
<vrbl:LegalMonetaryTotalExtension>
<!-- Negative amounts because corrected price is lower -->
<vrbl:TotalInvoiceAmount currencyID="PLN">-200</vrbl:TotalInvoiceAmount>
</vrbl:LegalMonetaryTotalExtension>
</ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Negative amounts because corrected price is lower -->
<cbc:LineExtensionAmount currencyID="PLN">-162.6</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="PLN">-162.6</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="PLN">-200</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="PLN">-200</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<!-- DELTA Invoice Line -->
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:UUID>aaaa111133339990</cbc:UUID>
<cbc:InvoicedQuantity unitCode="H87">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="PLN">-162.6</cbc:LineExtensionAmount>
<!-- Code omitted for clarity -->
<cac:Price>
<!-- DELTA Invoice Line between original and corrected line -->
<cbc:PriceAmount currencyID="PLN">-162.6</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
</ubl:Invoice>
3. Provide Original Line (negated) and Corrected line
The Correction Invoice includes two versions of the same line item: the original incorrect line showing negated amounts, prices, and quantities that need correction, and the corrected line containing the updated amounts, prices, and quantities. The invoice total reflects the difference between the original and corrected invoice. In order to indicate an original line. The Original Line Indicator must be used.
Example:
In the original invoice in position 1 an Item Price Net cbc:PriceAmount to be corrected: 1626.01 PLN was provided.
All the other positions contained correct prices.
The Correction Reason was indicated in the vrbl:CorrectionReason element: Price reduction of 200 zł due to minor damage.
The correct Item Price Net cbc:PriceAmount is 1463.41 PLN and must be corrected.
Therefore the example contains two invoice lines: the original line and the corrected line.
<ubl:Invoice>
<!-- Code omitted for clarity -->
<cac:TaxTotal>
<!-- Negative amounts because corrected price is lower -->
<cbc:TaxAmount currencyID="PLN">-37.4</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="PLN">-162.6</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="PLN">-37.4</cbc:TaxAmount>
<!-- Code omitted for clarity -->
</cac:TaxSubtotal>
</cac:TaxTotal>
<ext:UBLExtensions>
<ext:UBLExtension>
<ExtensionContent>
<vrbl:LegalMonetaryTotalExtension>
<!-- Negative amounts because corrected price is lower -->
<vrbl:TotalInvoiceAmount currencyID="PLN">-200</vrbl:TotalInvoiceAmount>
</vrbl:LegalMonetaryTotalExtension>
</ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Negative amounts because corrected price is lower -->
<cbc:LineExtensionAmount currencyID="PLN">-162.6</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="PLN">-162.6</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="PLN">-200</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="PLN">-200</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<!-- ORIGINAL wrong negated Invoice Line -->
<!-- without Original Invoice Line Indicator -->
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:UUID>aaaa111133339990</cbc:UUID>
<cbc:InvoicedQuantity unitCode="H87">-1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="PLN">-1626.01</cbc:LineExtensionAmount>
<!-- Code omitted for clarity -->
<cac:Price>
<!-- Wrong Item Price Net -->
<cbc:PriceAmount currencyID="PLN">1626.01</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
<!-- CORRECTED Invoice Line -->
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:UUID>aaaa111133339990</cbc:UUID>
<cbc:InvoicedQuantity unitCode="H87">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="PLN">1463.41</cbc:LineExtensionAmount>
<!-- Code omitted for clarity -->
<cac:Price>
<!-- Corrected Item Price Net -->
<cbc:PriceAmount currencyID="PLN">1463.41</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
</ubl:Invoice>
Correction of party master data in an invoice
This correction type applies to corrections of party master data.
Use the Invoice Type Code 384 to indicate the correction.
Additionally provide:
* The corresponding correction type in Invoice Subtype Code vrbl:InvoiceSubtypeCode = VRBL:PL:KOR
* Refer to the Original Invoice cac:BillingReference
* Correction Method vrbl:CorrectionMethod and Reason vrbl:CorrectionReason
* In order to correct wrong party data provide the corrected data in the corresponding party group:
* for Seller data: cac:AccountingSupplierParty
* for Buyer data: cac:AccountingCustomerParty
* for other Parties: vrbl:AdditionalParty.
* Still the original wrong party data must be provided in the Correction Data Extension of the Preceding Invoice Reference section.
* The Correction Invoices do not contain any tax totals and the syntactically required document totals contains zero values.
* Additionally an empty Invoice Line cac:InvoiceLine must be contained. This is required by the UBL 2.4 Syntax.
Example snippet correcting a wrong buyer name from the original invoice. * Wrong: CDE sp. j. * Correct: CeDeE s.c.
<ubl:Invoice>
<!-- Code omitted for clarity -->
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent>
<vrbl:InvoiceExtension>
<vrbl:InvoiceSubtypeCode>VRBL:PL:KOR</vrbl:InvoiceSubtypeCode>
</vrbl:InvoiceExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
<cbc:InvoiceTypeCode>384</cbc:InvoiceTypeCode>
<!-- Code omitted for clarity -->
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<cec:UBLExtensions>
<cec:UBLExtension>
<cec:ExtensionContent>
<vrbl:InvoiceDocumentReferenceExtension>
<vrbl:CorrectionData>
<vrbl:BeforeCorrection>
<!-- Original Party Data before correction -->
<cac:AccountingCustomerParty>
<cbc:AdditionalAccountID schemeID="VRBL:PL:PurchaserID">0001</cbc:AdditionalAccountID>
<cac:Party>
<!-- Code omitted for clarity -->
<PostalAddress>
<AddressLine>
<cbc:Line>ul. Sadowa 1 lok. 3</cbc:Line>
</AddressLine>
<AddressLine>
<cbc:Line>00-002 Kraków</cbc:Line>
</AddressLine>
<Country>
<cbc:IdentificationCode>PL</cbc:IdentificationCode>
</Country>
</PostalAddress>
<!-- Code omitted for clarity -->
<PartyLegalEntity>
<!-- Wrong Buyer Name -->
<cbc:RegistrationName>CDE sp. j.</cbc:RegistrationName>
</PartyLegalEntity>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingCustomerParty>
</vrbl:BeforeCorrection>
<!-- Correction Type/Method -->
<vrbl:CorrectionMethod>VRBL:PL:1</vrbl:CorrectionMethod>
<!-- Correction Reason -->
<vrbl:CorrectionReason>Incorrect buyer name.</vrbl:CorrectionReason>
</vrbl:CorrectionData>
</vrbl:InvoiceDocumentReferenceExtension>
</cec:ExtensionContent>
</cec:UBLExtension>
</cec:UBLExtensions>
<!-- Original Invoice Number -->
<cbc:ID>FV2026/02/150</cbc:ID>
<!-- Original Invoice KSeF Number -->
<cbc:UUID>9999999999-20230908-8BEF280C8D35-4D</cbc:UUID>
<!-- Original Invoice Date -->
<cbc:IssueDate>2025-03-20</cbc:IssueDate>
</cac:InvoiceDocumentReference>
</cac:BillingReference>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty>
<cbc:AdditionalAccountID schemeID="VRBL:PL:PurchaserID">0001</cbc:AdditionalAccountID>
<cac:Party>
<!-- Code omitted for clarity -->
<cac:PostalAddress>
<cac:AddressLine>
<cbc:Line>ul. Sadowa 1 lok. 3</cbc:Line>
</cac:AddressLine>
<cac:AddressLine>
<cbc:Line>00-002 Kraków</cbc:Line>
</cac:AddressLine>
<cac:Country>
<cbc:IdentificationCode>PL</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<!-- Code omitted for clarity -->
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<!-- Corrected Buyer Name -->
<cbc:RegistrationName>CeDeE s.c.</cbc:RegistrationName>
</cac:PartyLegalEntity>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingCustomerParty>
<cac:LegalMonetaryTotal>
<!-- Document totals contain zero values -->
<cbc:LineExtensionAmount currencyID="PLN">0</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="PLN">0</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="PLN">0</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="PLN">0</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<!-- Syntactically required empty Invoice Line -->
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:LineExtensionAmount currencyID="PLN">0</cbc:LineExtensionAmount>
<cac:Item/>
</cac:InvoiceLine>
</ubl:Invoice>
Collective Correction Invoice
This correction type is called Collective Correction Invoice and is used to retroactively apply a discount to already issued invoices.
Use the Invoice Type Code 384 to indicate the correction.
Additionally provide:
* The corresponding correction type in Invoice Subtype Code vrbl:InvoiceSubtypeCode = VRBL:PL:KOR
* Refer to each original Invoice in its own cac:BillingReference group.
* Provide the all the referenced original invoices in its own Preceding Invoice Reference group cac:BillingReference/cac:InvoiceDocumentReference. They must adhere to the group specific requirements with exception of the Correction Data Extension. This is used on the document level.
* Since the Correction Data Extension refers to all original invoices it is used on the document level as child of the Invoice Extension /ubl:Invoice//vrbl:InvoiceExtension. Provide:
* Correction Method vrbl:CorrectionMethod
* Correction Reason vrbl:CorrectionReason
* The Invoice Period Description element vrbl:InvoicePeriodDescription (optional)
* Document totals contain:
* The Total Invoice Amount vrbl:TotalInvoiceAmount
* The Tax Exclusive Amount cbc:TaxExclusiveAmount
* The Tax Inclusive Amount cbc:TaxInclusiveAmount
* The Payable Amount cbc:PayableAmount
* The tax breakdown of the Collective Correction Discount Amount.
* Add an empty Invoice Line cac:InvoiceLine. This is required by the UBL 2.4 Syntax.
Example snippet of retroactively providing an overall discount of 50 000 PLN over certain invoice period and list of impacted invoices.
<ubl:Invoice>
<!-- Code omitted for clarity -->
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent>
<vrbl:InvoiceExtension>
<vrbl:CorrectionData>
<vrbl:CorrectionMethod>VRBL:PL:2</vrbl:CorrectionMethod>
<vrbl:CorrectionReason>A discount of 50,000 due to the purchase volume.</vrbl:CorrectionReason>
<!-- Free-text period description -->
<vrbl:InvoicePeriodDescription>First half of 2026</vrbl:InvoicePeriodDescription>
</vrbl:CorrectionData>
<vrbl:InvoiceSubtypeCode>VRBL:PL:KOR</vrbl:InvoiceSubtypeCode>
<!-- Code omitted for clarity -->
</vrbl:InvoiceExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:InvoiceTypeCode>384</cbc:InvoiceTypeCode>
<!-- Code omitted for clarity -->
<!-- n billing references -->
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<cbc:ID>FV2026/01/134</cbc:ID>
<cbc:UUID>9999999999-20230908-8BEF280C8D35-4D</cbc:UUID>
<cbc:IssueDate>2026-01-15</cbc:IssueDate>
</cac:InvoiceDocumentReference>
</cac:BillingReference>
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<cbc:ID>FV2026/02/150</cbc:ID>
<cbc:UUID>9999999999-20230908-76B2B580D4DC-80</cbc:UUID>
<cbc:IssueDate>2026-02-15</cbc:IssueDate>
</cac:InvoiceDocumentReference>
</cac:BillingReference>
<!-- ... -->
<!-- Code omitted for clarity -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PLN">-9349.59</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="PLN">-40650.41</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="PLN">-9349.59</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>VRBL:PL:01</cbc:ID>
<cbc:Percent>23</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent>
<vrbl:LegalMonetaryTotalExtension>
<!-- Collective Correction Discount Amount -->
<vrbl:TotalInvoiceAmount currencyID="PLN">-50000</vrbl:TotalInvoiceAmount>
</vrbl:LegalMonetaryTotalExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:TaxExclusiveAmount currencyID="PLN">-40650.41</cbc:TaxExclusiveAmount>
<!-- Collective Correction Discount Amount -->
<cbc:TaxInclusiveAmount currencyID="PLN">-50000</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="PLN">-50000</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<!-- Syntactically required empty Invoice Line -->
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:LineExtensionAmount currencyID="PLN">0</cbc:LineExtensionAmount>
<cac:Item/>
</cac:InvoiceLine>
</ubl:Invoice>
Rules
| Rule ID | Error Message |
|---|---|
| VRBL-INV-PL-B2B-3-68 | When the Document Currency Code is not PLN, the Tax Currency Code must exist within the Invoice. |
| VRBL-INV-PL-B2B-3-84 | The Invoice expects a maximum of one Invoice Document Reference Correction Method. In case of collective correction, please use Correction Method within Invoice Extension instead. |
| VRBL-INV-PL-B2B-3-85 | The Invoice expects a maximum of one Invoice Document Reference Correction Reason. In case of collective correction, please use Correction Reason within Invoice Extension instead. |
| VRBL-INV-PL-B2B-3-122 | An Invoice must contain at most one Tax Subtotal where the Tax Subtotal Category Exemption Reason Code starts with "P_19" or at most one Seller Tax Party Tax Scheme Extension Exemption Reason Code. |
| VRBL-INV-CORE-4 | The Customization ID must exist within the Invoice. |
| VRBL-INV-CORE-5 | The Profile ID must exist within the Invoice. |
| VRBL-INV-CORE-10 | The Invoice Type Code must exist within the Invoice. |
| VRBL-INV-CORE-13 | The Document Currency Code must exist within the Invoice. |
| VRBL-INV-CORE-26 | The Buyer Group must exist within the Invoice. |
| VRBL-INV-CORE-563 | The Tax Total Group is only allowed when using the currencies in Document Currency Code or Tax Currency Code. |
| VRBL-INV-CORE-36 | The Document Number must be provided in the Invoice. |
| VRBL-INV-CORE-39 | The Document Currency Code must be provided in the Invoice. |
| VRBL-INV-CORE-41 | The Invoice Tax Amount and the Accounting Tax Amount must all both positive, or all negative. |
| VRBL-INV-SYSTEM-1 | If there is a value for Document Number, the allowed maximum number of characters is 300. |
| VRBL-INV-SYSTEM-2 | If there is a value for Invoice Type Code, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-3 | If there is a value for Document Currency Code, the allowed maximum number of characters is 25. |
| VRBL-INV-SYSTEM-4 | If there is a value for Accounting Cost, the allowed maximum number of characters is 500. |
| VRBL-INV-SYSTEM-5 | If there is a value for Buyer Reference, the allowed maximum number of characters is 500. |
| VRBL-INV-SYSTEM-6 | If there is a value for Seller Party Name Group, the allowed maximum number of characters is 500. |
| VRBL-INV-SYSTEM-7 | If there is a value for %{probe}, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-8 | If there is a value for %{probe}, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-9 | If there is a value for Seller City Name, the allowed maximum number of characters is 200. |
| VRBL-INV-SYSTEM-10 | If there is a value for Seller Country Identification Code, the allowed maximum number of characters is 50. |
| VRBL-INV-SYSTEM-11 | If there is a value for Seller Postal Zone, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-12 | If there is a value for Seller Party Legal Entity Registration Name, the allowed maximum number of characters is 500. |
| VRBL-INV-SYSTEM-13 | If there is a value for Seller Contact Name, the allowed maximum number of characters is 500. |
| VRBL-INV-SYSTEM-14 | If there is a value for Seller Contact Telephone, the allowed maximum number of characters is 300. |
| VRBL-INV-SYSTEM-15 | If there is a value for Seller Contact Electronic Mail, the allowed maximum number of characters is 300. |
| VRBL-INV-SYSTEM-16 | If there is a value for Seller Endpoint ID, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-17 | If there is a value for Buyer Party Name Group, the allowed maximum number of characters is 500. |
| VRBL-INV-SYSTEM-18 | If there is a value for %{probe}, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-19 | If there is a value for %{probe}, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-20 | If there is a value for Buyer City Name, the allowed maximum number of characters is 200. |
| VRBL-INV-SYSTEM-21 | If there is a value for Buyer Country Identification Code, the allowed maximum number of characters is 50. |
| VRBL-INV-SYSTEM-22 | If there is a value for Buyer Postal Zone, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-23 | If there is a value for Buyer Party Legal Entity Registration Name, the allowed maximum number of characters is 500. |
| VRBL-INV-SYSTEM-24 | If there is a value for Buyer Contact Name, the allowed maximum number of characters is 500. |
| VRBL-INV-SYSTEM-25 | If there is a value for Buyer Contact Electronic Mail, the allowed maximum number of characters is 300. |
| VRBL-INV-SYSTEM-26 | If there is a value for Buyer Contact Telephone, the allowed maximum number of characters is 300. |
| VRBL-INV-SYSTEM-27 | If there is a value for Buyer Endpoint ID, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-28 | If there is a value for Buyer Customer Party Name Group, the allowed maximum number of characters is 500. |
| VRBL-INV-SYSTEM-29 | If there is a value for %{probe}, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-30 | If there is a value for %{probe}, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-31 | If there is a value for Buyer Customer Party City Name, the allowed maximum number of characters is 200. |
| VRBL-INV-SYSTEM-32 | If there is a value for Buyer Customer Party Country Identification Code, the allowed maximum number of characters is 50. |
| VRBL-INV-SYSTEM-33 | If there is a value for Buyer Customer Party Postal Zone, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-34 | If there is a value for Buyer Customer Party Legal Entity Registration Name, the allowed maximum number of characters is 500. |
| VRBL-INV-SYSTEM-35 | If there is a value for %{probe}, the allowed maximum number of characters is 500. |
| VRBL-INV-SYSTEM-36 | If there is a value for %{probe}, the allowed maximum number of characters is 300. |
| VRBL-INV-SYSTEM-37 | If there is a value for %{probe}, the allowed maximum number of characters is 300. |
| VRBL-INV-SYSTEM-38 | If there is a value for %{probe}, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-39 | If there is a value for Tax Subtotal Taxable Amount Currency ID, the allowed maximum number of characters is 25. |
| VRBL-INV-SYSTEM-40 | If there is a value for Total Tax Amount Currency Code, the allowed maximum number of characters is 25. |
| VRBL-INV-SYSTEM-41 | If there is a value for Tax Subtotal Category ID, the allowed maximum number of characters is 50. |
| VRBL-INV-SYSTEM-42 | If there is a value for Legal Monetary Total Line Extension Amount Currency ID, the allowed maximum number of characters is 25. |
| VRBL-INV-SYSTEM-43 | If there is a value for Legal Monetary Total Tax Exclusive Amount Currency ID, the allowed maximum number of characters is 25. |
| VRBL-INV-SYSTEM-44 | If there is a value for Legal Monetary Total Tax Inclusive Amount Currency ID, the allowed maximum number of characters is 25. |
| VRBL-INV-SYSTEM-45 | If there is a value for Legal Monetary Total Payable Amount Currency ID, the allowed maximum number of characters is 25. |
| VRBL-INV-SYSTEM-46 | If there is a value for Delivery Location City Name, the allowed maximum number of characters is 200. |
| VRBL-INV-SYSTEM-47 | If there is a value for Delivery Location Postal Zone, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-48 | If there is a value for Delivery Location Country Identification Code, the allowed maximum number of characters is 50. |
| VRBL-INV-SYSTEM-49 | If there is a value for Delivery Party Name Group, the allowed maximum number of characters is 500. |
| VRBL-INV-SYSTEM-50 | If there is a value for Payment Means Payment Means Code, the allowed maximum number of characters is 25. |
| VRBL-INV-SYSTEM-51 | If there is a value for Payee Financial Account ID, the allowed maximum number of characters is 100. |
| VRBL-INV-SYSTEM-52 | If there is a value for Payee Financial Account Name, the allowed maximum number of characters is 500. |
| VRBL-INV-SYSTEM-53 | If there is a value for Financial Institution Branch ID, the allowed maximum number of characters is 500. |
| VRBL-INV-SYSTEM-54 | If there is a value for Order Reference Number, the allowed maximum number of characters is 300. |
| VRBL-INV-SYSTEM-55 | If there is a value for Sales Order Reference Number, the allowed maximum number of characters is 300. |