← Blog
Published 2026-08-15 · Updated 2026-09-08 · 11 min

How to Create a UBL Invoice (EN 16931): Step-by-Step Guide

Create a UBL XML invoice step by step, check the required EN 16931 data, avoid validation errors, and learn when Peppol delivery is required.

WhatsAppX / TwitterLinkedIn

At a glance

  • Confirm which UBL or country profile the customer accepts
  • Add complete seller and buyer legal details
  • Use a unique invoice number, issue date and due date
  • Enter currency, line quantities, unit prices and VAT per rate
  • Export the XML and validate it before sending
  • Ask whether email, a portal or Peppol delivery is required

What a UBL Invoice Is

UBL stands for Universal Business Language. A UBL invoice is an XML document whose fields identify the supplier, customer, line items, tax treatment and totals in a predictable structure. That lets the customer's accounting system import the data instead of asking someone to retype a PDF. A PDF can still accompany the invoice for human review, but it is a digital document rather than structured invoice data.

Step 1: Confirm the Required Profile and Delivery Method

Before exporting anything, ask the customer which profile and delivery route they accept. EN 16931 defines the common semantic model, while national or industry profiles can add rules. The customer may accept an XML attachment, require an upload to a supplier portal, or require delivery through Peppol. Those are different requirements, and a valid XML file is not automatically a Peppol submission.

Step 2: Complete the Seller and Buyer Details

Enter the legal names and addresses of both parties, the supplier tax or VAT identifier where applicable, and the customer's identifier when the transaction requires it. Use the country codes and identifiers requested by the receiving system. Missing party information is one of the easiest ways for an otherwise correct invoice to be rejected.

Step 3: Add the Invoice Header and Payment Terms

Use a unique sequential invoice number, an issue date, the currency and a clear due date or payment terms. If the customer gave you a purchase-order or buyer reference, include it in the field they specified. The invoice number and dates should match the human-readable PDF you send with the XML.

Ready to create your first invoice?
Create your first invoice free — no credit card required
Start Free →

Step 4: Enter Lines, VAT and Totals Carefully

Each line needs a useful description, quantity, unit price and tax category. Totals must reconcile: line net amounts, allowances or charges, VAT by rate, total excluding VAT, total VAT and amount due. Do not use a displayed currency symbol where the XML expects a three-letter currency code, and do not change the tax treatment simply to make a validator pass.

Step 5: Export the UBL XML

Use invoicing or accounting software that can export the requested UBL profile. In Fatūra Pro, create the invoice, open its preview and choose UBL/XML export. Fatūra Pro generates the downloadable structured file; it does not transmit that file through the Peppol network. Send or upload it using the route your customer requested.

Step 6: Validate Before Delivery

Validation checks whether the XML follows the required syntax and business rules. Use a validator that matches the customer's stated EN 16931, national or Peppol profile. Treat the first invoice for a new receiving system as a test: correct every error, keep the accepted file, and confirm that the customer's system imported it successfully.

UBL and Peppol Are Not the Same Thing

UBL is an XML syntax used to represent structured invoice data. Peppol is a network and set of interoperability specifications used to exchange documents between registered participants. A tool can export UBL without being connected to Peppol. If the customer requires Peppol, you also need an approved access point or another service that provides delivery.

What About Credit Notes?

A structured credit note is its own document type and should refer to the original invoice. It is not simply an invoice whose grand total was changed to a negative number. Check that your export uses the credit-note structure required by the receiving profile, and validate it separately from a normal invoice.

Common UBL Validation Errors

Typical problems include missing VAT identifiers, an unsupported country or tax code, dates in the wrong format, totals that do not reconcile, a missing buyer reference, or a profile mismatch. A file can be well-formed XML and still fail the business rules of the customer's receiving system, which is why profile-specific validation matters.

Create the Invoice Once, Then Export It

Fatūra Pro lets you create the readable invoice first and export its data as UBL/XML from the same record. You can also download the PDF for the person reviewing it. Start with a free account to build the invoice; UBL/XML export is available on the Essential plan. Always confirm and validate the format your customer expects.

Frequently asked questions

Is a PDF invoice the same as a UBL invoice?

No. A PDF is designed for a person to read. UBL is structured XML designed for software to import and process. A customer may ask you to provide both.

Does Fatūra Pro send invoices through Peppol?

No. Fatūra Pro exports a downloadable UBL/XML file. It does not provide Peppol network delivery, so use an access-point service if the customer specifically requires Peppol.

How do I know which UBL profile to use?

Ask the receiving customer or portal for its accepted profile and validation rules. EN 16931 is the common European semantic standard, but country and network profiles can add constraints.

Should I validate every UBL invoice?

Validate at least the first invoice and credit note for each receiving system, and validate again when customer requirements or your export software changes.

Official sources

Use the official guidance for the rules or technical profile that applies to your transaction.

Ready to create your first invoice?
Create your first invoice free — no credit card required
Start Free →
WhatsAppX / TwitterLinkedIn