Descrizione
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.
Inizia senza account
Installa il plugin e inizia subito a generare fatture XML e PDF conformi, gratuitamente, senza account e senza passaggi di configurazione. Una soglia mensile gratuita di generazione è inclusa fin da subito.
Quando sei pronto per inviare i documenti tramite una rete supportata come SdI, PEPPOL o KSeF, o per collegare un provider come Fatture in Cloud, Aruba, Zoho o PEC, un breve wizard integrato nel plugin ti guida nel collegamento del tuo account POP gratuito, direttamente dall’area amministrativa di WordPress.
Ogni piano, incluso quello gratuito, può utilizzare tutte le reti e integrazioni supportate. Il piano determina il credito mensile a disposizione, non le funzionalità che puoi usare.
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.
Per chi è pensato POP
- 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
Funzionalità principali
- Generazione automatica della fattura elettronica in formato XML per gli ordini completati
- Generazione di fatture PDF personalizzate con logo e testo a piè di pagina
- Download manuale di PDF e XML dalle schermate di gestione ordini e documenti
- Generazione della nota di credito in formato XML e PDF, dove supportata dal flusso selezionato, su qualsiasi piano incluso quello gratuito
- Supporto alla ricevuta fiscale, dove supportata dal paese e dall’integrazione configurati
- Numerazione fattura personalizzata con prefisso, suffisso, lunghezza cifre e azzeramento annuale
- Numerazione progressiva per fatture, note di credito e ricevute
- Campi in fase di pagamento per partita IVA, codice fiscale, codice destinatario, ID PEPPOL e altri dati fiscali specifici del flusso
- Validazione di partita IVA e codice fiscale in fase di pagamento, dove supportata
- Configurazione di regime fiscale, trattamento IVA, esenzione e reverse charge
- Blocco automatico delle fatture a importo zero
- Opzione per escludere dalle fatture le righe con valore zero
- Ricerca e filtri fattura per data, tipo, stato ordine, numero fattura e ID ordine
- Invio automatico via email della fattura PDF
- Visualizzazione HTML della fattura per i flussi rivolti al cliente
- Gestione fatture e documenti WooCommerce compatibile con HPOS
- Nessun limite al numero di installazioni WordPress e integrazioni supportate
Reti di trasmissione supportate
- PEPPOL per i flussi di interoperabilità B2B europei supportati, dove abilitato
- KSeF per i flussi di fatturazione elettronica strutturata polacca, dove abilitato
- SdI per l’invio diretto di fatture XML strutturate, dove abilitato
- ZUGFeRD / Factur-X per i flussi di documenti ibridi PDF/XML tedeschi supportati, dove abilitato
POP supporta i casi d’uso di fatturazione elettronica B2B. I casi d’uso B2G non sono attualmente supportati.
Integrazioni
POP collega i flussi di fatturazione di WordPress con le piattaforme e-commerce supportate, i sistemi di membership, gli strumenti di automazione, le reti nazionali e i provider documentali.
- WooCommerce / WooCommerce Subscriptions / WooCommerce HPOS
- Paid Memberships Pro / Paid Member Subscriptions by Cozmoslabs
- Zoho / Aruba / Fatture in Cloud / PEC [Sistema di Interscambio]
- Automazioni Make / Zapier / Webhook
- n8n
- API POP, integrazioni e connettori diretti alle reti
POP supporta WooCommerce, WooCommerce Subscriptions, Paid Memberships Pro e altri flussi di fatturazione WordPress. È disponibile anche per Shopify: https://apps.shopify.com/pop-european-invoicing
Paesi e flussi supportati
POP works at two levels depending on the country, endpoint and configured integration, on any plan including Free.
Full compliance solution:
- Italia e San Marino: generazione della fattura XML strutturata, invio tramite SdI, firma elettronica o conservazione a norma dove abilitate dal flusso selezionato
- 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.
Formati documento supportati
- Fatture elettroniche XML strutturate, incluso UBL dove applicabile
- Copie PDF della fattura come rappresentazione leggibile
- Note di credito XML e PDF, dove supportate dal flusso selezionato, su qualsiasi piano incluso quello gratuito
- Ricevute fiscali, dove supportate dal flusso configurato
- Pacchetti documentali ZUGFeRD per i flussi tedeschi supportati
Crediti API e piani
POP è disponibile in cinque piani: Free, Basic, Growth, Pro ed Enterprise. Il piano Free include 10 crediti API al mese.
Ogni piano, incluso Free, può utilizzare tutte le reti e integrazioni supportate: SdI, PEPPOL, KSeF, ZUGFeRD, Zoho, Aruba, Fatture in Cloud e PEC sono disponibili indipendentemente dal piano. Il piano determina il credito mensile e la tariffa di overquota, non le funzionalità disponibili.
Il credito è l’unità utilizzata per misurare le operazioni API che consumano credito, come la generazione o validazione dell’XML, l’invio di un documento a una rete supportata, l’applicazione della firma elettronica o l’attivazione della conservazione a norma se abilitata. Il consumo di credito dipende dall’operazione eseguita, dal paese e dal flusso.
Per le funzionalità a pagamento, visita: https://popapi.io/pricing/.
Metodi di pagamento supportati
- Contanti
- Bonifico bancario
- Assegno
- Carte di pagamento
- Addebito diretto SEPA
Compatibilità
POP è compatibile con le versioni più recenti di WordPress e WooCommerce:
- WooCommerce: 9.x.x o superiore, con supporto HPOS
- PHP: 7.4 o superiore
- WordPress: 4.6 o superiore
Per HPOS e prestazioni ottimali, consigliamo WordPress 6.x.x e WooCommerce 9.x.x o versioni successive.
Perché POP
La fatturazione e-commerce sta diventando sempre più strutturata, locale e connessa ai sistemi nazionali. Un negozio WooCommerce può avere bisogno di raccogliere i dati fiscali corretti in fase di pagamento, generare fatture XML, inviare documenti tramite SdI, PEPPOL o KSeF, gestire le note di credito e mantenere disponibili i file fattura per la contabilità o il supporto clienti.
POP è nato per semplificare la fatturazione elettronica europea per i team e-commerce: meno lavoro manuale, meno strumenti scollegati tra loro e un percorso più chiaro dai dati dell’ordine al documento fattura strutturato.
Non possiamo rendere la conformità attraente, solo più semplice.
Contributi
“POP – e-invoicing for WooCommerce (ex-WooPop)” is open source software.
Contribute to its development to continuously improve the plugin!
Requisiti
PHP: >= 7.4
WordPress: >= 4.6
Screenshot












Blocchi
Questo plugin fornisce 1 blocco.
- POP Checkout Fields
Installazione
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
-
Devo creare un account per usare POP?
-
No. Puoi installare il plugin e iniziare subito a generare fatture XML e PDF, senza account e senza passaggi di configurazione, entro la soglia mensile gratuita di generazione.
Creare un account POP gratuito serve solo quando vuoi inviare i documenti tramite una rete supportata come SdI, PEPPOL o KSeF, o collegare un provider come Fatture in Cloud, Aruba, Zoho o PEC. Un breve wizard integrato nel plugin ti guida nel processo, direttamente dall’area amministrativa di WordPress.
-
Il plugin POP è gratuito?
-
Sì. POP offre un piano Free che include 10 crediti API al mese, e tutte le reti e integrazioni supportate sono disponibili anche su questo piano: il piano Free non è limitato a un set ridotto di funzionalità.
Il credito è l’unità utilizzata per misurare le operazioni API che consumano credito. Alcune funzionalità del plugin sono incluse senza consumo di credito, mentre operazioni come generazione XML, invio, firma elettronica o conservazione possono consumare crediti a seconda del flusso configurato.
Per sbloccare più crediti, puoi attivare un piano a pagamento.
-
Perché POP usa i crediti API invece di “fatture al mese”?
-
POP è un prodotto per la conformità nella fatturazione elettronica. Una singola fattura può comportare più azioni di conformità, come:
- Generazione e validazione dell’XML
- Invio dell’XML a una rete supportata come SdI, PEPPOL o KSeF
- Applicazione della firma elettronica, se abilitata
- Attivazione della conservazione a norma, se abilitata
Ogni operazione che consuma credito utilizza crediti API in base alla tua soglia mensile e al flusso configurato.
-
Posso inviare automaticamente le fatture alle reti di fatturazione elettronica supportate?
-
Sì, su qualsiasi piano incluso quello gratuito. POP può integrarsi con reti supportate come SdI, PEPPOL e KSeF, automatizzando l’invio delle fatture XML strutturate direttamente dal tuo flusso e-commerce.
Le reti disponibili dipendono dal paese, dall’endpoint e dall’integrazione configurata. Il piano determina la soglia mensile di credito, non le reti che puoi utilizzare.
-
È possibile personalizzare le fatture generate con POP?
-
Sì. Puoi personalizzare il template PDF delle fatture aggiungendo il logo aziendale e un testo personalizzato nel footer.
Puoi anche configurare prefisso, suffisso e numerazione progressiva delle fatture. -
POP supporta la fatturazione per clienti esteri?
-
Sì. POP supporta clienti dell’UE e internazionali ed è in grado di instradare dati XML strutturati attraverso le reti supportate.
I requisiti normativi possono variare a seconda della giurisdizione, del tipo di transazione e del contesto aziendale. Gli utenti sono tenuti a verificare gli obblighi specifici a loro applicabili. -
È possibile generare note di credito con POP?
-
Sì, su qualsiasi piano incluso quello gratuito. POP supporta la generazione della nota di credito dove abilitata dal paese e dal flusso.
-
Cosa succede se esaurisco i crediti?
-
Questa risposta si applica alla versione open source di POP per WordPress.
- Piano Free: il servizio si interrompe quando i crediti sono esauriti.
- Piani a pagamento: l’overquota è consentita. Le operazioni API aggiuntive vengono addebitate secondo la tariffa di overquota del tuo piano.
Puoi passare a un piano superiore in qualsiasi momento per aumentare la tua quota mensile di credito.
Tieni presente che le regole relative all’utilizzo del credito potrebbero variare sulle piattaforme non open source. -
Posso usare POP solo per generare fatture XML senza invio in rete?
-
Sì. POP può essere usato per generare e validare fatture XML senza invio in rete e senza creare un account, entro la soglia mensile gratuita di generazione.
L’invio in rete, la firma digitale e la conservazione a norma sono funzionalità opzionali che dipendono dal flusso e dalla configurazione del paese, e sono disponibili su ogni piano incluso quello gratuito.
-
Il plugin offre assistenza clienti?
-
Sì. Per richieste di assistenza, puoi contattarci direttamente tramite il link di supporto nel plugin o aprire un ticket dal nostro sito ufficiale.
-
Il plugin invia dati quando viene attivato?
-
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.
Recensioni
Contributi e sviluppo
“POP – e-invoicing for WooCommerce: SdI, PEPPOL, KSeF (ex-WooPop)” è un software open source. Le persone che hanno contribuito allo sviluppo di questo plugin sono indicate di seguito.
CollaboratoriTraduci “POP – e-invoicing for WooCommerce: SdI, PEPPOL, KSeF (ex-WooPop)” nella tua lingua.
Ti interessa lo sviluppo?
Esplora il codice segui il repository SVN, segui il log delle modifiche tramite RSS.
Changelog
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
- Risolto: il link per la generazione della fattura non compare più nel pannello “Campi fattura” e nell’elenco degli ordini per i negozi situati in un Paese in cui non è disponibile alcun canale di fatturazione ufficiale supportato; in precedenza il link era visibile ma non consentiva di generare un documento valido.
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 inIntegrazioni,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 context for XML/PDF generation, local cache reuse and bulk file handling instead of collapsing both documents onto the same source order id.
- Fixed: PMPro native SDI/PEPPOL actions now resolve invoice vs credit-note document context explicitly, so a UUID saved for the original invoice no longer disables send/state actions on the PMPro refund credit-note row that shares the same source order id.
- Fixed: Admin document search is now provider-aware; when a specific provider is selected, direct order-id lookup and filtered search results query only that provider instead of scanning every registered provider.
- Fixed: Fatture in Cloud line-item VAT-type resolution now prioritizes the XML/order fiscal
Naturabefore Italian0%fallback mappings, so cases such asN2.2no longer degrade to the generic domestic N4 path when the normative reference is missing; targeted helper tests cover exact, ambiguous and fallback cases. - Fixed: PMPro checkout no longer blocks company/freelance submissions with browser error
An invalid form control with name='billing_tax_code' is not focusablewhen tax code is disabled; PMPro now aligns CF required/visibility handling with the WooCommerce flow and clears stale browser custom-validation state when the field is hidden or excluded from validation. - Fixed: Credit-note XML refund assembly no longer assumes WooCommerce-only parent-order lookups; refund data building now resolves the parent order through the active provider and hardens fee-item data access for non-Woo provider adapters, improving compatibility for provider-based refund flows.
- Changed: Local frontend/admin asset versioning now uses the real file modification time for plugin-managed scripts and styles, including PMPro and Cozmos checkout assets, reducing stale-browser/cache issues after JS/CSS updates without requiring a plugin version bump.
6.8.5 – 28/04/2026
- Fixed: Shipping VAT-rate resolution is now hardened across standard invoices and shipping refund / credit note flows; shipping items can now recover their tax rate and tax-rate id from item tax data when
tax_classis empty, location matching now prefers city-specific rates over generic country-wide matches, and targeted tests cover the shared resolution path.
6.8.4 – 27/04/2026
- Changed: POP API requests that already send
license_keyin the JSON body now also send the same value in theX-API-Keyheader for channel, wizard, addon-allowlist, and document-generation endpoints while keeping backward-compatible body payloads unchanged. - Fixed: PMPro XML auto-saving now skips recursive re-entry when the current request is already the internal
format=xmlgeneration request for the same order/provider, preventing self-triggered loops during internal XML generation on shared POP/site domains. - Fixed: Invoice-number formatting/build fallback no longer degrades to the order ID when the raw progressive is missing during interrupted status-change/save flows; formatted-number generation is now centralized, recovery prefers the stored
order_number_invoiceor a valid parse from the existing formatted value, and missing progressives now fail explicitly with logs instead of persisting the order number as the visible invoice number. - Changed: PMPro legacy formatted-number fallback is aligned with core and no longer uses the order ID as a surrogate invoice number when no valid progressive is available.
- Fixed: Greece VIES checks now normalize the member-state code from
GRtoELin the shared VIES path, so Greek VAT numbers entered/stored with checkout countryGRare validated with the expected VIES country code; updated core helpers and validator flow insrc/Functions/Utils.phpandsrc/WooCommerce/Fields/InvoiceFields.php, with targeted coverage intests/ViesCountryCodeTest.php. - Changed: The account setup wizard popup
otpWindownow sizes itself dynamically from the opener browser window instead of using a fixed width, targeting about80%of the available width and centered positioning for better adaptation across screen resolutions; updatedassets/js/wizard.jsand regeneratedassets/js/wizard.min.js.
6.8.3 – 09/04/2026
- Fixed:
processFileBatch()now resolves the correct order provider from the stored batch payload and skips orphaned records safely, avoiding fatal errors when bulk XML data contains non-WooCommerce entries or deleted orders. - Changed: Bulk XML download gating is now aligned between UI and runtime; the feature remains Growth+, the AJAX endpoint now enforces the same rule server-side, and paid-plan users below Growth see an explicit
From Growthbadge instead of the generic paid-only label. - Fixed: XML directory saving is now enabled from the Basic plan as intended, matching the settings UI and restoring actual file creation for
createXMLOnProviderOrderCompleted(). - Changed: XML auto-saving is now provider-aware in core and is wired for WooCommerce, PMPro and Cozmos payment flows, so completed-provider orders can save XML files without relying on WooCommerce-only assumptions.
- Changed: Added localized
From %splan badge strings in core language catalogs and regenerated compiled translations.
6.8.2 – 07/04/2026
- Fixed:
transferee_client.personal_data.tax_id_vat.country_idandtransferee_client.place.country_idnow receive the customer country reliably during XML/PDF payload assembly;CreateXmlinitializes$transfereeCountryIdbefore the payload is built, avoiding undefined-variable notices and empty country values in generated documents. - Changed: PMPro order billing resolution is now more defensive for address, city, state, postcode and country, with fallback lookup across POP order metas (
billing_*), WordPress user metas and legacy PMPro user metas (pmpro_b*) when theMemberOrder->billingobject is incomplete.
6.8.1 – 07/04/2026
- Fixed: PMPro bridge now restores pre-6.8.0 addon bootstrap timing by firing
wc_el_inv-after_initafter plugin bootstrap, so PMPro callbacks are registered before checkout/gateway order flows emit their hooks. - Fixed: PMPro addon filter loading is now merged explicitly across
filtersAlways,filtersFront,filtersAdmin, andfiltersAjax, preventing loss of sharedinchooks such as invoice/date assignment and fiscal-meta sync. - Fixed: PMPro order success handling now backfills missing POP fiscal metas (
billing_choice_type,billing_invoice_type,billing_sdi_type,billing_vat_number,billing_company,billing_tax_code) even when the success transition happens later via Stripe/webhook and the original checkoutPOSTis no longer available. - Fixed: When PMPro front-end document-type choice is disabled, the effective default now becomes
invoiceinstead of inheriting the receipt-oriented field default. - Fixed: PMPro provider billing-company resolution now prioritizes the POP order meta
billing_companyover stale PMPro billing object values, so updated company names entered at checkout are reflected consistently in orders and generated documents. - Changed: PMPro Council Directive price-label formatting now uses the current site language instead of the account country, appending
+IVAonly for Italian and+VATfor all other languages. - Changed: Core helper
getCurrentLanguage()is now normalized and WPML-aware, usingisWpmlActive()withICL_LANGUAGE_CODEwhen available and otherwise falling back reliably to the current WordPress locale. - Added: Targeted PMPro/WPML language-label tests covering WordPress locale fallback and WPML current-language precedence.
- Added: Centralized diagnostic log helpers in core for shared path resolution, bootstrap, write-status tracking and protected admin log viewing.
- Fixed: Fatture in Cloud, Aruba and SdI via PEC now prepare their event-log directory/file on activation and surface path/permission issues immediately in addon settings.
- Changed: Addon event logs are now opened through a nonce-protected admin endpoint instead of direct …
