Electronic invoicing (EDI)¶
EDI, or electronic data interchange, is the inter-company communication of business documents, such as purchase orders and invoices, in a standard format. Sending documents according to an EDI standard ensures that the system receiving the message can interpret the information correctly. Various EDI file formats are available depending on your company’s country.
The EDI feature allows companies to automate administrative processes. It may also be required by some governments for fiscal control or to support administrative procedures.
Electronic sending of documents such as customer invoices, credit notes, or vendor bills is one application of EDI.
Odoo supports, among others, the following formats.
Format Name |
Applicability |
---|---|
Factur-X (CII) |
All customers |
Peppol BIS Billing 3.0 |
All customers |
XRechnung (UBL) |
All customers |
Fattura PA (IT) |
Italian companies |
CFDI (4.0) |
Mexican companies |
Peru UBL 2.1 |
Peruvian companies |
SII IVA Llevanza de libros registro (ES) |
Spanish companies |
UBL 2.1 (Columbia) |
Colombian companies |
Egyptian Tax Authority |
Egyptian companies |
E-Invoice (IN) |
Indian companies |
NLCIUS (Netherlands) |
Dutch companies |
EHF 3.0 |
Norwegian companies |
SG BIS Billing 3.0 |
Singaporean companies |
A-NZ BIS Billing 3.0 |
All customers |
Note
The Factur-X (CII) format enables validation checks on the invoice and generates PDF/A-3 compliant files.
Every PDF generated by Odoo includes an integrated Factur-X XML file.
See also
Configuration¶
National e-invoicing format¶
Depending on your company’s country (e.g., Italy, Spain, Mexico, etc.), it may be required to issue e-invoicing documents in a specific format for all invoices. In this case, define a default e-invoicing format for the sales journal.
To do so, go to Advanced Settings tab, and enable the formats needed for this journal.
, open the sales journal, go to theCustomer-specific e-invoicing format¶
By default, the format available in the send window depends on the customer’s country.
To define a specific e-invoicing format for a customer, go to Accounting tab, and select the appropriate Format in the Electronic invoicing section.
, open the customer form, go to theE-invoice generation¶
From a confirmed invoice, click Send & Print. In the Send window, enable the relevant e-invoicing format option (e.g., BIS Billing 3.0), then click Send & Print to generate and attach the corresponding e-invoicing XML file.
Peppol¶
The Peppol network ensures the exchange of documents and information between companies and governmental authorities. It is primarily used for electronic invoicing, and its access points (connectors to the Peppol network) allow companies to send electronic documents such as customer invoices and credit notes and receive documents like vendor bills and refunds.
In this case, Odoo acts as both an access point and an SMP and enables electronic invoicing transactions without the need to send invoices or bills by email or post.
Note
Make sure to install the Peppol module (
account_peppol
).Peppol registration is free and available in Odoo Community.
Supported formats for sending documents include BIS Billing 3.0, XRechnung CIUS, and NLCIUS.
- The following countries are eligible for Peppol registration in Odoo:Andorra, Albania, Austria, Bosnia and Herzegovina, Belgium, Bulgaria, Switzerland, Cyprus, Czech Republic, Germany, Denmark, Estonia, Spain, Finland, France, United Kingdom, Greece, Croatia, Hungary, Ireland, Iceland, Italy, Liechtenstein, Lithuania, Luxembourg, Latvia, Monaco, Montenegro, North Macedonia, Malta, Netherlands, Norway, Poland, Portugal, Romania, Serbia, Sweden, Slovenia, Slovakia, San Marino, Turkey, Holy See (Vatican City State)
Registration¶
To register to Peppol, go to PEPPOL Electronic Document Invoicing section.
and scroll to theBy default, Peppol is set to demo mode in Odoo. Demo mode simulates Peppol transactions without affecting real data, while production mode is used in production environments.
Demo mode¶
Registering in demo mode allows for a complete simulation of the Peppol workflow in Odoo, including invoice sending and receiving and bill receiving. However, no communication with the Peppol network occurs, so actions like partner verification are not performed.
The following fields in the PEPPOL Electronic Document Invoicing section are usually prefilled with demo data. Update or complete them as needed:
Peppol EAS: Peppol Electronic Address Scheme, which usually depends on the company’s country. This field is often prefilled with your country’s most commonly used EAS code. For example, the preferred EAS code for most companies in Belgium is
0208
.Peppol Endpoint: usually a Company Registry number or a VAT number
Mobile Number, including the country code (e.g.,
+32
in Belgium)Primary contact email
To set the demo mode, click Validate registration (Demo). The Application status is then Active (Demo).
Test mode¶
For advanced users only, running tests on Peppol’s test network is possible using the test mode. The server allows users to register on Peppol and to send/receive test invoices with other participants. To do so, follow these steps:
Deregister from the demo mode: Go to the PEPPOL Electronic Document Invoicing section in the Settings and click Deregister from Peppol.
Enable developer mode, open the Settings app, then go to and search for account_peppol.edi.mode.
Open the parameter and change the Value to
test
.Go back to the PEPPOL Electronic Document Invoicing section in the Settings and click Validate registration (Test).
Update the Mobile Number and click Verify mobile number.
A text message containing a code is sent to the mobile number provided to finalize the verification process.
Enter the code and click Confirm.
Production mode¶
To switch from the demo mode to the production mode, follow these steps:
Deregister from the demo mode: Go to the PEPPOL Electronic Document Invoicing section in the Settings and click Deregister from Peppol.
Enable developer mode, open the Settings app, then go to and search for account_peppol.edi.mode.
Open the parameter and change the Value to
prod
.Go back to the Peppol Electronic Document Invoicing section in the Settings and fill in the following information:
Peppol EAS: Peppol Electronic Address Scheme, which usually depends on the company’s country. This field is often prefilled with your country’s most commonly used EAS code. For example, the preferred EAS code for most companies in Belgium is
0208
.Peppol Endpoint: usually a Company Registry number or a VAT number
Mobile Number, including the country code (e.g.,
+32
in Belgium)Primary contact email
Migration key: If you are migrating from another access point, copy the key from the previous provider.
Click Validate registration.
See also
Peppol endpoint - OpenPeppol eDEC Code Lists (open the “Participant Identifier Schemes” as HTML page)
To request and receive a verification code, follow these steps:
Click Verify phone number in the PEPPOL Electronic Document Invoicing section.
A text message containing a code is sent to the mobile number provided to finalize the verification process.
Enter the code and click Confirm.
The registration is then pending activation.
Select another purchase journal in the Incoming Invoices Journal field if necessary.
The registration should be automatically activated, and the Application status should be updated within a day.
All invoices and vendor bills can then be sent directly using Peppol.
Tip
To manually trigger the scheduled action used to check the Peppol registration status, enable developer mode, open the Settings app, go to , and search for Peppol: update participant status. Open the scheduled action, then click Run Manually.
Contact verification¶
Before sending an invoice to a contact using Peppol, make sure the contact is registered as a Peppol participant. To do so, follow these steps:
Go to
and open the customer’s form.In the Accounting tab, check the following information in the Electronic Invoicing section:
Format: BIS Billing 3.0, XRechnung CIUS, or NLCIUS.
Peppol e-address (EAS): Select the relevant EAS code in the dropdown list.
Peppol Endpoint: Enter the customer’s endpoint identifier.
Click Verify. If the contact is found on the Peppol network, its Peppol endpoint validity is marked as Valid.
Important
While Odoo prefills both the EAS code and the endpoint number based on the information available for a contact, it is recommended to verify these details directly with the contact.
Send invoices¶
To set Peppol as a default format for sending invoices, go to Customer Invoices section, enable the Peppol format option and Save.
. In thePosted invoices sent via Peppol are marked as Ready to send in the invoice’s Peppol status field.
Note
All invoices that are ready to be sent via Peppol can be viewed in the following ways:
In the Invoices list view, use the (adjust settings) button to add the Peppol status column or apply the Peppol Ready filter in the search bar.
In the Accounting dashboard, click Peppol ready invoices on the relevant sales journal.
To send the invoice to the customer via Peppol, click Send & Print on the confirmed invoice form. In the Send window, enable both the country-specific format (e.g., BIS Billing 3.0) and Send via PEPPOL options, then click Send & Print.
Tip
Multiple invoices can also be sent in batches via Peppol.
Once the invoices are sent via Peppol, their Peppol status is changed to Processing.

The status is updated to Done once the invoices have been successfully delivered to the contact’s access point.
Tip
To manually trigger the scheduled action used to check the invoices’ status, go to the Accounting dashboard and click Fetch Peppol invoice status on the corresponding sales journal.

Receive vendor bills¶
New documents received via Peppol are checked daily. Any received documents are automatically imported, and corresponding vendor bills are created as drafts, appearing in the vendor bills list view.
Tip
To manually trigger the scheduled action to retrieve incoming Peppol documents, go to the Accounting dashboard and click Fetch from Peppol on the main Peppol purchase journal.
