> ## Documentation Index
> Fetch the complete documentation index at: https://docs.invopop.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Belgium FAQ

> Frequently asked questions about invoicing compliance in Belgium

### Compliance questions

**Belgium**

<AccordionGroup>
  <Accordion title="Is B2B e-invoicing in Belgium mandatory?">
    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.
  </Accordion>

  <Accordion title="Who can issue invoices in Belgium?">
    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.
  </Accordion>

  <Accordion title="What are the legal obligations for receiving invoices in Belgium?">
    From 1 January 2026, Belgian VAT-registered recipients must be reachable via Peppol. Received invoices must be archived in their original structured format for 7 years.
  </Accordion>
</AccordionGroup>

**Peppol**

<AccordionGroup>
  <Accordion title="Is sending invoices via Peppol mandatory?">
    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.
  </Accordion>

  <Accordion title="Does a Peppol invoice need to be EN16931 compliant?">
    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.
  </Accordion>

  <Accordion title="Why does Peppol require proof of ownership?">
    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.
  </Accordion>

  <Accordion title="What documents count as proof of ownership?">
    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.
  </Accordion>

  <Accordion title="Are received Peppol invoices considered legally valid?">
    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.
  </Accordion>

  <Accordion title="How long must I retain received Peppol invoices?">
    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.
  </Accordion>
</AccordionGroup>

### Invoicing questions

**Belgium**

<AccordionGroup>
  <Accordion title="How do I configure my workspace for Belgian invoicing?">
    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.
  </Accordion>

  <Accordion title="Do invoices need to be sent to the tax authority?">
    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.
  </Accordion>

  <Accordion title="Where do I find Belgium-specific GOBL documentation?">
    See the [Belgium tax regime in GOBL](https://docs.gobl.org/regimes/be) for tax IDs and category codes. The Peppol BIS Billing 3.0 mapping is shared across EU members and lives in [`peppol-bis-v3`](https://docs.gobl.org/addons/peppol-bis-v3).
  </Accordion>

  <Accordion title="What is the difference between scheme 0208 and 9925 in Belgium?">
    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](https://directory.peppol.eu), 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:

    ```json theme={"system"}
    "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.

    <Tip>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`.</Tip>
  </Accordion>
</AccordionGroup>

**Peppol**

<AccordionGroup>
  <Accordion title="What should we do if the customer doesn't belong to the Peppol network?">
    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
  </Accordion>

  <Accordion title="How do I handle B2C invoices in Peppol?">
    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.
  </Accordion>

  <Accordion title="How do I handle 'Receiver Not Found' errors?">
    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.
  </Accordion>

  <Accordion title="Should I set the `$regime` field when using Peppol?">
    No. The regime is automatically derived from the supplier's settings, which is the recommended approach for Peppol — leave it unset on the document.
  </Accordion>

  <Accordion title="Where do I find Peppol GOBL documentation?">
    See the [`oasis-ubl-v2`](https://docs.gobl.org/addons/oasis-ubl-v2) addon and the [Peppol app reference](/apps/peppol) for required fields, supported document types, and Participant ID schemes.
  </Accordion>
</AccordionGroup>

### Supplier questions

**Belgium**

<AccordionGroup>
  <Accordion title="How do I onboard a new supplier in 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.
  </Accordion>

  <Accordion title="How do I ensure my Peppol participant ID corresponds to BOSA?">
    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.
  </Accordion>
</AccordionGroup>

**Peppol**

<AccordionGroup>
  <Accordion title="How do I register for a Peppol inbox in Invopop?">
    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.
  </Accordion>

  <Accordion title="I get 'XXXX:XXXXXXXXX is already registered' when registering a supplier — what now?">
    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`).
  </Accordion>

  <Accordion title="How do I assign multiple inboxes to a single supplier?">
    Register them through different silo entries, even though they represent the same legal party. The supplier must upload proof of ownership for each inbox.
  </Accordion>

  <Accordion title="What are Participant IDs?">
    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.
  </Accordion>

  <Accordion title="What visibility level should I set on my Peppol Party?">
    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.
  </Accordion>
</AccordionGroup>

### Receiving questions

**Peppol**

<AccordionGroup>
  <Accordion title="How do I import received invoices via 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.
  </Accordion>

  <Accordion title="Can I remove UBL or CII from the 'Peppol receive invoice' workflow if I only use one format?">
    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.
  </Accordion>

  <Accordion title="How are incoming Peppol documents converted into GOBL?">
    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.
  </Accordion>
</AccordionGroup>

***

<Card title="Participate in our community" icon="forumbee" href="https://community.invopop.com" arrow="true" horizontal>
  Ask and answer questions about Belgium's regulation →
</Card>
