Peppol e-Invoicing Integration by SendPol
SendPol connects Drupal Commerce to the Peppol network. Invoices and credit notes are generated from your orders and delivered to your customers as compliant electronic invoices (UBL), without you having to touch UBL, Peppol access points or country-specific rules yourself. Built for the e-invoicing mandates rolling out across Europe, including Belgium's B2B mandate starting January 2026.
Features
- Automatic invoice handover when an order is placed, paid or fulfilled (configurable trigger).
- Automatic credit notes on refunds: full refunds credit the whole order, partial refunds become a single credit line.
- Companies-only and billing-country filters, bypassable per order with a manual send from the order's SendPol tab.
- Admin section under Commerce › SendPol with Dashboard (health, metrics, monthly usage), Documents, Connection, Settings and Logs.
- Document actions: Send via Peppol, Retry, Download UBL, Reset.
- Local document ledger with automatic status sync every 15 minutes, hourly retry of failed handovers and daily pruning after a configurable retention window.
- Test mode on the SendPol account: one switch, one truth. The settings form reads and writes it over the API.
- Buyer VAT number from the Commerce
tax_numberprofile field, plus OIN and national registration numbers (KvK, KBO, ...) from custom fields. Peppol schemes are derived server-side.
Post-Installation
Enable the module, then configure it under Commerce › Configuration › SendPol (/admin/commerce/config/sendpol). You need a SendPol merchant API key (SendPol account › Webshops) to connect. After connecting, pick the send trigger and optional filters, and check the result under Commerce › SendPol.
Two Drupal Commerce quirks to be aware of: Commerce Tax creates the tax_number field but leaves it hidden on the profile form display, so enable it under the customer profile type's "Manage form display" or customers cannot enter a VAT number (the SendPol settings page warns while it is missing or hidden). The field's VIES verification also needs the PHP soap extension.
Additional Requirements
- Drupal 10.3+ or Drupal 11
- Drupal Commerce (commerce, commerce_order)
- PHP 8.1+
- A SendPol account (the SaaS service that validates and delivers the documents on the Peppol network)
Recommended modules/libraries
Commerce Invoice: with it installed, every Peppol document mirrors a real invoice or credit memo entity, including its number sequence, dates, billing snapshot, items and partial totals. Credit memos become credit notes automatically and an extra "when an invoice document is generated" trigger appears. Without it, the order itself is the documented fallback basis.
Similar projects
Modules exist that export an order as a UBL file, but leave transmission, validation, receiver lookup and legal compliance to you. SendPol covers the full chain: it builds the UBL, validates it, looks up the receiver in the Peppol directory and delivers the document through a certified Peppol access point, with status feedback inside the Drupal admin. The same integration exists for WooCommerce, PrestaShop, Magento and Shopware.
Supporting this Module
This module is developed and maintained by SendPol. Using the service is what supports development; a free tier is available for low volumes. Bug reports and feature requests are welcome in the issue queue.
Community Documentation
Depends on
Dependencies of the latest stable release
- Commerce Core
- Commerce Core commerce_order
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Releases
| Version | Type | Core | Notes | Release date | |
|---|---|---|---|---|---|
| 1.0.0 | Stable | 10–11 | First stable release: send Drupal Commerce invoices and credit notes to the Peppol network. | Sep 10, 2026 |