Software guides · Odoo · Peppol BIS 3.0
Peppol BIS 3.0 in Odoo
Odoo connects to Peppol through Access Point integrations—Storecove has native Odoo integration, or use OCA modules for other Access Points. This guide covers both paths, with specific focus on participant ID schemeID configuration and the ProfileID setting that causes PEPPOL-EN16931-R001 rejections in older module versions.
- Odoo 16.0 or later with Accounting module configured
- Peppol Access Point subscription (Storecove recommended for easiest Odoo integration)
- Your company Peppol Participant ID registered with your Access Point
- For OCA path: account_invoice_peppol module from OCA GitHub repository
- Trading partners discoverable in Peppol directory (check directory.peppol.eu)
- 01
Choose integration path: Storecove native or OCA modules
Storecove path: Apps → search "Storecove" → Install "Storecove Peppol Integration". This is turn-key with built-in Access Point. OCA path: Download account_invoice_peppol from github.com/OCA/edi → install via Apps → Update Apps List. OCA requires separate Access Point subscription (Basware, Pagero, etc.).
- 02
Configure your company Peppol Participant ID
Settings → Companies → select company → Edit. Go to "E-Invoicing" or "Peppol" tab (depends on module). Enter your Peppol ID with correct scheme. Format: "schemeID:identifier" (e.g., "0208:0123456789" for Belgian KBO, "0106:12345678" for Dutch KVK, "0088:5412345678908" for GLN). The schemeID is critical—wrong scheme = PEPPOL-EN16931-R010/R020 error.
- 03
Add customer Peppol Endpoint IDs
Contacts → select customer → Edit → "E-Invoicing" tab. Add Peppol Participant ID with schemeID. Look up customers at directory.peppol.eu to find their registered IDs. Common schemes: 0088 (GLN), 0106 (NL KVK), 0190 (NL OIN), 0208 (BE KBO), 9925 (BE VAT), 9930 (DE VAT). If customer not in directory, they cannot receive Peppol invoices.
- 04
Verify ProfileID in module configuration
Critical for older OCA modules: Settings → Technical → System Parameters → search "peppol.profileid". Value must be "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0". Older modules (pre-2022) may have outdated ProfileID causing PEPPOL-EN16931-R001 rejection. For Storecove module, this is handled automatically.
- 05
Test with your own Peppol ID (loop test)
Create customer record with YOUR company Peppol ID as the Endpoint ID. Create and send test invoice to this customer. Invoice routes through Peppol 4-corner model back to your inbox. Check Access Point dashboard for delivery confirmation. Download received XML and compare with sent. Validate with Invoice Navigator before real trading partner tests.
PEPPOL-EN16931-R001Missing Business Process
Odoo Peppol connectors (both OCA and partner solutions) may not default to the correct ProfileID. Some connectors are pre-2022 and use outdated process identifiers.
How to fix itIn Peppol connector settings, verify ProfileID = urn:fdc:peppol.eu:2017:poacc:billing:01:1.0. Update connector module to latest version.
PEPPOL-EN16931-R010Invalid Buyer Endpoint Identifier
Customer Peppol IDs entered without proper schemeID. Common when importing customer data from CSV or external CRM systems.
How to fix itUpdate customer records with full Peppol ID including schemeID: 0088 for GLN, 0208 for Belgian KBO, 0106 for Dutch KVK.
BR-16Missing Line Identifiers
Odoo invoice lines get internal IDs, but these may not transfer correctly to UBL output. Issue particularly common with OCA module older than 14.0.
How to fix itUpdate to latest OCA account_invoice_ubl module. Verify line IDs are populated in exported UBL.
Before exporting Peppol BIS 3.0 from Odoo, verify these items:
- 01Verify customer Peppol participant ID has correct schemeID
- 02Confirm Peppol connector has correct ProfileID configured
- 03Check Access Point connectivity and credentials
- 04Ensure all invoice lines have unique identifiers
- 05Test with your own Peppol ID first (send to yourself)
- 06Verify delivery confirmation from Access Point
Configure your Peppol connector to send a test invoice to your own participant ID. This validates the full send/receive flow.
Peppol Access Points typically provide sandbox environments for testing. Ask your provider for test credentials.
Before Peppol transmission, export UBL and validate with Invoice Navigator Peppol BIS 3.0 validator.
Which Peppol Access Points work with Odoo?
Most Access Points provide APIs compatible with Odoo. Popular choices include Basware, Pagero, Unifiedpost, and regional providers. Check OCA apps or partner solutions for connectors.
Can Odoo receive Peppol invoices?
Yes, with the appropriate connector module, Odoo can receive incoming Peppol invoices. Documents are converted from UBL to Odoo vendor bills automatically.
Have a Peppol BIS 3.0 invoice from Odoo that came back rejected? Check it here.
Checking is free. The first verified download every 30 days is free. After that €1.90 per invoice, or €9 a month for all of them.