POP – e-invoicing for WooCommerce: SdI, PEPPOL, KSeF (ex-WooPop)
POP – e-invoicing for WooCommerce: SdI, PEPPOL, KSeF (ex-WooPop)
Description
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!
Requirements
PHP: >= 7.4
WordPress: >= 4.6
Installation
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.
Screenshots

Invoice list - filter and manage every invoice, credit note and receipt by type, status, sent/not-sent, provider and date, with bulk download of XML and CSV.

General settings - connect your POP account, switch between Sandbox and Live environment, and manage your company's fiscal data in one place.

Integrations - all supported channels in one catalog: SdI, PEPPOL, KSeF, Fatture in Cloud, Aruba and more, activated per site.

Integrations (continued) - official SdI, PEPPOL, KSeF and Zoho channels alongside Fatture in Cloud and Aruba Business, each with one-click activation.

Connection wizard, step 1 - start with just an email. Documents can already be generated locally without a POP account; connecting is only needed to send them through a delivery channel.

Connection wizard, step 2 - verify your email with a one-time code.

Connection wizard, step 3 - enter your company details: country, VAT number and contact emails.

Connection wizard, step 4 - choose which delivery channel to activate now (e.g. SdI); you can always add more later from Integrations.

Connection wizard, step 4 (expanded) - fine-tune the channel with optional digital signature and legal storage, then accept the terms to finish.

Connection wizard, done - your POP account is connected and ready to send invoices.

Document numbering - configure invoice, receipt and credit note numbering: digit count, yearly reset and suffix format.

Advanced settings - set up Reverse Charge with VIES validation and per-case tax treatment codes for EU customers.
Faq
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.
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.
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.
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.
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.
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.
Yes, on any plan including Free. POP supports credit note generation where enabled by the country and workflow.
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.
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.
Yes. For support requests, you can contact us directly through the support link in the plugin or open a ticket from our official website.
Yes. When you activate the plugin, it sends your site’s URL to POP’s servers (the same servers the plugin already connects to for e-invoicing) so we know the installation completed successfully. This happens once, automatically, and never repeats. No fiscal, personal, or business data is included.
Reviews
team di supporto efficentissimo
By qeb2021 on July 8, 2026
Plugin completo per la fatturazione elettronica. Ho avuto un problema nell'attivazione di un'integrazione e il team di supporto è intervenuto in tempi rapidissimi, sistemando tutto senza complicazioni. La prontezza dell'assistenza è stata ottima. Consigliato.
Ottimo plugin, eccezionale supporto
By Francesco (loveblank) on April 28, 2026
Plugin davvero ottimo, supportato egregiamente.
Top e-invoicing plugin
By gianps on December 15, 2025
This is for sure one of the best invoicing plugins for WP in Europe. E-invoicing ready with full management of reverse charge mechanism & fully customizable.
It is also perfectly integrated with several well renowned stand alone invoicing systems.
Ottimo Plugin e assistenza presente e impeccabile
By nailissima on December 4, 2025
Posso solo spendere buone parole nei loro confronti, soprattutto in merito all'assistenza sempre tempestiva ed efficiente
C'è stato un problema che è stato risolto molto velocemente e con precisione, consigliatissimi!
Ottimo plugin e un'assistenza davvero impeccabile
By studiospot on November 5, 2025
Devo dire, con grande piacere che aver lavorato su questo progetto con i ragazzi di POP è stato fantastico. Al di la del fatto che il plugin è fatto molto bene, l'assistenza è davvero impagabile e non è scontato; hanno dato un supporto ottimo e veloce sempre. Risolvendo anche alcuni aspetti con workaround efficienti. Bravi davvero!
Top
By lozonta on September 24, 2025
Il plugin funziona bene e il supporto è molto veloce e gentile, grazie.
Rapidi e molto efficaci
By ariannagrasso2 on September 16, 2025
Ottima soluzione per alleggerire il carico della burocrazia fiscale italiana e ottima assistenza!
Finalmente una soluzione all-in-one
By performanceflows on September 9, 2025
Tutto quello che serve per gestire in modo autonomo un ecommerce internazionale dall'italia. Supporto clienti molto utile e rapido nella gestione delle richieste.
Ottimo plugin, assistenza super
By domse on July 29, 2025
Il plugin è rapido da configurare e funziona molto bene. In caso di difficoltà non disperate, l'assistenza è fantastica!
La migliore soluzione per la fatturazione elettronica
By matteo2 (matteomangia2) on October 5, 2023
Woopop è plugin perfetto e automatizzato che ha risparmiato molto lavoro manuale in amministrazione.
L'integrazione è abbastanza semplice e in poco si può avere il sistema online correttamente.
Altra nota positiva è l'assistenza nel caso in cui si riscontrino dei problemi dovuti per esempio a eventuali aggiornamenti di woocommerce.
Consigliato
Changelog
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.
7.0.0 – 31/08/2026
- Added: Fatture in Cloud invoices are now generated in the customer’s billing-country language when possible (Italian, English, German, French, Spanish, Portuguese, Greek, Polish, or Slovenian), instead of always in Italian.
- Fixed: on the WooCommerce block checkout, choosing “Receipt” or switching between “Private” and “Company” now correctly shows and hides the related fiscal fields (VAT number, tax code, PEC/SDI code); previously the fields never reacted to the selection.
- Added: You can now generate invoices, credit notes, and PDFs right away, without completing the account setup wizard first; connecting your POP account is only needed when you’re ready to send documents through SDI, PEPPOL, KSeF, or another channel.
- Added: Credit note generation (XML and PDF) is now available on the free plan; it previously required a paid plan.
- Added: If your company’s fiscal data is incomplete, the plugin now shows a clear notice on the order and in the invoice list, and can notify the site admin by email, instead of silently failing to generate the document.
- Improved: The country field in the General settings is now a dropdown of supported countries, and the VAT number field shows a format hint for the selected country.
- Added: Bulk XML/CSV download from the invoice list is now available on every plan; it previously required the Growth plan.
- Added: The reverse charge column and quick-edit toggle on the products list are now available on every plan; they previously required a paid plan.
- Added: SdI, PEPPOL, KSeF, and Zoho (via POP), plus Fatture in Cloud, Aruba, and SdI via PEC, are now available to activate on every plan; sending still uses your available credits, but no plan upgrade is required to turn them on.
- Security: sandbox mode for Fatture in Cloud, Aruba, and SdI via PEC no longer sends or creates a real document; previously, despite being in sandbox, invoices and credit notes were actually sent or created for free.
- Fixed: sending invoices through Fatture in Cloud, Aruba, or SdI via PEC now correctly uses one of your available credits, instead of not being tracked at all; a free-plan account that has used all its monthly credits now sees a clear message pointing to plan upgrade options instead of the send silently continuing to work.
- Improved: crediting a Fatture in Cloud, Aruba, or SdI via PEC send is now more reliable, with automatic retry if a temporary connection issue prevents it on the first try.
- Added: A dismissible notice on the Invoices tab lets free-plan accounts know their plan includes 10 API credits per month before they run out, so hitting the limit isn’t a surprise.
- Improved: Connecting your POP account is now a simple step-by-step form right on the Wizard setup page: enter your email, confirm the code we send you, fill in your company details, choose which delivery channels to activate, and you’re done. It replaces the previous popup window, which could be blocked by browser popup blockers, and it pre-fills any fiscal data you already entered so you do not have to retype it.
- Improved: the setup wizard now shows a live summary of your details as you fill them in, channel-specific guidance for your country, and navigation back to a previous step to fix a mistake before finishing.
- Fixed: activating SdI, PEPPOL, or KSeF from the setup wizard now correctly shows as active on the Integrations tab right away, instead of requiring you to also toggle it on manually afterward.
- Fixed: the setup wizard now activates delivery channels in the sandbox or live environment you already have configured, instead of always using live.
- Security: disconnecting your POP account now asks for confirmation first, instead of disconnecting immediately on click; this prevents an accidental disconnection from a stray click.
- Improved: the Activate/Deactivate button on integration cards now shows its label to screen readers, instead of relying on decorative styling alone.
- Improved: the active step label and the “resend code” link in the setup wizard now use readable dark text instead of low-contrast orange, making them easier to read.
- Improved: text fields, dropdowns, and text areas across the settings tabs now have rounded corners and a visible highlighted border when focused, matching the setup wizard’s style.
- Improved: status badges, action buttons, document type icons, and the settings tab menu now use clearer, more specific icons and consistent brand colors across the invoice list, integration cards, and settings pages, instead of a mix of generic icons and colors.
- Fixed: credit note actions (Mark as Sent/Undo, download XML/PDF) now show on the order screen for accounts on the free plan; previously they only appeared for paid-plan accounts.
- Fixed: the invoice/credit note actions in the WooCommerce orders list now also appear when High-Performance Order Storage (HPOS) is enabled; previously they were missing on that screen.
- Improved: the SdI, PEPPOL, KSeF, and Zoho connection status section in General settings now shows one clear status badge per channel and environment plus a compact summary of the connection details, instead of a long list of fields with a red/green icon each.
- Improved: the icon and the SANDBOX/LIVE status in the admin bar are now easier to tell apart, with a clearer environment label and, on development installs, a separate DEV marker.
- Improved: tapping a disabled integration card on a phone or tablet now shows why it’s disabled, instead of only showing that explanation when hovering with a mouse.
- Improved: disabled fields in the General, Numeration, and Advanced tabs now show a small help icon explaining why they’re locked, instead of just appearing grayed out with no explanation.
- Improved: notices, confirmation dialogs, and the deactivation feedback popup now share the same look and colors across the whole plugin, instead of each having its own style.
- Improved: the Customer type list field on the Checkout tab no longer shows an Italian-only screenshot, and its text box is now tall enough to show all saved entries at once.
- Improved: the reverse charge status icon on the products list and the reverse charge box in Quick Edit now match the rest of the plugin’s design, instead of using a plain blue bar and generic on/off images.
- Improved: the “Reverse charge” tab icon on the product edit screen now reflects what it does, instead of an unrelated globe icon.
- Fixed: the fiscal fields (document type, VAT number, tax code, etc.) added to the WooCommerce block checkout now look like they belong to the same form, instead of showing up with no border or spacing and a mismatched dropdown style.
- Improved: notices and error indicators on the frontend (account pages, checkout) now use the same rounded card style and brand color as the rest of the plugin.
- Fixed: on the WooCommerce block checkout, choosing “Receipt” now correctly hides the customer type/VAT/tax code fields, and choosing “Private” now correctly hides the PEC/SDI code and VAT number fields, matching the classic checkout’s behavior.
- Fixed: checking a document’s delivery status for Fatture in Cloud, Aruba, or SdI via PEC no longer shows a blank, unexplained error when something unexpected goes wrong on our side; you now get a clear message instead.
- Fixed: checkout error messages from POP’s own fiscal field checks (e.g. an invalid Tax ID) no longer appear twice in the same error list.
- Fixed: creating a Fatture in Cloud invoice for an order that doesn’t have a completion or processing date yet no longer crashes with a fatal error; today’s date is used instead.
6.9.15 – 19/08/2026
- Fixed: invoices and PDFs no longer fail to generate with a generic error when your server has a temporary issue saving the local copy of the document; the document you already received from POP is now used regardless.
- Fixed: invoices sent to Fatture in Cloud for freelancers (persona fisica titolare di Partita IVA) now include the VAT number again, alongside the tax code; previously only the tax code was sent.
6.9.12 – 6.9.13 – 03/08/2026
- Fixed: Aruba connection status is now updated only after a successful login; the plugin no longer appears connected when authentication fails or an error occurs.
- Added: the plugin now reports a one-time activation signal to POP so we can measure real installation reliability; only the site URL is sent, no fiscal or personal data.
6.9.11 – 29/07/2026
- Added: POP invoice documents are now exposed as WordPress abilities, so AI agents and assistants can search invoices by customer or address and retrieve cached invoice XML, PDF, and structured invoice data (including the active fiscal channel) by provider and document id.
- Added: POP invoice abilities are now available through WP-CLI via
wp popapi invoice search|get|xml|pdf, giving integration tools and agents a scriptable command-line surface for the same cached invoice data exposed through WordPress Abilities. - Fixed: The PEPPOL country list used for electronic invoicing no longer includes Spain, Northern Ireland, or Liechtenstein, which are not currently eligible for this channel; the list now matches the countries actually supported across the POP platform.
6.9.10 – 23/07/2026
- Fixed: The invoice generation link no longer appears in the Invoice Fields panel and the orders list for stores in a country with no supported official invoicing channel, where it previously showed but could not produce a valid document.
6.9.9 – 20/07/2026
- Fixed: SdI credit notes sent via POP are now correctly marked as sent after a successful submission; previously the status button did not appear after sending because the document UUID was stored on the parent order but read from the refund order.
6.9.8 – 16/07/2026
- Security: All admin AJAX actions now require a valid nonce and the
manage_woocommercecapability; background cron calls continue to work without a nonce as before. - Fixed: SDI invoice sending no longer remains blocked after the first create/send attempt; the internal concurrency lock is now always released so later manual or scheduled sends can run normally.
- Fixed: KSeF invoice status check no longer crashes with a PHP notice when the API response does not include a reference number; the variable is now always initialised before use.
- Fixed: Credit notes that reuse the invoice numbering series now pick the first free invoice number correctly; previously, when separate credit-note numbering was disabled, a credit note could reuse an already assigned invoice number instead of continuing the sequence.
- Fixed: The edit button for next credit-note numbers now correctly unlocks the field for manual input; previously the field stayed read-only even after clicking the pencil icon.
- Improved: PMPro and Cozmos admin order/payment screens now show cached generated XML/PDF files in a dedicated read-only panel and clear them automatically when billing data changes, so regenerated documents stay aligned with the latest saved data.
- Improved: On Cozmos PMS forms and account pages, store admins now see an explicit POP warning when the Paid Member Subscriptions module “Tax & EU VAT” is not active, clarifying why POP fiscal billing fields are unavailable.
6.9.7 – 06/07/2026
- Fixed: Bulk CSV order download no longer crashes with a date parse error; previously the export failed with a fatal error when order dates were stored as Unix timestamps instead of formatted strings.
- Fixed: Bulk XML download now generates invoices with complete customer data and order lines; previously documents created through the batch downloader were missing customer name, address, VAT number, and product lines because the admin list index does not store the full order payload.
- Fixed: Batch XML generation no longer fails with a server-side API error for customers without an SDI code; the SDI field is now always sent as a string, preventing a null type error on the POP API.
- Fixed: A crash in the XML payment summary calculation is resolved; line item totals coming from the API response are now cast to numbers before arithmetic, preventing a PHP 8 TypeError when the values arrive as strings.
6.9.6 – 06/07/2026
- Added: Shops can now activate Zoho (via POP) as their exclusive invoice channel from the Integrations page, with readiness checks from the POP account and dedicated manual/automatic document sending for invoices and credit notes.
- Fixed: Zoho credit notes are now correctly marked as sent after a successful sync; previously the document was created in Zoho but the order status was not updated.
- Fixed: Zoho document sync now respects the sandbox/live environment setting; previously Zoho always sent to the live Zoho account even when the POP sandbox mode was active, and sandbox dry runs now return a clear confirmation instead of an error.
6.9.5 – 25/06/2026
- Added: German shops can now generate and receive ZUGFeRD documents — the hybrid PDF containing embedded XML is created via the POP API and automatically attached to the completed order email; XML and standard PDF actions are replaced by a single ZUGFeRD download button in the admin order list and order detail.
- Added: German shops can now download all three ZUGFeRD artefacts — hybrid PDF, standard PDF, and embedded XML — as a single ZIP archive directly from the admin order list and order detail; the bundle is served from the local cache and consumes no additional API credits.
- Added: A dedicated ZUGFeRD section is now visible in the settings panel for German shops configured on the ZUGFeRD corridor, showing credit usage information for each document bundle generated.
- Fixed: Resending a completed order email from the WooCommerce order detail no longer deletes the cached document files for that order.
- Fixed: The invoice/document admin list now loads correctly even when WooCommerce refunds are present, and recent documents from different providers are ordered more reliably together in the same view without early pagination cutoffs.
6.9.4 – 15/06/2026
- Added: Polish shops can now send KSeF invoices directly from the WooCommerce order detail; the invoice is transmitted to the KSeF system via the POP API and the assigned KSeF reference number is stored on the order. Auto-send on order status change and manual status check are also available.
- Added: Invoice numbering can now be restarted intentionally from a chosen value in Numeration settings, even when keeping the same prefix, making it easier to reset test sequences before going live.
- Fixed: After a manual numbering reset, older documents in the same invoice series no longer force the next number forward; duplicate protection now applies only to documents created after the reset.
- Added: Manual numbering reset is now available for the receipt series as well, with the same boundary logic as for invoices.
- Fixed: The manual numbering reset checkbox was silently ignored when saving settings; the reset now applies correctly and the sequence restarts from the chosen value.
- Fixed: Receipt numbering now always uses its own separate sequence starting from 1; the previous option to share the invoice counter by setting the receipt number to zero has been removed as it produced incorrect document numbering.
- Fixed: Fatture in Cloud automatic sending now correctly uses the trigger status configured for each document type — invoices use the invoice trigger and receipts use the receipt trigger; previously both always checked the invoice trigger, causing receipts (and invoices on non-completed triggers) to be skipped silently.
- Fixed: Receipt orders processed through payment gateways that auto-complete orders (e.g. PayPal, Stripe) are now correctly scheduled for automatic Fatture in Cloud sending; previously these orders were skipped in receipt-only mode or when the receipt trigger differed from the invoice trigger.
- Fixed: Receipt documents (corrispettivi) now always carry the order creation date as the fiscal transaction date, in all sending flows (automatic batch, immediate on status change, and manual); invoices continue to use the emission date as required by SDI sequential numbering rules.
- Fixed: When the batch processes multiple receipts in sequence, the success message is no longer duplicated for each order; each document now reports its own single confirmation line.
- Fixed: Fatture in Cloud automatic sending now recovers missed invoice and receipt orders more reliably when the first background run is delayed, including shops using
processingas the trigger status. - Fixed: Orders still missing
_invoice_sentare now picked up correctly by the Fatture in Cloud recovery cron, preventing valid automatic documents from being skipped silently.
6.9.3 – 09/06/2026
- Added: When deactivating the plugin, a feedback modal now appears asking for an optional reason and comment before proceeding; the information is sent to POP to help improve the product, and deactivation always completes regardless of whether feedback is provided.
6.9.2 – 05/06/2026
- Fixed: The temporary order filter data is no longer loaded on every page of the WordPress admin; on large stores this option could reach several megabytes and was causing slow database queries and site crashes under normal traffic.
- Improved: Fatture in Cloud diagnostic log now traces the full scheduling and execution flow for both invoices and receipts, including order status transitions, payment method, and the reason when an automatic document send is skipped; requires WP_FATT_CLOUD_LOG enabled.
- Fixed: Webhook delivery via n8n connector (e.g. Zoho) now works correctly — the connector response is recognised and passed through instead of being treated as invalid XML, both when triggered manually and via scheduled cron.
- Fixed: Saving webhook settings without making any changes no longer shows a false error message; a save with no modifications now correctly returns success.
6.9.1 – 03/06/2026
- Added: A dedicated “Ricevute/Corrispettivi” automation section is now available in Fatture in Cloud settings, with its own trigger status and enable/disable toggle independent from invoice automation; receipt documents are sent immediately when the selected order status is assigned.
- Added: Receipt orders are now visible in the invoice admin list and show the document data section inside the order detail when Fatture in Cloud is active, regardless of order status.
- Added: Manual upload of receipt documents is now always allowed from the order detail, regardless of the order status.
6.9.0 – 27/05/2026
- Fixed: PMPro order items now report the correct unit price and VAT rate in the XML payload; when the PMPro global
$pmpro_default_countryis not initialised during API-based XML generation the rate lookup returned 0, causingunit_priceto show the gross amount instead of the net andrateto show0.00;taxRate()now falls back to calculating the aliquota directly from item totals (total_tax / subtotal × 100) for non-WooCommerce providers when the provider lookup returns zero, and the strict integer comparison0 === $vatincalcUnitPrice()is replaced with0.0 === floatval($vat)so the safety fallback triggers correctly when$vatis the string"0.00". - Added: SDI and PEPPOL integration settings now display Live and Sandbox environments as separate labelled sections, each with its own status indicators; PEPPOL identifier, endpoint value, UUID, address, city and zip-code fields are shown for both environments independently.
- Changed: Two new static helpers
Integrations::isSdiPopIntegrationActive()andIntegrations::isPeppolIntegrationActive()centralise the live-or-sandbox activation gate; all call sites inIntegrations,InvoiceApi,PeppolApiandWizardnow use these helpers instead of rawget_optioncomparisons. - Changed:
getSdiPOPIntegrationData()andgetPEPPOLPOPIntegrationData()return objects now expose separatelive_integration/sandbox_integrationboolean flags (pluslive_signature,live_storage,sandbox_signature,sandbox_storagefor SDI and sandbox PEPPOL identifier fields) so UI and consumers can distinguish the two environments without re-reading options. - Fixed: Various admin CSS adjustments — added
min-heightto inputs, action buttons and table-cell title column; correctedline-heighton action icon links for refund and order rows.
6.8.9 – 25/05/2026
- Fixed: Fatture in Cloud invoice sending now refreshes cached VAT rates safely before using standard-rate IDs, preventing stale shipping tax mappings from blocking document creation after VAT changes in Fatture in Cloud.
- Fixed: removed radio input and checkbox style that conflicted with WP 7 styling
6.8.8 – 19/05/2026
- Added: Admin notifications can now be shown or hidden by platform, so messages can target only WordPress or external platform contexts such as Shopify.
- Added: Shops configured for Poland now generate KSeF XML on the dedicated route and keep the saved XML files in a dedicated local directory.
- Fixed: Poland shops now show only the native actions expected by their configured route, and private KSeF customers now see PDF-only document actions instead of PEPPOL/UBL XML options and notices.
- Added: New environment setting (live/sandbox) in account panel to send the environment flag in POP API requests; default is “live”. The environment is shown in the admin menu title next to the plugin name.
- Added: New ReverseChargeSettings class to centralize conditional display logic for reverse-charge fields; ref_norm_rc (tax rule reference) is now shown only in Italy, San Marino and Spain, while other EU countries and extra-EU contexts show only nature_rc.
- Fixed: Poland shops now show reverse-charge fields with KSeF-ready labels and accepted values, while unused private and tax-reference fields are hidden and no longer saved on orders.
- Fixed: Reverse-charge settings in WooCommerce, PMPro and Cozmos now align with the new conditional logic, saving ref_norm_rc only when the field is displayed and avoiding empty values on orders.
- Fixed: PMPro checkout now saves reverse-charge metadata only when nature is not empty, preventing stale empty values on subsequent order processing.
- Added: New extra-EU zero-tax handling: when cart contains items shipped to non-EU countries, the reverse-charge process now applies the 0% tax rate without requiring reverse-charge validation, supporting export scenarios where VAT is not applicable.
- Fixed: Poland KSeF context now hides SDI fields and Tax Code like PEPPOL does, and the address format is updated to include invoice_type and vat_number correctly.
- Changed: Reverse-charge settings UI is now simplified, removing redundant country-specific fields that are handled by the new centralized logic.
6.8.7 – 08/05/2026
- Fixed: Failed include RefundOrderItem.php
6.8.6 – 07/05/2026
- Fixed: PMPro admin order save and invoice sent/undo actions now guard against recursive re-entry on the same order during internal meta/XML persistence, preventing memory exhaustion, stalled redirects and duplicate nested processing on
pmpro_updated_order. - Fixed: PMPro refunded orders now keep the original invoice row and the generated credit note as separate POP table documents; admin search/action routing now resolves the correct refund document …