VATupdate

Share this post on

How to map self-billing fields into UBL/CII for Peppol

Mapping self-billing fields into UBL/CII for Peppol involves using the Peppol BIS Self-Billing 3.0 specification, which extends the standard Peppol BIS Billing 3.0 with distinctions for self-billed invoices.

Key points on mapping:

  1. Root Element & InvoiceTypeCode

    • Use <Invoice> as root in UBL or <CrossIndustryInvoice> in CII.

    • Set <cbc:InvoiceTypeCode> to 389 for self-billing invoices to distinguish them from standard invoices (380).

  2. CustomizationID and ProfileID

    • CustomizationIDurn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:selfbilling:3.0

    • ProfileIDurn:fdc:peppol.eu:2017:poacc:selfbilling:01:1.0

  3. Party Information

    • <AccountingSupplierParty> identifies the supplier (on whose behalf invoice is issued).

    • <AccountingCustomerParty> identifies the buyer (issuer of self-billing invoice).

  4. References for Authorization

    • Use <AdditionalDocumentReference> elements to include references to agreements or contracts authorizing self-billing.

  5. Invoice Lines

    • Standard line details like quantity, unit price, tax rates, and descriptions.

    • Tax categories and exemption reasons set per EN16931 and Peppol tax category code lists.

  6. Self-Billing Indicator

    • Besides InvoiceTypeCode=389, some implementations add a self-billing indicator as additional metadata or document notes, though this is optional.

  7. Tax Totals & Monetary Totals

    • Include <TaxTotal> and <LegalMonetaryTotal> elements as per EN16931.

Practical Example Snippet (UBL):

xml
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:UBLVersionID>2.1</cbc:UBLVersionID>
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:selfbilling:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:selfbilling:01:1.0</cbc:ProfileID>
<cbc:InvoiceTypeCode>389</cbc:InvoiceTypeCode>
<!-- Supplier (on whose behalf invoice is issued) -->
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="...">SupplierID</cbc:EndpointID>
<cac:PartyIdentification><cbc:ID>SupplierVAT</cbc:ID></cac:PartyIdentification>
<!-- Address and other info -->
</cac:Party>
</cac:AccountingSupplierParty>
<!-- Buyer (issuer of invoice) -->
<cac:AccountingCustomerParty>
<cac:Party>
<cbc:EndpointID schemeID="...">BuyerID</cbc:EndpointID>
<cac:PartyIdentification><cbc:ID>BuyerVAT</cbc:ID></cac:PartyIdentification>
<!-- Address and other info -->
</cac:Party>
</cac:AccountingCustomerParty>
<!-- References to agreement -->
<cac:AdditionalDocumentReference>
<cbc:ID>AgreementReference</cbc:ID>
<cbc:DocumentType>SelfBillingAgreement</cbc:DocumentType>
</cac:AdditionalDocumentReference>
<!-- Invoice lines as normal -->
</Invoice>

This ensures that the self-billing invoice is correctly identified, complies with EN16931, and processed seamlessly over Peppol.

Sources



Sponsors:

Pincvision
VATIT Compliance

Advertisements:

  • Pincvision
  • Basware