Beskriuwing
Turn your WooCommerce orders into compliant electronic invoices: generate XML and PDF for free, then send them to SdI (Italy), PEPPOL (Belgium and the EU), KSeF (Poland) or ZUGFeRD (Germany).
POP collects the fiscal data at checkout, generates the invoice from each order, handles numbering, VAT treatment and credit notes, and transmits the structured XML to the official network, all from one WordPress workflow, with free and paid plans.
Get started without an account
Install the plugin and start generating compliant 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 through a supported network like SdI, PEPPOL or KSeF, or connect a provider such as Fatture in Cloud, Aruba, Zoho or PEC, a short setup wizard built directly into the plugin guides you through connecting your free POP account, right inside your WordPress admin.
Every plan, including Free, can use every supported network and integration. Your plan sets your monthly credit allowance, not which features you can use.
After you install
- Generate XML and PDF invoices from your orders straight away, without an account, within the free monthly allowance.
- When you want to send to a network, a 4-step wizard connects a free POP account: email, one-time code, company details, pick a channel.
- Your first invoice reaches SdI (or PEPPOL / KSeF) from the same screen.
Who POP is built for
- Italian WooCommerce stores that need every order to become an SdI invoice automatically
- Sole traders and flat-rate (“forfettario”) businesses covered by Italy’s 2024 e-invoicing obligation
- Stores selling B2B cross-border that need VAT treatment, reverse charge and PEPPOL handled
- Agencies and developers running invoicing for multiple WooCommerce stores
Core features
- Automatic electronic invoice generation in XML format for completed orders
- Branded PDF invoice generation 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 format, where supported by the selected workflow, on any plan including Free
- Fiscal receipt support, where supported by the configured country and integration
- Custom invoice numbering with prefix, suffix, digit length and yearly reset
- Progressive numbering for invoices, credit notes and receipts
- Checkout fields for VAT number, tax ID, destination code, PEPPOL ID and other workflow-specific fiscal data
- VAT number and tax ID validation at checkout, where supported
- Tax regime, VAT treatment, exemption and reverse-charge configuration
- 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
- HTML invoice display for customer-facing workflows
- HPOS-ready WooCommerce invoice and document management
- No limit on the number of WordPress installations and supported integrations
Supported transmission networks
- PEPPOL for supported European B2B interoperability workflows, where enabled
- KSeF for structured Polish e-invoicing workflows, where enabled
- SdI for direct transmission of structured XML invoices, where enabled
- ZUGFeRD / Factur-X for supported German hybrid PDF/XML document workflows, where enabled
POP supports B2B e-invoicing use cases. B2G use cases are not currently supported.
Integrations
POP connects WordPress invoicing workflows with supported e-commerce platforms, membership systems, automation tools, national networks and document providers.
- WooCommerce / WooCommerce Subscriptions / WooCommerce HPOS
- Paid Memberships Pro / Paid Member Subscriptions by Cozmoslabs
- Zoho / Aruba / Fatture in Cloud / PEC [Interchange System]
- Make / Zapier / Webhook automations
- n8n
- POP API, integrations and direct network connectors
POP supports WooCommerce, WooCommerce Subscriptions, Paid Memberships Pro and other WordPress invoicing workflows. It is also available for Shopify: https://apps.shopify.com/pop-european-invoicing
Supported countries and workflows
POP works at two levels depending on the country, endpoint and configured integration, on any plan including Free.
Full compliance solution:
- Italy and San Marino: structured XML invoice generation, SdI transmission, and electronic signature or compliant archiving where enabled by the selected workflow
- Belgium: structured B2B e-invoicing and PEPPOL transmission (mandatory for domestic B2B between VAT-registered businesses since January 1st, 2026)
Format generation and network submission where your endpoint supports it:
- Germany: ZUGFeRD / Factur-X and PEPPOL documents
- France, Netherlands, United Kingdom: PEPPOL-based workflows
- Poland: KSeF structured XML transmission
Regulatory obligations, timelines and accepted channels vary by jurisdiction, business type and transaction type; users remain responsible for verifying the requirements that apply to their specific case. Coverage is expanding; more markets are on the roadmap.
For developers
POP also 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 XML e-invoices, including UBL where applicable
- PDF invoice copies as human-readable representations
- XML and PDF credit notes, where supported by the selected workflow, on any plan including Free
- Fiscal receipts, where supported by the configured workflow
- ZUGFeRD document bundles for supported German workflows
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 use every supported network and integration: SdI, PEPPOL, KSeF, ZUGFeRD, Zoho, Aruba, Fatture in Cloud and PEC are all available regardless of plan. 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, submitting a document to a supported network, applying an electronic signature or activating compliant archiving when enabled. Credit consumption depends on the operation performed, country and workflow.
For paid features, visit: https://popapi.io/pricing/.
Supported payment methods
- Cash
- Bank Transfer
- Check
- Payment Cards
- SEPA Direct Debit
Compatibility
POP is compatible with the latest versions of WordPress and WooCommerce:
- WooCommerce: 9.x.x or higher, with HPOS support
- PHP: 7.4 or higher
- WordPress: 4.6 or higher
For HPOS and optimal performance, we recommend using WordPress 6.x.x and WooCommerce 9.x.x and up.
Why POP
E-commerce invoicing is becoming more structured, more local and more connected to national systems. A WooCommerce store may need to collect the right fiscal data at checkout, generate XML invoices, submit documents through SdI, PEPPOL or KSeF, manage credit notes and keep invoice 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.
Contributions
“POP – e-invoicing for WooCommerce (ex-WooPop)” is open source software.
Contribute to its development to continuously improve the plugin!
External services
This plugin is a client for POP (popapi.io), an e-invoicing service run by the same developer. Depending on the features you switch on, it also connects to the services below. It does not contact any other third-party service.
POP (popapi.io)
POP is the cloud service that builds the structured XML and PDF documents, sends them over the delivery channels (SdI, PEPPOL, KSeF, ZUGFeRD or Zoho via POP) and holds your account and plan. Generating documents works without an account, within a free monthly allowance; a POP account is needed to send documents and to use a paid plan.
What is sent, and when:
- Each time a document is generated (an invoice, a credit note, a receipt or a PDF, whether you ask for it or it runs automatically when an order reaches the status you chose): the order and fiscal data needed for the document (seller and customer details such as names, addresses, VAT and company numbers and contact details, order lines and amounts).
- When you send a document through a delivery channel, or check its delivery status: the document data or its identifier, with your license key.
- When you connect your account with the setup wizard: the e-mail address you enter, the one-time code, your company and fiscal details, the country and channels you choose, the consents you tick and the name of this plugin, so we know which POP plugin the account was created from.
- When your license or plan is checked or refreshed (after connecting, and when you save the license settings): your site title and address, the plugin and WordPress versions and your license key.
- Only if you turn on “Share anonymous usage data” (off by default): your site address, the versions of POP, WordPress, WooCommerce and PHP, the site language and whether it is a multisite. They are sent once when you turn it on and then about once a week, or when the plugin version changes. Turning it off stops it immediately.
- If you send feedback in the deactivation survey while your account is connected: the reason you choose, your optional message and your site address.
- When you open the plugin’s settings page, the plugin retrieves short notices published by POP. This is a read-only request that sends no site data.
Service provided by POP: Terms and conditions, Privacy policy.
VIES (European Commission)
When VAT number validation is switched on in the plugin settings (or when you validate a VAT number manually), the plugin asks the European Commission’s VIES service whether an EU VAT number is valid. Only the VAT number (country code and number) is sent, at the moment it is checked.
Service provided by the European Commission: VIES VAT number validation, Legal notice, Privacy policy.
Fatture in Cloud
Only if you switch on the Fatture in Cloud integration. The plugin sends the invoice, credit note or receipt data of your orders to Fatture in Cloud (api-v2.fattureincloud.it), using the account you authorise, to create the document there and, if you enable that option, to keep stock in sync. It is sent when a document is created or updated and when you connect the account.
Service provided by Fatture in Cloud: Terms, Privacy policy.
Aruba Business
Only if you switch on the Aruba Business integration. The plugin sends the invoice XML to Aruba’s e-invoicing web service (ws.fatturazioneelettronica.aruba.it), signing in with your Aruba credentials, so that it is transmitted to SdI, and asks for its delivery status. It is sent when you send an invoice and when its status is checked.
Service provided by Aruba: Terms and conditions, Privacy policy.
SdI via PEC
Only if you switch on SdI via PEC. The plugin sends the invoice XML by e-mail, through the SMTP server and the certified mailbox (PEC) you configure, to the SdI address. No POP or other third-party server takes part: the mail provider is your own.
Slack (optional notifications)
Only if you enter a Slack token and channel in the settings of the Fatture in Cloud, Aruba or SdI via PEC integrations. The plugin posts short status or error messages about the invoices the integration sends (for example when sending an invoice fails) to Slack (slack.com/api/chat.postMessage).
Service provided by Slack: Terms of service, Privacy policy.
Requirements
PHP: >= 7.4
WordPress: >= 4.6
Skermôfbyldings












Blokken
Dizze plugin jout 1 blok.
- POP Checkout Fields
Ynstallaasje
This section describes how to install and run the plugin. 1. Upload the ‘woopop-electronic-invoice-free’ folder to the /wp-content/plugins/ directory. 2. Activate POP – e-invoicing for WooCommerce (ex-WooPop) from the WordPress ‘Plugins’ page.
FAQ
-
Do I need to create an account to use POP?
-
No. You can install the plugin and start generating XML and PDF invoices right away, with no account and no setup step, within a free monthly generation allowance.
Creating a free POP account is only needed when you want to send documents through a supported network like SdI, PEPPOL or KSeF, or connect a provider such as Fatture in Cloud, Aruba, Zoho or PEC. A short setup wizard built into the plugin guides you through it, right inside your WordPress admin.
-
Is the POP plugin free?
-
Yes. POP offers a Free plan that includes 10 API credits per month, and every supported network and integration is available on it: the Free plan is not limited to a smaller feature set.
A credit is the unit used to measure credit-consuming API operations. Some plugin features are included without credit consumption, while operations such as XML generation, transmission, electronic signature or archiving may consume credits depending on the configured workflow.
To unlock more credits, you can activate a paid plan.
-
Why does POP use API credits instead of “invoices per month”?
-
POP is an e-invoicing compliance product. A single invoice may involve multiple compliance actions, such as:
- Generating and validating XML
- Submitting XML to a supported network such as SdI, PEPPOL or KSeF
- Applying an electronic signature, if enabled
- Activating compliant archiving, if enabled
Each credit-consuming operation uses API credits according to your monthly allowance and configured workflow.
-
Can I automatically send invoices to supported e-invoicing networks?
-
Yes, on any plan including Free. POP can integrate with supported networks such as SdI, PEPPOL and KSeF, automating the transmission of structured XML invoices directly from your e-commerce workflow.
Available networks depend on the country, endpoint and configured integration. Your plan determines your monthly credit allowance, not which networks you can use.
-
Is it possible to customize invoices generated with POP?
-
Yes. You can customize the PDF invoice template by adding your company logo and custom footer text.
You can also configure invoice prefix, suffix and progressive numbering. -
Does POP support invoicing for foreign customers?
-
Yes. POP supports EU and international customers and can route structured XML through supported networks.
Regulatory requirements may vary by jurisdiction, transaction type and business case. Users should verify the specific obligations that apply to them. -
Is it possible to generate credit notes with POP?
-
Yes, on any plan including Free. POP supports credit note generation where enabled by the country and workflow.
-
What happens if I run out of credits?
-
This answer applies to the WordPress open source version of POP.
- Free plan: the service stops when credits are exhausted.
- Paid plans: overquota is allowed. Extra API operations are charged according to your plan’s overquota rate.
You can upgrade your plan at any time to increase your monthly credit quota.
Please note that credit enforcement rules may differ on non-open-source platforms. -
Can I use POP only to generate XML invoices without network submission?
-
Yes. POP can be used for XML invoice generation and validation without network submission, and without creating an account, within a free monthly generation allowance.
Network submission, digital signature and compliant archiving are optional capabilities depending on your workflow and country configuration, and are available on every plan including Free.
-
Does the plugin offer customer support?
-
Yes. For support requests, you can contact us directly through the support link in the plugin or open a ticket from our official website.
-
Does the plugin send any data when it’s activated?
-
No. Activating the plugin sends nothing. What is sent to POP’s servers is what the service needs to work (generating and sending documents, and connecting your account), listed in the “External services” section below. Anonymous usage data (your site address and the versions of POP, WordPress, WooCommerce and PHP, the site language and whether it is a multisite) is shared only if you turn on “Share anonymous usage data”. It is off by default, you can be asked at the end of the account setup wizard and in the General settings tab, and you can turn it off at any time. No fiscal, personal or business data is part of it.
Resinsjes
Meiwurkers & amp; Untwikkelders
“POP – e-invoicing for WooCommerce: SdI, PEPPOL, KSeF (ex-WooPop)” is iepen boarne software. De folgjende minsken hawwe bydroegen oan dizze plugin.
MeiwurkersOersette “POP – e-invoicing for WooCommerce: SdI, PEPPOL, KSeF (ex-WooPop)” yn jo taal.
Ynteressearre yn ûntwikkeling?
Blêdzje troch de koade , besjoch de SVN-repository , of abonnearje op it ûntwikkelingslogboek troch RSS .
Feroaringslog
7.2.1 – 13/10/2026
- Added: in the checkout settings, Peppol and KSeF shops can now choose how the tax code of a private customer works (not shown, optional, required everywhere, in the EU or in Italy only), without writing code.
- Fixed: in Peppol and KSeF shops, the tax code in the classic and block checkouts now follows the country the customer picks (required mark, optional text or hidden) without reloading the page, and a required code left empty is reported once.
- Fixed: a shop that makes the tax code mandatory no longer blocks customers outside the EU when the checkout does not show them the field (classic, block, Paid Memberships Pro and Paid Member Subscriptions checkouts).
- Fixed: in Peppol and KSeF shops, a tax code of a customer outside Italy needs at least 6 letters or digits when it is filled in, required or optional (a shorter optional code used to be accepted).
- Fixed: in the Paid Memberships Pro and Paid Member Subscriptions checkouts, a filled tax code that is too short, or an Italian one in the wrong format, is now refused, with every payment gateway.
- Fixed: a customer’s saved tax code is no longer cleared by an order that does not use it (a company, a receipt, a country where the field is not shown), and the checkout fills in a company’s tax code with its VAT number.
- Improved: in the block checkout, the invoice fields now look like the native WooCommerce fields (no asterisk, a small red message under the field instead of a large notice), in every shop with the block checkout, SdI shops included.
- Fixed: in the block checkout, the VIES check of the VAT number and the Italian tax code check (when enabled) now work from the first moment, not only after the customer changes the customer type.
- Fixed: the Paid Member Subscriptions checkout now recognizes the customer type and the document choice it receives, so the fiscal fields required for a company or freelance customer are checked too, and changing the document choice no longer stops the billing fields from updating.
- Fixed: the Import options box on the settings page is now always empty and no longer re-applies an old import every time you save.
7.2.0 – 09/10/2026
- Fixed: orders paid at checkout with Stripe or PayPal are now picked up for automatic invoicing in Fatture in Cloud, instead of depending on which request completed the payment.
- Improved: the Fatture in Cloud log now says why an order was skipped by the automatic import and why a scheduled import failed, so a missing invoice is easier to trace.
- Improved: when an invoice is rejected as invalid, you now see which field to fix, with the value sent, the reason and a suggestion, instead of a generic message.
- Improved: the Paid Memberships Pro checkout no longer mentions the plugin name in the text that explains why the invoice fields are collected.
- Fixed: the XML documents list no longer stops with an error when you filter by only a start date or only an end date on sites that use Cozmos or Paid Memberships Pro; an empty date is now ignored instead of filtering on 1 January 1970.
- Fixed: the invoice PDF is now attached to the completed-order email also when the order is completed automatically (payment gateway, scheduled task) and not by an administrator; when the PDF cannot be created the email is sent without it, instead of carrying an error page as attachment.
- Fixed: in the XML documents list, the date filter now also applies to Paid Memberships Pro and Paid Member Subscriptions orders when you filter completed orders; before, they showed up even with dates outside the range.
- Fixed: the nature code of an operation without VAT is now sent to the SdI without the number that the selector adds to it (for example N3.1 instead of N3.1_1), also for shops outside Italy and for orders already created, so these documents are no longer rejected.
- Fixed: the per-product reverse charge setting and the free gift product setting work again at checkout and in the invoice: products excluded or included one by one are now taken into account when the VAT is calculated.
- Fixed: data read from checkout forms, admin pages and download links is now cleaned before it is used. Custom code hooked on the default customer type and the reverse-charge save filters now receives only the invoice checkout fields (cleaned) instead of the whole submitted form.
- Fixed: saving a WooCommerce order or a Cozmos payment in the admin no longer deletes the already-generated invoice/credit-note files unless the data they are built from actually changed.
- Fixed: the links that download or view an invoice XML or PDF, or export the orders CSV, from the admin now carry a security check that expires with the page. A link saved in the browser or copied from an older page asks you to reload the page instead of downloading.
- Fixed: invoice fields sent with a WooCommerce, Paid Memberships Pro or Paid Member Subscriptions form are now stored only when the form comes from your own pages, so a checkout page kept in a long-lived cache has to be refreshed to keep saving them.
- Fixed: the CSV export of orders that have no phone number, company or address no longer writes warnings to the debug log; the missing details are simply left blank.
- Fixed: marking orders as completed in bulk now skips the invoice PDF email attachment from either bulk menu of the orders list, as intended; before, only the top menu did.
- Fixed: your license key and integration settings are no longer written to the server’s PHP error log when you connect your account or refresh the license info.
- Fixed: saving a document no longer interferes with other plugins that watch file deletion, such as CDN or media offload plugins, and files can be deleted normally afterwards.
- Fixed: the POP entry in the admin bar is now shown only to users who can manage the plugin, instead of to every logged-in user.
- Fixed: the notice shown when no supported provider is active now names the plugin correctly and tells you to activate WooCommerce or a supported membership plugin.
- Fixed: the settings page now carries the name of the plugin in the browser tab, instead of a fixed “Electronic Invoice – Settings” text.
- Fixed: the next invoice number shown in the settings is now always up to date after an invoice is generated, also on sites that use an object cache such as Redis; before, an old number could be shown and saved back.
- Fixed: the XML documents list no longer stops with an error when you search for the number of a credit note, or when the address contains a date filter that is not a valid date; the credit note is found, and an invalid date is ignored.
- Added: in shops outside Italy, private customers can now enter their tax code at checkout (optional) and it is printed on the PDF; the XML documents stay the same. Shop owners can make the field required or hide it with a filter.
7.1.1 – 29/09/2026
- Fixed: the “Contact us” link on the settings page is now shown as the intended green button in the corner of the screen; a missing closing bracket in the admin stylesheet had silently dropped that style (and the “share anonymous usage data” notice spacing next to it) since it was introduced.
- Removed: the third-party chat widget on the settings page is gone; “Contact us” is now a simple, styled link to the support ticket page on every package, with nothing loaded from outside WordPress.org.
7.1.0 – 29/09/2026
- Fixed: the POP orders list no longer stops with a fatal error when a refund contains an item whose product has been deleted; the list loads and the item simply has no SKU.
- Fixed: a credit note that refunds a line whose product was deleted from the shop now keeps that line in the generated document; before, the line was left out and the document total did not match its lines.
- Fixed: “Download CSV orders” no longer stops with a fatal error when the list includes a credit note with a line whose product was deleted from the shop.
- Fixed: the PEPPOL panel of a WooCommerce credit note now shows the create and status buttons when the customer of the original order is a business with a VAT number; before, it always showed the “business customers only” notice.
- Fixed: the KSeF panel of a WooCommerce credit note now correctly shows the “business customers only” notice when the customer of the original order is private; before, the notice never appeared for a credit note and a KSeF document could be attempted for a private customer.
- Fixed: orders from customers outside the EU now use the exemption code and normative reference you set for non-EU customers, instead of a default code. This includes non-EU companies with a VAT number, and non-EU private customers on Paid Memberships Pro and Cozmos.
- Fixed: saving or importing the POP settings can now only change POP’s own options. Other WordPress options contained in an imported file or in a tampered form are ignored, and imported values are cleaned like the ones typed in the form.
- Improved: the folders where generated documents are saved (XML, PDF, UBL, KSeF, ZUGFeRD) are now created only when a document of that type is generated, instead of all of them for every document.
- Improved: generated XML and PDF documents, and the diagnostic logs of the integrations, are now stored and read through the WordPress uploads folder wherever it is located, instead of assuming it sits inside wp-content. Documents already generated keep working.
- Fixed: the deactivation feedback pop-up, the list of required Italian fields in the settings, the SdI error details and the Cozmos tax label were always shown in Italian, whatever the site language. They now follow your language, with the Italian, Spanish, French and Dutch (Belgium) translations kept.
- Improved: POP’s admin styles and scripts now load only on POP’s own screens (the POP settings, WooCommerce orders and products, user profiles, the plugins list and the supported membership plugins) instead of on every admin page, so other screens such as the dashboard are no longer touched.
- Changed: sharing anonymous usage data with POP (site address and plugin, WordPress, WooCommerce and PHP versions) is now optional and off by default. You can turn it on at the end of the account setup wizard or in the General tab, and off again at any time; nothing is sent until you do.
- Changed: POP no longer checks for or deactivates other plugins on its own; the leftover handling of old standalone add-ons is removed.
- Added: a “Contact us” link to the support ticket page on the POP settings screen.
- Added: the plugin is now available in Belgian French and Belgian Dutch, using the local invoicing terms (“note de crédit”, “creditnota”, “btw-nummer”) for Belgian shops.
- Fixed: PDF documents for Belgian customers are now generated in Dutch or French, following your store’s language, instead of always in English.
- Fixed: Slack notifications sent by the SdI/PEC, Aruba and Fatture in Cloud integrations now use a verified secure connection and a short timeout, so a slow or unreachable Slack can no longer hold up your invoicing.
- Fixed: WooCommerce shops in Belgium now send their Peppol invoices through the Belgian network instead of the international one, so the delivery status can be checked again.
- Fixed: the confirmation shown after saving the settings, the warning about a next invoice number that is too low and the “License info updated” message were hidden on the POP settings page and are visible again.
- Fixed: the text of the account setup wizard no longer shows apostrophes as “‘” in languages such as Italian (for example in the final consent step).
- Fixed: when the account setup wizard was left before its last step, reconnecting no longer skips the step with the required terms; they are asked until they have been accepted once, and not again after that.
- Fixed: the newsletter and disclaimer consents ticked at the end of the account setup wizard are now saved with the account, also when the delivery channels step is skipped.
- Fixed: the free-plan credit banner, the connect-your-account nudge and the API-limit notice were hidden on the POP settings page and are visible again.
7.0.3 – 17/09/2026
- Fixed: the “Update license info” action in the General settings tab now requires a valid request from the page itself, instead of accepting any request that named it.
- Changed: renamed 6 developer-facing hooks to carry the plugin’s own prefix, avoiding collisions with hooks from other plugins or themes:
billing_invoice_fields_priority->wc_el_inv-billing_invoice_fields_priority,billing_invoice_field_args->wc_el_inv-billing_invoice_field_args,popapi_cli_init->wc_el_inv-popapi_cli_init,pop_use_local_cache->wc_el_inv-use_local_cache,pop_is_nginx_server->wc_el_inv-is_nginx_server,pop_is_store_api_request->wc_el_inv-is_store_api_request. If a custom integration on your site hooks into any of these by their old name, update it to the new one. - Fixed: on a channel-vertical package (e.g. the Belgium/PEPPOL edition), the account setup wizard’s own country field could still be changed and would register your POP account under that different country, bypassing the shop’s fixed country; it is now locked there too, both in the wizard and when the account is actually created.
- Fixed: the account setup wizard no longer tells a PEPPOL-eligible shop (e.g. Belgium) that “no official electronic invoicing channel is required for your country” while filling in company details; it now correctly shows the PEPPOL guidance right away, instead of only after the first save.
- Fixed: KSeF (Poland) shops no longer show or require the Tax Code and SdI/PEC fields at checkout, in the order edit screen and in the invoice list; those fields are specific to Italian e-invoicing and were already correctly hidden for PEPPOL, but not for KSeF.
- Fixed: the account settings notice, the “generate without an account” tip and the disconnect confirmation no longer name specific delivery channels (SDI, PEPPOL, KSeF…) that may not even be available on your setup; they now describe your active channel generically, so the message is always accurate.
- Fixed: shops registered in a country other than Italy or Spain can now generate documents again; a required field that only applies to Italy/Spain was blocking generation for every other country.
- Fixed: generated XML, PDF and ZIP documents are no longer stored in a location that could be reached directly without logging in; they now live in a protected folder like the rest of your invoicing data.
- Added: German shops can now choose between PEPPOL and ZUGFeRD/Factur-X from the plugin settings, without needing to connect a POP account first.
- Changed: the plugin now lists WordPress 6.0 as its minimum version, matching what it has actually required for years (block checkout and other features); sites able to run the plugin are unaffected.
- Fixed: shops configured with a country other than Italy no longer incorrectly apply reverse-charge zero VAT to domestic sales; reverse charge now correctly applies only when the customer is in a different country than the shop, matching the behaviour Italian shops already had.
- Fixed: San Marino shops set up through the account setup wizard are now correctly recognized as San Marino throughout the plugin; previously they could see the wrong invoicing fields, such as PEPPOL or KSeF ones instead of the correct SdI ones.
- Fixed: the year used in the invoice number (year suffix, and the yearly numbering reset) now follows your store’s timezone; shops far from UTC could previously get the wrong year in invoices created in the first hours of January.
- Fixed: the date filter on the XML/CSV order list, and the timing of store notices, now use your store’s timezone; admins far from UTC could previously see the filter land on the wrong day.
- Fixed: on Paid Memberships Pro sites, the order list’s status filter now safely passes its value to the database instead of building the database query from it directly.
- Fixed: on Paid Memberships Pro and Paid Member Subscriptions (CozmosLabs) sites, order and refund dates used on invoices now follow your store’s timezone instead of always being UTC; stores far from UTC could previously see the wrong day, or the wrong year on documents generated right after midnight.
- Fixed: the permission check on the SDI, PEPPOL, KSeF, Zoho and webhook native-sending actions no longer has a background-job exception that could be triggered from a regular request; only genuine scheduled jobs can skip it now, closing a gap that could let a logged-in user act on invoices for other orders.
- Fixed: the bulk “mark as sent”/”not sent” action on the invoice list now requires a valid request from the page itself, instead of accepting any request that named it.
- Fixed: the “Mark as Sent”/”Undo” invoice actions in the order screen and invoice list now correctly require the plugin’s admin permission; previously any logged-in user could trigger them.
- Fixed: cleaning up temporary XML/ZIP generation files now correctly requires the plugin’s admin permission, instead of being triggerable by any site visitor.
- Fixed: the bulk XML/CSV invoice download and its background processing step now correctly require the plugin’s admin permission; previously any logged-in user could trigger them and receive data belonging to orders that weren’t theirs.
- Fixed: some bulk-download and integration-toggle status messages are now shown in your site’s language instead of always in Italian or English.
- Fixed: disconnecting your POP account now requires a valid request from the settings page itself and the plugin’s admin permission; previously it could be triggered by any logged-in user.
- Fixed: downloading an invoice/receipt PDF or its underlying XML now requires being the order’s own customer or having the plugin’s admin permission; previously the link’s validity was not tied to a specific order, and any logged-in user could view another customer’s invoice by changing the order number in the URL.
- Fixed: downloading a single order’s invoice/receipt XML or PDF from the admin order screen no longer fails with a fatal error for some orders.
- Fixed: on Paid Member Subscriptions (CozmosLabs) sites, saving a payment’s billing details now requires a valid request from the payment edit screen itself; previously the same data could be silently changed via a crafted link.
- Fixed: bulk-editing the reverse charge setting from the product list now correctly checks your permission on every selected product; previously a user with edit rights on just one product could also change the setting on products they weren’t allowed to edit.
- Fixed: on Paid Memberships Pro sites, saving the VAT tax calculation setting now requires a valid request from the settings page itself; previously it could be triggered by a crafted request from another site.
- Fixed: an unexpected error while generating an XML/PDF invoice now shows a clean, readable message instead of raw technical details; this also fixes the bulk download progress bar getting stuck with no error shown when this rare failure occurred.
7.0.2 – 09/09/2026
- Fixed: bulk XML download is now available on every plan, including Free and Basic; previously the button worked in the interface but the download itself was still silently blocked below the Growth plan.
- Added: after you generate a few invoices without connecting a POP account, the plugin now points out once that connecting one lets you send them to SdI, PEPPOL or KSeF and keep them together. Generating without an account is unchanged.
7.0.1 – 04/09/2026
- Changed: the plugin display name is now “POP – e-invoicing for WooCommerce (ex-WooPop)”, and the WordPress.org listing text was updated to describe the WooCommerce e-invoicing workflow more clearly. The plugin slug, your settings and your data are unchanged.
- Fixed: orders that start out in “Processing” status (instead of transitioning into it from another status, e.g. with some payment methods) now correctly get their processing date recorded, so Fatture in Cloud invoice creation no longer relies solely on the fallback date for these orders.
For the full version history, see the complete changelog.
