Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: Commerce Shipping 3.0.5 Minor update available for module commerce_shipping (3.0.5). Usage Milestone: Easy Breadcrumb Module easy_breadcrumb crossed 100,000 active installs. Release: MCP Sentinel 2.16.0 Minor update available for module mcp_sentinel (2.16.0). Release: Labor time tracker 1.0.1 Minor update available for module labor_time_tracker (1.0.1). Release: AI Integration - ECA 1.0.0 Initial release available for module ai_integration_eca (1.0.0)! Release: SynPay - Sber Ykassa Robokassa 2.0.1 Minor update available for module synpay (2.0.1). Release: SynPay - Sber Ykassa Robokassa 2.0.0 Major update available for module synpay (2.0.0). Release: IDNA Convert Service (punycode) 2.0.3 Minor update available for module idna (2.0.3). Release: IDNA Convert Service (punycode) 2.0.2 Minor update available for module idna (2.0.2). Module Revived: GoogleTag Manager 2.0.0 Module gtm updated after 13 months of inactivity (2.0.0).

Peppol e-Invoicing Integration by SendPol

No security coverage Drupal 10–11 PHP 8.1
View on drupal.org

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_number profile 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)

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

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
1
Tracked since
Sep 2026
Latest release
3 hours ago
Releases (12 mo)
1 ▲ from 0
Maintenance
Active

Releases

Version Type Core Release date
1.0.0 Stable 10–11 Sep 10, 2026