Skip to Content
Guides > Exigo add-ons > E-invoicing

E-invoicing

Exigo's add-on connects Odoo to an e-invoicing service that sends and receives e-invoices on the Peppol network. When you post an invoice or credit note, Odoo sends it as a Peppol e-invoice to customers who can receive it.

E-invoices and e-credit notes from your vendors arrive in Odoo automatically as draft vendor bills.

Note

This page describes Odoo 19. If your company is still on Odoo 17, also read the Odoo 17 section at the bottom of the page, because some things work the other way round there.

Before you start

You need the following:

  • An account with the e-invoicing service (API user and password) for each company in Odoo that sends or receives e-invoices. Each company has its own connection.
  • The Accounting app in Odoo. The Sales app is only needed if you receive e-orders from customers.
  • Correct company details: kennitala (Icelandic ID number), Company ID, address, postal code and country.
  • Correct customer details: name, kennitala, email, address, postal code and country.

Who does what:

TaskWho does it
Account with the e-invoicing serviceExigo helps you set it up
Installing the add-on and setting up the connection in OdooExigo
Switching e-invoicing onExigo
Company detailsYou
Customer details, and choosing which customers must not get e-invoicesYou

Setup

What Exigo does

Exigo handles the technical setup. The settings are visible only to users with full access to Settings.

  1. Exigo installs the add-on. This creates one connection for each company in Odoo, and companies created later get their connection automatically.
  2. Exigo enters the credentials from the e-invoicing service in Settings, in the Exigo - Electronic Business Document section: User, Password, and Environment Mode set to Production.
  3. The Notify user on error field holds the user who gets a message when a vendor e-invoice cannot be read. By default this is the administrator. Tell Exigo if someone else should get these messages.
  4. Exigo ticks Enable E-Invoicing (Accounting) in the E-Invoicing (Accounting) section. This single switch turns on both automatic sending of invoices and receiving of vendor bills.
  5. Exigo chooses the Tax Source, which decides the tax on lines of vendor e-invoices: Odoo Chart of Accounts (the default) or the Peppol option.
  6. If there is more than one company in Odoo, Exigo switches to each one and repeats steps 2–5, because the settings apply to the active company.
  7. Exigo tests the connection.
  8. After an upgrade from Odoo 17, Exigo clears Odoo's standard eInvoice format field on customers.

[Screenshot: Settings, the Exigo - Electronic Business Document section with the User, Password, Environment Mode and Enable E-Invoicing (Accounting) fields]

Important

Do not choose anything in the eInvoice format field on customers. Exigo's add-on handles e-invoicing, and while that field is filled in, emailing an invoice to that customer fails.

Note

In a copy of the database, such as a test copy, e-invoicing is switched off and the connection is set to Test with no credentials. The copy therefore neither sends nor fetches e-invoices.

What you do

  1. Open Settings ‣ Users & Companies ‣ Companies and select the company. Enter the company's kennitala in Tax ID, fill in Company ID, and enter the address, postal code and country. If Company ID is empty, every e-invoice send fails.
  2. Enter each customer's kennitala in Tax ID. Odoo sends this field to the e-invoicing service unchanged, so it must contain the kennitala and nothing else.
  3. Also enter the email, address, postal code and country on the company contact you invoice.
  4. For customers who must not get e-invoices: open the customer, go to the Invoicing tab and tick Disable Peppol E-Invoicing in the Peppol E-Invoicing group. The setting also applies to every contact under that company.

[Screenshot: A customer's Invoicing tab with the Peppol E-Invoicing group and the Disable Peppol E-Invoicing field]

Important

Odoo 19 tries to send an e-invoice to every customer with a kennitala in Tax ID, unless Disable Peppol E-Invoicing is ticked. The invoice only goes out if the e-invoicing service confirms that the customer can receive it.

Daily use

Sending an invoice or credit note

Sending is automatic: Odoo sends the invoice as soon as you post it.

  1. Create the invoice in Accounting ‣ Customers ‣ Invoices, or the credit note in Accounting ‣ Customers ‣ Credit Notes.
  2. If the customer gave you an order number, enter it in Customer Reference on the Other Info tab. If the field is empty, the invoice number is sent instead.
  3. To send PDF files with the invoice, add them under Peppol Attachments on the E-Invoice tab. Only PDF files are allowed: other files are removed with the warning Invalid Attachment Type.
  4. Click Confirm. Odoo posts the invoice, checks with the e-invoicing service that the customer can receive it, and then sends the invoice, its PDF and the attachments.
  5. The chatter shows E-invoice sent via Peppol with a GUID, which identifies the transmission at the e-invoicing service.

[Screenshot: A posted invoice with the Send E-Invoice, E-Invoice PDF and Check Status buttons, the E-Invoice tab and the E-invoice sent via Peppol message in the chatter]

Warning

Posting always goes through, even when sending fails. If an e-invoice message in the chatter shows a GUID, do not send the invoice again. Contact Exigo instead and give them the GUID.

Note

On the e-invoice, each line shows the product name, not the text you type in the line description. Section lines and note lines are not sent as lines; the text of note lines goes into the invoice notes.

E-invoice status

A posted invoice or credit note has these buttons at the top:

  • Send E-Invoice: sends the invoice. The button only appears on an invoice that Odoo has not recorded as sent.
  • E-Invoice PDF: downloads the PDF version the e-invoicing service holds of the invoice.
  • Check Status: fetches the latest status from the e-invoicing service.

The E-Invoice tab shows E-Document GUID, E-Document Status and E-Invoice Order Ref.

In the invoice list you can add the E-Document Status column. It is green when the invoice is delivered, orange when it is received or being retried, and red when sending failed.

The status updates automatically every hour and when you click Check Status.

StatusMeaning
NOT SETThe transmission is waiting for more documents. The e-invoicing service does not process it until the last document has arrived.
RECEIVEDThe e-invoicing service has accepted the transmission and it is ready for processing.
RETRYINGSending failed, but the e-invoicing service will try again.
DELIVEREDThe e-invoicing service has processed and delivered the invoice.
FAILEDSending failed and the e-invoicing service will not try again.
PARKEDThe invoice will not be delivered through the e-invoicing service, for example because it was delivered another way. This status is set manually at the e-invoicing service.
PENDINGREVIEWDelivery did not succeed and the e-invoicing service is reviewing the transmission.

DELIVERED, FAILED and PARKED are final statuses.

Vendor e-invoices

E-invoices and e-credit notes from vendors are fetched automatically every hour. Each one becomes a draft in Accounting ‣ Vendors ‣ Bills or Accounting ‣ Vendors ‣ Refunds.

  • The vendor is found by kennitala, then by VAT number, and finally by name if exactly one vendor in Odoo has that name and no other kennitala. If none is found, Odoo creates a new vendor with the name, address, email, phone and kennitala.
  • Products are found by Internal Reference, then by Barcode, and finally by exact product name. If no product is found, the line is kept without a product and a note is added to the bill.
  • The tax on the lines depends on the Tax Source setting. With Odoo Chart of Accounts, the line gets the account's default purchase tax. With the Peppol option, it gets the purchase tax with the same rate as on the invoice.
  • The e-invoicing service's PDF version of the invoice is attached, together with the documents the vendor sent.

Review the drafts and post them like any other vendor bill. If the same invoice arrives again, the draft is updated, but a posted bill is not changed.

If the invoice cannot be read correctly, the chatter shows Error while parsing the E-Invoice, an E-Invoice error activity is created on the bill, and the user in Notify user on error gets a message.

E-orders from customers

With the e-order add-on, orders that customers send electronically become draft quotations in Sales ‣ Orders ‣ Quotations. Orders are fetched every hour, and Odoo sends nothing back to the customer.

  • The order number goes into Customer Reference and the order's issue date into Order Date.
  • The customer is found by kennitala, or created if it does not exist.
  • The delivery location is found by the GLN in the GLN field and the customer's kennitala. If it is not found, it is created as a delivery address under the customer, with its name, GLN and address.
  • Products are found by Barcode and then Internal Reference. A line whose product is not found is dropped and the note Product … not found is added.
  • The price comes from Odoo, not from the order.
  • If the same order arrives again, the quotation is updated as long as it is still a draft. A confirmed or locked order is not changed.
  • Error notifications go to the quotation's salesperson, or to the customer's salesperson if the quotation has none.
  • The status is shown in the E-Document Status field on the order.

The GLN field shows only on delivery addresses, on the Sales & Purchase tab in the Misc group. It is used both for incoming orders and on the invoices you send.

Scheduled jobs

Two scheduled jobs handle the exchange with the e-invoicing service. Sending invoices is not a scheduled job: Odoo sends an invoice as soon as you post it.

JobFrequencyWhat it does
Exigo - Import inbound E-documentsEvery hourFetches the e-invoices, e-credit notes and e-orders waiting at the e-invoicing service and creates drafts from them in Odoo.
Exigo - Update E-documents statusEvery hourFetches the latest status of every e-document from the e-invoicing service and updates E-Document Status.

Errors in the jobs themselves are only written to Odoo's server log. If an invoice's status does not change, or vendor bills stop arriving, contact Exigo.

When something goes wrong

Warning

If a message in the invoice's chatter shows a GUID, do not send the invoice again with Send E-Invoice. Contact Exigo instead and give them the GUID, so the transmission can be looked up at the e-invoicing service.

Sending failed after posting

The invoice is posted, but the chatter shows Send failed or Document send failed with a GUID and the text Please contact support.

Check the following:

  • Are the address, postal code and country filled in on the customer and on the delivery address?
  • Does the invoice have negative lines, such as discount lines, or is it a credit note with both negative quantity and negative price?

Fix what is missing, then contact Exigo with the invoice number and the GUID from the chatter. Do not send the invoice again.

If the message mentions Company Registry, the company has no Company ID, and every invoice send fails. Fill in the field in Settings ‣ Users & Companies ‣ Companies, then contact Exigo about the invoices that did not go out.

The invoice was not sent electronically

The invoice is posted but has no GUID and no E-Document Status. The chatter shows E-invoice send skipped or E-invoice not sent, or nothing about an e-invoice.

Check the following:

  • Is Disable Peppol E-Invoicing ticked on the customer?
  • Is the kennitala in Tax ID, with nothing else in the field?
  • Is the customer registered as a receiver of e-invoices for this document type? Whether the customer accepts invoices and whether it accepts credit notes are checked separately.
  • Is the invoice total zero? Invoices with a zero total are not sent.
  • Is the customer missing a name, email, country or street? The chatter then names the fields.
  • Was the invoice posted before e-invoicing was switched on, or before the customer was registered as a receiver?

If the chatter message contains Could not verify Peppol registration, or if the customer says they are registered as a receiver, contact Exigo.

Otherwise, once the customer is fixed, you can click Send E-Invoice on the posted invoice. Only do this if the chatter shows E-invoice send skipped, E-invoice not sent or nothing about an e-invoice, never if it shows a GUID.

The status is DELIVERED but the customer received nothing

DELIVERED means the e-invoicing service has processed and delivered the invoice. After that, the invoice is in the hands of the customer's system or service provider.

  • Click Check Status to fetch the latest status.
  • Open E-Invoice PDF to see exactly what the e-invoicing service holds.
  • Ask the customer to check with their own e-invoice service provider.

If that does not solve it, Exigo can get the delivery trace of the transmission from the e-invoicing service. Contact Exigo in that case.

Vendor e-invoices do not arrive

A vendor says they have sent an e-invoice, but it is not in Odoo.

  • Invoices are fetched every hour. Wait an hour before looking further.
  • Look for an E-Invoice error activity on draft vendor bills. It shows that the invoice arrived but could not be read completely.
  • A user with full access to Settings can check that Enable E-Invoicing (Accounting) is ticked and that User and Password are filled in. If e-invoicing is switched off, nothing is fetched and the invoices wait at the e-invoicing service.

Contact Exigo and give the sender and date of the missing invoice. Exigo can fetch invoices again, including invoices the e-invoicing service has already marked as delivered.

An invoice arrived twice or incomplete

The customer received the same invoice twice, or a copy that is missing its PDF or some lines.

This happens when the answer from the e-invoicing service is lost, for example during a connection drop or when many invoices are posted at once. Odoo then does not know that the invoice went out, and if it is sent again, a second copy goes to the customer. If the PDF or the attachments did not get through, the transmission stays open at the e-invoicing service.

Do not send the invoice again if the chatter shows a GUID. Contact Exigo with the GUID so the transmission can be looked up at the e-invoicing service first.

An invoice is not sent because details are missing

The invoice's chatter shows E-invoice not sent: customer … is missing …, which Peppol requires.

Peppol requires a name, email, country and street on the customer. Fill in the missing fields on the company contact, then click Send E-Invoice on the posted invoice. If the customer must not get e-invoices, tick Disable Peppol E-Invoicing instead.

An invoice cannot be sent by email

If emailing an invoice to a customer fails after an upgrade from Odoo 17, open the customer and check the eInvoice format field. It must be empty, because while it is filled in, sending by email fails.

The order number is missing from the e-invoice

Enter the customer's order number in Customer Reference on the Other Info tab before you post the invoice. If the field is empty, the invoice number is sent instead.

Odoo sends the delivery location's GLN with the invoice when it is entered in the GLN field on the invoice's delivery address. By default that is the customer's delivery address. The Delivery Address field shows on the invoice when the Customer Addresses setting is enabled in the Accounting settings. If a customer requires a GLN, enter it on the delivery address before you post the invoice.

Lines on a vendor bill are wrong

  • The product is wrong or missing: check Internal Reference and Barcode on your products, because Odoo finds products by them.
  • The tax is wrong: check the Tax Source setting. If no purchase tax with the same rate is found, the line gets the account's default tax and a note is added to the bill.
  • A new vendor was created: Odoo finds vendors by kennitala and VAT number. If neither matches the invoice, and no single vendor has the same name, Odoo creates a new vendor. If the kennitala belongs to an archived vendor, Odoo uses that vendor, adds a note to the bill's chatter and creates an E-Invoice error activity. It is for information only: check the vendor and post the bill as usual.

Odoo 17

Odoo 17 runs an older version of the add-on. Exigo sets up the connection on the company, on the E-Invoice Configuration tab. These are the main differences from Odoo 19.

Who receives e-invoices

In Odoo 17 it works the other way round: a customer only gets e-invoices if Accept E-invoices is ticked in the Electronic Invoices group on the contact's accounting tab. The box is unticked by default, so you need to tick it for every customer who should get e-invoices.

When you upgrade to Odoo 19, the choice is kept: customers who did not accept e-invoices get Disable Peppol E-Invoicing ticked.

Sending and status

  • As in Odoo 19, the invoice is sent automatically when you post it, if the customer accepts e-invoices. If sending fails, the chatter shows E-invoice send failed and the posting stays.
  • The Send E-Invoice button at the top of the invoice only appears if the customer accepts e-invoices.
  • When an invoice is reversed, the credit note is sent electronically.
  • The status is shown in the eInvoice Status field on the invoice and as a column in the invoice list. You fetch the latest status with Check E-Invoice Status in the action menu.
  • You add PDF attachments on the E-Invoice Detail tab, under Add Peppol Attachments (PDF only).
  • The PARKED status in Odoo 17 means the e-invoicing service reported that sending failed. In Odoo 19, PARKED means the transmission was set aside manually at the e-invoicing service.
  • The e-invoice shows the name, email and phone of the invoice's salesperson. In Odoo 19 it shows the company's own name, email and phone.
  • The Reference field on the delivery address is sent as the delivery-location identifier (GLN).
  • On the upgrade to Odoo 19, a GLN starting with 0088: in the Reference field is moved to the GLN field.

Receiving and scheduled jobs

  • On vendor e-invoices, products are found by name only.
  • The setting in the accounting settings that creates products from vendor e-invoices does not exist in Odoo 19.
  • The Download E-Invoice PDF button on vendor bills downloads the invoice's PDF from the e-invoicing service.
  • The vendor's order number is shown on the vendor bill.
  • E-orders work as in Odoo 19 but are fetched once a day.
JobFrequencyWhat it does
E-Invoice: Monitor Invoice StatusEvery minuteUpdates the status of sent invoices.
E-Invoice: Receive E-InvoicesEvery hourFetches e-invoices from vendors.

See also

© 2026 Exigo ehf.Íslensk þýðing, framsetning og aðlögun: Exigo ehf.