[WordPress] 外掛分享: POP – E-invoicing for Belgium

首頁 › 外掛目錄 › POP – E-invoicing for Belgium
WordPress 外掛 POP – E-invoicing for Belgium 的封面圖片
全新外掛
安裝啟用
—
尚無評分
剛更新
最後更新
—
問題解決
WordPress 6.0+ PHP 7.4+ v1.0.0 上架:2026-11-01

外掛標籤

開發者團隊

⬇ 下載最新版 (v1.0.0) 或搜尋安裝

① 下載 ZIP → 後台「外掛 › 安裝外掛 › 上傳外掛」
② 後台搜尋「POP – E-invoicing for Belgium」→ 直接安裝(推薦)
📦 歷史版本下載

原文外掛簡介

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.
For paid features, visit: https://popapi.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
This plugin uses two outside services and no others: POP (popapi.io), the e-invoicing service run by the developer of this plugin, and VIES (ec.europa.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. Ordinary links to popapi.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
Addresses: https://popapi.io/wp-json/api/v2/create-ubl (the Peppol UBL XML) and https://popapi.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. Address: https://popapi.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. Address: https://popapi.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. Address: https://popapi.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)
Addresses: https://popapi.io/wp-json/api/onboarding/v1/request-otp, .../verify-otp, .../account-setup and .../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
What it does for you: keeps the plan the plugin uses, the add-ons it includes and your account settings on popapi.io up to date. Three addresses under https://popapi.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
Address: https://popapi.io/?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)
Addresses: https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl (the description of the service) and the service address that file names, ec.europa.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
The plugin’s own JavaScript and CSS ship in readable form: every minified file (.min.js) of the plugin sits next to its unminified source in the same folder. The minified third-party files below (SweetAlert2 11.26.25 and the jQuery UI 1.12.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
PHP: >= 7.4
WordPress: >= 6.0

延伸相關外掛

文章
Filter
Mastodon