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 Invoicemodule. - 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:
- Reads
default_channel_puranddefault_channel_salfromioi Doc Scanner Settings. - Imports the document into
ioi E-Doc Entry Channel. - Decodes the XML file and detects the UBL type.
- If the type is
SELF_BILLING:*→ assignschannel_salto the document. - Otherwise → assigns
channel_purto 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:
- Select multiple documents at status
Checked(CK). - In the Actions menu, click Process checked documents.
- 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 Invoiceis 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
Salesfilter in the list view to process your Self-Billing documents separately from standard purchase invoices.