Skip to main content

Documentation Index

Fetch the complete documentation index at: https://invopop-mintlify-changelog-week-1778411791.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Compliance questions

Belgium
Since 1 January 2026 B2B transactions are mandatory where both parties are Belgian VAT-registered. B2G has been mandatory since 2024. B2C and cross-border B2B are out of scope for the current mandate.
Any entity with a Belgian KBO/BCE enterprise number (and a VAT number where applicable). Most Belgian companies are pre-registered in Peppol via BOSA, so onboarding is a migration rather than a fresh registration.
Peppol
Mandatory dates vary by country. Belgium requires structured B2B e-invoicing — Peppol BIS by default — from January 2026. Germany phases B2B e-invoicing in between 2025–2028. France’s Factur-X via Peppol applies once the PA reform takes effect. Outside mandates, Peppol delivery is voluntary but increasingly expected for B2G and cross-border trade.
Yes. Every document exchanged on Peppol BIS uses a UBL or CII syntax that conforms to the EN16931 European e-invoicing standard, plus the relevant Peppol BIS specification. Invopop generates compliant XML automatically when you use the Peppol app.
Peppol is a federated network — anyone could otherwise register a Participant ID for a company they don’t represent. Proof of ownership ties the Participant ID to a verifiable contact at the company, which is what allows the registration to be published on the SML.
Requirements vary by Authority. In Belgium, for example, the supplier must provide a recent extract from the Banque-Carrefour des Entreprises (KBO/BCE) plus a signed mandate. Invopop walks the registering party through the local requirements during the registration wizard.
Yes — a Peppol BIS document delivered through a certified Access Point is treated as the legal e-invoice in any country that recognises Peppol. The signed UBL or CII XML is the authoritative record; archive it alongside any human-readable rendering you generate.
Retention is set by each country’s tax authority — typically 7 to 10 years in the EU. Invopop preserves the original XML and any generated PDF in the silo entry so you can satisfy local archival requirements wherever you operate.

Invoicing questions

Belgium
Install the Peppol app, register your supplier with BOSA-migrated participant ID, and use a workflow that generates a Peppol BIS Billing 3.0 document and sends it via the Lookup → Send actions.
In Belgium specifically there is no need to send a copy to the tax authority until the e-reporting mandate comes into effect in Jan 2028.
See the Belgium tax regime in GOBL for tax IDs and category codes. The Peppol BIS Billing 3.0 mapping is shared across EU members and lives in peppol-bis-v3.
Belgium uses two Peppol scheme identifiers:
  • 0208 (KBO/BCE enterprise number) — This is the preferred and default scheme for Belgium. It corresponds to the company’s KBO/BCE number (Kruispuntbank van Ondernemingen / Banque-Carrefour des Entreprises), which is the official Belgian business register. Most Belgian companies are registered in Peppol under this scheme.
  • 9925 (BE VAT number) — This is an older, alternative scheme based on the Belgian VAT number. It is typically used by entities that have a Belgian VAT number but are not registered in the KBO/BCE — for example, foreign companies with a Belgian VAT registration.
When you should use 0208: Always use 0208 as your first choice when sending invoices to Belgian companies. This is the standard identifier and what the vast majority of Belgian businesses are registered under.When 9925 may be needed: If you get a “receiver not found” error when sending to a Belgian company using 0208, and you have confirmed the company exists in the Peppol Directory, check whether they are registered under 9925 instead. This is uncommon but does happen.To specify the scheme when sending, include the customer’s Peppol inbox in your GOBL document:
"customer": {
  "name": "Example Company",
  "tax_id": {
    "country": "BE",
    "code": "0123456789"
  },
  "inboxes": [
    {
      "key": "peppol",
      "scheme": "9925",
      "code": "BE0123456789"
    }
  ]
}
Note that when using 9925, the code must include the BE prefix (e.g. BE0123456789), whereas 0208 uses the raw KBO/BCE number without a prefix.
Use the Lookup Participant ID workflow step to verify a recipient’s Peppol registration before sending. If a lookup with 0208 fails, try again with 9925.
Peppol
In countries where Peppol is the standard but not mandatory, you may still need to issue an e-invoice when the recipient isn’t on the network. Both parties can agree on an alternative transfer method, but the invoice must still be EN16931 compliant.Recommended approach:
  • Set up a separate workflow that generates the XML without the send-Peppol-document step
  • Or reuse your existing workflow without the customer Peppol ID — the send step is automatically skipped
  • Fetch the generated XML and deliver it through the agreed channel, typically email
B2C invoices typically lack the structured customer information required for Peppol delivery, and most consumers don’t have inboxes. Use a conditional workflow:
  1. Add an If/Else step that checks for a customer inbox using count(customer.inboxes, true) > 0.
  2. On the false branch, generate a PDF and email it to the customer, then stop the flow.
This routes B2B invoices through Peppol while keeping a smooth path for consumers.
If a job fails with KO and receiver not found in the peppol network, treat it like an invalid email address — the recipient simply isn’t reachable on Peppol. Add the Lookup Participant ID step (ideally in a separate validation workflow run against customer data) so you catch missing IDs before generating the invoice.
No. The regime is automatically derived from the supplier’s settings, which is the recommended approach for Peppol — leave it unset on the document.
See the oasis-ubl-v2 addon and the Peppol app reference for required fields, supported document types, and Participant ID schemes.

Supplier questions

Belgium
Run the Register Participant workflow with the supplier’s KBO/BCE number (scheme 0208). Invopop migrates the BOSA registration into our Peppol Access Point so we become the supplier’s SMP for sending and receiving.
In Belgium, all Peppol participants are already registered with BOSA, the Belgian Peppol Authority. This means that every Belgian company is automatically part of the Peppol network. To onboard these companies in Invopop, we first migrate their registration from BOSA to our system.
Peppol
Upload the company as a party (Console → Parties → Suppliers → + New Supplier, or via the Create an Entry API) with name, tax_id, address, and email. Then run it through the party registration workflow — the contact will receive a registration wizard link to provide proof of ownership.Once approved, the party is registered on the Peppol network (SMP+SML+Peppol visibility by default with the ubl-invoice doc group) and ready to receive invoices.
A supplier with that Participant ID already exists in your workspace. Either reuse the existing party or, if it really is a new entity, check whether it should be registered under an alternative scheme (for example Belgium’s 9925 VAT scheme rather than the default 0208).
Register them through different silo entries, even though they represent the same legal party. The supplier must upload proof of ownership for each inbox.
Unique identifiers for entities on the Peppol network, made up of two parts:
  • Scheme — identifies the type of identifier (e.g. 9920 for Spanish VAT, 0208 for Belgian KBO/BCE)
  • Code — the actual identification number
Participant IDs are usually based on VAT numbers or local business identifiers, and Invopop can derive them automatically from a Tax ID. Some countries support multiple schemes — Belgium, for example, defaults to 0208 but some entities are only registered under 9925 (VAT). If you hit a “receiver not found” error, the recipient may be registered under an alternative scheme.
Peppol Party visibility determines what you can send and receive:
  • smp — SMP only, for testing
  • smp+sml — SMP and SML, useful when you only want to send
  • smp+sml+peppol — SMP, SML, and the Peppol Directory, recommended for both sending and receiving (and for being discoverable in the Directory)
In general, use the highest visibility available.

Receiving questions

Peppol
Register the recipient as a Peppol participant with Invopop as their Access Point. Incoming documents are routed through your configured Import workflow, which converts the UBL or CII payload to GOBL and stores the entry in the Expenses folder.
Yes. Either format can be removed based on your needs. The default template includes both for comprehensiveness, but if you’re certain you’ll only receive invoices in one syntax, dropping the other simplifies the workflow and reduces the apps you need to activate.
The Import workflow’s UBL and CII parser steps map the inbound XML into a GOBL invoice. From there you can route it to webhooks, Google Drive, accounting integrations, or any other destination — the GOBL representation is the single source of truth for downstream processing.

Participate in our community

Ask and answer questions about Belgium’s regulation →