A specification based on Universal Business Language (UBL) that enables the exchange of compliant business documents worldwide via our e-business platform Pagero Online.
1. Introduction
Pagero Universal Format, hereafter referred to as "PUF", is developed and maintained by Pagero Group.
PUF is based upon Universal Business Language Version 2.1 (UBL 2.1).
To align with new regulations and the business needs that comes with the growing use of electronic invoices throughout the world, the core idea of PUF is to enable its users to provide enough data to meet the requirements in these markets.
To be able to provide the broadest support possible, PUF has been designed with the following core basis in mind:
-
European standard EN 16931-1:2017
-
EN 16931-1:2017 complies with the European Directive on electronic invoicing for public authorities (EN 2014/55 / EU). It has been prepared by the Technical Committee TC434 at CEN by the European Commission.
-
-
Peppol BIS Billing 3.0 (OpenPeppol’s CIUS (Core Invoice Usage Specification) with EN16931 as the underlying specification).
-
Other CIUS’s based on the regulations of EN 16931-1:2017.
-
Extensions based on the regulations of EN 16931-1:2017.
-
Country specific information found in domestic formats in various legal domains.
Based on extensive analysis of the above, PUF has been designed to meet these country-, industry-, format- and/or system-specific requirements.
Another intention of PUF has been to create a flexible, extendable format which can be updated quickly to be able to meet the requirements of the fast-changing global electronic document landscape.
PUF is not to be considered a CIUS based on EN16931 or any other CIUS or format. PUF will, however, to a large extent try to follow the work done in EN16931, Peppol and other UBL based invoicing specifications.
If one can create a valid and syntactically correct EN16931 based UBL-format; the threshold for implementing PUF should be negligible.
1.1. Version and changelog
Version | Date | Description |
---|---|---|
2.0 |
2021-06-01 |
Second version published. |
1.0 |
2019-05-02 |
First version published. |
2. Guidelines
PUF was originally built to support information and content as described in PEPPOL BIS Billing 3.0 but also adding support for elements that where not present in Peppol BIS specification.
While PUF aim to fully support Peppol BIS it will not necessarily be restricted to the rules as stated in the Peppol BIS specification nor in the EN16931.
In areas where support for certain information is available in the existing UBL 2.1 structure, PUF implements these elements.
In other areas where there are no suitable elements in the existing UBL 2.1 schema, PUF implements UBLExtensions
.
Since UBLExtensions
are only available on document level in UBL 2.1, it had to be altered, adding the UBLExtension
in every aggregate thus replacing the UBL-CommonAggregateComponents-2.1.xsd
with the PUF altered PUF-CommonAggregateComponents-2.1.xsd
. The reason for this is that there would be too many semantic rules to tie each UBLExtension
on document level to their corresponding existing element on other levels.
2.1. How to get started
In the following chapters you can see which elements and what type of information that is supported in PUF.
In some cases you will also get longer snippets of code and implementation guidelines in order how to properly provide the data.
There is also a section with test files that can be useful when implementing PUF.
If your ERP system already can create Invoices and CreditNotes in Universal Business Language Version 2.1 (UBL 2.1) or if your ERP system can create a UBL based format or CIUS such as PEPPOL BIS Billing 3.0 you can easily use this as stepping stone when moving towards PUF.
2.1.1. Moving from other UBL formats to PUF
-
Download the PUF XML schemas.
-
Change namespaces (see chapter Namespaces).
-
Verify that your interpretation of the UBL elements mentioned in this specification are the same.
-
Change the Customization ID and Profile ID (see chapter Customization and Profile ID).
-
If elements from extensions are needed see chapter Working with extensions for details on how this is implemented.
-
Before implementing additional elements available in PUF, validate the document with the XSD schema downloaded in step 1 above.
In the XML schemas provided in chapter XML schemas you will see the structure and the occurrences of every element available in PUF. This specification will not include any cardinality from a schema perspective nor from what is required in a specific legal domain since this might differ depending on which specific country, region or business requirements you will have to comply with. In order to know what information is sufficient to provide you should first check what the requirements from a legal and business perspective and then refer to this specification on where to provide this information. Also note that the elements and their sequence order provided in specification is done with the Invoice document type.When using CreditNote please take note to use the separate XML schema provided for possible differences in element names or sequence order.
|
2.2. Namespaces
Target name space - Invoice:
-
urn:pagero:PageroUniversalFormat:Invoice:1:0
Example:
Invoice example for target namespace
<Invoice xmlns="urn:pagero:PageroUniversalFormat:Invoice:1.0">
<!-- Code omitted for clarity -->
</Invoice>
Target name space - CreditNote:
-
urn:pagero:PageroUniversalFormat:CreditNote:1:0
Example:
Credit note example for target namespace
<CreditNote xmlns="urn:pagero:PageroUniversalFormat:CreditNote:1.0">
<!-- Code omitted for clarity -->
</CreditNote>
CommonAggregateComponents - Invoice/CreditNote:
-
urn:pagero:CommonAggregateComponents:1.0
Example:
Invoice example for CommonAggregateComponents namespace
<Invoice xmlns:cac="urn:pagero:CommonAggregateComponents:1.0"> (1)
<!-- Code omitted for clarity -->
</Invoice>
1 | Note that the namespace is the same for CreditNote-root element. |
2.3. Customization and Profile ID
To indicate the correct PUF specification identifer and the profile identifier, the values in below table must be sent in cbc:CustomizationID
and cbc:ProfileID
.
Type | Element cbc:CustomizationID |
Element cbc:ProfileID |
---|---|---|
Invoice and credit note |
urn:pagero.com:puf:billing:2.0 |
urn:pagero.com:puf:billing:1.0 |
Example of CustomizationID and ProfileID:
<Invoice>
<!-- Code omitted for clarity -->
<cbc:CustomizationID>urn:pagero.com:puf:billing:2.0</cbc:CustomizationID>
<cbc:ProfileID>urn:pagero.com:puf:billing:1.0</cbc:ProfileID>
<!-- Code omitted for clarity -->
</Invoice>
2.4. Working with extensions
In order to facilitate the use of PUF specific extensions, a schema for the extensions is provided.
The PUF-ExtensionComponent.xsd
can be found together with the other schemas in chapter XML schemas.
This chapter provides an overview on how to use extensions.
To be able to use the PUF-ExtensionComponent
a namespace must be included in the document file.
Example
Example from Invoice
<Invoice ... xmlns:puf="urn:pagero:ExtensionComponent:1.0"> (1)
<!-- Code omitted for clarity -->
</Invoice>
1 | Note that the namespace is the same for CreditNote-root element. |
Depending on in which context the UBLExtensions
are used there are different options of what types of values you are able to provide.
To identify which context the UBLExtensions
is in the element ExtensionURI
is used.
When using these Pagero extensions, the URI has the same base:
-
urn:pagero:ExtensionComponent:1.0:PageroExtension
After the URI, the specific resource name is added.
Example
UBLExtension used in the Party structure.
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingSupplierParty>
<cac:Party>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:PartyExtension</ext:ExtensionURI>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingSupplierParty>
<!-- Code omitted for clarity -->
<Invoice>
For detailed examples and how to use possible values in each extension please check the chapters where the PUF-specific elements are described.
2.5. Pagero Online
This section outlines various scenarios and instances that illustrate how the logic used in Pagero Online is determined by the Pagero Universal Format.
2.5.1. Recipient matching
Pagero Online will route the documents using the recipients party identifiers in the following order, provided that there is a matching identifier in the Pagero Network.
-
cac:AccountingCustomerParty/cbc:SupplierAssignedAccountID
-
cac:AccountingCustomerParty/cac:Party/cbc:EndpointID
-
cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID
-
cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID
-
cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID
-
cac:AccountingCustomerParty/cac:AccountingContact/cbc:ElectronicMail
(requires e-mail distribution service)
If no recipient is found the document will either be distributed on paper via mail (requires print distribution service) or stopped with an error message in Pagero Online.
2.5.2. Language and appearance
It’s possible to specify language code for the system generated PDF presentation in Pagero Online, a segment for this is added as an Extension. Please see this section for more information.
2.6. Release management
PUF will continuously be updated to meet new market demands. In order to support backward compatibility, the XSD schema is built with the use of "other" elements.
The "other" elements in the XSD will prevent validation error for customers who do not frequently keep the XSD schema up-to-date.
2.6.1. Minor release
A minor release will always be backward compatible and will take place without prior notice and will be implemented whenever needed.
Minor releases may include bugfixes, new elements, schematron updates and other features. These releases can be followed on https://github.com/pagero/puf-billing.
2.6.2. Major release
A major release may include changes that are not backward compatible. Such a release will be notified at least three months prior to date of implementation, to users who registered an account on https://pagero.validex.net or on https://github.com/pagero/puf-billing.
To register for PUF major release notification you can create an account on https://pagero.validex.net. But we urge all interested parties to follow the project on https://github.com/pagero/puf-billing where all releases will be notified.
3. Syntax
The chapter is divided into two parts for easier navigation:
-
Invoice (specifies segments available on document level)
-
cac:InvoiceLine (specifies segments available on line level)
Note that most examples are only shown for document type Invoice. |
3.1. Invoice
Information in this section (3.1) describe the elements available on document level.
ext:UBLExtensions
Path | Description |
---|---|
|
Extension Content |
cbc:CustomizationID
Path | Description |
---|---|
|
Document specification identifier |
Example
cbc:CustomizationID populated with correct value
<Invoice>
<!-- Code omitted for clarity -->
<cbc:CustomizationID>urn:pagero.com:puf:billing:2.0</cbc:CustomizationID>
<!-- Code omitted for clarity -->
</Invoice>
cbc:ProfileID
Path | Description |
---|---|
|
Business process type |
Example
cbc:ProfileID populated with correct value
<Invoice>
<!-- Code omitted for clarity -->
<cbc:ProfileID>urn:pagero.com:puf:billing:1.0</cbc:ProfileID>
<!-- Code omitted for clarity -->
</Invoice>
cbc:ID
Path | Description |
---|---|
|
Invoice number |
Example
cbc:ID with example value
<Invoice>
<!-- Code omitted for clarity -->
<cbc:ID>51234882</cbc:ID>
<!-- Code omitted for clarity -->
</Invoice>
cbc:UUID
Path | Description |
---|---|
|
UUID |
Example
cbc:UUID with example value
<Invoice>
<!-- Code omitted for clarity -->
<cbc:UUID>eed38811-d0ea-42f4-8a98-12a7503d00d3</cbc:UUID>
<!-- Code omitted for clarity -->
</Invoice>
cbc:IssueDate
Path | Description |
---|---|
|
Issue date of invoice |
Example
cbc:IssueDate with example value
<Invoice>
<!-- Code omitted for clarity -->
<cbc:IssueDate>2021-01-30</cbc:IssueDate>
<!-- Code omitted for clarity -->
</Invoice>
cbc:IssueTime
Path | Description |
---|---|
|
The time, assigned by the sender, at which this document was issued. |
Example
cbc:IssueTime with example value
<Invoice>
<!-- Code omitted for clarity -->
<cbc:IssueTime>21:32:52</cbc:IssueTime>
<!-- Code omitted for clarity -->
</Invoice>
cbc:DueDate
Path | Description |
---|---|
|
Due date of invoice |
Example
cbc:DueDate with example value
<Invoice>
<!-- Code omitted for clarity -->
<cbc:DueDate>2021-02-28</cbc:DueDate>
<!-- Code omitted for clarity -->
</Invoice>
cbc:InvoiceTypeCode
Path | Description |
---|---|
|
Invoice type code |
|
Invoice type code name |
Example
cbc:InvoiceTypeCode populated with correct value
<Invoice>
<!-- Code omitted for clarity -->
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<!-- Code omitted for clarity -->
</Invoice>
cbc:Note
Path | Description |
---|---|
|
Note |
Example
cbc:Note example
<Invoice>
<!-- Code omitted for clarity -->
<cbc:Note>This</cbc:Note>
<cbc:Note>is a</cbc:Note>
<cbc:Note>free text example</cbc:Note>
<!-- Code omitted for clarity -->
</Invoice>
cbc:TaxPointDate
Path | Description |
---|---|
|
VAT point date |
Example
cbc:TaxPointDate with example value
<Invoice>
<!-- Code omitted for clarity -->
<cbc:TaxPointDate>2021-01-31</cbc:TaxPointDate>
<!-- Code omitted for clarity -->
</Invoice>
cbc:DocumentCurrencyCode
Path | Description |
---|---|
|
Document currency code |
Example
cbc:DocumentCurrencyCode populated with example value
<Invoice>
<!-- Code omitted for clarity -->
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<!-- Code omitted for clarity -->
</Invoice>
cbc:TaxCurrencyCode
Path | Description |
---|---|
|
Tax currency code |
Example
cbc:TaxCurrencyCode populated with example value
<Invoice>
<!-- Code omitted for clarity -->
<cbc:TaxCurrencyCode>USD</cbc:TaxCurrencyCode>
<!-- Code omitted for clarity -->
</Invoice>
cbc:AccountingCost
Path | Description |
---|---|
|
Accounting cost |
Example
cbc:AccountingCost populated with example value
<Invoice>
<!-- Code omitted for clarity -->
<cbc:AccountingCost>1111.22.456</cbc:AccountingCost>
<!-- Code omitted for clarity -->
</Invoice>
cbc:BuyerReference
Path | Description |
---|---|
|
Buyer Reference |
Example
cbc:BuyerReference populated with example value
<Invoice>
<!-- Code omitted for clarity -->
<cbc:BuyerReference>ASFF2222</cbc:BuyerReference>
<!-- Code omitted for clarity -->
</Invoice>
cac:InvoicePeriod
Path | Description |
---|---|
|
Invoicing period start date |
|
Invoicing period end date |
|
Invoicing period description |
Example
cac:InvoicePeriod with example values
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoicePeriod>
<cbc:StartDate>2021-01-01</cbc:StartDate>
<cbc:EndDate>2021-01-31</cbc:EndDate>
<cbc:Description>Description of invoice period</cbc:Description>
</cac:InvoicePeriod>
<!-- Code omitted for clarity -->
</Invoice>
cac:OrderReference
Below table show available fields in cac:OrderReference
, note that additional elements has also been added to the extension available in OrderReference.
Path | Description |
---|---|
|
Extension Content |
|
Purchase order reference |
|
Sales order reference |
|
Issue date |
Example
cbc:OrderReference example
<Invoice>
<!-- Code omitted for clarity -->
<cac:OrderReference>
<cbc:ID>PO123215</cbc:ID>
<cbc:SalesOrderID>SO1117782</cbc:SalesOrderID>
<cbc:IssueDate>2021-01-01</cbc:IssueDate>
</cac:OrderReference>
<!-- Code omitted for clarity -->
</Invoice>
cac:BillingReference
Below table show available fields in cac:BillingReference/cac:InvoiceDocumentReference
, note that additional elements has also been added to the extension available in BillingReference.
Path | Description |
---|---|
|
Extension Content |
|
Preceding invoice number |
|
Issue date |
Example
cbc:Note example
<Invoice>
<!-- Code omitted for clarity -->
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<cbc:ID>1144884</cbc:ID>
<cbc:IssueDate>2021-01-01</cbc:IssueDate>
</cac:InvoiceDocumentReference>
</<cac:BillingReference>
<!-- Code omitted for clarity -->
</Invoice>
cac:DespatchDocumentReference
Path | Description |
---|---|
|
Despatch advice reference |
|
Issue date |
Example
cac:DespatchDocumentReference example values
<Invoice>
<!-- Code omitted for clarity -->
<cac:DespatchDocumentReference>
<cbc:ID>1151555</cbc:ID>
<cbc:IssueDate>2021-01-01</cbc:IssueDate>
</cac:DespatchDocumentReference>
<!-- Code omitted for clarity -->
</Invoice>
cac:ReceiptDocumentReference
Path | Description |
---|---|
|
Receiving advice reference |
Example
cac:ReceiptDocumentReference example values
<Invoice>
<!-- Code omitted for clarity -->
<cac:ReceiptDocumentReference>
<cbc:ID>587345</cbc:ID>
</cac:ReceiptDocumentReference>
<!-- Code omitted for clarity -->
</Invoice>
cac:OriginatorDocumentReference
Path | Description |
---|---|
|
Tender reference identifier |
|
Issue date |
Example
cac:OriginatorDocumentReference example values
<Invoice>
<!-- Code omitted for clarity -->
<cac:OriginatorDocumentReference>
<cbc:ID>710654</cbc:ID>
<cbc:IssueDate>2021-01-01</cbc:IssueDate>
</cac:OriginatorDocumentReference>
<!-- Code omitted for clarity -->
</Invoice>
cac:ContractDocumentReference
Below table show available fields in cac:ContractDocumentReference
, note that additional elements has also been added to the extension available in ContractDocumentReference.
Path | Description |
---|---|
|
Extension Content |
|
Contract reference |
|
Issue date |
Example
cbc:ContractDocumentReference example
<Invoice>
<!-- Code omitted for clarity -->
<cac:ContractDocumentReference>
<cbc:ID>123215</cbc:ID>
<cbc:IssueDate>2021-01-01</cbc:IssueDate>
</cac:ContractDocumentReference>
<!-- Code omitted for clarity -->
</Invoice>
cac:AdditionalDocumentReference
In EN16931 based specifications, the cac:AdditionalDocumentReference
aggregate is used to reference a supporting document.
These can either be provided as a base64 encoded document embedded within the Invoice or CreditNote itself but can also reference an invoiced object by a document number or referencing an external document via a URL.
PUF supports this handling but also has additional support in order to provide invoice or credit notes image/presentation.
Applicable XPath | Description |
---|---|
|
Referenced document identifier |
|
Referenced document identifier scheme |
|
Referenced document issue date |
|
Referenced document type code |
|
Referenced document description |
|
Referenced document binary object |
|
Referenced document MIME code |
|
Referenced document filename |
|
Referenced document URL |
Invoice and credit note image/presentation
Providing an invoice presentation/image or credit note image/presentation is sometimes useful. This can be done in PUF as shown in the examples below.
If the value in cbc:DocumentDescription
is "Commercial Invoice" or "Credit Note" the attachment will be interpreted as a an invoice presentation/image otherwise the attachment will be interpreted as a miscellaneous or "other" type of document.
Example
Invoice with presentation (PDF-image)
<Invoice>
<!-- Code omitted for clarity -->
<cac:AdditionalDocumentReference>
<cbc:ID>123456</cbc:ID>
<cbc:DocumentDescription>Commercial Invoice</cbc:DocumentDescription> (1)
<cac:Attachment>
<cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf" filename="presentation.pdf">MvYmlsbGluZy...8zLjAvYmlzLw==</cbc:EmbeddedDocumentBinaryObject>
</cac:Attachment>
</cac:AdditionalDocumentReference>
<!-- Code omitted for clarity -->
</Invoice>
1 | If "Commercial Invoice" is stated in the cbc:DocumentDescription the attachment will be interpreted as a presentation. |
Example
Credit note with presentation (PDF-image)
<CreditNote>
<!-- Code omitted for clarity -->
<cac:AdditionalDocumentReference>
<cbc:ID>123456</cbc:ID>
<cbc:DocumentDescription>Credit Note</cbc:DocumentDescription> (1)
<cac:Attachment>
<cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf" filename="presentation.pdf">MvYmlsbGluZy...8zLjAvYmlzLw==</cbc:EmbeddedDocumentBinaryObject>
</cac:Attachment>
</cac:AdditionalDocumentReference>
<!-- Code omitted for clarity -->
</CreditNote>
1 | If "Credit Note" is stated in the Credit Note the attachment will be interpreted as a presentation. |
Invoiced object reference
If there is a need to reference a document/object number without providing a link to the location and without embedding it in the Invoice/CreditNote this can be done
in PUF within the cac:AdditionalDocumentReference
as shown in below example.
Note that it is possible to provide more than one invoiced object reference.
Example
Invoice with reference to an invoiced object with a document number
<Invoice>
<!-- Code omitted for clarity -->
<cac:AdditionalDocumentReference>
<cbc:ID schemeID="AIT">123456</cbc:ID> (1)
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>(2)
</cac:AdditionalDocumentReference>
<!-- Code omitted for clarity -->
</Invoice>
1 | The schemeID must be according to list PUF-005-INVOICEDOBJECTIDENTIFIER. |
2 | Document type code should be '130' to indicate invoiced object. |
cac:ProjectReference
The project reference is sent in an invoice in the element cac:ProjectReference/cbc:ID
. In a credit note, this element does not exist, and project reference is sent by using the element cac:AdditionalDocumentReference[cbc:DocumentTypeCode='50']/cbc:ID
.
Path | Description |
---|---|
|
Project reference |
Example
Project Reference for invoice example
<Invoice>
<!-- Code omitted for clarity -->
<cac:ProjectReference>
<cbc:ID>557884</cbc:ID>
</cac:ProjectReference>
<!-- Code omitted for clarity -->
</Invoice>
Example
Project Reference for credit note example
<CreditNote>
<!-- Code omitted for clarity -->
<cac:AdditionalDocumentReference>
<cbc:ID>557884</cbc:ID>
<cbc:DocumentTypeCode>50</cbc:DocumentTypeCode> (1)
</cac:AdditionalDocumentReference>
<!-- Code omitted for clarity -->
</CreditNote>
1 | Code 50 indicating this is a project reference |
cac:AccountingSupplierParty
Below table show available fields in cac:AccountingSupplierParty
, note that additional elements has also been added to the extension available in Party.
Path | Description |
---|---|
|
Customer Account ID |
|
Extension Content |
|
Seller website |
|
Electronic Identifier |
|
Electronic Identifier scheme ID |
|
Industry Classification Code |
|
Industry Classification Name |
|
Seller Identifier |
|
Seller Identifier |
|
Seller name |
|
Address ID |
|
Postal box |
|
Floor |
|
Room |
|
Street name |
|
Additional Street name |
|
Building name |
|
Building number |
|
Department |
|
Plot Identification |
|
City Subdvision Name |
|
City name |
|
Postal zone |
|
Country subentity |
|
Country subentity code |
|
Region |
|
District |
|
Additional address line |
|
Country code |
|
Country name |
|
Company identifier |
|
Tax scheme identifier |
|
Registration name |
|
Legal company identifier |
|
Legal company scheme identifier |
|
Company legal form |
|
Registered tax office |
|
Contact name |
|
Contact telephone |
|
Contact E-mail |
|
Person first name |
|
Person surname |
|
Accounting name |
|
Accounting telephone |
|
Accounting fax number |
|
Accounting E-mail |
Example
cac:AccountingSupplierParty example
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingSupplierParty>
<cbc:CustomerAssignedAccountID>SupplierId</cbc:CustomerAssignedAccountID>
<cac:Party>
<cbc:WebsiteURI>www.pagero.com</cbc:WebsiteURI>
<cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID schemeID="0088">7300010000001</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Supplier Name</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:Postbox>12345</cbc:Postbox>
<cbc:StreetName>Test Street 1</cbc:StreetName>
<cbc:Department>Department</cbc:Department>
<cbc:PlotIdentification>0000</cbc:PlotIdentification>
<cbc:CitySubdivisionName>City Subdivision Name</cbc:CitySubdivisionName>
<cbc:CityName>Town</cbc:CityName>
<cbc:PostalZone>00000</cbc:PostalZone>
<cbc:CountrySubentity>Province</cbc:CountrySubentity>
<cac:Country>
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
<cbc:Name>Sweden</cbc:Name>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>SE123456123401</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Supplier Registration Name</cbc:RegistrationName>
<cbc:CompanyID schemeID="0007">1234561234</cbc:CompanyID>
<cac:RegistrationAddress>
<cbc:CityName>Supplier Hometown</cbc:CityName>
<cac:Country>
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
</cac:Country>
</cac:RegistrationAddress>
</cac:PartyLegalEntity>
<cac:Contact>
<cbc:Name>Supplier Contact Name</cbc:Name>
<cbc:Telephone>11111111</cbc:Telephone>
<cbc:ElectronicMail>supplier@contact.com</cbc:ElectronicMail>
</cac:Contact>
</cac:Party>
<cac:AccountingContact>
<cbc:Name>Supplier Accounting Name</cbc:Name>
<cbc:Telephone>Supplier Tel</cbc:Telephone>
<cbc:Telefax>Supplier Fax</cbc:Telefax>
<cbc:ElectronicMail>Supplier@mainContact.com</cbc:ElectronicMail>
</cac:AccountingContact>
</cac:AccountingSupplierParty>
<!-- Code omitted for clarity -->
</Invoice>
cac:AccountingCustomerParty
Below table show available fields in cac:AccountingCustomerParty
, note that additional elements has also been added to the extension available in Party.
Path | Description |
---|---|
|
Customer Account ID |
|
Extension Content |
|
Electronic Identifier |
|
Electronic Identifier scheme ID |
|
Buyer Identifier |
|
Buyer Identifier |
|
Buyer name |
|
Address ID |
|
Postal box |
|
Floor |
|
Room |
|
Street name |
|
Additional Street name |
|
Building name |
|
Building number |
|
Department |
|
Plot Identification |
|
City Subdvision Name |
|
City name |
|
Postal zone |
|
Country subentity |
|
Country subentity code |
|
Region |
|
District |
|
Additional address line |
|
Country code |
|
Country name |
|
Company identifier |
|
Tax scheme identifier |
|
Registration name |
|
Legal company identifier |
|
Legal company scheme identifier |
|
Company legal form |
|
Registered tax office |
|
Contact name |
|
Contact telephone |
|
Contact E-mail |
|
Person first name |
|
Person surname |
Path | Description |
---|---|
|
AgentParty |
Click here for a complete list of fields for the agent party.
Path | Description |
---|---|
|
Extension Content |
|
Postal box |
|
Floor |
|
Room |
|
Street name |
|
Additional Street name |
|
Building name |
|
Building number |
|
Department |
|
Plot Identification |
|
City Subdvision Name |
|
City name |
|
Postal zone |
|
Country subentity |
|
Country subentity code |
|
Region |
|
District |
|
Additional address line |
|
Country code |
|
Country name |
|
Company identifier |
|
Tax scheme identifier |
|
Registration name |
|
Legal company identifier |
|
Legal company scheme identifier |
|
Company legal form |
|
Registered tax office |
|
Contact name |
|
Contact telephone |
|
Contact E-mail |
Path | Description |
---|---|
|
Accounting name |
|
Accounting telephone |
|
Accounting fax number |
|
Accounting E-mail |
Example
cac:AccountingCustomerParty example
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty>
<cbc:SupplierAssignedAccountID>Customer Number</cbc:SupplierAssignedAccountID>
<cac:Party>
<cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID schemeID="0088">7300010000001</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Customer Name</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:Postbox>54321</cbc:Postbox>
<cbc:StreetName>Customer Street</cbc:StreetName>
<cbc:Department>Customer Department</cbc:Department>
<cbc:PlotIdentification>0000</cbc:PlotIdentification>
<cbc:CitySubdivisionName>Customer City Subdivision Name</cbc:CitySubdivisionName>
<cbc:CityName>Customer City</cbc:CityName>
<cbc:PostalZone>00000</cbc:PostalZone>
<cbc:CountrySubentity>Customer Province</cbc:CountrySubentity>
<cac:Country>
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
<cbc:Name>Sweden</cbc:Name>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>SE987654321001</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Customer Registration Name</cbc:RegistrationName>
<cbc:CompanyID schemeID="0007">987654-4321</cbc:CompanyID>
</cac:PartyLegalEntity>
<cac:Contact>
<cbc:Name>Customer Contact Name</cbc:Name>
<cbc:Telephone>+465544466</cbc:Telephone>
<cbc:ElectronicMail>customer@contact.com</cbc:ElectronicMail>
</cac:Contact>
</cac:Party>
<cac:AccountingContact>
<cbc:Name>Customer Accounting Name</cbc:Name>
<cbc:Telephone>Customer Tel</cbc:Telephone>
<cbc:Telefax>Customer Fax</cbc:Telefax>
<cbc:ElectronicMail>Customer@mainContact.com</cbc:ElectronicMail>
</cac:AccountingContact>
</cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
</Invoice>
cac:PayeeParty
Path | Description |
---|---|
|
Payee Identifier |
|
Payee scheme Identifier |
|
Payee name |
|
Legal company identifier |
|
Legal company identifier scheme identifier |
Example
cac:PayeeParty example
<Invoice>
<!-- Code omitted for clarity -->
<cac:PayeeParty>
<cac:PartyIdentification>
<cbc:ID schemeID="0088">7300000000001</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Payee Name</cbc:Name>
</cac:PartyName>
<cac:PartyLegalEntity>
<cbc:CompanyID schemeID="0007">2201611123</cbc:CompanyID>
</cac:PartyLegalEntity>
</cac:PayeeParty>
<!-- Code omitted for clarity -->
</Invoice>
cac:BuyerCustomerParty
In PUF, a new party has been added called Buyer Customer Party. This party should contain information regarding the buyer of the goods or service and should ONLY be used if the buyer party differs from accounting customer party.
If cac:BuyerCustomerParty
is used, the cac:AccountingCustomerParty
is to be considered the receiver of the document.
Below table show available fields in cac:BuyerCustomerParty
, note that additional elements has also been added to the extension available in Party
Path | Description |
---|---|
|
Customer Account ID |
|
Extension Content |
|
Electronic Identifier |
|
Electronic Identifier scheme ID |
|
Buyer Identifier |
|
Buyer Identifier |
|
Buyer name |
|
Address ID |
|
Postal box |
|
Floor |
|
Room |
|
Street name |
|
Additional Street name |
|
Building name |
|
Building number |
|
Department |
|
Plot Identification |
|
City Subdvision Name |
|
City name |
|
Postal zone |
|
Country subentity |
|
Country subentity code |
|
Region |
|
District |
|
Additional address line |
|
Country code |
|
Country name |
|
Company identifier |
|
Tax scheme identifier |
|
Registration name |
|
Legal company identifier |
|
Legal company scheme identifier |
|
Company legal form |
|
Registered tax office |
|
Contact name |
|
Contact telephone |
|
Contact E-mail |
|
Person first name |
|
Person surname |
|
Accounting name |
|
Accounting telephone |
|
Accounting fax number |
|
Accounting E-mail |
Example
Party structure with both invoice recipient party and buyer party
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty> (1)
<cac:Party>
<cbc:EndpointID schemeID="0088">1234567890123</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID schemeID="0007">1234561234</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Receiver Trading Name AB</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Street 32</cbc:StreetName>
<cbc:AdditionalStreetName>Po box 878</cbc:AdditionalStreetName>
<cbc:PlotIdentification>0000</cbc:PlotIdentification>
<cbc:CitySubdivisionName>City Subdivision Name</cbc:CitySubdivisionName>
<cbc:CityName>Stockholm</cbc:CityName>
<cbc:PostalZone>123 12</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>SE123456789001</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Receiver legal Name</cbc:RegistrationName>
<cbc:CompanyID schemeID="0007">1234561234</cbc:CompanyID>
</cac:PartyLegalEntity>
<cac:Contact>
<cbc:Name>Anders Andersson</cbc:Name>
<cbc:Telephone>555444666</cbc:Telephone>
<cbc:ElectronicMail>contact@receiver.com</cbc:ElectronicMail>
</cac:Contact>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:BuyerCustomerParty> (2)
<cac:Party>
<cbc:EndpointID schemeID="0088">7322010000001</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID schemeID="0007">1111112222</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Buyer Trading Name AB</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Street 32</cbc:StreetName>
<cbc:AdditionalStreetName>Po box 878</cbc:AdditionalStreetName>
<cbc:PlotIdentification>0000<cbc:PlotIdentification>
<cbc:CitySubdivisionName>City Subdivision Name</cbc:CitySubdivisionName>
<cbc:CityName>Stockholm</cbc:CityName>
<cbc:PostalZone>123 12</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>SE111111222201</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Buyer legal Name</cbc:RegistrationName>
<cbc:CompanyID schemeID="0007">1111112222</cbc:CompanyID>
</cac:PartyLegalEntity>
<cac:Contact>
<cbc:Name>Daniel Danielsson</cbc:Name>
<cbc:Telephone>33322221111</cbc:Telephone>
<cbc:ElectronicMail>contact@buyer.com</cbc:ElectronicMail>
</cac:Contact>
</cac:Party>
</cac:BuyerCustomerParty>
<!-- Code omitted for clarity -->
</Invoice>
1 | Information in cac:AccountingCustomerParty will be used to identify the receiver of the document. |
2 | Information in cac:BuyerCustomerParty will be sent to the receiver as buyer information. |
Please note that NOT all e-invoice formats support both invoice recipient and buyer party information, therefore only use both structures when needed. |
cac:TaxRepresentativeParty
Path | Description |
---|---|
|
Seller’s tax representative name |
|
Address ID |
|
Postal box |
|
Floor |
|
Room |
|
Street name |
|
Additional Street name |
|
Building name |
|
Building number |
|
Department |
|
Plot Identification |
|
City Subdvision Name |
|
City name |
|
Postal zone |
|
Country subentity |
|
Country subentity code |
|
Region |
|
District |
|
Additional address line |
|
Country code |
|
Country name |
|
Company identifier |
|
Tax scheme identifier |
Example
cac:TaxRepresentativeParty example
<Invoice>
<!-- Code omitted for clarity -->
<cac:TaxRepresentativeParty>
<cac:PartyName>
<cbc:Name>Seller's Tax Representative Name</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:Postbox>54321</cbc:Postbox>
<cbc:StreetName>Street</cbc:StreetName>
<cbc:Department>Department</cbc:Department>
<cbc:PlotIdentification>0000</cbc:PlotIdentification>
<cbc:CitySubdivisionName>City Subdivision Name</cbc:CitySubdivisionName>
<cbc:CityName>City</cbc:CityName>
<cbc:PostalZone>00000</cbc:PostalZone>
<cbc:CountrySubentity>Province</cbc:CountrySubentity>
<cac:Country>
<cbc:IdentificationCode>DE</cbc:IdentificationCode>
<cbc:Name>Germany</cbc:Name>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>DE221043210</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
</cac:TaxRepresentativeParty>
<!-- Code omitted for clarity -->
</Invoice>
cac:Delivery
Below table show available fields in cac:Delivery
, note that additional elements has also been added to the extension available in cac:Delivery and cac:Delivery/cac:DeliveryParty.
Path | Description |
---|---|
|
Extension Content |
|
Delivery date |
|
Latest delivery date |
|
Delivery location identifier |
|
Delivery location identifier scheme identifier |
|
Delivery location description |
|
Address ID |
|
Postal box |
|
Floor |
|
Room |
|
Street name |
|
Additional Street name |
|
Building name |
|
Building number |
|
Department |
|
Plot Identification |
|
City Subdvision Name |
|
City name |
|
Postal zone |
|
Country subentity |
|
Country subentity code |
|
Region |
|
District |
|
Additional address line |
|
Country code |
|
Country name |
|
Carrier party name |
|
Extension Content |
|
Party Identifier |
|
Party Identifier |
|
Delivery party name |
|
Delivery party contact name |
|
Delivery party contact telephone |
|
Delivery party contact email |
|
Despatch date |
|
Despatch party name |
|
Address ID |
|
Postal box |
|
Floor |
|
Room |
|
Street name |
|
Additional Street name |
|
Building name |
|
Building number |
|
Department |
|
Plot Identification |
|
City Subdvision Name |
|
City name |
|
Postal zone |
|
Country subentity |
|
Country subentity code |
|
Region |
|
District |
|
Additional address line |
|
Country code |
|
Country name |
|
Contact name |
|
Contact telephone |
|
Contact E-mail |
Example
cac:Delivery populated with example value
<Invoice>
<!-- Code omitted for clarity -->
<cac:Delivery>
<cbc:ActualDeliveryDate>2019-01-01</cbc:ActualDeliveryDate>
<cbc:LatestDeliveryDate>2019-01-03</cbc:LatestDeliveryDate>
<cac:DeliveryLocation>
<cbc:ID schemeID="0088">7300010000001</cbc:ID>
<cbc:Description>Text describing the delivery location</cbc:Description>
<cac:Address>
<cbc:Postbox>121212</cbc:Postbox>
<cbc:StreetName>Delivery Street</cbc:StreetName>
<cbc:Department>Delivery Department</cbc:Department>
<cbc:PlotIdentification>0000</cbc:PlotIdentification>
<cbc:CitySubdivisionName>Delivery City Subdivision Name</cbc:CitySubdivisionName>
<cbc:CityName>Delivery City</cbc:CityName>
<cbc:PostalZone>55555</cbc:PostalZone>
<cbc:CountrySubentity>Delivery Province</cbc:CountrySubentity>
<cac:Country>
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
<cbc:Name>Sweden</cbc:Name>
</cac:Country>
</cac:Address>
</cac:DeliveryLocation>
<cac:DeliveryParty>
<cac:PartyName>
<cbc:Name>Delivery Name</cbc:Name>
</cac:PartyName>
<cac:Contact>
<cbc:Name>Anders Andersson</cbc:Name>
<cbc:Telephone>01113354</cbc:Telephone>
<cbc:ElectronicMail>DeliveryContact@mail.com</cbc:ElectronicMail>
</cac:Contact>
</cac:DeliveryParty>
<cac:Despatch>
<cac:DespatchParty>
<cac:PartyName>
<cbc:Name>Despatch party name</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Street 1</cbc:StreetName>
<cbc:CityName>Jammu</cbc:CityName>
<cbc:PostalZone>181131</cbc:PostalZone>
<cbc:CountrySubentityCode>01</cbc:CountrySubentityCode>
<cac:Country>
<cbc:IdentificationCode>IN</cbc:IdentificationCode>
<cbc:Name>India</cbc:Name>
</cac:Country>
</cac:PostalAddress>
</cac:DespatchParty>
</cac:Despatch>
</cac:Delivery>
<!-- Code omitted for clarity -->
</Invoice>
cac:DeliveryTerms
Path | Description |
---|---|
|
Delivery Terms Code |
|
Delivery Terms |
|
Loss risk responsibility code |
|
Loss risk description |
Example
cac:DeliveryTerms example
<Invoice>
<!-- Code omitted for clarity -->
<cac:DeliveryTerms>
<cbc:ID>DAP</cbc:ID>
<cbc:SpecialTerms>Description of the delivery terms</cbc:SpecialTerms>
<cbc:LossRiskResponsibilityCode>Code to identify the responsibility for the loss risk.</cbc:LossRiskResponsibilityCode>
<cbc:LossRisk>A description of the responsibility for the loss risk.</cbc:LossRisk>
</cac:DeliveryTerms>
<!-- Code omitted for clarity -->
</Invoice>
cac:PaymentMeans
Path | Description |
---|---|
|
Payment means code |
|
Payment means name |
|
Payment Identifier |
|
Primary account number identifier |
|
Card network |
|
Card holder name |
|
Payment account number |
|
Payment account name |
|
Payment account currency code |
|
Payment account identifier |
|
Payment bank name |
|
Postal box |
|
Floor |
|
Room |
|
Street name |
|
Additional Street name |
|
Building name |
|
Building number |
|
Department |
|
Plot Identification |
|
City Subdvision Name |
|
City name |
|
Postal zone |
|
Country subentity |
|
Country subentity code |
|
Region |
|
District |
|
Additional address line |
|
Country code |
|
Country name |
|
Payment mandate reference identifier |
|
Payer account identifier |
Example
cbc:PaymentMeans example
<Invoice>
<!-- Code omitted for clarity -->
<cac:PaymentMeans>
<cbc:PaymentMeansCode>30</cbc:PaymentMeansCode>
<cbc:PaymentID>123456</cbc:PaymentID>
<cac:PayeeFinancialAccount>
<cbc:ID>12345678</cbc:ID>
<cbc:Name>AccountName</cbc:Name>
<cac:FinancialInstitutionBranch>
<cbc:ID>SE:BANKGIRO</cbc:ID>
<cbc:Name>BankName</cbc:Name>
<cac:Address>
<cbc:Postbox>111</cbc:Postbox>
<cbc:StreetName>Bank Street</cbc:StreetName>
<cbc:BuildingNumber>11</cbc:BuildingNumber>
<cbc:Department>Bank Department</cbc:Department>
<cbc:PlotIdentification>0000</cbc:PlotIdentification>
<cbc:CitySubdivisionName>Bank City Subdivision Name</cbc:CitySubdivisionName>
<cbc:CityName>Bank City</cbc:CityName>
<cbc:PostalZone>22233</cbc:PostalZone>
<cbc:CountrySubentity>Bank Province</cbc:CountrySubentity>
<cac:Country>
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
<cbc:Name>Sweden</cbc:Name>
</cac:Country>
</cac:Address>
</cac:FinancialInstitutionBranch>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<!-- Code omitted for clarity -->
</Invoice>
cac:PaymentTerms
Below table show available fields in cac:PaymentTerms
, note that additional elements has also been added to the extension available in PaymentTerms.
Path | Description |
---|---|
|
Extension Content |
|
Payment terms description |
|
Penaly interest rate |
Example
cac:PaymentTerms example
<Invoice>
<!-- Code omitted for clarity -->
<cac:PaymentTerms>
<cbc:Note>3</cbc:Note>
<cbc:PenaltySurchargePercent>10</cbc:PenaltySurchargePercent>
</cac:PaymentTerms>
<!-- Code omitted for clarity -->
</Invoice>
cac:PrepaidPayment
Below table show available fields in cac:PrepaidPayment
, note that additional elements has also been added to the extension available in PrepaidPayment.
Path | Description |
---|---|
|
Extension Content |
|
Paid amount |
|
Paid amount currency |
|
Received date |
|
Paid date |
Example
cac:PrepaidPayment example
<Invoice>
<!-- Code omitted for clarity -->
<cac:PrepaidPayment>
<cbc:PaidAmount currencyID="EUR">10.00</cbc:PaidAmount>
<cbc:ReceivedDate>2024-01-14</cbc:ReceivedDate>
<cbc:PaidDate>2024-01-10</cbc:PaidDate>
</cac:PrepaidPayment>
<!-- Code omitted for clarity -->
</Invoice>
cac:AllowanceCharge
Path | Description |
---|---|
|
Allowance or Charge indicator |
|
Allowance or charge reason code |
|
Allowance or charge reason |
|
Allowance or charge percentage |
|
Allowance or charge amount |
|
Allowance or charge amount currency |
|
Allowance or charge base amount |
|
Allowance or charge base amount currency |
|
Allowance or charge tax category code |
|
Allowance or Charge tax percent |
|
Tax exemption reason code |
|
Tax exemption reason |
|
Allowance or Charge tax scheme identifier |
|
Allowance or Charge tax Amount |
|
Allowance or Charge tax Amount currency |
Example
cac:AllowanceCharge populated with example value
<Invoice>
<!-- Code omitted for clarity -->
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Reason for allowance</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">5.00</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
<cac:TaxCategory>
<cbc:ID>Z</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReasonCode>vatex-eu-132-1b</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Tax exemption reason description</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
</cac:TaxTotal>
</cac:AllowanceCharge>
<!-- Code omitted for clarity -->
</Invoice>
cac:TaxExchangeRate
Path | Description |
---|---|
|
Source currency code |
|
Target currency code |
|
Exchange calculation rate |
|
Operation used to calculate the tax in target currency |
|
Exchange rate date |
Example
cac:TaxExchangeRate with EUR as document currency and USD as tax currency
<Invoice>
<!-- Code omitted for clarity -->
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>USD</cbc:TaxCurrencyCode>
<!-- Code omitted for clarity -->
<cac:TaxExchangeRate>
<cbc:SourceCurrencyCode>EUR</cbc:SourceCurrencyCode>
<cbc:TargetCurrencyCode>USD</cbc:TargetCurrencyCode>
<cbc:CalculationRate>1.16</cbc:CalculationRate>
<cbc:MathematicOperatorCode>Multiply</cbc:MathematicOperatorCode>
<cbc:Date>2019-01-01</cbc:Date>
</cac:TaxExchangeRate>
<!-- Code omitted for clarity -->
</Invoice>
cac:TaxTotal
Below table show available fields in cac:TaxTotal/cac:TaxSubtotal
, note that additional elements has also been added to the extension available in cac:TaxTotal/cac:TaxSubtotal.
Path | Description |
---|---|
|
Document total tax amount |
|
Document total tax amount currency |
|
Extension Content |
|
Total taxable amount for each tax category |
|
Total taxable amount for each tax category currency |
|
Total tax amount for each tax category |
|
Total tax amount currency for each tax category |
|
Tax category code |
|
Tax category percent |
|
Tax exemption reason code |
|
Tax exemption reason |
|
Tax scheme identfier |
|
Tax category name |
Example
cac:TaxTotal example
<Invoice>
<!-- Code omitted for clarity -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">25.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">25.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">-5.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>Z</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<!-- Code omitted for clarity -->
</Invoice>
cac:WithholdingTaxTotal
Below table show available fields in cac:WithholdingTaxTotal/cac:TaxSubtotal
, note that additional elements has also been added to the extension available in cac:WithholdingTaxTotal/cac:TaxSubtotal.
Path | Description |
---|---|
|
Document total tax amount |
|
Document total tax amount currency |
|
Extension Content |
|
Total taxable amount for each tax category |
|
Total taxable amount for each tax category currency |
|
Total tax amount for each tax category |
|
Total tax amount currency for each tax category |
|
Tax category code |
|
Tax category percent |
|
Tax exemption reason code |
|
Tax exemption reason |
|
Tax scheme identfier |
|
Tax category name |
Example
cac:WithholdingTaxTotal example
<Invoice>
<!-- Code omitted for clarity -->
<cac:WithholdingTaxTotal>
<cbc:TaxAmount currencyID="EUR">6.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">6.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>6</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>INC</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:WithholdingTaxTotal>
<!-- Code omitted for clarity -->
</Invoice>
cac:LegalMonetaryTotal
Below table show available fields in cac:LegalMonetaryTotal, note that additional elements has also been added to the extension available in cac:LegalMonetaryTotal.
Element | Description |
---|---|
|
Extension Content |
|
Summary of all lines net amount |
|
Summary of all lines net amount currency |
|
Total invoice amount excluding tax |
|
Total invoice amount currency excluding tax |
|
Total invoice amount including tax |
|
Total invoice amount currency including tax |
|
Summary of all allowances on document level |
|
Summary of all allowances on document level currency |
|
Summary of all charges on document level |
|
Summary of all charges on document level currency |
|
Amount already prepaid |
|
Prepaid amount currency |
|
Rounding amount |
|
Rounding amount currency |
|
Payable amount |
|
Payable amount currency |
Example
cac:LegalMonetaryTotal example
<Invoice>
<!-- Code omitted for clarity -->
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">95.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">120.00</cbc:TaxInclusiveAmount>
<cbc:AllowanceTotalAmount currencyID="EUR">5.00</cbc:AllowanceTotalAmount>
<cbc:ChargeTotalAmount currencyID="EUR">0.00</cbc:ChargeTotalAmount>
<cbc:PayableAmount currencyID="EUR">110.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<!-- Code omitted for clarity -->
</Invoice>
3.2. cac:InvoiceLine
Examples shown below are based on Invoice, for the use of credit note the corresponding element replacing Invoice/cac:InvoiceLine
is CreditNote/cac:CreditNoteLine
.
ext:UBLExtensions
Path | Description |
---|---|
|
Extension Content RestrictedInformation |
cbc:ID
Path | Description |
---|---|
|
Line Identifier |
Example
cac:InvoiceLine/cbc:ID with example value
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cbc:Note
Path | Description |
---|---|
|
Line note |
Example
cac:InvoiceLine/cbc:Note with example value
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cbc:Note>This</cbc:Note>
<cbc:Note>is an</cbc:Note>
<cbc:Note>Example</cbc:Note>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cbc:InvoicedQuantity
Path | Description |
---|---|
|
Quantity invoiced |
|
Quantity unit of measure |
Example
cac:InvoiceLine/cbc:InvoicedQuantity with example value
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cbc:InvoicedQuantity unitCode="EA">1</cbc:InvoicedQuantity>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cbc:LineExtensionAmount
Path | Description |
---|---|
|
Net amount |
|
Net amount currency |
Example
cac:InvoiceLine/cbc:LineExtensionAmount with example value
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cbc:AccountingCost
Path | Description |
---|---|
|
Invoice line accounting reference |
Example
cac:InvoiceLine/cbc:AccountingCost with example value
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cbc:AccountingCost>Accounting cost reference</cbc:AccountingCost>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cac:InvoicePeriod
Path | Description |
---|---|
|
Invoice line period start date |
|
Invoice line period end date |
Example
cac:InvoiceLine/cac:InvoicePeriod with example value
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:InvoicePeriod>
<cbc:StartDate>2021-01-01</cbc:StartDate>
<cbc:EndDate>2021-01-31</cbc:EndDate>
</cac:InvoicePeriod>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cac:OrderLineReference
Below table show available fields in cac:OrderLineReference
, note that additional elements has also been added to the extension available in OrderLineReference.
Path | Description |
---|---|
|
Extension Content |
|
Order line reference |
|
Sales Order line reference |
|
Identifier of the order |
|
Identifier of the sales order |
|
Date of the referenced order |
Example
cac:InvoiceLine/cac:OrderLineReference with example value
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:OrderLineReference>
<cbc:LineID>1</cbc:LineID>
<cbc:SalesOrderLineID>5</cbc:SalesOrderLineID>
<cac:OrderReference>
<cbc:ID>Purchase Order ID</cbc:ID>
<cbc:SalesOrderID>Sales Order ID</cbc:SalesOrderID>
<cbc:IssueDate>2019-01-01</cbc:IssueDate>
</cac:OrderReference>
</cac:OrderLineReference>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cac:DespatchLineReference
Path | Description |
---|---|
|
Despatch advice line reference |
|
Identifier of the depatch advice |
|
Date of the referenced despatch advice |
Example
cac:InvoiceLine/cac:DespatchLineReference with example value
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:DespatchLineReference>
<cbc:LineID>1</cbc:LineID>
<cac:DocumentReference>
<cbc:ID>Despatch Document ID</cbc:ID>
<cbc:IssueDate>2019-01-01</cbc:IssueDate>
</cac:DocumentReference>
</cac:DespatchLineReference>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cac:DocumentReference
Path | Description |
---|---|
|
Line referenced object identifier |
|
Scheme Identifier for line referenced object |
|
Issue date of the referenced document |
|
Issue time of the referenced document |
|
Document type code |
Example
cac:InvoiceLine/cac:DocumentReference for referencing an invoiced object
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:DocumentReference>
<cbc:ID schemeID="AIT">1145</cbc:ID>
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
</cac:DocumentReference>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cac:Delivery
Path | Description |
---|---|
|
Delivered quantity |
|
Delivered quantity unit of measure |
|
Delivery date |
Example
cac:InvoiceLine/cac:Delivery example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:Delivery>
<cbc:Quantity unitCode="PCE">1</cbc:Quantity>
<cbc:ActualDeliveryDate>2019-01-25</cbc:ActualDeliveryDate>
</cac:Delivery>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cac:Shipment
Path | Description |
---|---|
|
Weight |
|
Weight unit of measure |
|
Volume |
|
Volume unit of measure |
|
Chargeable weight |
|
Chargeable weight unit of measure |
|
Distance |
|
Distance unit of measure |
|
Type of measurement |
|
Loading length |
|
Loading length unit of measure |
|
Quantity |
|
Quantity unit of measure |
Example
cac:InvoiceLine/cac:Delivery/cac:Shipment example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:Delivery>
<!-- Code omitted for clarity -->
<cac:Shipment>
<cbc:GrossWeightMeasure unitCode="KGM">100</cbc:GrossWeightMeasure>
<cbc:GrossVolumeMeasure unitCode="CMQ">100</cbc:GrossVolumeMeasure>
<cac:GoodsItem>
<cbc:ChargeableWeightMeasure unitCode="KGM">100</cbc:ChargeableWeightMeasure>
</cac:GoodsItem>
<cac:Consignment>
<cac:OriginalDespatchTransportationService>
<cac:TransportEquipment>
<cac:MeasurementDimension>
<cbc:AttributeID>DRIVINGDISTANCE</cbc:AttributeID> (1)
<cbc:Measure unitCode="KMT">100</cbc:Measure>
</cac:MeasurementDimension>
</cac:TransportEquipment>
</cac:OriginalDespatchTransportationService>
<cbc:LoadingLengthMeasure unitCode="LMT">100</cbc:LoadingLengthMeasure>
<cbc:TotalPackagesQuantity unitCode="EA">100</cbc:TotalPackagesQuantity>
</cac:Consignment>
</cac:Shipment>
<!-- Code omitted for clarity -->
</cac:Delivery>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | 'DRIVINGDISTANCE' indicates that distance is being measured. Currently 'DRIVINGDISTANCE' is the only value used by Pagero. |
cac:DeliveryLocation
Path | Description |
---|---|
|
Delivery location identifier |
|
Delivery location scheme identifier |
|
Delivery location name |
|
Address ID |
|
Postal box |
|
Floor |
|
Room |
|
Street name |
|
Additional Street name |
|
Building name |
|
Building number |
|
Department |
|
Plot Identification |
|
City Subdvision Name |
|
City name |
|
Postal zone |
|
Country subentity |
|
Country subentity code |
|
Region |
|
District |
|
Additional address line |
|
Country code |
|
Country name |
Example
cac:InvoiceLine/cac:Delivery/cac:DeliveryLocation example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:Delivery>
<!-- Code omitted for clarity -->
<cac:DeliveryLocation>
<cbc:ID schemeID="0088">0000000000000</cbc:ID>
<cbc:Name>Name of the delivery location</cbc:Name>
<cac:Address>
<cbc:StreetName>Delivery Street</cbc:StreetName>
<cbc:PlotIdentification>0000</cbc:PlotIdentification>
<cbc:CitySubdivisionName>Delivery City Subdivision Name</cbc:CitySubdivisionName>
<cbc:CityName>Delivery City</cbc:CityName>
<cbc:PostalZone>12345</cbc:PostalZone>
<cbc:CountrySubentity>Delivery Province</cbc:CountrySubentity>
<cac:Country>
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
<cbc:Name>Sweden</cbc:Name>
</cac:Country>
</cac:Address>
</cac:DeliveryLocation>
<!-- Code omitted for clarity -->
</cac:Delivery>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cac:DespatchLocation
Path | Description |
---|---|
|
Despatch location identifier |
|
Despatch location scheme identifier |
|
Despatch location name |
|
Address ID |
|
Postal box |
|
Floor |
|
Room |
|
Street name |
|
Additional Street name |
|
Building name |
|
Building number |
|
Department |
|
Plot Identification |
|
City Subdvision Name |
|
City name |
|
Postal zone |
|
Country subentity |
|
Country subentity code |
|
Region |
|
District |
|
Additional address line |
|
Country code |
|
Country name |
Example
cac:InvoiceLine/cac:Delivery/cac:Despatch/cac:DespatchLocation example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:Delivery>
<cac:Despatch>
<cac:DespatchLocation>
<cbc:ID schemeID="0088">0000000000000</cbc:ID>
<cbc:Name>Name of the despatch location</cbc:Name>
<cac:Address>
<cbc:StreetName>Despatch Street</cbc:StreetName>
<cbc:PlotIdentification>0000</cbc:PlotIdentification>
<cbc:CitySubdivisionName>Despatch City Subdivision Name</cbc:CitySubdivisionName>
<cbc:CityName>Despatch City</cbc:CityName>
<cbc:PostalZone>12345</cbc:PostalZone>
<cbc:CountrySubentity>Despatch Province</cbc:CountrySubentity>
<cac:Country>
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
<cbc:Name>Sweden</cbc:Name>
</cac:Country>
</cac:Address>
</cac:DespatchLocation>
</cac:Despatch>
</cac:Delivery>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cac:AllowanceCharge
Path | Description |
---|---|
|
Line allowance or Charge indicator |
|
Line allowance or charge reason code |
|
Line allowance or charge reason |
|
Line allowance or charge percentage |
|
Line allowance or charge amount |
|
Line allowance or charge amount currency |
|
Line allowance or charge base amount |
|
Line allowance or charge base amount currency |
Example
cac:InvoiceLine/cac:AllowanceCharge populated with example value
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Reason for allowance</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>5</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="EUR">5.00</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
</cac:AllowanceCharge>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cac:TaxTotal
If multiple taxes is provided on one line, note that cac:InvoiceLine/cac:TaxTotal/cac:TaxSubtotal
must be provided for each tax.
Path | Description |
---|---|
|
Line total tax amount |
|
Line total tax amount currency |
|
Total taxable amount for each tax category |
|
Total taxable amount for each tax category currency* |
|
Total tax amount for each tax category |
|
Total tax amount currency for each tax category |
|
Line tax category code |
|
Tax category percent |
|
Tax exemption reason code |
|
Tax exemption reason |
|
Tax scheme identfier |
Example
cac:InvoiceLine/cac:TaxTotal example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">25.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">25.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">-5.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>Z</cbc:ID>
<cbc:Percent>0</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 -->
</Invoice>
Total tax currency amount
If the need to provide the total tax amount on each line, this should be sent as a separate cac:TaxTotal/cbc:TaxAmount
, see example below.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>USD</cbc:TaxCurrencyCode>
<!-- Code omitted for clarity -->
<cac:TaxExchangeRate>
<cbc:SourceCurrencyCode>EUR</cbc:SourceCurrencyCode>
<cbc:TargetCurrencyCode>USD</cbc:TargetCurrencyCode>
<cbc:CalculationRate>1.17</cbc:CalculationRate>
<cbc:MathematicOperatorCode>Multiply</cbc:MathematicOperatorCode>
<cbc:Date>2019-01-01</cbc:Date>
</cac:TaxExchangeRate>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">25.00</cbc:TaxAmount> (1)
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">25.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="USD">29.25</cbc:TaxAmount> (2)
</cac:TaxTotal>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
</Invoice>
1 | Total tax amount in document currency |
2 | Total tax amount in tax currency |
cac:WithholdingTaxTotal
Path | Description |
---|---|
|
Line total tax amount |
|
Line total tax amount currency |
|
Total taxable amount for each tax category |
|
Total taxable amount for each tax category currency* |
|
Total tax amount for each tax category |
|
Total tax amount currency for each tax category |
|
Line tax category code |
|
Tax category percent |
|
Tax exemption reason code |
|
Tax exemption reason |
|
Tax scheme identfier |
Example
cac:InvoiceLine/cac:WithholdingTaxTotal example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:WithholdingTaxTotal>
<cbc:TaxAmount currencyID="EUR">6.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">6.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>6</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>INC</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:cac:WithholdingTaxTotal>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cac:Item
Path | Description |
---|---|
|
Extension Content |
|
Item description |
|
Item name |
|
Buyer’s item identifier |
|
Seller’s item identifier |
|
Manufacturer’s item identifier |
|
Standard item identifier |
|
Standard item identifier scheme identifier |
|
Item country origin |
|
Item classification code |
|
Item classification list identifier |
|
Item classification list version identifier |
|
Tax category identifier |
|
Tax category percent |
|
Tax scheme identfier |
|
Additional item property name |
|
Additional item information value |
|
Manufactured date |
|
Best before date |
|
Serial number |
|
Lot number identifier |
|
Lot expiry date |
Example
cac:InvoiceLine/cac:Item example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:Item>
<cbc:Description>Item description</cbc:Description>
<cbc:Name>Item name</cbc:Name>
<cac:BuyersItemIdentification>
<cbc:ID>BuyersItemIdentification</cbc:ID>
</cac:BuyersItemIdentification>
<cac:SellersItemIdentification>
<cbc:ID>SellersItemIdentification</cbc:ID>
</cac:SellersItemIdentification>
<cac:ManufacturersItemIdentification>
<cbc:ID>ManufacturersItemIdentification</cbc:ID>
</cac:ManufacturersItemIdentification>
<cac:StandardItemIdentification>
<cbc:ID schemeID="0088">7300010000001</cbc:ID>
</cac:StandardItemIdentification>
<cac:ClassifiedTaxCategory>
<cbc:ID schemeID="UNCL5305">S</cbc:ID>
<cbc:Percent>25</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
<cac:AdditionalItemProperty>
<cbc:Name>Size</cbc:Name>
<cbc:Value>XXL</cbc:Value>
</cac:AdditionalItemProperty>
<cac:ItemInstance>
<cbc:ManufactureDate>2018-01-01</cbc:ManufactureDate>
<cbc:BestBeforeDate>2018-01-01</cbc:BestBeforeDate>
<cbc:SerialID>123456789</cbc:SerialID>
<cac:LotIdentification>
<cbc:LotNumberID>1111111</cbc:LotNumberID>
</cac:LotIdentification>
</cac:ItemInstance>
</cac:Item>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
cac:Price
Below table show available fields in cac:Price
, note that additional elements has also been added to the extension available in Price.
Path | Description |
---|---|
|
Extension Content |
|
Item net price |
|
Item net price currency |
|
Base quantity |
|
Base quantity unit of measure |
|
Charge indicator |
|
Allowance Amount |
|
Allowance Amount currency |
|
Base amount |
|
Base amount currency |
Example
cac:InvoiceLine/cac:Price example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:Price>
<cbc:PriceAmount currencyID="EUR">100.00</cbc:PriceAmount>
<cbc:BaseQuantity unitCode="EA">1</cbc:BaseQuantity>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">10</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">110.00</cbc:BaseAmount>
</cac:AllowanceCharge>
</cac:Price>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
4. Extensions
4.1. Document level
Below chapters describe the different extensions added on document level.
4.1.1. RestrictedInformation
RestrictedInformation has been added on document level in order to cater the need for unique country specific data and internal customer information that might be required for internal processing.
Note that no customer specific information can be added without prior consulting with Pagero. If country specific information is available as restricted information value, this can be found in the Country specifics section. |
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/RestrictedInformation
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformation</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformation/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table show the definition of the new element added to the extension.
Element | Description |
---|---|
|
Key |
|
Value |
Example
RestrictedInformation example from Hungary specific section
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformation</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformation>
<puf:Key>modifyWithoutMaster</puf:Key>
<puf:Value>false</puf:Value>
</puf:RestrictedInformation>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
4.1.2. RestrictedInformationLine
RestrictedInformationLine has been added on document level in order to cater the need for additional country specific invoice lines
Note that no Restricted Information Lines can be added without prior consulting with Pagero. If country specific invoice lines is available as Restricted Information Line, this can be found in the Country specifics section. |
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/RestrictedInformationLine
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformationLine</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformationLine/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table show the definition of the new element added to the extension.
Element | Description |
---|---|
|
Key |
|
Line Identifier |
|
Line Net amount |
|
Line Tax Total |
|
Line Classification |
Example
RestrictedInformationLine example
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformationLine</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformationLine>
<puf:Key>KEY_VALUE</puf:Key>
<cbc:ID>1</cbc:ID>
<cbc:LineExtensionAmount currencyID="EUR">100</cbc:LineExtensionAmount>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">25</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxAmount currencyID="EUR">25</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:TaxExemptionReasonCode/>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<puf:Classification>
<puf:Type>INCOME</puf:Type>
<puf:ClassificationType>Type value</puf:ClassificationType>
<puf:ClassificationCategory>Category value</puf:ClassificationCategory>
<puf:Amount currencyID="EUR">100</puf:Amount>
</puf:Classification>
</puf:RestrictedInformationLine>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
4.1.3. Classification
Classification can be used on document level to set different kind of classifications e.g. Income or Expense classification
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/Classification
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:Classification</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:Classification/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table show the definition of the new element added to the extension.
Element | Description |
---|---|
|
Type |
|
Classification Type |
|
Classification Category |
|
Amount |
|
Amount currency |
Example
Classification example
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:Classification</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:Classification>
<puf:Type>INCOME</puf:Type>
<puf:ClassificationType>Type value</puf:ClassificationType>
<puf:ClassificationCategory>Category value</puf:ClassificationCategory>
<puf:Amount currencyID="EUR">100</puf:Amount>
</puf:Classification>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
4.1.4. InvoiceSeries
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/InvoiceSeries
.
Example
Example below how the URI is used for this extension.
<Invoice>
<!-- Code omitted for clarity -->
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:InvoiceSeries</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:InvoiceSeries/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
</cac:InvoiceDocumentReference>
</cac:BillingReference>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Element | Description |
---|---|
|
Invoice series identifier |
Example
Invoice Series example
<Invoice>
<!-- Code omitted for clarity -->
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:InvoiceSeries</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:InvoiceSeries>
<cbc:ID>InvSeries</cbc:ID>
</puf:InvoiceSeries>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
4.1.5. LanguageCode
In order to specify language code for the system generated PDF presentation in Pagero Online, a segment for this is added as Extension.
Note that not all languages are supported in Pagero Online. Please contact us to learn which languages are available. |
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/LanguageCode
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LanguageCode</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LanguageCode/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Language Code |
Example
Language Code
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LanguageCode</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LanguageCode>en</puf:LanguageCode>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
4.1.6. SupplyType
In order to specify a supply type for the invoice, following elements has been added in the below extension.
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/SupplyType
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:SupplyType</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:SupplyType/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Code identifying the type of supply |
Example
Supply Type
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:SupplyType</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:SupplyType>
<puf:Code>B2B</puf:Code>
</puf:SupplyType>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
4.1.7. DutyStamp
In order to specify a duty stamp for the invoice, following elements has been added in the below extension.
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/DutyStamp
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:DutyStamp</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:DutyStamp/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Duty stamp |
|
Duty stamp currency |
Example
Duty Stamp
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:DutyStamp</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:DutyStamp>
<puf:Amount currencyID="EUR">2.00</puf:Amount>
</puf:DutyStamp>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
4.1.8. IGSTOnIntra
In order to specify if IGST (Integrated Goods and Services Tax) is applicable on intra state supplies the following elements has been added in the below extension.
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/IGSTOnIntra
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:IGSTOnIntra</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:IGSTOnIntra/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Indicator if IGST is applicable for intra state supplies |
Example
IGST on intra state supplies
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:IGSTOnIntra</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:IGSTOnIntra>true</puf:IGSTOnIntra>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
4.1.9. Billing Software
In order to specify information about a billing software, following elements has been added in the below extension.
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/BillingSoftware
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:BillingSoftware</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:BillingSoftware/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Software number |
|
Hash code |
|
Billing software description |
Example
Billing Software
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:BillingSoftware</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:BillingSoftware>
<puf:Number>123456</puf:Number>
<puf:Hash>AAaa</puf:Hash>
<cbc:Description>Software description</cbc:Description>
</puf:BillingSoftware>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
4.1.10. SupplierGeneratedQRString
In order to provide a supplier generated QR string following elements has been added in the below extension.
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/QRExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:QRExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:SupplierGeneratedQRString> (2)
<puf:QRString>TheQRCode</puf:QRString>
<puf:QREncodingType>TEXT</puf:QREncodingType>
</puf:SupplierGeneratedQRString>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Supplier generated QR string |
|
Value must be TEXT or BASE64 depending on if the QR string is expressed as a text string or base 64 encoded |
Example
QR string provided as plain text
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:IGSTOnIntra</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:SupplierGeneratedQRString>
<puf:QRString>TheQRCode</puf:QRString>
<puf:QREncodingType>TEXT</puf:QREncodingType>
</puf:SupplierGeneratedQRString>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
4.1.11. Self Billing Indicator
In order to indicate that the document is self-billed, a segment for this is added as Extension.
Note that not all markets are supported in Pagero Online. Please contact Pagero to learn in which markets we support self-billing. |
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/SelfBilled
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:SelfBilled</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:SelfBilled/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Self-Billing Indicator |
Example
Self Billed
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:SelfBilled</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:SelfBilled>true</puf:SelfBilled>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
4.1.12. OrderReference
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/OrderReferenceExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:OrderReference>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:OrderReferenceExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:OrderReferenceExtension/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:OrderReference>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table show the definition of the new element added to the extension.
Element | Description |
---|---|
|
Sales order issue date |
Example
cac:OrderReference containing all information available
<Invoice>
<!-- Code omitted for clarity -->
<cac:OrderReference>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:OrderReferenceExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:OrderReferenceExtension>
<puf:SalesOrderIssueDate>2019-01-01</puf:SalesOrderIssueDate>
</puf:OrderReferenceExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:ID>Purchase Order ID</cbc:ID>
<cbc:SalesOrderID>Sales Order ID</cbc:SalesOrderID>
<cbc:IssueDate>2019-01-01</cbc:IssueDate>
</cac:OrderReference>
<!-- Code omitted for clarity -->
</Invoice>
4.1.13. BillingReference
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/BillingReferenceExtension
.
Example
Example below how the URI is used for this extension.
<Invoice>
<!-- Code omitted for clarity -->
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:BillingReferenceExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:BillingReferenceExtension/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
</cac:InvoiceDocumentReference>
</cac:BillingReference>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Element | Description |
---|---|
|
Billing reference document series identifier |
|
Billing reference note |
|
Billing reference code |
|
Clearance ID of the referenced document |
Example
Invoice document reference ID, date and extension
<Invoice>
<!-- Code omitted for clarity -->
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:BillingReferenceExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:BillingReferenceExtension>
<!-- Referenced invoice's serie, if applicable -->
<puf:InvoiceSeries>
<cbc:ID>InvSeries1</cbc:ID>
</puf:InvoiceSeries>
<cbc:Note>Textual note describing the reason for issuing a credit/debit note</cbc:Note>
<!-- Reason for credit in code form, if applicable -->
<puf:Code>codeValue</puf:Code>
<puf:ClearanceID>Clearance ID</puf:ClearanceID>
</puf:BillingReferenceExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:ID>Invoice reference ID</cbc:ID>
<cbc:IssueDate>2021-01-01</cbc:IssueDate>
</cac:InvoiceDocumentReference>
</cac:BillingReference>
<!-- Code omitted for clarity -->
</Invoice>
4.1.14. ContractDocumentReference
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/ContractDocumentReferenceExtension
.
Example
Example below how the URI is used for this extension.
<Invoice>
<!-- Code omitted for clarity -->
<cac:ContractDocumentReference>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:ContractDocumentReferenceExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:ContractDocumentReferenceExtension/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
</cac:ContractDocumentReference>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Element | Description |
---|---|
|
Buyer contract identifier |
|
Buyer contract issue date |
Example
Contract document reference ID, date and extension
<Invoice>
<!-- Code omitted for clarity -->
<cac:ContractDocumentReference>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:ContractDocumentReferenceExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:ContractDocumentReferenceExtension>
<puf:BuyerContractID>BuyerContractID</puf:BuyerContractID>
<puf:BuyerContractIssueDate>2019-01-01</puf:BuyerContractIssueDate>
</puf:ContractDocumentReferenceExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:ID>Contract Document ID</cbc:ID>
<cbc:IssueDate>2019-01-01</cbc:IssueDate>
</cac:ContractDocumentReference>
<!-- Code omitted for clarity -->
</Invoice>
4.1.15. Party
The UBL extension to be used for below elements can be found in the below parties:
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/PartyExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:Party>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:PartyExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:PartyExtension/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:Party>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Path | Description |
---|---|
|
Additional registration data identifier |
|
Additional registration data identifier type |
|
Additional registration data identifier list identifier |
|
Additional destination address identifier |
|
Additional destination address name |
|
Additional destination address identifier type |
|
Additional destination address list identifier |
Registration data
When there is a need to provide additional registration data associated with the organization this can be done using the RegistrationData
element.
To identify the type of registration data, the puf:IDType
must be coded using the PUF-001-REGISTRATIONDATA code list.
See code list PUF-001-REGISTRATIONDATA for all supported types of registration data.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:Party>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:PartyExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:PartyExtension>
<puf:RegistrationData>
<cbc:ID>SomeRegistrationData</cbc:ID>
<puf:IDType listID="PUF-001-REGISTRATIONDATA">ES:Folio</puf:IDType>
</puf:RegistrationData>
<puf:RegistrationData>
<cbc:ID>SomeRegistrationData</cbc:ID>
<puf:IDType listID="PUF-001-REGISTRATIONDATA">ES:Book</puf:IDType>
</puf:RegistrationData>
</puf:PartyExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:Party>
<!-- Code omitted for clarity -->
</Invoice>
Additional Destination Address Identifier (ADAID)
Additional Destination Address Identifier (ADAID) is used when there is a need to provide additional routing codes in order for the invoice to be sent to the correct recipient. This is mostly used to public entities (e.g. government recipients).
To identify the type of ADAID, the puf:IDType
must be coded using the PUF-002-ADAID code list.
See code list PUF-002-ADAID for all supported types of ADAID.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:Party>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:PartyExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:PartyExtension>
<puf:ADAID>
<cbc:ID>1234567890</cbc:ID>
<cbc:Name>Name of Unit</cbc:Name>
<puf:IDType listID="PUF-002-ADAID">FR:ServiceCode</puf:IDType>
</puf:ADAID>
</puf:PartyExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:Party>
<!-- Code omitted for clarity -->
</Invoice>
4.1.16. Delivery
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/DeliveryExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:Delivery>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:DeliveryExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:DeliveryExtension/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:Delivery>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table show the definition of the additional elements added to the delivery extension.
Element | Description |
---|---|
|
Delivery method note |
|
Delivery method code |
Example
Delivery method and code defined
<Invoice>
<!-- Code omitted for clarity -->
<cac:Delivery>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:DeliveryExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:DeliveryExtension>
<puf:DeliveryMethod>
<cbc:Note>Text describing the delivery method</cbc:Note>
<puf:Code>Deliver Method Code</puf:Code>
</puf:DeliveryMethod>
</puf:DeliveryExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:Delivery>
<!-- Code omitted for clarity -->
</Invoice>
4.1.17. PaymentTerms
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is puf:PageroExtension/puf:PaymentTermsExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:PaymentTerms>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:PaymentTermsExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:PaymentTermsExtension/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:PaymentTerms>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the extended element.
Element | Description |
---|---|
|
Late payment penalty note |
Example
Penalty text provided in extension
<Invoice>
<!-- Code omitted for clarity -->
<cac:PaymentTerms>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:PaymentTermsExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:PaymentTermsExtension>
<puf:Penalty>
<cbc:Note>Penalty text due to late payment</cbc:Note>
</puf:Penalty>
</puf:PaymentTermsExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:PaymentTerms>
<!-- Code omitted for clarity -->
</Invoice>
4.1.18. PrepaidPayment
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is puf:PageroExtension/puf:PrepaidPaymentExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:PrepaidPayment>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:PrepaidPaymentExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:PrepaidPaymentExtension/> (2)
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
</cac:PrepaidPayment>
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the extended element.
Element | Description |
---|---|
|
Prepayment invoice number ID |
|
Prepayment invoice issue date |
|
Prepayment invoice issue time |
|
Document type code |
|
Name/Description of the prepayment |
|
Total tax amount |
|
Total tax amount currency |
|
Total taxable amount for each tax category |
|
Total taxable amount for each tax category currency |
|
Total tax amount for each tax category |
|
Total tax amount currency for each tax category |
|
Tax category code |
|
Tax category percent |
|
Tax exemption reason code |
|
Tax exemption reason |
|
Tax scheme identfier |
Example
cac:PrepaidPayment example
<Invoice>
<!-- Code omitted for clarity -->
<cac:PrepaidPayment>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:PrepaidPaymentExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:PrepaidPaymentExtension>
<cac:DocumentReference>
<cbc:ID>46531</cbc:ID>
<cbc:IssueDate>2021-07-31</cbc:IssueDate>
<cbc:IssueTime>12:28:17</cbc:IssueTime>
<cbc:DocumentTypeCode>386</cbc:DocumentTypeCode>
</cac:DocumentReference>
<cbc:Description>Prepayment adjustment</cbc:Description>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="SAR">1.50</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="SAR">10.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="SAR">1.50</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>15.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
</puf:PrepaidPaymentExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:PaidAmount currencyID="SAR">11.50</cbc:PaidAmount>
</cac:PrepaidPayment>
<!-- Code omitted for clarity -->
</Invoice>
4.1.19. TaxSubTotal
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/TaxSubtotalExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:TaxTotal>
<cac:TaxSubtotal>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:TaxSubtotalExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:TaxSubtotalExtension/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:TaxSubtotal>
</cac:TaxTotal>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table lists all additional elements added to the extension.
Element | Description |
---|---|
|
Tax currency taxable amount |
|
Tax currency taxable amount currency |
|
Tax currency tax amount |
|
Tax currency tax amount currency |
|
Total amount including tax |
|
Currency of TaxInclusiveAmount |
|
Total amount including tax in tax currency |
|
Currency of TaxCurrencyTaxInclusiveAmount |
|
Tax chargeability |
Tax currency amounts
In Peppol BIS 3.0 billing it’s only possible to provide the tax currency summary amount of all tax sub totals.
In order to extend the support, it’s possible to use the PUF TaxSubtotalExtension
to provide the taxable and tax amount in tax currency per each sub total.
See example below.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>USD</cbc:TaxCurrencyCode>
<!-- Code omitted for clarity -->
<cac:TaxExchangeRate>
<cbc:SourceCurrencyCode>EUR</cbc:SourceCurrencyCode>
<cbc:TargetCurrencyCode>USD</cbc:TargetCurrencyCode>
<cbc:CalculationRate>1.17</cbc:CalculationRate>
<cbc:MathematicOperatorCode>Multiply</cbc:MathematicOperatorCode>
<cbc:Date>2019-01-01</cbc:Date>
</cac:TaxExchangeRate>
<!-- Code omitted for clarity -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">37.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:TaxSubtotalExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:TaxSubtotalExtension>
<puf:TaxCurrencyTaxableAmount currencyID="USD">117.00</puf:TaxCurrencyTaxableAmount> (1)
<puf:TaxCurrencyTaxAmount currencyID="USD">29.25</puf:TaxCurrencyTaxAmount> (2)
<puf:TaxInclusiveAmount currencyID="EUR">125.00</puf:TaxInclusiveAmount>
<puf:TaxCurrencyTaxInclusiveAmount currencyID="USD">146.25</puf:TaxCurrencyTaxInclusiveAmount>
</puf:TaxSubtotalExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">25.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<cac:TaxSubtotal>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:TaxSubtotalExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:TaxSubtotalExtension>
<puf:TaxCurrencyTaxableAmount currencyID="USD">117.00</puf:TaxCurrencyTaxableAmount> (3)
<puf:TaxCurrencyTaxAmount currencyID="USD">14.04</puf:TaxCurrencyTaxAmount> (4)
<puf:TaxInclusiveAmount currencyID="EUR">112.00</puf:TaxInclusiveAmount>
<puf:TaxCurrencyTaxInclusiveAmount currencyID="USD">131.04</puf:TaxCurrencyTaxInclusiveAmount>
</puf:TaxSubtotalExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">12.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>12</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="USD">43.29</cbc:TaxAmount> (5)
</cac:TaxTotal>
<!-- Code omitted for clarity -->
</Invoice>
1 | Taxable amount in tax currency for 25% rate. |
2 | Tax amount in tax currency for 25% rate. |
3 | Taxable amount in tax currency for 12% rate. |
4 | Tax amount in tax currency for 12% rate. |
5 | Summary of all sub totals TaxCurrencyTaxAmount . |
4.1.20. LegalMonetaryTotal
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/LegalMonetaryTotalExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:LegalMonetaryTotal>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LegalMonetaryTotalExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LegalMonetaryTotalExtension/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:LegalMonetaryTotal>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Tax currency tax exclusive amount |
|
Tax currency tax exclusive amount currency code |
|
Tax currency tax inclusive amount |
|
Tax currency tax inclusive amount currency code |
|
Tax currency payable amount |
|
Tax currency payable amount currency code |
|
Payment in kind amount |
|
Payment in kind currency code |
|
Payment in kind note |
Tax currency amounts
This section show an example of how to provide the documents total amounts in its tax currency.
Example
Example with EUR as document currency and USD as Tax currency
<Invoice>
<!-- Code omitted for clarity -->
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>USD</cbc:TaxCurrencyCode>
<!-- Code omitted for clarity -->
<cac:TaxExchangeRate>
<cbc:SourceCurrencyCode>EUR</cbc:SourceCurrencyCode>
<cbc:TargetCurrencyCode>USD</cbc:TargetCurrencyCode>
<cbc:CalculationRate>1.16</cbc:CalculationRate> (1)
<cbc:MathematicOperatorCode>Multiply</cbc:MathematicOperatorCode>
<cbc:Date>2017-12-01</cbc:Date>
</cac:TaxExchangeRate>
<!-- Code omitted for clarity -->
<cac:LegalMonetaryTotal>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LegalMonetaryTotalExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LegalMonetaryTotalExtension>
<puf:TaxCurrencyTaxExclusiveAmount currencyID="USD">116.00</puf:TaxCurrencyTaxExclusiveAmount> (2)
<puf:TaxCurrencyTaxInclusiveAmount currencyID="USD">116.00</puf:TaxCurrencyTaxInclusiveAmount> (3)
<puf:TaxCurrencyPayableAmount currencyID="USD">116.00</puf:TaxCurrencyPayableAmount> (4)
</puf:LegalMonetaryTotalExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:TaxExclusiveAmount currencyID="EUR">100.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">100.00</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="EUR">100.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<!-- Code omitted for clarity -->
</Invoice>
1 | Exchange rate which the calculation is based upon. |
2 | Amount in tax currency calculated upon TaxExclusiveAmount and CalculationRate . |
3 | Amount in tax currency calculated upon TaxInclusiveAmount and CalculationRate . |
4 | Amount in tax currency calculated upon PayableAmount and CalculationRate . |
Please note that tax has been excluded in above example. |
Payment in Kind
Payment in kind is a way to use goods or services as payment instead of cash.
The elements available in PUF allow the possibility to provide the corresponding amount of the goods and services and a description.
Example
Payment In Kind is 100 EUR
<Invoice>
<!-- Code omitted for clarity -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">250</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">1000</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">250</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LegalMonetaryTotalExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LegalMonetaryTotalExtension>
<puf:PaymentInKind>
<puf:Amount currency="EUR">100</puf:Amount> (1)
<cbc:Note>Text describing the payment in kind</cbc:Note>
</puf:PaymentInKind>
</puf:LegalMonetaryTotalExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:LineExtensionAmount currencyID="EUR">1000</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">1000</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">1250</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="EUR">1150</cbc:PayableAmount> (2)
</cac:LegalMonetaryTotal>
<!-- Code omitted for clarity -->
</Invoice>
1 | The amount 100 EUR is the payment in kind. |
2 | 100 EUR is subtracted on the TaxInclusiveAmount , calculation 1250 - 100 = 1150, resulting in new Payable amount. |
4.2. Line level
Below chapters describe the different extensions added on line level.
4.2.1. RestrictedInformation
RestrictedInformation has been added on line level in order to cater the need for unique country specific data and internal customer information that might be required for internal processing.
Note that no customer specific information can be added without prior consulting with Pagero. If country specific information is available as restricted information value, this can be found in the Country specifics section. |
The UBL extension to be used for TaxCurrencyLineExtensionAmount on line level is ext:UBLExtensions.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/LineExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:RestrictedInformation/> (2)
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table show the definition of the new element added to the extension.
Element | Description |
---|---|
|
Key |
|
Value |
Example
RestrictedInformation example from Hungary specific section
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:RestrictedInformation>
<puf:Key>lineModificationReferenceLineOperation</puf:Key>
<puf:Value>CREATE</puf:Value>
</puf:RestrictedInformation>
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
4.2.2. TaxCurrencyLineExtensionAmount
Element TaxCurrencyLineExtensionAmount
has been added in order to specify the lines net amount in tax currency.
The UBL extension to be used for TaxCurrencyLineExtensionAmount on line level is ext:UBLExtensions.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/LineExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Tax currency line net amount |
|
Tax currency line net amount currency code |
Example
Line with both net amount in document currency and tax currency
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:TaxCurrencyLineExtensionAmount currencyID="USD">117.00</puf:TaxCurrencyLineExtensionAmount> (1)
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount> (2)
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | The net amount in tax currency. |
2 | The net amount in document currency. |
4.2.3. TaxInclusiveLineExtensionAmount
Element TaxInclusiveLineExtensionAmount
has been added in order to specify the lines total amount including taxes.
The UBL extension to be used for TaxInclusiveLineExtensionAmount on line level is ext:UBLExtensions.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/LineExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Tax inclusive line total amount |
|
Tax inclusive line total amount currency code |
Example
Line with tax inclusive amount
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:TaxInclusiveLineExtensionAmount currencyID="EUR">1100</puf:TaxInclusiveLineExtensionAmount> (1)
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:LineExtensionAmount currencyID="EUR">1000</cbc:LineExtensionAmount> (2)
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">100</cbc:TaxAmount>
</cac:TaxTotal>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | The amount including tax. |
2 | The amount excluding tax. |
4.2.4. TaxCurrencyTaxInclusiveLineExtensionAmount
Element TaxCurrencyTaxInclusiveLineExtensionAmount
has been added in order to specify the lines total amount including taxes in tax currency.
The UBL extension to be used for TaxInclusiveLineExtensionAmount on line level is ext:UBLExtensions.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/LineExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Tax currency line total amount |
|
Tax currency line total amount currency code |
Example
Line with the total amount including tax both in document and tax currency
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:TaxInclusiveLineExtensionAmount currencyID="EUR">100.00</puf:TaxInclusiveLineExtensionAmount> (1)
<puf:TaxCurrencyTaxInclusiveLineExtensionAmount currencyID="USD">120.00</puf:TaxCurrencyTaxInclusiveLineExtensionAmount> (2)
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | The amount including tax in document currency. |
2 | The amount including tax in tax currency. |
4.2.5. LineExclAllowanceChargeAmount
In addition to the LineExtensionAmount a new element has been added to specify the line amount excluding any allowances and charges on the line.
The UBL extension to be used for LineExclAllowanceChargeAmount on line level is ext:UBLExtensions.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/LineExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Line total amount excluding tax, allowance and charges |
|
Line total amount excluding tax, allowance and charges currency code |
Example
Line with 100 EUR discount
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:LineExclAllowanceChargeAmount currencyID="EUR">1000</puf:LineExclAllowanceChargeAmount> (1)
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:LineExtensionAmount currencyID="EUR">900</cbc:LineExtensionAmount> (2)
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">100</cbc:Amount>
</cac:AllowanceCharge>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | The amount excluded the discount. |
2 | The amount included the discount. |
4.2.6. OriginatorDocumentReference
In order to specify the tender reference on line level, Originator document reference has been added to line extension.
The UBL extension to be used for OriginatorDocumentReference on line level is ext:UBLExtensions.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/LineExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:OriginatorDocumentReference/> (2)
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Tender reference identifer |
|
Referenced tender issue date |
Example
Originator document reference ID and date
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:OriginatorDocumentReference>
<cbc:ID>123456</cbc:ID>
<cbc:IssueDate>2018-01-01</cbc:IssueDate>
</puf:OriginatorDocumentReference>
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
4.2.7. ProjectReference
In order to specify the project reference on line level, project reference has been added to line extension.
The UBL extension to be used for ProjectReference on line level is ext:UBLExtensions.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/LineExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:ProjectReference/> (2)
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Project reference identifier |
Example
Project reference ID
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:ProjectReference>
<cbc:ID>123456</cbc:ID>
</puf:ProjectReference>
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
4.2.8. OrderLineReference
In addition, an extension has been created for providing additional information not supported in UBL 2.1.
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/LineExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:OrderLineReference>
<cac:OrderReference>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:OrderLineReference/> (2)
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:OrderReference>
</cac:OrderLineReference>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table show the definition of the new element added to the extension.
Element | Description |
---|---|
|
Sales order issue date |
Example
Order line reference containing all available elements
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:OrderLineReference>
<cbc:LineID>1</cbc:LineID>
<cac:OrderReference>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:OrderLineReference>
<puf:SalesOrderIssueDate>2019-01-01</puf:SalesOrderIssueDate>
</puf:OrderLineReference>
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:ID>Purchase Order ID</cbc:ID>
<cbc:SalesOrderID>Sales Order ID</cbc:SalesOrderID>
<cbc:IssueDate>2019-01-01</cbc:IssueDate>
</cac:OrderReference>
</cac:OrderLineReference>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
4.2.9. ContractDocumentReference
In order to specify the contract information on line level, ContractDocumentReference has been added to Line extension.
The UBL extension to be used for ContractDocumentReference on line level is ext:UBLExtensions.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/LineExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:ContractDocumentReference/> (2)
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table shows the definition of the new elements added to the extension.
Element | Description |
---|---|
|
Referenced contract identifier |
|
Referenced contract issue date |
|
Referenced buyer contract identifier |
|
Referenced buyer contract issue date |
Example
Contract document ID and date
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:ContractDocumentReference>
<cbc:ID>123456</cbc:ID>
<cbc:IssueDate>2018-01-01</cbc:IssueDate>
<puf:BuyerContractID>BuyerContractID</puf:BuyerContractID>
<puf:BuyerContractIssueDate>2019-01-01</puf:BuyerContractIssueDate>
</puf:ContractDocumentReference>
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
4.2.10. Item
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/ItemExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:Price>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:ItemExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:ItemExtension/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:Price>
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table show the definition of the new element added to the extension.
Element | Description |
---|---|
|
Item type |
Example
Line with goods item
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<cac:Item>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:ItemExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:ItemExtension>
<puf:ItemType>GOODS</puf:ItemType>
</puf:ItemExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
</cac:Item>
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
4.2.11. Price
The Price segment has been extended with new elements.
The UBL extension to be used for below elements can be found here.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/PriceExtension
.
See example below as well as the URI to be used for this extension.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:Price>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:PriceExtension</ext:ExtensionURI> (1)
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:PriceExtension/> (2)
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:Price>
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | URI to be used if this extension is added. |
2 | Structure to be used if information from this extension will be used. |
Below table show the definition of the new element added to the extension.
Element | Description |
---|---|
|
Price including allowances and charges |
|
Currency code for price including allowances and charges |
|
Price in tax currency |
|
Currency code for price in tax currency |
Example
Line with 100 EUR discount
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<cbc:InvoicedQuantity unitCode="EA">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">900.00</cbc:LineExtensionAmount>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">100.00</cbc:Amount>
</cac:AllowanceCharge>
<!-- Code omitted for clarity -->
<cac:Price>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:PriceExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:PriceExtension>
<puf:PriceInclAllowanceChargeAmount currencyID="EUR">900.00</puf:PriceInclAllowanceChargeAmount> (2)
<puf:TaxCurrencyPriceAmount currencyID="USD">1170.00</puf:TaxCurrencyPriceAmount> (3)
</puf:PriceExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:PriceAmount currencyID="EUR">1000.00</cbc:PriceAmount> (1)
</cac:Price>
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
1 | The unit price excluding the discount. |
2 | The unit price including the discount. |
3 | Unit price provided in tax currency, calculated with an exchange rate of 1.17. |
5. Country specifics
This section will provide information regarding on how to include common country specific data in PUF.
5.1. Basque Country
This section contains information about special requirements concerning invoicing in the Basque Country.
5.1.1. Invoice description
When reporting an invoice to the Basque tax authorities, it is a requirement to provide an invoice description. This is a description of why the invoice exists and what its purpose is.
This description is mandatory, and can be sent in the regular Note field.
This information is also shown to any recipients of the invoice. |
Example
Invoice Description example
<Invoice>
<!-- Code omitted for clarity -->
<cbc:Note>Reason for document.</cbc:Note>
<!-- Code omitted for clarity -->
</Invoice>
5.1.2. Invoice series
If the invoice follows an invoice series, this should be reported to the Basque tax authorities.
Do note that when issuing a credit note it is mandatory to have a series. Furthermore, when issuing a credit note and referencing an earlier invoice’s series the structure shown in here should be used.
Example
Invoice Series example
<Invoice>
<ext:UBLExtensions>
<!-- Invoice Series if applicable -->
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:InvoiceSeries</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:InvoiceSeries>
<cbc:ID>InvSeries1</cbc:ID>
</puf:InvoiceSeries>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
5.1.3. PartyIdentification
In the Basque Country there is a potential need to provide additional party identifiers that are not available in the ISO 6523 ICD list.
These additional identifiers for use in the Basque Country can be found here: Identification scheme Basque Country.
Example
Example with additional id provided in Basque Country in Party structure
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty>
<cac:Party>
<!-- Code omitted for clarity -->
<cac:PartyIdentification>
<cbc:ID schemeID="TB:PASSPORT">0123456789</cbc:ID>(1)
</cac:PartyIdentification>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
</Invoice>
1 | The passport id provided as cac:PartyIdentification/cbc:ID . |
5.1.4. Tax category codes
Tax category codes for the Basque Country can be found here: Tax category codes Basque Country.
5.1.5. Tax regime
When reporting an invoice to the Basque tax authorities, it is required to specify the tax regime codes the invoice falls under.
Up to three of these codes can be used in the same invoice.
Value | Description |
---|---|
|
Transaction in general regime. |
|
Exports. |
|
Transactions covered by the special tax regime for used goods, art objects, antiques and collectors' items. |
|
Special tax regime for investment gold. |
|
Special regime for travel agencies. |
|
Special regime for consolidated groups in VAT (Advanced Level). |
|
Special cash-basis regime. |
|
Transactions subject to IPSI / IGIC (Tax on Production, Services and Imports / General Indirect Tax of the Canary Islands). |
|
Sales from provision of services by travel agencies acting as mediators on behalf of third parties. (Additional Provision 3 of the Invoicing Regulations) |
|
Amounts collected on behalf of third parties of professional fees or rights derived from industrial property, copyright or others on behalf of members or associates made by societies, associations, professional institutes or other entities performing these payment collection functions. |
|
Transactions involving rental of business premises subject to withholding. |
|
Transactions involving rental of business premises not subject to withholding. |
|
Transactions involving rental of business premises subject or not to withholding. |
|
Invoice with VAT pending accrual in site certifications whose recipient is a public administration (government authority). |
|
Invoice with VAT pending accrual in chain of title transactions. |
|
Transactions in special additional VAT regime. |
|
Transactions in simplified regime. |
|
Transactions carried out by persons or entities that are not considered businessmen, businesswomen or professionals to VAT effects. |
The value should be provided in element RestrictedInformation with key SignificantTaxRegime
.
Example
Tax Regime example
<Invoice>
<!-- Code omitted for clarity -->
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformation</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformation>
<puf:Key>SignificantTaxRegime</puf:Key>
<puf:Value>01</puf:Value>
</puf:RestrictedInformation>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
5.1.6. Transaction type
When reporting a cross-border invoice (i.e. not within Spain) to the Basque tax authorities, it is required to specify the transaction type the invoice falls under.
This will be either Goods or Service.
It is currently only supported to send one type per invoice.
If you invoice for both goods and services, it is necessary to split these into two or more invoices.
Value | Description |
---|---|
|
The invoice is for the sale of goods. |
|
The invoice is for the sale of services. |
The value should be provided in element RestrictedInformation with key TransactionType
.
Example
Transaction Type example
<Invoice>
<!-- Code omitted for clarity -->
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformation</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformation>
<puf:Key>TransactionType</puf:Key>
<puf:Value>SERVICE</puf:Value>
</puf:RestrictedInformation>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
5.1.7. Correction reason code
When reporting a correction (Credit Note) to the Basque tax authorities, it is required to specify why the correction is being made.
Below is a list of allowed values.
Value | Description |
---|---|
|
Error based on law and Art. 80 One, Two and Six of the VAT Regulation. |
|
Article 80 Three of the VAT Regulation. |
|
Article 80 Four of the VAT Regulation. |
|
Others. |
|
Corrective invoice for simplified invoice. |
The value should be provided in the element puf:Code
within the BillingReference structure.
Example
Credit reason code example
<CreditNote>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:BillingReferenceExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:BillingReferenceExtension>
<!-- Referenced invoice's serie, if applicable -->
<puf:InvoiceSeries>
<cbc:ID>InvSeries1</cbc:ID>
</puf:InvoiceSeries>
<cbc:Note>Textual note describing the reason for issuing a credit/debit note</cbc:Note>
<!-- Reason for credit in code form, if applicable -->
<puf:Code>R1</puf:Code>(1)
</puf:BillingReferenceExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</CreditNote>
1 | The reason code provided. |
5.2. Canada
This section contains information about requirements and other information concerning invoicing in Canada.
5.2.1. Tax type scheme
Tax type scheme codes for Canada can be found in PUF-009-TAXTYPESCHEME.
5.2.2. Party identification
There is a possible requirement to provide additional party identifiers that are not available in the ISO 6523 ICD list.
These additional identifiers for use in Canada can be found here Identification scheme Canada.
Example
Example with additional id’s provided in Canada in Party structure
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingSupplierParty>
<!-- Code omitted for clarity -->
<cac:Party>
<!-- Code omitted for clarity -->
<cac:PartyIdentification>
<cbc:ID schemeID="CA:GST">123456789RT0002</cbc:ID>(1)
</cac:PartyIdentification>
<cac:PartyIdentification>
<cbc:ID schemeID="CA:QST">123456789TQ0002</cbc:ID>(2)
</cac:PartyIdentification>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingSupplierParty>
</Invoice>
1 | GST number provided as cac:PartyIdentification/cbc:ID . |
2 | QST number provided as cac:PartyIdentification/cbc:ID . |
5.3. France
This section contains information about requirements and other information concerning invoicing in France.
5.3.1. Service code
Service code is a routing code required by some customers to identify the correct recipient in French Government Portal.
It’s used as an addition to the SIRET number, which is the main identifier for all government recipients.
The Service code should be provided in the extension block under cac:AccountingCustomerParty/cac:Party, in the structure puf:PageroExtension/puf:PartyExtension/puf:ADAID
.
More information how to use ADAID can be found here.
See example below, note that cbc:Name
is not mandatory to send, but opens up the possibility to provide the name of the receiving unit.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
<cac:Party>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:PartyExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:PartyExtension>
<puf:ADAID>
<cbc:ID>1234567890</cbc:ID>
<cbc:Name>Name of receiving unit</cbc:Name>
<puf:IDType listID="PUF-002-ADAID">FR:ServiceCode</puf:IDType>
</puf:ADAID>
</puf:PartyExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
</Invoice>
5.3.2. Legal commitments
Entities behind French Government portal can set up validation of certain elements called legal commitments. Therefore it’s recommended to support the below values in order to fulfill the requirements of this validation.
- Customer contract defined as "Contrat"
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:ContractDocumentReference>
<cbc:ID>Contract number</cbc:ID>
<cbc:IssueDate>2019-01-01</cbc:IssueDate>
</cac:ContractDocumentReference>
<!-- Code omitted for clarity -->
</Invoice>
- Tender reference defined as "Marché Public"
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:OriginatorDocumentReference>
<cbc:ID>Tender number</cbc:ID>
<cbc:IssueDate>2019-01-01</cbc:IssueDate>
</cac:OriginatorDocumentReference>
</Invoice>
<!-- Code omitted for clarity -->
- Purchase order number defined as "Engagement"
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:OrderReference>
<cbc:ID>Order Number</cbc:ID>
<cbc:IssueDate>2019-01-01</cbc:IssueDate>
</cac:OrderReference>
<!-- Code omitted for clarity -->
</Invoice>
5.4. Hungary
This section contains information about special requirements concerning invoicing in Hungary and Real-Time Invoice Reporting (RTIR)
5.4.1. Invoice appearance
Each document must have a Invoice Apperance code, the value depends on how the documents is distributed between the issuer and receiver.
Note that invoices distributed via email shall be classified as ELECTRONIC
.
The table below lists valid codes.
Value | Description |
---|---|
|
Invoice issued on paper. |
|
Electronic invoice (non-EDI). |
|
EDI invoice. |
|
The software cannot identify the form of appearance of the invoice or it is unknown at the time of issue. |
The code should match the defined distribution method, if this is unknown at the time of issuance, UNKNOWN must be used.
|
The value should be provided in element RestrictedInformation with key invoiceAppearance
.
Example
Invoice Appearance ELECTRONIC example
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformation</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformation>
<puf:Key>invoiceAppearance</puf:Key>
<puf:Value>ELECTRONIC</puf:Value>
</puf:RestrictedInformation>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
5.4.2. Tax number
The syntax of Hungarian tax IDs is 11 characters.
The first 8 digits is the tax payer ID.
The 9th digit is the VAT code.
The last two digits is the county code.
The 9th digit means:
-
1 - personal tax exemption, not VAT tax payer person
-
2 - general rules (scope in the Hunagrian VAT law)
-
3 - simplified entrepreneurial tax (it cannot be chosen anymore)
-
4 - group member tax ID
-
5 - group tax ID
For the seller tax number the 9th digit should be a 2 (or 1, 3, 5).
If the company have a group member tax ID the 9th digit must be a 5.
Hungarian tax id should be sent in the element cac:Party/cac:PartyLegalEntity/cbc:CompanyID
.
The group member tax ID should be sent in cbc:PartyIdentification
with a @schemeID
attribute value defined in the list Identification scheme Hungary.
5.4.3. Customer VAT status
It’s mandatory to provide the customers VAT status, this determine allowed content and rules for the customer party.
Allowed values can be found in below table.
Value | Description |
---|---|
|
Domestic VAT taxable person. |
|
Other (domestic non-VAT taxable person, non-natural person, foreign VAT taxable person and foreign non-VAT taxable person, non-natural person). |
|
Non-VAT taxable natural person (domestic or foreign). |
The value should be provided in element RestrictedInformation with key customerVatStatus
.
Example
Customer VAT Status populated in RestrictedInformation
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformation</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformation>
<puf:Key>customerVatStatus</puf:Key>
<puf:Value>PRIVATE_PERSON</puf:Value>
</puf:RestrictedInformation>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
5.4.4. Line expression indicator
lineExpressionIndicator
indicates whether the unit of the item can be expressed as a natural unit of measurement. The indicator must be provided on each line.
If the value of the lineExpressionIndicator
tag is true
, the following values must be entered on the invoice line:
-
name of product or service
-
quantity
-
quantity unit
-
unit price
If the value of the lineExpressionIndicator
tag is false
, only the name of the product or service must be entered on the invoice line from above list.
The value should be provided in element RestrictedInformation with key lineExpressionIndicator
.
Example
lineExpressionIndicator true
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:LineExtension>
<puf:RestrictedInformation>
<puf:Key>lineExpressionIndicator</puf:Key>
<puf:Value>true</puf:Value>
</puf:RestrictedInformation>
</puf:LineExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:InvoicedQuantity unitCode="EA">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Article 1</cbc:Name>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">110.00</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
5.4.5. Modification
Hungary RTIR flow require a special handling regarding credit and modification of documents, below section will give brief information how this must be handled.
Modify without master
When creating a modification document e.g. a credit note, it’s mandatory to indicate whether the original document has been reported or not.
The value should be provided in element RestrictedInformation with key modifyWithoutMaster
.
Example
CreditNote with modifyWithoutMaster
<CreditNote>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformation</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformation>
<puf:Key>modificationIndex</puf:Key>
<puf:Value>1</puf:Value>
</puf:RestrictedInformation>
<puf:RestrictedInformation>
<puf:Key>modifyWithoutMaster</puf:Key>
<puf:Value>false</puf:Value>
</puf:RestrictedInformation>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:ID>111234552</cbc:ID>
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<cbc:ID>1234567</cbc:ID>
</cac:InvoiceDocumentReference>
</cac:BillingReference>
<!-- Code omitted for clarity -->
</CreditNote>
Modification index
In Hungary it’s possible to reference the original invoice multiple times.
It’s therefore mandatory to specify on each modification/credit document the index of the document starting with value 1.
If additional documents will be sent referencing the same original invoice this index is increased by 1.
The value should be provided in element RestrictedInformation with key modificationIndex
.
Example
CreditNote with modificationIndex
<CreditNote>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformation</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformation>
<puf:Key>modificationIndex</puf:Key>
<puf:Value>1</puf:Value>
</puf:RestrictedInformation>
<puf:RestrictedInformation>
<puf:Key>modifyWithoutMaster</puf:Key>
<puf:Value>false</puf:Value>
</puf:RestrictedInformation>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:ID>111234552</cbc:ID>
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<cbc:ID>1234567</cbc:ID>
</cac:InvoiceDocumentReference>
</cac:BillingReference>
<!-- Code omitted for clarity -->
</CreditNote>
lineOperation and modificationReferenceLineNumber
Each line in a modification invoice or credit note must contain a lineModificationReferenceLineOperation
and lineModificationReferenceLineNumberReference
, below is a short explanation how to use the available operation CREATE
.
Credit: In Hungary RTIR flow credit note is structured a bit different than a regular credit note.
In the file to the tax authority the operation CREATE
must be sent on each line, which indicate that you Create a new line ontop of the referenced original invoice. In order to create a credit note, the operation CREATE
must be sent on each line and then the subtract the original invoice line amount using minus sign and the original invoices line data.
The lineModificationReferenceLineNumberReference
element will be the continuation of the original numbering created from the original invoice and all previous documents thereof.
Both the lineModificationReferenceLineOperation
and lineModificationReferenceLineNumberReference
should be provided on each line in element RestrictedInformation.
Valid values for lineModificationReferenceLineOperation
is CREATE
with the key lineModificationReferenceLineOperation
.
Example
Original Invoice
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformation>
<puf:Key>lineExpressionIndicator</puf:Key>
<puf:Value>true</puf:Value>
</puf:RestrictedInformation>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="EA">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount> (2)
<cac:Item>
<cbc:Name>Article 1</cbc:Name>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">100.00</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
<!-- Code omitted for clarity -->
</Invoice>
Example
Credit Note with modification of Invoice
<CreditNote>
<!-- Code omitted for clarity -->
<cac:CreditNoteLine>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:LineExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformation>
<puf:Key>lineModificationReferenceLineOperation</puf:Key>
<puf:Value>CREATE</puf:Value>
</puf:RestrictedInformation>
<puf:RestrictedInformation>
<puf:Key>lineModificationReferenceLineNumberReference</puf:Key>
<puf:Value>2</puf:Value> (1)
</puf:RestrictedInformation>
<puf:RestrictedInformation>
<puf:Key>lineExpressionIndicator</puf:Key>
<puf:Value>true</puf:Value>
</puf:RestrictedInformation>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:ID>1</cbc:ID>
<cbc:CreditedQuantity unitCode="EA">-1</cbc:CreditedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">-100.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Article 1</cbc:Name>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">100.00</cbc:PriceAmount>
</cac:Price>
</cac:CreditNoteLine>
<!-- Code omitted for clarity -->
</CreditNote>
1 | lineModificationReferenceLineNumberReference is the continuation of the original numbering created from the original invoice, in this example the original invoice line number was 1, then the lineModificationReferenceLineNumberReference will be 2. |
5.5. India
This section contains information about special requirements concerning invoicing in India.
5.5.1. Place of supply
Place of supply determines the place (the State) where the GST shall be received by the government treasury.
The value should be provided in element RestrictedInformation with key POS
.
Example
Place of Supply example
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformation</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformation>
<puf:Key>POS</puf:Key>
<puf:Value>01</puf:Value>
</puf:RestrictedInformation>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
5.5.2. Party identification
In India there is a possible requirement to providing additional party identifiers that are not available in the ISO 6523 ICD list.
These additional identifiers for use in India can be found here: Identification scheme India.
Example
Example with additional id provided in India in Party structure
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
<cac:Party>
<!-- Code omitted for clarity -->
<cac:PartyIdentification>
<cbc:ID schemeID="IN:GSTIN">11AAAAA3212A1AA</cbc:ID>(1)
</cac:PartyIdentification>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingCustomerParty>
</Invoice>
1 | GSTIN number in India provided as cac:PartyIdentification/cbc:ID . |
5.5.3. Party address information
The mandatory clearance platform IRP validate the below address information according to code lists.
cbc:CountrySubentityCode
Each party must contain the corresponding states code, the state code should be sent in element cbc:CountrySubentityCode
and must be two digits.
Valid state codes can be found on the government website https://einvoice1.gst.gov.in/Others/MasterCodes.
The parties state code must correspond with the first two digits of the parties GSTIN number.
cbc:PostalZone
The post code or PIN code as referred to in India must exist on all parties and must be sent in cbc:PostalZone
.
Valid codes can be found on the government website https://einvoice1.gst.gov.in/Others/MasterCodes.
Example
Example of a correct address for cac:AccountingCustomerParty
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
<cac:Party>
<!-- Code omitted for clarity -->
<cac:PostalAddress>
<cbc:StreetName>Street 1</cbc:StreetName>
<cbc:CityName>Jammu</cbc:CityName>
<cbc:PostalZone>181131</cbc:PostalZone>
<cbc:CountrySubentityCode>01</cbc:CountrySubentityCode>
<cac:Country>
<cbc:IdentificationCode>IN</cbc:IdentificationCode>
<cbc:Name>India</cbc:Name>
</cac:Country>
</cac:PostalAddress>
<cac:PartyIdentification>
<cbc:ID schemeID="IN:GSTIN">01AAAAA3212A1AA</cbc:ID>(1)
</cac:PartyIdentification>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
</Invoice>
5.5.4. Tax type scheme
Tax type scheme codes for India can be found in PUF-009-TAXTYPESCHEME.
5.5.5. HSN code
Each invoice line must contain a HSN code, IRP will validate that the provided HSN code correspond with relevant taxes for that goods or service.
All HSN codes applicable can be found on the government website https://einvoice1.gst.gov.in/Others/MasterCodes.
Example
Example how to provide HSN code
<Invoice>
<!-- Code omitted for clarity -->
<cac:InvoiceLine>
<!-- Code omitted for clarity -->
<cac:Item>
<cac:CommodityClassification>
<cbc:ItemClassificationCode listID="HS">85176290</cbc:ItemClassificationCode>
</cac:CommodityClassification>
</cac:Item>
</cac:InvoiceLine>
</Invoice>
5.5.6. Supply type
In India it’s mandatory to define the type of supply relevant for the invoice, the available codes can be found below and must be stated in the Supply type element found here.
Value | Description |
---|---|
|
Business to Business. |
|
SEZ with payment. |
|
SEZ without payment. |
|
Export with Payment. |
|
Export without payment. |
|
Direct Export. |
5.5.7. IGST on intra state transaction
In some cases IGST is applicable on intra state supplies, in order to indicate this a true or false flag must be set in element puf:IGSTOnIntra
which can be found here.
5.6. Italy
This section contains information about requirements and other information concerning invoicing in Italy.
5.6.1. Routing code (codice destinatario)
In order to send invoices in Italy a destination code must be provided called "Codice Destinatario".
The destination code should be sent in cac:AccountingCustomerParty/cac:Party/cbc:EndpointID
with the @schemeID
attribute value "0201" (Indice delle Pubbliche Amministrazioni).
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty>
<cac:Party>
<cbc:EndpointID schemeID="0201">123456</cbc:EndpointID>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
</Invoice>
5.6.2. Duty stamp (dati bollo)
In order to provide Dati Bollo (Duty Stamp) required on some invoices in Italy the value can be provided in the following element Duty Stamp.
Example
Example for Dati Bollo in Italy
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:DutyStamp</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:DutyStamp>
<puf:Amount currencyID="EUR">2.00</puf:Amount>
</puf:DutyStamp>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
5.6.3. Tax chargeability (esigibilita IVA)
To provide tax chargeability, the extension element (Invoice|CreditNote)/cac:TaxTotal/cac:TaxSubtotal/ext:UBLExtensions
can be used.
The structure used from PUF-ExtensionComponent.xsd
is PageroExtension/TaxSubtotalExtension
.
See example below.
Possible values to provide:
-
I = VAT with immediate chargeability
-
D = VAT unrealized
-
S = Splitting of payments
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:TaxTotal>
<cac:TaxSubtotal>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:TaxSubtotalExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:TaxSubtotalExtension>
<puf:TaxChargeability>
<cbc:TaxTypeCode>S</cbc:TaxTypeCode>
</puf:TaxChargeability>
</puf:TaxSubtotalExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:TaxSubtotal>
</cac:TaxTotal>
<!-- Code omitted for clarity -->
</Invoice>
5.6.4. VAT number and fiscal code
It is possible to send a VAT number and/or a fiscal code (Codice Fiscale) in PUF, below is a description and example how to provide this.
- VAT number in Italy
-
-
CompanyID - Must start with a country code (two characters) followed by 1 to 28 characters
-
TaxScheme/ID - Must be VAT
-
- Fiscal code in Italy
-
-
CompanyID - Can contain 11 to 16 characters
-
TaxScheme/ID - Must be TAX
-
Example
AccountingCustomerParty with both VAT number and fiscal code
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty> (1)
<cac:Party>
<!-- Code omitted for clarity -->
<cac:PartyTaxScheme>
<cbc:CompanyID>IT123456789</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyTaxScheme>
<cbc:CompanyID>12345678901</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>TAX</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
</Invoice>
1 | Example contains cac:AccountingCustomerParty but same handling applies for cac:AccountingSupplierParty . |
5.6.5. Registration data
To provide the registration data (Ufficio, NumeroREA, Capitale Sociale, Socio Unico and Stato Liquidazione) in the XML file please check the extension for cac:AccountingSupplierParty
structure here.
5.7. Malaysia
This section contains information about special requirements concerning invoicing in Malaysia.
5.7.1. Party identification
In Malayia there is a requirement to providing additional party identifiers that are not available in the ISO 6523 ICD list.
These additional identifiers for use in Malaysia can be found here: Identification scheme malaysia.
Example
Example with additional id provided in Malaysia in Party structure
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
<cac:Party>
<!-- Code omitted for clarity -->
<cac:PartyIdentification>
<cbc:ID schemeID="MY:BRN">201901234000</cbc:ID>(1)
</cac:PartyIdentification>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingCustomerParty>
</Invoice>
1 | Business registration number in Malaysia provided as cac:PartyIdentification/cbc:ID . |
5.7.2. Tax Details
In order to provide the correct tax details in Malaysia the LHDN valid values must be provided in cac:TaxScheme/cbc:Name
element.
Valid values for cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:Name
are listed in the table below:
Value | Description |
---|---|
|
Sales Tax. |
|
Service Tax. |
|
Tourism Tax. |
|
High-Value Goods Tax. |
|
Sales Tax on Low Value Goods. |
|
Not Applicable. |
|
Tax exemption (where applicable). |
Example
Tax example
<Invoice>
<!-- Code omitted for clarity -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="MYR">6.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="MYR">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="MYR">6.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>45.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>SST</cbc:ID>
<cbc:Name>01</cbc:Name>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<cac:TaxTotal>
<!-- Code omitted for clarity -->
</Invoice>
5.7.3. Unit of Measure
LHDN is following the UN/ECE Recommendation 20, Revision 17 (2021). The Unit of Measure code sent in the invoice must be one of the accepted codes listed on the LHDN’s official webpage here.
5.8. Philippines
This section contains information about special requirements concerning invoicing in Philippines. For more information on how to send compliant invoices in Philippines see example files.
5.8.1. Corrective Invoice
When sending a corrective invoice it is required to specify the unique id of the invoice being corrected as well as the reason code.
The unique id is returned in the PUF Clearance Notification as puf:ClearanceReferenceID/cbc:ID
.
Below is a list of reason codes.
Code | Description |
---|---|
|
Error - In any mandatory field. |
|
Duplication - Sales data transmitted more than once regardless of transaction period. |
|
Addition/reduction - Addition/reduction of contracted volume or amount. |
|
Cancellation - For sales data previously transmitted but transaction was subsequently cancelled or rescinded by buyer/seller for failure to consumate. Full return of goods without replacement is considered cancellation. |
|
Return - For original goods supplied and returned for replacement. Ex: Damaged, defective, wrong specifications, change item, or for any other reason. |
|
Others - In one of the following cases: - If not covered by the aforementioned errors. |
The clearance id and the reason code should be provided within the BillingReference structure.
Example
Correction example.
Sales Invoice being corrected for 'other' reason
<Invoice>
<!-- Code omitted for clarity -->
<!-- Invoice Type Code 384 and Sales Invoice (SI) code in attribute @name -->
<cbc:InvoiceTypeCode name="01">384</cbc:InvoiceTypeCode>(1)
<!-- Code omitted for clarity -->
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:BillingReferenceExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:BillingReferenceExtension>
<cbc:Note>Textual note describing the reason for issuing a corrective invoice</cbc:Note>
<!-- Reason for correction in code form -->
<puf:Code>09</puf:Code>(2)
<!-- The unique id of the invoice being corrected -->
<puf:ClearanceID>2024062178083614FMWDD2O0</puf:ClearanceID>(3)
</puf:BillingReferenceExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:ID>Invoice reference ID</cbc:ID>
<cbc:IssueDate>2024-05-01</cbc:IssueDate>
</cac:InvoiceDocumentReference>
</cac:BillingReference>
<!-- Code omitted for clarity -->
</Invoice>
1 | Invoice type code (384, Corrective) and type code attribute (01, Sales Invoice) |
2 | The reason code provided. |
3 | Previous Unique ID (Clearance ID) |
5.8.2. Withholding VAT
Witholding Tax amount can be provided on header level if one of the following cac:TaxScheme/cbc:ID
is used.
-
VAT
(Withholding Tax-Business VAT) -
INC
(Withholding Tax-Income Tax) -
PER
(Withholding Tax-Business Percentage)
5.8.3. Permit To Use (PTU)
The PTU is the number issued by the Bureau of Internal Revenue allowing taxpayer’s use of Computerized Accounting System (CAS) and must be provided in the RestrictedInformation with key Ph_PTU
.
Example
PTU example
<Invoice>
<!-- Code omitted for clarity -->
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformation</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformation>
<puf:Key>Ph_PTU</puf:Key>
<puf:Value>123456</puf:Value>
</puf:RestrictedInformation>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
5.8.4. Seller Tax Status
Seller Tax Status or Seller Type can be either VAT registered or Non-VAT registered.
Allowed values: 0 or 1.
0 = VAT Registered.
1 = Non VAT registered.
Use the Registration data extension to provide this information. Example is provided in Party Branch Code
5.8.5. Party Branch Code
The Party extension should be used to provide the code that identifies a headquarters or branch office.
Example Party Extension
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingSupplierParty>
<!-- Code omitted for clarity -->
<cac:Party>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:PartyExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:PartyExtension>
<puf:RegistrationData>
<cbc:ID>0</cbc:ID>(1)
<puf:IDType listID="PUF-001-REGISTRATIONDATA">PH:SellerType</puf:IDType>
</puf:RegistrationData>
<puf:ADAID>
<cbc:ID>00123</cbc:ID>(2)
<puf:IDType listID="PUF-002-ADAID">GEN:UnitCode</puf:IDType>
</puf:ADAID>
</puf:PartyExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingSupplierParty>
<!-- Code omitted for clarity -->
</Invoice>
1 | Seller Tax Status is specified in puf:RegistrationData . |
2 | Party Branch Code is specified in puf:ADAID |
5.8.6. Invoice Type
Available invoice type code values to be used in Philippines can be found here: Invoice type codes Philippines.
In addition to providing the invoice type, it is also required to provide an additional code in the name
attribute. The main reason for this is to enable Corrective Invoice for mulitple invoice types.
Example
Sales Invoice
<Invoice>
<!-- Code omitted for clarity -->
<cbc:InvoiceTypeCode name="01">380</cbc:InvoiceTypeCode>(1)
<!-- Code omitted for clarity -->
</Invoice>
1 | InvoiceTypeCode 380 for "Invoice" provided. Additional type code 01 for "Sales Invoice" in attribute name. |
Example
Credit Note
<CreditNote>
<!-- Code omitted for clarity -->
<cbc:InvoiceTypeCode name="03">381</cbc:InvoiceTypeCode>(1)
<!-- Code omitted for clarity -->
</CreditNote>
1 | InvoiceTypeCode 381 for "Credit Note" provided. Additional type code 03 for "Credit Note" in attribute name. |
Example
Correction of Sales Invoice
<Invoice>
<!-- Code omitted for clarity -->
<cbc:InvoiceTypeCode name="01">384</cbc:InvoiceTypeCode>(1)
<!-- Code omitted for clarity -->
</Invoice>
1 | InvoiceTypeCode 384 for "Corrective Invoice" provided. Additional type code 01 for "Sales Invoice" in attribute name. |
5.8.7. Allowance reason codes
The following codes are supported for discounts in Philippines.
Value | Description |
---|---|
104 |
Standard/Regular Discount. |
100 |
Special Discount. |
SC |
Senior Citizen Discount. |
PWD |
Person With Disability Discount |
5.9. Portugal
This section contains information about special requirements concerning invoicing in Portugal.
5.9.1. Billing software certification
Invoices in Portugal must be issued via a certified software and in the extension puf:BillingSoftware
it’s possible to provide the mandatory values.
Example
Extension with the billing software details populated
<Invoice>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:BillingSoftware</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:BillingSoftware>
<puf:Number>1111/AT</puf:Number> (1)
<puf:Hash>AAaa</puf:Hash> (2)
<cbc:Description>AAaa - Processado por programa certificado n. 1111/AT.</cbc:Description> (3)
</puf:BillingSoftware>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
1 | Software certification identification. |
2 | Hash code. |
3 | Description of the software certification. |
5.9.2. QR code and ATCUD
In Portugal it can be required to provide a QR code and ATCUD.
There are two ways of providing a QR string in PUF. Note that you should only use one of the alternatives.
Example 1. As mentioned in the national CIUS-PT.
In this example the QR code and ATCUD is provided in cac:AdditionalDocumentReference provided as recommended in the portuguese national cius (CIUS-PT). This way of sending the QR can be used if
the issuer is sending an Invoice Image that contains a qr image that corresponds to the the embedded qr string in below example.
<Invoice>
<!-- Code omitted for clarity -->
<cac:AdditionalDocumentReference>
<cbc:ID schemeID="ANG">12345678-123456789123</cbc:ID> <!--ATCUD, use the schemeID ANG-->
<cbc:DocumentDescription>QR_CODE</cbc:DocumentDescription><!-- DocumentDescription must be QR_CODE -->
<cac:Attachment> <!--QR Code encoded in base64-->
<cbc:EmbeddedDocumentBinaryObject mimeCode="text/plain" filename="the filename">QRstringInBase64</cbc:EmbeddedDocumentBinaryObject><!-- mimeCode must be text/plain -->
</cac:Attachment>
</cac:AdditionalDocumentReference>
<!-- Code omitted for clarity -->
</Invoice>
Example 2. Alternate way of sending QR string and ATCUD
If there is a need for providing a QR code that is to be used by Pagero in order to display it on an invoice presentation/image. If this is the case the below example is to visualize how QR and ATCUD
can be provided. Note that in this scenario the QR string must be sent as plain TEXT and not as base64._
<Invoice>
<!-- Code omitted for clarity -->
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:QRExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:SupplierGeneratedQRString>
<puf:QRString>TheQRCode</puf:QRString>
<puf:QREncodingType>TEXT</puf:QREncodingType>
</puf:SupplierGeneratedQRString>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
<cac:AdditionalDocumentReference>
<cbc:ID schemeID="ANG">12345678-123456789123</cbc:ID> <!--ATCUD, use the schemeID ANG-->
</cac:AdditionalDocumentReference>
<!-- Code omitted for clarity -->
</Invoice>
5.9.3. Tax category codes
Tax category codes for Portugal can be found here: Tax category codes Portugal.
Note that multiple tax category codes overlap due to previous Portugese standards. The recommendation is to use the official UNCL5305 codes in the list, if possible.
5.10. Saudi Arabia
This section contains information about special requirements concerning invoicing in Saudi Arabia.
5.10.1. Invoice type code and invoice subtype
Available invoice type code values to be used in Saudi Arabia can be found here: Invoice type codes Saudi Arabia.
In addition to providing the invoice type it is also required to provide the subtype/s.
Supported subtype codes can be found here: Invoice subtype codes Saudi Arabia.
Example
Example with InvoiceTypeCode and invoice subtypes provided for Saudi Arabia
<Invoice>
<!-- Code omitted for clarity -->
<cbc:InvoiceTypeCode name="0100000">388</cbc:InvoiceTypeCode>(1)
<!-- Code omitted for clarity -->
</Invoice>
1 | InvoiceTypeCode 388 for "Tax Invoice" provided. Attribute name in this KSA scenario is used to provide the invoice subtypes. |
5.10.2. Party identification
In Saudi Arabia there is a possible requirement to providing additional party identifiers that are not available in the ISO 6523 ICD list.
These additional identifiers for use in Saudi Arabia can be found here: Identification scheme Saudi Arabia.
Example
Example with additional id provided in Saudi Arabia in Party structure
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
<cac:Party>
<!-- Code omitted for clarity -->
<cac:PartyIdentification>
<cbc:ID schemeID="SA:NAT">0123456789</cbc:ID>(1)
</cac:PartyIdentification>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingCustomerParty>
</Invoice>
1 | The national id provided as cac:PartyIdentification/cbc:ID . |
5.11. Serbia
This section contains information about requirements and other information concerning invoicing in Serbia.
5.11.1. Tax category codes
Tax category codes for Serbia can be found here: Tax category codes Serbia.
5.11.2. Party identification
There is a possible requirement to provide additional party identifiers that are not available in the ISO 6523 ICD list.
These additional identifiers for use in Serbia can be found here Identification scheme Serbia.
Example
Example with additional id provided in Serbia in Party structure
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
<cac:Party>
<!-- Code omitted for clarity -->
<cac:PartyIdentification>
<cbc:ID schemeID="RS:JBKJS">JBKJS:12345</cbc:ID>(1)
</cac:PartyIdentification>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingCustomerParty>
</Invoice>
1 | The JBKJS id provided as cac:PartyIdentification/cbc:ID , note that the "JBKJS" prefix must be appended before the ID. |
5.12. Singapore
This section contains information about requirements and other information concerning invoicing in Singapore.
5.12.1. Tax category codes
Tax category codes for Singapore can be found here: Tax category codes Singapore.
5.13. Spain
This section contains information about requirements and other information concerning invoicing in Spain.
5.13.1. Routing codes (DIR3)
To send documents to the Spanish government you are required to provide DIR3 codes. These are used as routing codes, definition of the codes can be found below.
-
Accounting Office (Oficina Contable)
-
Management Agency (Órgano Gestor)
-
Processing Authority Unit (Unidad Tramitadora)
-
Proposing Agency (Órgano Proponente)
The DIR3 codes should be provided in the extension element in cac:AccountingCustomerParty/cac:Party, in the structure PageroExtension/PartyExtension/ADAID
.
If cac:BuyerCustomerParty/cac:Party is used, then the DIR3 codes should be sent in this party with the same structure as in cac:AccountingCustomerParty/cac:Party.
cac:BuyerCustomerParty/cac:Party should contain information regarding the buyer of the goods or service and should ONLY be used if the buyer party differs from accounting customer party.
More information how to use ADAID can be found here.
Example
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty>
<cac:Party>
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:PartyExtension</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:PartyExtension>
<puf:ADAID>
<cbc:ID>1234567890</cbc:ID>
<puf:IDType listID="PUF-002-ADAID">ES:OficinaContable</puf:IDType>
</puf:ADAID>
<puf:ADAID>
<cbc:ID>1234567890</cbc:ID>
<puf:IDType listID="PUF-002-ADAID">ES:OrganoGestor</puf:IDType>
</puf:ADAID>
<puf:ADAID>
<cbc:ID>1234567890</cbc:ID>
<puf:IDType listID="PUF-002-ADAID">ES:UnidadTramitadora</puf:IDType>
</puf:ADAID>
<puf:ADAID>
<cbc:ID>1234567890</cbc:ID>
<puf:IDType listID="PUF-002-ADAID">ES:OrganoProponente</puf:IDType>
</puf:ADAID>
</puf:PartyExtension>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
</Invoice>
5.14. Türkiye
This section contains information about special requirements concerning invoicing in Türkiye.
5.14.1. Invoice profile id
For the UBL-TR format in Türkiye, it is mandatory to specify the invoice profile that’s used.
Valid values are listed in the table below:
Value | Description |
---|---|
|
Commercial invoice. |
|
Basic invoice. |
|
e-Archive invoice. |
|
Goods export invoice. |
Example
Invoice profile example
<Invoice>
<!-- Code omitted for clarity -->
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformation</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformation>
<puf:Key>UBLTRProfile</puf:Key>
<puf:Value>TICARIFATURA</puf:Value>
</puf:RestrictedInformation>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
5.14.2. Invoice type code
In addition to the invoice profile, it is also required to indicate the invoice type. This should be indicated in the attribute name`
belonging to the element cbc:InvoiceTypeCode
.
Valid values are listed in the table below:
Value | Description |
---|---|
|
Sales invoice (seller-buyer). |
|
Return invoice (buyer-seller). |
|
Invoice with withholding tax. |
|
Invoice with VAT Exemption. |
|
Private bills. |
|
Export sales. |
Example
Invoice type code example
<Invoice>
<!-- Code omitted for clarity -->
<cbc:InvoiceTypeCode name="SATIS">380</cbc:InvoiceTypeCode> (1)
<!-- Code omitted for clarity -->
</Invoice>
1 | Note that in Türkiye, credit notes do not exist and instead a return invoice (IADE ), from buyer to seller, should be used. This means that the actual value of cbc:InvoiceTypeCode should be 380 , even for IADE invoices. |
5.14.3. Invoice delivery method
If the invoice profile id is set as "EARSIVFATURA" it is mandatory to include how the invoice is being distributed.
There are only two allowed values. If Pagero is to do the invoice distribution, you should always enter "ELEKTRONIK".
If an e-mail address for the buyer exists (see cac:AccountingContact/cbc:ElectronicMail
in cac:AccountingCustomerParty) in the invoice and no delivery method value is sent, Pagero will default to "ELEKTRONIK".
Value | Description |
---|---|
|
Paper. |
|
Electronically. |
Example
Invoice Delivery Method example
<Invoice>
<!-- Code omitted for clarity -->
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformation</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<puf:RestrictedInformation>
<puf:Key>InvoiceDeliveryMethod</puf:Key>
<puf:Value>ELEKTRONIK</puf:Value>
</puf:RestrictedInformation>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
</Invoice>
5.14.4. First name and surname
If the buyer is a private person (uses TCKN), the first name and surname of the buyer should be included in specific elements.
Example
First name and surname example
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty>
<cac:Party>
<cac:PostalAddress>
<!-- BT-50 Buyer address street-->
<cbc:StreetName>Street Name</cbc:StreetName>
<!-- BT-52 Buyer address City -->
<cbc:CityName>City</cbc:CityName>
<!-- BT-53 Buyer address postal code -->
<cbc:PostalZone>00000</cbc:PostalZone>
<cac:Country>
<!-- BT-55 Buyer address country code -->
<cbc:IdentificationCode>RS</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<!-- BT-48 Buyer Vat Number if applicable -->
<cbc:CompanyID>98765432101</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:Person> (1)
<cbc:FirstName>Buyer First Name</cbc:FirstName>
<cbc:FamilyName>Buyer Surname</cbc:FamilyName>
</cac:Person>
</cac:Party>
</cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
</Invoice>
1 | Note that the buyer’s name is split into first name and surname separately. |
5.14.5. Registered tax office
The specific tax office where the buyer or seller is registered for tax purposes.
Example
Registered tax office example
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty>
<cac:Party>
<cac:PostalAddress>
<cbc:StreetName>Street Name</cbc:StreetName>
<cbc:CityName>City</cbc:CityName>
<cbc:PostalZone>00000</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>TR</cbc:IdentificationCode>
<cbc:Name>Türkiye</cbc:Name>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>98765432101</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cac:RegistrationAddress>
<cbc:CityName>Registered tax office</cbc:CityName>
</cac:RegistrationAddress>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
</Invoice>
5.14.6. Tax category codes
Tax category codes for Türkiye are numerous and can be found here: Tax category codes Türkiye.
5.14.7. Tax scheme
In Türkiye there are various types of taxes in addition to the regular VAT (known as "KDV" in Türkiye).
Another relatively common tax is what’s known as "ÖTV", or Special Consumption Tax. This applies to sales of products such as alcohol, mobile phones, cars, and tobacco. In the event an invoice is applicable for this Special Consumption Tax, it needs to be indicated in the cac:TaxScheme/cbc:ID
element on both line and header level.
Tax types other than VAT and SCT can also be supported in the Pagero Universal Format, but it is recommended you contact Pagero for further details.
Note that the cac:TaxScheme/cbc:ID
value should only be changed from 'VAT' if the tax being applied is not 'VAT'.
Example
Special Consumption Tax example
<Invoice>
<!-- Code omitted for clarity -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="TRY">45.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<!-- BT-116 Sum of all taxable amounts subject to a specific tax category code and tax category rate. Currency in attribute currencyID (BT-5) -->
<cbc:TaxableAmount currencyID="TRY">100.00</cbc:TaxableAmount>
<!-- BT-117. The total VAT amount for a given tax category. Currency in attribute currencyID (BT-5) -->
<cbc:TaxAmount currencyID="TRY">45.00</cbc:TaxAmount>
<cac:TaxCategory>
<!-- BT-118 Tax category code. -->
<cbc:ID>9077</cbc:ID>
<!-- BT-119 Tax category rate-->
<cbc:Percent>45.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>SCT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<cac:TaxTotal>
<!-- Code omitted for clarity -->
</Invoice>
5.14.8. Internet Sales
If the invoice is the result of an online sale, extra information needs to be included in the invoice, if applicable.
Value | Description |
---|---|
|
Website URL that online sale is processed from. |
|
The date the payment was or will be made. |
|
Supported codes are: |
|
This is payment platform/forwarder name, used if payment is processed through a payment platform or forwarder like paypal. Mandatory if payment means code is 68 ("ODEMEARACISI"). |
|
Tax id (vkn) if shipment handled by company, individual id (tckn) if shipment handled by individual. |
|
Company name if shipment handled by company, first name and family name if shipment handled by individual. |
|
The date of the shipment. |
Internet Sales example
Internet Sales example
<Invoice>
<!-- Code omitted for clarity -->
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionURI>urn:pagero:ExtensionComponent:1.0:PageroExtension:RestrictedInformation</ext:ExtensionURI>
<ext:ExtensionContent>
<puf:PageroExtension>
<!--If the invoice is the result of an online sale, the website URL is mandatory.-->
<puf:RestrictedInformation>
<puf:Key>UBLTRWebsiteURL</puf:Key>
<puf:Value>www.exampleurl.com</puf:Value> (1)
</puf:RestrictedInformation>
</puf:PageroExtension>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Code omitted for clarity -->
<cbc:DueDate>2023-07-03</cbc:DueDate> (2)
<!-- Code omitted for clarity -->
<cac:PaymentMeans>
<!-- BT-81 Payment means code. -->
<cbc:PaymentMeansCode name="Payment platform name">68</cbc:PaymentMeansCode> (3)
</cac:PaymentMeans>
<!-- Code omitted for clarity -->
<cac:Delivery>
<cac:CarrierParty>
<cac:PartyIdentification>
<cbc:ID>1234543210</cbc:ID> (4)
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Carrier Party Name</cbc:Name> (5)
</cac:PartyName>
</cac:CarrierParty>
<cac:Despatch>
<cbc:ActualDespatchDate>2023-07-03</cbc:ActualDespatchDate> (6)
</cac:Despatch>
</cac:Delivery>
<!-- Code omitted for clarity -->
</Invoice>
1 | Website URL that online sale is processed from. |
2 | Payment date. |
3 | Note the use of the attribute name to specify the payment platform. This is mandatory if the payment goes through a payment platform such as PayPal and others (code 68).
Otherwise it is OK to omit the attribute. |
4 | This is the tax id of the shipment carrier. |
5 | This is the name of the shipment carrier. |
6 | This is the shipment date. |
5.15. United States
This section contains information about requirements and other information concerning invoicing in United States of America.
5.15.1. Tax scheme
Since taxes vary in different states and there are a number of local taxes as well, Pagero recommends to specify State and Local Tax in the following way:
- For State Tax use cac:TaxScheme/cbc:ID
with value STT
.
- For Local Tax use cac:TaxScheme/cbc:ID
with value LOC
and use cac:TaxScheme/cbc:Name
to specify the type of local tax, ie. 'City', 'District', 'County'.
Please see code list for all available tax type scheme codes.
Example State and Local Tax
<cac:TaxTotal>
<cbc:TaxAmount currencyID="USD">16.40</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="USD">200.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="USD">12.50</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID schemeID="UNCL5305">S</cbc:ID>
<cbc:Percent>6.25</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>STT</cbc:ID>(1)
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="USD">200.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="USD">3.90</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID schemeID="UNCL5305">S</cbc:ID>
<cbc:Percent>1.95</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>LOC</cbc:ID>(2)
<cbc:Name>City Sales Tax</cbc:Name>(3)
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
1 | STT use for State Tax of 6.25% |
2 | LOC use for Local Tax of 1.95% |
3 | Local Tax specified as City Sales Tax |
5.15.2. Party identification
There is no party identifiers available in the ISO 6523 ICD list for USA at the moment. To specify Tax Identification Number please use 'cac:PartyTaxScheme/cbc:CompanyID'
Example
Example with Tax ID
<Invoice>
<!-- Code omitted for clarity -->
<cac:AccountingCustomerParty>
<!-- Code omitted for clarity -->
<cac:Party>
<!-- Code omitted for clarity -->
<cac:PartyTaxScheme>
<cbc:CompanyID>xx-xxxxxxx</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>TAX</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<!-- Code omitted for clarity -->
</cac:Party>
</cac:AccountingCustomerParty>
</Invoice>
6. Code lists
Certain elements require the use of PUF specific code lists.
Below you will find links to the lists and where the lists are applicable.
In some of these code lists PUF only points towards an external code list to be used.
Other times the code list to be used is a mix between values defined specifically for PUF and other external list(s).
Lastly, in some cases, all the values are defined solely for PUF.
6.1. Code lists for coded elements
Business Term | Path | listID & URL to list |
---|---|---|
Registration data identifier type |
|
|
Additional destination address identifier |
|
|
Invoice type code |
|
|
Currency code |
|
|
Invoiced object identifier |
|
|
MIME code |
|
|
Electronic address scheme |
|
|
Identification scheme |
|
|
Tax type scheme |
|
|
Payment means code |
|
|
Allowance charge reason codes |
|
|
Tax category codes |
|
|
Tax exemption codes |
|
|
Unit of measure codes |
|
|
Item type identification code |
|
7. XML schemas
Invoice and CreditNote XML schemas including Pagero/PUF Extension can be found here:
8. Excel specification
This document refers to an Excel file that serves as an additional mapping guide for the Pagero Universal Format (PUF) in complement to the online documentation. This file details only the base mapping without any extensions. It’s designed to provide an essential understanding of the structure and core components of the PUF.
The Excel file can be accessed through the following link:
If you are looking for information related to UBL extensions, those are not included in the Excel file. The extensions to the standard mapping are detailed separately in the Extensions segment of the PUF documentation.
You can find the complete explanation and specifications of the UBL extensions at the following link: Extensions
Please consult this section for a comprehensive understanding of how the extensions work in conjunction with the Pagero Universal Format.
9. Validation
Available validation rules for PUF.
To validate PUF documents please create an account on Pagero Validex.
The validations available on validex are:
-
XML well-formedness
-
XSD schema
-
PUF schematron rules (see below)
The validation artefacts are also available on GitHub.
Rule name | Description of rule | Flag |
---|---|---|
PUF-R001 |
[PUF-R001]-Specification identifier MUST have the value 'urn:pagero.com:puf:billing:2.0' or 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0#conformant' |
Fatal |
PUF-R002 |
[PUF-R002]-Profile identifier MUST have the value 'urn:pagero.com:puf:billing:1.0'. |
Fatal |
PUF-R003 |
[PUF-R003]-Attribute listID MUST be 'PUF-001-REGISTRATIONDATA' |
Fatal |
PUF-R004 |
[PUF-R004]-Attribute listID MUST be 'PUF-002-ADAID' |
Fatal |
PUF-R005 |
[PUF-R005]-Source currency code SHOULD be different from target currency code when tax exchange rate calculation is provided. |
Warning |
PUF-R006 |
[PUF-R006]-If tax exchange calculation is provided the mathematic operator code MUST equal "Multiply". |
Fatal |
PUF-R007 |
[PUF-R007]-If tax exchange calculation is provided the calculation rate MUST exist |
Fatal |
PUF-R008 |
[PUF-R008]-If tax exchange calculation is provided both source and target currency MUST be provided. |
Fatal |
PUF-R009 |
[PUF-R009]-Value in tax chargeability MUST be one of the valid codes "S","D" or "I". |
Fatal |
PUF-R010 |
[PUF-R010]-Tax currency taxable amounts currency MUST not differ from documents tax currency. |
Fatal |
PUF-R011 |
[PUF-R011]-Tax currency tax amounts currency MUST not differ from documents tax currency. |
Fatal |
PUF-R012 |
[PUF-R012]-Tax currency tax exclusive amounts currency MUST not differ from documents tax currency. |
Fatal |
PUF-R013 |
[PUF-R013]-Tax currency tax inclusive amounts currency MUST not differ from documents tax currency. |
Fatal |
PUF-R014 |
[PUF-R014]-Tax currency payable amounts currency SHOULD not differ from documents tax currency. |
Fatal |
PUF-R015 |
[PUF-R015]-Payment in kind amount currency MUST not differ from document currency. |
Fatal |
PUF-R016 |
[PUF-R016]-ID type MUST be a valid type according to list PUF-001-REGISTRATIONDATA. |
Fatal |
PUF-R017 |
[PUF-R017]-ID type MUST be a valid type according to list PUF-002-ADAID. |
Fatal |
PUF-R101 |
[PUF-R101]-Line exclusive allowance and charge amount currency MUST not differ from document currency. |
Fatal |
PUF-R102 |
[PUF-R102]-Price including allowance charge amount currency MUST not differ from document currency. |
Fatal |
PUF-R103 |
[PUF-R103]-If Tax Subtotal exist on line, tax category percent MUST exist. |
Fatal |
PUF-R104 |
[PUF-R104]-If Tax Subtotal exist on line, TAX category ID MUST exist. |
Fatal |
PUF-R105 |
[PUF-R105]-If Tax Subtotal exist on line, TAX category TaxScheme ID MUST exist. |
Fatal |
10. Examples
Example files can be found here:
11. Supported countries
The aim for PUF is to cover invoicing and business requirements in legal domains and countries all over the world.
The below list should be seen as an overview to visualize where PUF currently is considered applicable. If the country is marked as supported means that an analysis of country or regional requirements has been made. It does, however, not automatically mean that all conceivable content requirements are supported within PUF.
If a country is not in the list does not necessarily mean that PUF cannot be used in the specific region but it means that no extensive analysis has been done of the requirements.
The list of supported countries/regions are updated continuously as PUF is developed to follow new identified markets/requirements.
11.1. Country list
The following list gives an overview of country support in PUF.
The "Require ext:UBLExtensions"-column indicates whether or not the use of UBL extensions is required to be able to comply with the country requirements. |
Country | Supported by PUF | Require ext:UBLExtensions? | Comment |
---|---|---|---|
Andorra |
Yes |
No |
|
Australia |
Yes |
No |
|
Austria |
Yes |
No |
|
Belgium |
Yes |
No |
|
Bulgaria |
Yes |
No |
|
Canada |
Yes |
No |
|
Croatia |
Yes |
No |
|
Cyprus |
Yes |
No |
|
Denmark |
Yes |
No |
|
Estonia |
Yes |
No |
|
Finland |
Yes |
No |
|
France |
Yes |
Yes |
|
Germany |
Yes |
No |
|
Hungary |
Yes |
Yes |
|
Iceland |
Yes |
No |
|
India |
Yes |
Yes |
|
Ireland |
Yes |
No |
|
Israel |
Yes |
Yes |
Extension needed if BillingSoftware is to be provided (optional) |
Italy |
Yes |
Yes |
|
Japan |
Yes |
No |
|
Latvia |
Yes |
No |
|
Liechtenstein |
Yes |
No |
|
Lithuania |
Yes |
No |
|
Luxembourg |
Yes |
No |
|
Malaysia |
Yes |
Yes |
|
Malta |
Yes |
No |
|
Monaco |
Yes |
No |
|
Netherlands |
Yes |
No |
Only invoice and credit note support. |
New Zealand |
Yes |
No |
|
Norway |
Yes |
No |
|
Portugal |
Yes |
Yes |
|
Romania |
Yes |
No |
|
Saudi Arabia |
Yes |
Yes |
|
Serbia |
Yes |
No |
Only standard invoice, credit note and debit note support. |
Singapore |
Yes |
No |
|
Slovakia |
Yes |
No |
|
South Africa |
Yes |
No |
|
Spain |
Yes |
Yes |
|
Spain (Basque Country) |
Yes |
Yes |
Support for TicketBAI system in the Basque region. |
Sweden |
Yes |
No |
|
Switzerland |
Yes |
No |
|
Türkiye |
Yes |
Yes |
|
United Kingdom |
Yes |
No |
|
United States |
Yes |
No |
12. Support
If you have any questions related to PUF, please create a support ticket via Pagero Support.