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:
-
Root Element & InvoiceTypeCode
-
Use
<Invoice>
as root in UBL or<CrossIndustryInvoice>
in CII. -
Set
<cbc:InvoiceTypeCode>
to389
for self-billing invoices to distinguish them from standard invoices (380
).
-
-
CustomizationID and ProfileID
-
CustomizationID
:urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:selfbilling:3.0
-
ProfileID
:urn:fdc:peppol.eu:2017:poacc:selfbilling:01:1.0
-
-
Party Information
-
<AccountingSupplierParty>
identifies the supplier (on whose behalf invoice is issued). -
<AccountingCustomerParty>
identifies the buyer (issuer of self-billing invoice).
-
-
References for Authorization
-
Use
<AdditionalDocumentReference>
elements to include references to agreements or contracts authorizing self-billing.
-
-
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.
-
-
Self-Billing Indicator
-
Besides
InvoiceTypeCode=389
, some implementations add a self-billing indicator as additional metadata or document notes, though this is optional.
-
-
Tax Totals & Monetary Totals
-
Include
<TaxTotal>
and<LegalMonetaryTotal>
elements as per EN16931.
-
Practical Example Snippet (UBL):
<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
- Nymus: Self-billing in Peppol: efficiency and compliance for businesses
- ionite: Peppol Document Formats – an introduction