Self-Billing UBL - Reference Guide

Mise à jour le 18 septembre 2026·

This feature introduces native support for the Self-Billing workflow in silicon ioi, as a complement to the existing standard purchase flow.


What is Self-Billing? #

Self-Billing is a mechanism whereby the buyer issues the invoice on behalf of the seller, rather than the other way around. The supplier therefore receives an invoice that has already been drawn up and does not need to create one themselves.

In silicon ioi, a received UBL document can now be of type Self-Billing. In that case:

  • The document is processed as a sales document (not a purchase document).
  • The counterparty identified in the document is a customer (not a supplier).
  • The document created in the ERP will be a sales invoice (ioi Sales Invoice).

General workflow #

The complete Self-Billing flow integrates into the same chain as the standard purchase flow:

PEPPOL network / Manual import
        ↓
ioi Doc Gateway Inbox
        ↓
ioi E-Doc Entry Channel  (automatic UBL type detection)
        ↓
  [SELF_BILLING:*]          [BILLING:* or OCR]
        ↓                         ↓
  Sales channel            Purchase channel
  (default_channel_sal)    (default_channel_pur)
        ↓                         ↓
ioi Sales Invoice         ioi Purchases Invoice
or ioi Sale Entry         or ioi Purchase Entry

Type detection is automatic during XML file decoding: if the UBL type starts with SELF_BILLING:, the document is routed to the sales channel; in all other cases, it is routed to the purchase channel.


Supported UBL types #

The UBL Type column in the list view displays the type of each document with a distinct color code:

Internal value Display label Color
SELF_BILLING:INVOICE Self-Billing: Invoice Light purple
SELF_BILLING:CREDITNOTE Self-Billing: Credit Note Purple
BILLING:INVOICE Billing: Invoice Light blue
BILLING:CREDITNOTE Billing: Credit Note Blue
(empty) OCR Green

Configuration — ioi Doc Scanner Settings #

The ioi Doc Scanner Settings module now has two default channel fields:

Field Description Default value
Default channel (Purchases) Channel used for purchase documents ioi Purchases Invoice
Default channel (Sales) Channel used for Self-Billing documents ioi Sales Invoice

Available channels for the sales channel #

Display option Internal value Description
ioi Sales: Invoice ioi Sales Invoice Creates a complete sales invoice in the ERP module
ioi Accounting: Sale ioi Sale Entry Creates a sale accounting entry directly

Info

The sales channel is only available for UBL documents of type Self-Billing. Other document types (Billing, OCR) always use the purchase channel.


Module ioi E-Doc Entry Channel #

List view improvements #

Channel selection buttons #

Two dropdown buttons are now available at the top of the list:

  • Purchase button: selects the channel used on import for purchase documents (Billing, OCR).
  • Sales button: selects the channel used on import for Self-Billing documents. This button is located next to the purchase button.

The channel selected in the list view overrides the default channel configured in ioi Doc Scanner Settings for the current session.

Party Name column #

The Party Name column displays the counterparty associated with the document with a colored background depending on the type:

  • Red background → Supplier (purchase document)
  • Green background → Customer (Self-Billing document)

Available filters #

Three quick filters are available above the list:

Filter Options
Document status All / Waiting / Decoded / Checked / …
UBL Type All / Self-Billing: Invoice / Self-Billing: Credit Note / Billing: Invoice / Billing: Credit Note
Channel Type All / Purchases / Sales

The Channel Type filter allows displaying only purchase documents, only sales documents (Self-Billing), or all documents.


Document view #

Channel banner (General tab) #

The active channel is permanently displayed in a blue banner in the first tab of the document. This prevents the user from having to navigate back to that tab to check which channel is selected. The channel field remains editable at any time (except when the document is at status Processed).

Counterparty area — Self-Billing mode #

In Self-Billing mode, the Supplier area is replaced by the Customer area:

  • The customer is automatically identified from the VAT number encoded in the UBL file (field AccountingCustomerParty > LegalEntity > CompanyID).
  • If no matching customer is found in the database, a Create customer button allows creating the customer record directly from the information available in the UBL (name, VAT number, address…).

The Customer field dropdown is filtered to display only customers authorised for sale entries (ioi_customer_get_allowed_for_sale_entry).

Channel options in the document #

Depending on the UBL type:

  • Self-Billing document → only sales channels are offered in the Channel field (ioi Sales Invoice, ioi Sale Entry).
  • Other document → only purchase channels are offered (ioi Purchases Invoice, ioi Purchase Entry/2, internal channels…).

Accounting tab — Sale Entry Lines #

For Self-Billing documents, the Accounting tab displays the Sale Entry Lines table, automatically pre-filled with the sales accounting lines extracted from the UBL. The analytic columns are visible but may remain empty if no analytic configuration is defined.


Creating the sales document #

From a Self-Billing document #

When the document is at status Checked (CK), the document creation button becomes active. Depending on the selected channel:

Option A — ioi Sales Invoice (ERP) #

  • A complete sales invoice is created in the ioi Sales Invoice module.
  • The customer, currency, period, amounts (excl. VAT, VAT, incl. VAT), references (order, delivery, contract…) and detail lines are automatically carried over.
  • If the total amount is negative, a credit note is created instead of an invoice.

Option B — ioi Sale Entry (Accounting) #

  • A sale accounting entry is created directly.
  • Ready to be posted without going through the ERP Sales module.

The edi_imported field #

Regardless of the option chosen, the invoice or entry created has the edi_imported field set to 1. This field has the following effects:

Blocked behaviour Allowed behaviour
Generation of a new UBL PEPPOL file Transfer to accounting
Sending via the PEPPOL network (Doc Gateway Outbox) Manual consultation and editing

Info

This mechanism guarantees that a sales invoice received via Self-Billing will never be re-sent via PEPPOL (which would cause duplicate invoicing), while still allowing normal accounting processing.

Exemple

The original received UBL file is retained and attached to the created invoice.


Technical flow — ioi Doc Gateway Inbox #

When a document is automatically received via the PEPPOL network, the ioi Doc Gateway Inbox module:

  1. Reads default_channel_pur and default_channel_sal from ioi Doc Scanner Settings.
  2. Imports the document into ioi E-Doc Entry Channel.
  3. Decodes the XML file and detects the UBL type.
  4. If the type is SELF_BILLING:* → assigns channel_sal to the document.
  5. Otherwise → assigns channel_pur to the document.

Document statuses #

Self-Billing documents go through the same statuses as purchase documents:

Status Code Description Action required
Waiting WT Document received, decoding pending or in progress Wait / check
Decoded DE Data extracted, customer to be validated Complete if needed
Checked CK Data validated, ready to create Create the document
Processed PR Sales invoice created successfully None
Error ER Problem during processing Check the details
To handle HA Requires manual intervention Manual action

Info

For a Self-Billing document, the Checked (CK) status requires a valid customer to be present on the document (not a supplier).


Bulk processing #

Bulk processing works in the same way as for purchases:

  1. Select multiple documents at status Checked (CK).
  2. In the Actions menu, click Process checked documents.
  3. The system automatically creates all invoices (purchases and/or sales) according to each document’s channel.

Best practices #

Preparation #

  • Up-to-date customer records: Before receiving Self-Billing documents, make sure your customers are created with the correct VAT number. Automatic detection is based on this number.
  • Configure the default sales channel: In ioi Doc Scanner Settings, define the sales channel suited to your workflow (ioi Sales Invoice is recommended for full ERP tracking).

Processing #

  • Verify the detected customer: Even though detection is automatic, confirm that the correct customer is selected before validating.
  • Do not re-send via PEPPOL: The created invoice carries edi_imported = 1, which automatically blocks PEPPOL sending. Do not attempt to bypass this mechanism.
  • Channel Type filter: Use the Sales filter in the list view to process your Self-Billing documents separately from standard purchase invoices.

Cette page vous a-t-elle aidé ?