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 e-invoicing in many countries. Refer to the country’s page for more details.

Configuration

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 ‣ Customers ‣ Customers, access the customer form, go to the Accounting tab, and select the appropriate Format in the Customer invoices section.

E-invoice generation

From a confirmed invoice, click Send. In the Print & Send window, enable the relevant e-invoicing format option (e.g., by Peppol), then click Send 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

  • 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 on Peppol, go to Accounting ‣ Configuration ‣ Settings and scroll to the PEPPOL Electronic Invoicing section. Then, follow these steps:

  1. Click Activate Electronic Invoicing in the PEPPOL Electronic Invoicing section and fill in the following fields:

    • Using the (down arrow) icon, make sure the relevant country-specific Peppol endpoint identifier is selected in the dropdown list, then enter your Peppol endpoint (usually a Company Registry or VAT number).

    • Email

    • Phone, including the country code (e.g., +32 in Belgium)

  2. Click Activate Peppol. The registration is then pending activation.

    See also

    Peppol endpoint - OpenPeppol eDEC Code Lists (open the “Participant Identifier Schemes” as HTML page)

  3. Select another purchase journal in the Incoming Invoices Journal field if necessary, or a folder name in the Document Workspace field if multiple purchase journals are used, and Save.

  4. The registration should be automatically activated within a day.

All invoices and vendor bills can then be sent directly using Peppol.

Note

  • To update the Primary contact email, modify it and click Update.

  • If you are using an access point from a previous provider, make sure to deregister from it first, then register with your new access point, unless it’s Hermes (BOSA). If using Hermes (BOSA), no action is needed; the migration is handled automatically.

Tip

  • To manually trigger the scheduled action used to check the Peppol registration status, enable developer mode, open the Settings app, go to Settings ‣ Technical ‣ Scheduled actions, and search for Peppol: update participant status. Open the scheduled action, then click Run Manually.

  • To try Peppol without sending real data, enable demo mode by selecting Odoo Demo ID as the Peppol endpoint identifier. To switch back to production mode, change the account_peppol.edi.mode system parameter to prod mode before activating Peppol in production.

  • For advanced testing on Peppol’s dedicated test network, use the test mode by setting the account_peppol.edi.mode system parameter to test. This option is intended for experienced users only.

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:

  1. Go to Accounting ‣ Customers ‣ Customers and access the customer’s form.

  2. In the Accounting tab, check the following information in the Customer invoices section:

    • eInvoice format: Select the relevant format.

    • Using the (down arrow) icon, make sure the relevant country-specific Peppol endpoint identifier is selected in the dropdown list, then enter the customer’s endpoint identifier, usually a Company Registry or VAT number.

  3. To verify the contact, enable developer mode and click Verify. Its Peppol endpoint verification is marked as Valid if the contact is found on the Peppol network.

verify contact registration

Important

While Odoo prefills the endpoint number based on the information available for a contact, verifying these details with the contact is recommended.

Send invoices

Posted invoices to be 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 on the confirmed invoice form. In the Print & Send window, enable the by Peppol option and click Send.

Tip

  • Multiple invoices can also be sent in batches via Peppol.

  • Set the preferred Invoice sending method for a customer to by Peppol in the Customer Invoices section of the customer form’s Accounting tab.

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.

Fetch invoice Peppol status

Receive vendor bills

New documents received via Peppol are checked multiple times a day. Received documents are automatically imported into the purchase journal set in the PEPPOL Electronic Invoicing section, and corresponding vendor bills are created as drafts and appear 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.

Fetch bills from Peppol

Multiple purchase journals

Note

Make sure the Documents - Import from Peppol (documents_account_peppol) module is installed.

When using multiple purchase journals, new vendor bills can be received via the Documents app. To do so, follow these steps:

  1. In the Documents app, create a specific folder or enable file centralization for Accounting documents.

  2. Open the Accounting app, go to Accounting ‣ Configuration ‣ Settings, and scroll to the PEPPOL Electronic Invoicing section.

  3. In the Document Workspace field, choose the relevant folder.

  4. Use the Document Tags field to add tags to incoming Peppol documents for easy identification.

  5. Click Save.

Then, open the Document app, navigate to the appropriate folder, select the relevant vendor bills, and click Create Vendor Bill. The corresponding vendor bill is then created.

Peppol deregistration from Odoo

Only one Peppol receiver registration can be active for each Peppol endpoint identifier at a time. To stop using Odoo as the Peppol access point, e.g., to switch to another provider or reconfigure the registration for a new database, you must first deregister from Peppol. To do so, go to Accounting ‣ Configuration ‣ Settings, scroll down to the PEPPOL Electronic Invoicing section, click Remove from Peppol, and confirm.

Once removed, the Peppol registration is deleted from the database, and documents can no longer be sent or received via Peppol in Odoo.

Country-specific e-invoicing details

Refer to the following pages for detailed, country-specific information: