WordPress plugin intelligence profile

POP – E-invoicing for Belgium

Turn WooCommerce orders into Peppol e-invoices for Belgium: compliant UBL XML and a PDF copy, sent over the Peppol network.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.1
Current version1.0.0
WordPress coverageTested up to WordPress 7.1
Minimum stackWP 6.0 · PHP 7.4
Directory statusactive
Last directory update2 Nov 202622h ago
Active installationsNewAdoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records POP – E-invoicing for Belgium version 1.0.0 as active, updated 22h ago and tested up to WordPress 7.1.

Overview

About this plugin

Turn your WooCommerce orders into Belgian e-invoices: generate the structured UBL XML and a PDF copy for free, then send them over the Peppol network.

POP collects the fiscal data at checkout, builds the invoice from each order, handles numbering, VAT treatment and credit notes, and transmits the structured document over Peppol, all from one WordPress workflow, with free and paid plans.

This edition is set up for Belgium: the shop country is fixed to Belgium and the delivery channel is Peppol.

The Belgian B2B mandate

Since January 1st, 2026, structured electronic invoicing over Peppol is mandatory for domestic B2B invoices between VAT-registered businesses established in Belgium. POP turns each WooCommerce order into the required structured document and sends it through the network.

Get started without an account

Install the plugin and start generating compliant UBL XML and PDF invoices right away, at no cost, with no account and no setup step required. A free monthly generation allowance is included out of the box.

When you’re ready to send documents over Peppol, a short setup wizard built into the plugin guides you through connecting your free POP account, right inside your WordPress admin.

Every plan, including Free, can send over Peppol. Your plan sets your monthly credit allowance, not which features you can use.

After you install

  • Generate UBL XML and PDF invoices from your orders straight away, without an account, within the free monthly allowance.
  • When you want to send over Peppol, a short wizard connects a free POP account: email, one-time code, company details.
  • Your first invoice reaches the recipient over Peppol from the same screen.

Who this is built for

  • Belgian WooCommerce stores that need every B2B order to become a Peppol invoice
  • Stores selling B2B that need VAT treatment, reverse charge and Peppol identifiers handled at checkout
  • Agencies and developers running invoicing for Belgian WooCommerce stores

Core features

  • Automatic structured e-invoice generation in UBL XML for completed orders
  • Branded PDF invoice copy with custom logo and footer text
  • Manual PDF and XML download from the order and document management screens
  • Credit note generation in XML and PDF, on any plan including Free
  • Custom invoice numbering with prefix, suffix, digit length and yearly reset
  • Progressive numbering for invoices and credit notes
  • Checkout fields for VAT number, company details and Peppol identifier
  • VAT number validation at checkout, where supported
  • VAT treatment, exemption and reverse-charge configuration with VIES validation
  • Automatic blocking of zero-total invoices
  • Option to exclude zero-value line items from invoices
  • Invoice search and filters by date, type, order status, invoice number and order ID
  • Automatic PDF invoice email delivery
  • HPOS-ready WooCommerce invoice and document management
  • No limit on the number of WordPress installations

Transmission network

  • Peppol for Belgian and EU B2B interoperability, where enabled

POP supports B2B e-invoicing use cases. B2G use cases are not currently supported.

Integrations

  • WooCommerce / WooCommerce Subscriptions / WooCommerce HPOS
  • Paid Memberships Pro / Paid Member Subscriptions by Cozmoslabs
  • Make / Zapier / Webhook automations
  • POP API and direct network connectors

Membership extensions

Two small extensions are bundled with the plugin, in the folders addon/for/pmpro and addon/for/cozmos, to invoice membership payments made with Paid Memberships Pro and Paid Member Subscriptions by Cozmoslabs. Each one loads only when its membership plugin is active and you switch it on in the plugin’s Integrations tab.

They use this plugin’s text domain and their own PHP namespaces ( WcElectronInvoicePMPro and WcElectronInvoiceCozmos ), add no service of their own, and send documents through the same POP service and Peppol channel listed under “External services”.

For developers

POP exposes a REST API, WP-CLI commands ( wp popapi invoice search|get|xml|pdf ) and an MCP endpoint for AI-assisted and scripted invoicing, plus WordPress Abilities for automation-aware workflows. The API powers the plugin itself; most stores never need to touch it.

Supported document formats

  • Structured UBL XML e-invoices
  • PDF invoice copies as human-readable representations
  • XML and PDF credit notes, on any plan including Free

API credits and plans

POP is available in five plans: Free, Basic, Growth, Pro and Enterprise. The Free plan includes 10 API credits per month.

Every plan, including Free, can send over Peppol. Your plan sets your monthly credit allowance and overquota rate, not which features you can use.

A credit is the unit used to measure credit-consuming API operations, such as generating or validating XML or submitting a document over Peppol. Credit consumption depends on the operation performed.

io/pricing/.

Supported payment methods

  • Cash
  • Bank Transfer
  • Check
  • Payment Cards
  • SEPA Direct Debit

Compatibility

  • WooCommerce: 9.x.x or higher, with HPOS support
  • PHP: 7.4 or higher
  • WordPress: 6.0 or higher

Why POP

E-commerce invoicing is becoming more structured and more connected to national systems. A Belgian WooCommerce store needs to collect the right fiscal data at checkout, generate the structured UBL invoice, send it over Peppol, manage credit notes and keep the files available for accounting or customer support.

POP was created to make European e-invoicing easier for e-commerce teams: less manual work, fewer disconnected tools and a clearer path from order data to structured invoice documents.

We can’t make compliance sexy, only easier.

External services

eu ), the VAT number checking service of the European Commission. Each call below has its address, what it does for you, what is sent and when. The plugin sends no telemetry or installation data.

Calls are made by your server, never by the browser of your visitors or staff, and show your server’s IP address to the receiving service. io pages open only when you click them and carry no data, except the review link below. The plugin also requests pages of your own site (loopback, described at the end); those stay on your server.

Service provided by POP, valid for every POP call below: Terms and conditions, Privacy policy.

POP: building the XML and PDF documents

io/wp-json/api/v2/create-pdf (the PDF copy).

What it does for you: POP builds the XML and the PDF copy of each invoice and credit note. It works without a POP account, within a free monthly allowance.

What is sent: the order and fiscal data the document needs. Your company’s name, address, VAT number, tax details, phone and e-mail; the customer’s name, company, e-mail, postal address, VAT number and tax code; the order lines, amounts, taxes, currency, payment method (for a bank transfer, the bank details set in WooCommerce), dates and document number. For the PDF also the store details, the invoice and footer texts and the web address of your logo.

With them go your site’s title and address, the plugin and WordPress versions and Live or Sandbox mode. If your POP account is connected, your license key is sent as well, in the request and in an X-API-Key header.

When: whenever a document has to be built: you view, download or save a document (also in bulk), a customer downloads the PDF of their invoice, the optional order e-mails that carry the XML or PDF are sent, saving XML files to a folder is on and an order is completed, or a WP-CLI command, the REST API or an automation asks for a document. A failed request is repeated up to three times.

POP: sending over Peppol and checking delivery

Sending. io/wp-json/api/v2/create-ubl with the instruction to send the document over the Peppol network. What it does for you: POP builds the document and delivers it to your customer over Peppol; a connected POP account is needed.

What is sent: the document data and license key described above, plus the instruction to send. When: when you send a document from an order, or automatically when an order reaches the status you set, after the delay in hours you set. The automatic job does not send a document already marked as sent.

Delivery status. io/wp-json/api/v2/peppol/document-get. What it does for you: tells you whether the document was delivered.

What is sent: your license key, the document type (invoice or credit note), the identifier POP gave the document and your shop country (Belgium). When: only when you click the button that checks the delivery status.

POP: webhook (optional)

Used only if you switch on “Enable webhook” in the Advanced settings and enter a webhook id copied from your POP account. io/wp-json/api/v2/create-ubl. What it does for you: POP sends the document, as XML or as JSON, to the web address of the webhook you set up in your POP account.

You choose that address (a service of your own or a third-party automation tool); the plugin and POP do not control what that service does with the document. What is sent: the document data and license key described above, plus the webhook id. When: when you click “Send to Webhook” on an order, or automatically when an order reaches the status you chose, after the delay in hours you set, if automatic sending is on.

POP: setup wizard (connecting your account)

/credentials.

What it does for you: creates or connects your free POP account without leaving WordPress; needed only to send over Peppol or to use a paid plan, and it runs only while you use it. What is sent, step by step:

  • request-otp (and again if you ask for a new code): the e-mail address you enter, the two-letter language of your site and the slug of this plugin, so we know which POP plugin the account was created from.
  • verify-otp: the e-mail address, the one-time code you received, the platform name (“wordpress”) and the address of your site.
  • account-setup (each time you move to the next step): what you entered in that step (company name, VAT number, tax regime, phone and e-mail), the country (always Belgium in this package), the channel you activate, the consents you tick and the Live or Sandbox choice. The plugin also reads the form and the values already saved in the account, sending only the temporary token of the code step.
  • credentials: only that temporary token. POP answers with your license key and account number, which the plugin stores.

POP: plan, license and account settings refresh

io up to date. io/wp-json/wp-pop/v1/:

  • user-level (your plan level). Sent: your license key and the plugin version. When: about once a month while your account is connected (when the stored plan information is missing or more than a month old, triggered by a page that shows the plan or by generating a document); right after you connect; when you save the license settings; and when you use “Refresh license info”. Nothing is sent this way before you connect an account.
  • allowed-addon (the add-ons your plan includes). Sent: your license key, the plugin and WordPress versions, and the title and address of your site. When: right after you connect, when you save the license settings, and when you use “Refresh license info” if your plan level changed.
  • wizard-config-get (the account settings stored on popapi.io). Sent: your license key and the plugin version. When: when you use “Refresh license info” and when you save the Integrations tab with a connected account. If it succeeds, the plugin also refreshes your plan level and add-ons with the two requests above.

POP: review link

reviews=add&token= followed by your license key. Your browser opens it only when you click “Leave a 5-star review” in the review request on the plugin’s screens (connected account, after 14 days of use, can be dismissed). The license key travels as an account token so the review can be tied to your account.

Nothing is sent unless you click.

VIES (European Commission)

eu/taxation_customs/vies/services/checkVatService.

What it does for you: checks whether an EU VAT number is valid, so the right VAT treatment (for example reverse charge) is applied to a business customer in another EU country. What is sent: only the country code and the VAT number, typed by you or by a customer at checkout. When: only if “Activate VIES validation” is on in the Advanced settings.

It then runs when a business customer enters a VAT number at checkout, when the VAT of a cart or order is worked out, when an order’s document is built and when the order screen shows the result. The answer to the check made while the customer types is remembered on your site (a week if valid, an hour if not).

Service provided by the European Commission: VIES VAT number validation, Legal notice, Privacy policy.

Requests to your own website (loopback)

This is not an outside service. To build an XML or PDF copy, the plugin requests a page of your own site (your site address plus the plugin’s document address, with the order number and a security key and token) when it attaches a copy to an order e-mail, saves the XML to a folder, or a customer downloads their PDF. These requests do not leave your server; the document itself is built by POP, as described above.

Third-party libraries and source code

js) of the plugin sits next to its unminified source in the same folder. 1 theme CSS) are the unmodified upstream releases, and the source of every third-party library is in the repository linked next to it:

  • SweetAlert2 (MIT) – assets/js/vendor/sweetalert2 and assets/css/vendor/sweetalert2 – https://github.com/sweetalert2/sweetalert2
  • jQuery UI (MIT) – assets/css/vendor/jquery-ui – https://github.com/jquery/jquery-ui
  • jQuery UI date picker translations, from the jQuery UI i18n files (MIT) – assets/js/datepicker-lang – https://github.com/jquery/jquery-ui/tree/main/ui/i18n
  • NuSOAP, econea/nusoap (LGPL) – vendor/econea/nusoap, installed with Composer (see composer.json) – https://github.com/econea/nusoap

Requirements

4

0

WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • e invoicing
  • belgium
  • peppol
  • ubl
  • woocommerce
Compatibility & maintenance

Compatibility & maintenance

Tested with WP 7.1

Marked as tested with the current WordPress 7.1 release.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.1
Minimum requirementsWordPress 6.0 · PHP 7.4
Update activity2 Nov 202622h ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

No tracked version or compatibility changes have been recorded by WP PlugIndex yet.

Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.