{"id":103276,"date":"2019-05-03T17:44:54","date_gmt":"2019-05-03T17:44:54","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/woopop-free-fattura-elettronica\/"},"modified":"2026-04-10T06:45:23","modified_gmt":"2026-04-10T06:45:23","slug":"woopop-electronic-invoice-free","status":"publish","type":"plugin","link":"https:\/\/srd.wordpress.org\/plugins\/woopop-electronic-invoice-free\/","author":23145870,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"6.8.3","stable_tag":"6.8.3","tested":"6.9.4","requires":"4.6","requires_php":"5.6","requires_plugins":null,"header_name":"POP \u2013 Free Electronic Invoices & Legal Documents Generator for eCommerce (ex-WooPop)","header_author":"POP","header_description":"<code><strong>WooPop Electronic Invoice (Versione Gratuita)<\/strong><\/code>, \u00e8 integrato con woocommerce, Raccoglie i dati per la generazione del file XML per la fatturazione elettronica, ed inserisce in backend e in frontend i campi necessari alla fatturazione elettronica. Passa alla <strong><a href=\"https:\/\/woopop.it\/\">VERSIONE PREMIUM<\/a><\/strong>","assets_banners_color":"f9f9f3","last_updated":"2026-04-10 06:45:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/popapi.io\/","header_author_uri":"https:\/\/popapi.io\/","rating":4.9,"author_block_rating":0,"active_installs":90,"downloads":13303,"num_ratings":14,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"Picaland","date":"2019-05-08 18:02:01"},"1.1.1":{"tag":"1.1.1","author":"Picaland","date":"2019-06-05 17:14:36"},"1.2.0":{"tag":"1.2.0","author":"Picaland","date":"2020-04-01 17:39:39"},"1.3.0":{"tag":"1.3.0","author":"Picaland","date":"2021-05-08 17:23:04"},"1.3.1":{"tag":"1.3.1","author":"Picaland","date":"2021-05-19 21:05:21"},"1.3.2":{"tag":"1.3.2","author":"Picaland","date":"2021-09-01 17:11:32"},"1.3.3":{"tag":"1.3.3","author":"Picaland","date":"2021-11-17 17:15:54"},"2.0.0":{"tag":"2.0.0","author":"Picaland","date":"2022-05-22 11:02:16"},"2.0.1":{"tag":"2.0.1","author":"Picaland","date":"2022-05-22 11:02:16"},"2.0.2":{"tag":"2.0.2","author":"Picaland","date":"2022-05-22 16:26:17"},"2.0.3":{"tag":"2.0.3","author":"Picaland","date":"2022-05-24 06:52:02"},"2.0.4":{"tag":"2.0.4","author":"Picaland","date":"2022-05-25 21:01:22"},"3.0.0":{"tag":"3.0.0","author":"Picaland","date":"2022-06-24 16:00:52"},"3.0.1":{"tag":"3.0.1","author":"Picaland","date":"2022-07-15 12:24:44"},"3.0.2":{"tag":"3.0.2","author":"Picaland","date":"2022-07-24 09:20:51"},"3.0.3":{"tag":"3.0.3","author":"Picaland","date":"2022-09-14 12:01:24"},"3.0.4":{"tag":"3.0.4","author":"Picaland","date":"2022-10-10 07:15:21"},"3.1.0":{"tag":"3.1.0","author":"Picaland","date":"2022-10-20 19:36:21"},"3.1.1":{"tag":"3.1.1","author":"Picaland","date":"2022-10-28 16:58:04"},"3.1.2":{"tag":"3.1.2","author":"Picaland","date":"2022-11-27 10:52:36"},"3.1.3":{"tag":"3.1.3","author":"Picaland","date":"2022-11-28 13:06:22"},"3.2.0":{"tag":"3.2.0","author":"Picaland","date":"2023-02-17 20:37:58"},"3.2.1":{"tag":"3.2.1","author":"Picaland","date":"2023-07-08 07:20:29"},"3.2.2":{"tag":"3.2.2","author":"Picaland","date":"2023-09-11 10:05:16"},"3.3.0":{"tag":"3.3.0","author":"Picaland","date":"2023-10-30 10:42:38"},"3.3.1":{"tag":"3.3.1","author":"Picaland","date":"2023-11-18 11:04:19"},"3.3.2":{"tag":"3.3.2","author":"Picaland","date":"2024-10-12 08:02:00"},"3.3.3":{"tag":"3.3.3","author":"Picaland","date":"2024-10-29 07:35:25"},"3.3.4":{"tag":"3.3.4","author":"Picaland","date":"2025-01-27 16:34:04"},"6.0.0":{"tag":"6.0.0","author":"Picaland","date":"2025-02-28 10:49:12"},"6.0.1":{"tag":"6.0.1","author":"Picaland","date":"2025-02-28 16:15:00"},"6.0.2":{"tag":"6.0.2","author":"Picaland","date":"2025-03-06 11:16:53"},"6.0.3":{"tag":"6.0.3","author":"Picaland","date":"2025-03-07 08:17:22"},"6.0.4":{"tag":"6.0.4","author":"Picaland","date":"2025-03-10 15:21:04"},"6.0.5":{"tag":"6.0.5","author":"Picaland","date":"2025-03-20 18:47:27"},"6.1.0":{"tag":"6.1.0","author":"Picaland","date":"2025-04-01 06:22:18"},"6.1.1":{"tag":"6.1.1","author":"Picaland","date":"2025-04-09 07:04:18"},"6.1.2":{"tag":"6.1.2","author":"Picaland","date":"2025-04-10 17:15:29"},"6.1.3":{"tag":"6.1.3","author":"Picaland","date":"2025-04-11 12:48:54"},"6.1.4":{"tag":"6.1.4","author":"Picaland","date":"2025-04-22 09:20:29"},"6.1.5":{"tag":"6.1.5","author":"Picaland","date":"2025-04-29 08:12:43"},"6.1.6":{"tag":"6.1.6","author":"Picaland","date":"2025-05-19 16:48:32"},"6.1.7":{"tag":"6.1.7","author":"Picaland","date":"2025-05-21 13:49:41"},"6.1.8":{"tag":"6.1.8","author":"Picaland","date":"2025-05-29 13:56:22"},"6.1.9":{"tag":"6.1.9","author":"Picaland","date":"2025-06-04 09:18:52"},"6.2.0":{"tag":"6.2.0","author":"Picaland","date":"2025-07-01 13:01:37"},"6.2.1":{"tag":"6.2.1","author":"Picaland","date":"2025-07-07 07:14:47"},"6.2.2":{"tag":"6.2.2","author":"Picaland","date":"2025-07-07 15:43:27"},"6.2.3":{"tag":"6.2.3","author":"Picaland","date":"2025-07-08 10:25:13"},"6.2.4":{"tag":"6.2.4","author":"Picaland","date":"2025-07-09 09:02:38"},"6.2.5":{"tag":"6.2.5","author":"Picaland","date":"2025-07-14 10:23:30"},"6.3.0":{"tag":"6.3.0","author":"Picaland","date":"2025-08-07 15:09:45"},"6.3.1":{"tag":"6.3.1","author":"Picaland","date":"2025-08-07 16:03:17"},"6.3.2":{"tag":"6.3.2","author":"Picaland","date":"2025-08-09 12:10:23"},"6.3.3":{"tag":"6.3.3","author":"Picaland","date":"2025-08-28 10:17:17"},"6.3.4":{"tag":"6.3.4","author":"Picaland","date":"2025-08-28 11:02:09"},"6.3.5":{"tag":"6.3.5","author":"Picaland","date":"2025-08-29 15:29:55"},"6.3.6":{"tag":"6.3.6","author":"Picaland","date":"2025-09-01 10:16:38"},"6.3.7":{"tag":"6.3.7","author":"Picaland","date":"2025-09-04 08:42:48"},"6.3.8":{"tag":"6.3.8","author":"Picaland","date":"2025-09-23 08:32:31"},"6.3.9":{"tag":"6.3.9","author":"Picaland","date":"2025-09-29 12:52:34"},"6.4.0":{"tag":"6.4.0","author":"Picaland","date":"2025-10-01 07:04:30"},"6.5.0":{"tag":"6.5.0","author":"Picaland","date":"2025-10-22 08:52:14"},"6.5.1":{"tag":"6.5.1","author":"Picaland","date":"2025-10-22 12:48:38"},"6.5.2":{"tag":"6.5.2","author":"Picaland","date":"2026-02-14 07:18:38"},"6.5.3":{"tag":"6.5.3","author":"Picaland","date":"2025-12-03 11:51:47"},"6.5.4":{"tag":"6.5.4","author":"Picaland","date":"2025-12-03 14:41:43"},"6.5.5":{"tag":"6.5.5","author":"Picaland","date":"2025-12-03 15:58:55"},"6.5.6":{"tag":"6.5.6","author":"Picaland","date":"2025-12-12 15:12:29"},"6.5.7":{"tag":"6.5.7","author":"Picaland","date":"2025-12-23 10:39:11"},"6.5.8":{"tag":"6.5.8","author":"Picaland","date":"2026-01-08 14:47:41"},"6.5.9":{"tag":"6.5.9","author":"Picaland","date":"2026-01-22 14:50:44"},"6.6.0":{"tag":"6.6.0","author":"Picaland","date":"2026-01-23 11:29:41"},"6.6.1":{"tag":"6.6.1","author":"Picaland","date":"2026-02-12 16:14:34"},"6.6.2":{"tag":"6.6.2","author":"Picaland","date":"2026-02-14 07:18:38"},"6.7.1":{"tag":"6.7.1","author":"Picaland","date":"2026-02-18 13:57:26"},"6.7.2":{"tag":"6.7.2","author":"Picaland","date":"2026-02-25 16:21:23"},"6.7.3":{"tag":"6.7.3","author":"Picaland","date":"2026-03-04 14:06:08"},"6.7.4":{"tag":"6.7.4","author":"Picaland","date":"2026-03-11 15:28:27"},"6.7.5":{"tag":"6.7.5","author":"Picaland","date":"2026-03-11 17:44:31"},"6.8.0":{"tag":"6.8.0","author":"Picaland","date":"2026-03-13 09:34:23"},"6.8.1":{"tag":"6.8.1","author":"Picaland","date":"2026-04-07 08:33:11"},"6.8.2":{"tag":"6.8.2","author":"Picaland","date":"2026-04-07 10:45:15"},"6.8.3":{"tag":"6.8.3","author":"Picaland","date":"2026-04-10 06:45:23"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":1,"5":13},"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3167101,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3167101,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250-de_DE.png":{"filename":"banner-772x250-de_DE.png","revision":3473559,"resolution":"772x250","location":"assets","locale":"de_DE"},"banner-772x250-es_ES.png":{"filename":"banner-772x250-es_ES.png","revision":3473559,"resolution":"772x250","location":"assets","locale":"es_ES"},"banner-772x250-fr_BE.png":{"filename":"banner-772x250-fr_BE.png","revision":3473559,"resolution":"772x250","location":"assets","locale":"fr_BE"},"banner-772x250-fr_FR.png":{"filename":"banner-772x250-fr_FR.png","revision":3473559,"resolution":"772x250","location":"assets","locale":"fr_FR"},"banner-772x250-it_IT.png":{"filename":"banner-772x250-it_IT.png","revision":3473559,"resolution":"772x250","location":"assets","locale":"it_IT"},"banner-772x250-nl_BE.png":{"filename":"banner-772x250-nl_BE.png","revision":3473559,"resolution":"772x250","location":"assets","locale":"nl_BE"},"banner-772x250-nl_NL.png":{"filename":"banner-772x250-nl_NL.png","revision":3473559,"resolution":"772x250","location":"assets","locale":"nl_NL"},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3473559,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"wc\/pop-checkout":{"name":"wc\/pop-checkout","title":"POP Checkout Fields"}},"tagged_versions":["1.1.0","1.1.1","1.2.0","1.3.0","1.3.1","1.3.2","1.3.3","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.1.0","3.1.1","3.1.2","3.1.3","3.2.0","3.2.1","3.2.2","3.3.0","3.3.1","3.3.2","3.3.3","3.3.4","6.0.0","6.0.1","6.0.2","6.0.3","6.0.4","6.0.5","6.1.0","6.1.1","6.1.2","6.1.3","6.1.4","6.1.5","6.1.6","6.1.7","6.1.8","6.1.9","6.2.0","6.2.1","6.2.2","6.2.3","6.2.4","6.2.5","6.3.0","6.3.1","6.3.2","6.3.3","6.3.4","6.3.5","6.3.6","6.3.7","6.3.8","6.3.9","6.4.0","6.5.0","6.5.1","6.5.2","6.5.3","6.5.4","6.5.5","6.5.6","6.5.7","6.5.8","6.5.9","6.6.0","6.6.1","6.6.2","6.7.1","6.7.2","6.7.3","6.7.4","6.7.5","6.8.0","6.8.1","6.8.2","6.8.3"],"block_files":[],"assets_screenshots":{"screenshot-1-it.png":{"filename":"screenshot-1-it.png","revision":3474726,"resolution":"1","location":"assets","locale":"it"},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3474726,"resolution":"1","location":"assets","locale":""},"screenshot-2-it.png":{"filename":"screenshot-2-it.png","revision":3474726,"resolution":"2","location":"assets","locale":"it"},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3474726,"resolution":"2","location":"assets","locale":""},"screenshot-3-it.png":{"filename":"screenshot-3-it.png","revision":3474726,"resolution":"3","location":"assets","locale":"it"},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3474726,"resolution":"3","location":"assets","locale":""},"screenshot-4-it.png":{"filename":"screenshot-4-it.png","revision":3474726,"resolution":"4","location":"assets","locale":"it"},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3474726,"resolution":"4","location":"assets","locale":""}},"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[225611,165100,168515,165101,73946],"plugin_category":[45],"plugin_contributors":[248514,81963,96472,233011],"plugin_business_model":[],"class_list":["post-103276","plugin","type-plugin","status-publish","hentry","plugin_tags-e-invoicing","plugin_tags-fattura-elettronica","plugin_tags-fattura-xml","plugin_tags-fatturazione-elettronica","plugin_tags-fatture","plugin_category-ecommerce","plugin_contributors-babinimazzari","plugin_contributors-mirkolofio","plugin_contributors-picaland","plugin_contributors-popdev","plugin_committers-mirkolofio","plugin_committers-picaland","plugin_committers-popdev"],"banners":{"banner":"https:\/\/ps.w.org\/woopop-electronic-invoice-free\/assets\/banner-772x250.png?rev=3473559","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/woopop-electronic-invoice-free\/assets\/icon-128x128.gif?rev=3167101","icon_2x":"https:\/\/ps.w.org\/woopop-electronic-invoice-free\/assets\/icon-256x256.gif?rev=3167101","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/woopop-electronic-invoice-free\/assets\/screenshot-1.png?rev=3474726","caption":""},{"src":"https:\/\/ps.w.org\/woopop-electronic-invoice-free\/assets\/screenshot-2.png?rev=3474726","caption":""},{"src":"https:\/\/ps.w.org\/woopop-electronic-invoice-free\/assets\/screenshot-3.png?rev=3474726","caption":""},{"src":"https:\/\/ps.w.org\/woopop-electronic-invoice-free\/assets\/screenshot-4.png?rev=3474726","caption":""}],"raw_content":"<!--section=description-->\n<p>POP is an e-invoicing compliance plugin for <strong>WooCommerce<\/strong>, <strong>Paid Memberships Pro<\/strong> and <strong>Cozmos PMS<\/strong>. It focuses on structured XML and on the full e-invoicing lifecycle, including generation and validation, network submission and, if enabled, digital signature and compliant archiving.<\/p>\n\n<p>With POP you pay a subscription and receive a monthly allocation of API credits. One credit equals 1 API call, for example: generate or validate XML, submit to a network <strong>(SdI, PEPPOL and others)<\/strong>, plus signature and archiving when enabled. The principle is simple: you know in advance what you spend, and monthly costs remain predictable.<\/p>\n\n<p>POP supports country-specific e-invoicing workflows for Italy, San Marino and Belgium, including direct delivery to Italy\u2019s Exchange System <strong>(SdI)<\/strong> and Belgian structured e-invoicing support.<\/p>\n\n<p>POP can also be used by businesses in the Netherlands, France, Germany and the United Kingdom through PEPPOL, by generating structured UBL-XML and routing invoices via a certified Access Point. Regulatory requirements differ by country, and users should verify their specific obligations.<\/p>\n\n<h4>International PEPPOL Support (NL, FR, DE, UK)<\/h4>\n\n<p>POP enables sending structured XML e-invoices to customers in the Netherlands, France, Germany and the United Kingdom through the PEPPOL International network, using a certified Access Point.<\/p>\n\n<p>Unlike Belgium, these countries do not require mandatory B2B e-invoicing, but many businesses still request PEPPOL delivery for interoperability or internal compliance.\nPOP provides the technical capability to route invoices internationally. Regulatory requirements may vary by jurisdiction, and users should verify their own obligations.<\/p>\n\n<p>POP is also available for Shopify: apps.shopify.com\/pop-european-invoicing\nPOP is available in five plans (Free, Basic, Growth, Pro and Enterprise). For paid features, visit: <a href=\"https:\/\/popapi.io\/en\/prices\/\">https:\/\/popapi.io\/en\/prices\/<\/a>.<\/p>\n\n<p>Below are the features included in the Free plan.<\/p>\n\n<h4>Document Generation &amp; Delivery<\/h4>\n\n<ul>\n<li>Automatic generation of XML electronic invoices and PDFs for all completed orders<\/li>\n<li>Up to 20 API credits\/month (1 credit = 1 fiscal document) included in the Free plan<\/li>\n<li>Manual download of invoices in PDF or XML format<\/li>\n<li>Local storage of XML files<\/li>\n<li>Customizable PDF templates with logo and footer text<\/li>\n<li>Fully compatible with EU e-invoicing workflows<\/li>\n<\/ul>\n\n<h4>Tax Management<\/h4>\n\n<ul>\n<li>Support for customers in the European Union and worldwide<\/li>\n<li>Configuration of tax regimes and VAT treatments<\/li>\n<li>Regulatory references for exempt transactions<\/li>\n<\/ul>\n\n<h4>Verification and Data Control<\/h4>\n\n<ul>\n<li>Automated validation of VAT number and Tax Code via the European VIES system<\/li>\n<li>Customizable invoicing fields: VAT number, Tax Code, Destination Code and more<\/li>\n<\/ul>\n\n<h4>Document Numbering and Configuration<\/h4>\n\n<ul>\n<li>Fully customizable invoice numbering (prefix, suffix, yearly reset)<\/li>\n<li>Progressive numbering for invoices, credit notes and receipts<\/li>\n<li>Automatic blocking of invoices with a zero total<\/li>\n<li>Exclusion of zero-value line items from invoices<\/li>\n<\/ul>\n\n<h4>Management and Reporting<\/h4>\n\n<ul>\n<li>Filters for invoices by date, type and WooCommerce order status<\/li>\n<li>Search by invoice number or order ID<\/li>\n<li>Full integration with WooCommerce e-invoicing<\/li>\n<li>No installation limits or restrictions with other CMS or management systems<\/li>\n<\/ul>\n\n<h4>Network and supported formats<\/h4>\n\n<p>POP is designed to operate within structured European e-invoicing ecosystems, supporting both national interchange systems and the PEPPOL international network.\nIt enables compliant document generation and routing according to the technical and regulatory requirements of each jurisdiction.<\/p>\n\n<h4>Supported transmission networks<\/h4>\n\n<ul>\n<li><p>Italy \u2013 SdI (Sistema di Interscambio)\nDirect transmission of structured XML invoices to the Italian Exchange System (SdI), where B2B and B2C e-invoicing is mandatory.<\/p><\/li>\n<li><p>PEPPOL network (via certified Access Point)\nTransmission of structured e-invoices through the PEPPOL international network, including:<\/p><\/li>\n<li><p>Belgium (mandatory B2B e-invoicing for VAT-registered businesses from January 1st, 2026)<\/p><\/li>\n<li>Netherlands<\/li>\n<li>France<\/li>\n<li>Germany<\/li>\n<li>United Kingdom<\/li>\n<\/ul>\n\n<p>In Belgium, structured B2B e-invoicing is implemented via PEPPOL. In other listed countries, PEPPOL delivery may be required contractually or for interoperability purposes, depending on the business context.\nRegulatory obligations may vary by country and transaction type. Users remain responsible for verifying their specific compliance requirements.<\/p>\n\n<h4>Supported document formats<\/h4>\n\n<ul>\n<li>Structured XML e-invoices, including UBL where applicable<\/li>\n<li>PDF invoice copies (human-readable representation)<\/li>\n<li>Credit notes in XML and PDF format<\/li>\n<li>Fiscal receipts, where supported by the configured workflow<\/li>\n<\/ul>\n\n<p>POP supports B2B e-invoicing use cases. B2G use cases are not currently supported.<\/p>\n\n<h4>POP API and Integrations<\/h4>\n\n<p>POP includes all integrations previously offered as paid add-ons (such as automatic interchange system submission, qualified electronic signature and certified digital preservation), now built directly into the plugin depending on your selected plan.\nThanks to these built-in capabilities, POP works as a complete invoice generation plugin, automating XML creation, signing, transmission and long-term preservation through a fully structured, compliant e-invoicing workflow.<\/p>\n\n<h4>Invoice Options<\/h4>\n\n<p>With POP you can customize your invoicing workflow by configuring:<\/p>\n\n<ul>\n<li>Invoice prefix and suffix<\/li>\n<li>Automatic progressive numbering<\/li>\n<li>Custom fields (Tax Code, Destination Code and more)<\/li>\n<li>Automatic sending of PDF invoices via email<\/li>\n<li>HTML invoice display<\/li>\n<\/ul>\n\n<h4>Supported Payment Methods<\/h4>\n\n<ul>\n<li>Cash<\/li>\n<li>Bank Transfer<\/li>\n<li>Check<\/li>\n<li>Payment Cards<\/li>\n<li>SEPA Direct Debit<\/li>\n<\/ul>\n\n<h4>Compatibility<\/h4>\n\n<p>POP is compatible with the latest versions of WordPress and WooCommerce:\n* WooCommerce: up to version 9.x.x; HPOS supported starting from WooCommerce 9.x.x\n* PHP: 5.6 or higher\n* WordPress: 4.6 or higher<\/p>\n\n<p>For HPOS and optimal performance, we recommend using WordPress 6.x.x and WooCommerce 9.x.x and up.\nWe understand how frustrating it can be to navigate complex tax regulations, cumbersome tools, and the fear of making costly mistakes. We've been there too. It is precisely from these daily challenges that POP was born: a practical solution to real problems.\nWe didn't want just another software. We wanted a simple, immediate, and truly useful solution. A way to automate tax management, reduce time wastage, and make room for the growth of your business, without the burden of bureaucracy.\nPOP is born from direct experience. It is designed to be clear, reliable, and perfectly integrated into your daily workflow.\nWe can\u2019t make compliance sexy, only easier.<\/p>\n\n<h4>Contributions<\/h4>\n\n<p>\"POP \u2013 European electronic invoicing for e-commerce (ex-WooPop)\" is open source software.\nContribute to its development to continuously improve the plugin!<\/p>\n\n<h3>F.A.Q.<\/h3>\n\n<h4>Is the POP plugin free?<\/h4>\n\n<p>Yes. POP offers a Free plan that includes 20 API credits per month. One credit equals 1 API call.\nTo unlock more credits and advanced compliance features, you can activate a paid plan.<\/p>\n\n<h4>Why does POP use API credits instead of \u201cinvoices per month\u201d?<\/h4>\n\n<p>POP is an e-invoicing compliance product. A single invoice may involve multiple compliance actions, such as:<\/p>\n\n<ul>\n<li>Generate and validate XML<\/li>\n<li>Submit XML to a network (SdI, PEPPOL, etc.)<\/li>\n<li>Apply digital signature (if enabled)<\/li>\n<li>Activate compliant archiving (if enabled)<\/li>\n<\/ul>\n\n<p>Each action corresponds to 1 API call = 1 credit.<\/p>\n\n<h4>Can I automatically send invoices to tax authorities?<\/h4>\n\n<p>With the Growth plan you can integrate POP with the Italian tax authorities system, automating the sending of electronic invoices directly from your e-commerce.<\/p>\n\n<h4>Is it possible to customize invoices generated with POP?<\/h4>\n\n<p>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.<\/p>\n\n<h4>Does POP support invoicing for foreign customers?<\/h4>\n\n<p>Yes. POP supports EU and international customers and can route structured XML through supported networks. Regulatory requirements may vary by jurisdiction, and users should verify their specific obligations.<\/p>\n\n<h4>Is it possible to generate Credit Notes with POP?<\/h4>\n\n<p>Yes. Starting from the Basic plan, you can generate and manage Credit Notes in XML or PDF format directly from the plugin.<\/p>\n\n<h4>What happens if I run out of credits?<\/h4>\n\n<p>This answer applies to the WordPress (Open Source) version of POP.<\/p>\n\n<p>Free plan: the service stops when credits are exhausted.\nPaid plans: overquota is allowed. Extra API calls are charged according to your plan\u2019s overquota rate.\nYou can upgrade your plan at any time to increase your monthly credit allocation.\nCredit enforcement rules may differ on non open-source platforms.<\/p>\n\n<h4>Can I use POP only to generate XML without network submission?<\/h4>\n\n<p>Yes. POP can be used exclusively for XML generation and validation.<\/p>\n\n<p>Network submission, digital signature and compliant archiving are optional modules depending on your workflow and selected plan.<\/p>\n\n<h4>Does the plugin offer customer support?<\/h4>\n\n<p>Yes. For support requests, you can contact us directly via the support link in the plugin or open a ticket from our official website.<\/p>\n\n<h3>Requirements<\/h3>\n\n<p>PHP: &gt;= 5.6\nWordPress: &gt;= 4.6<\/p>\n\n<!--section=installation-->\n<p>This section describes how to install and run the plugin.\n1. Upload the 'woopop-electronic-invoice-free' folder to the \/wp-content\/plugins\/ directory.\n2. Activate <strong>POP \u2013 European electronic invoicing for e-commerce (ex-WooPop)<\/strong> from the WordPress 'Plugins' page.<\/p>\n\n<!--section=changelog-->\n<h4>6.8.3 - 09\/04\/2026<\/h4>\n\n<ul>\n<li>Fixed: <code>processFileBatch()<\/code> 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.<\/li>\n<li>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 <code>From Growth<\/code> badge instead of the generic paid-only label.<\/li>\n<li>Fixed: XML directory saving is now enabled from the Basic plan as intended, matching the settings UI and restoring actual file creation for <code>createXMLOnProviderOrderCompleted()<\/code>.<\/li>\n<li>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.<\/li>\n<li>Changed: Added localized <code>From %s<\/code> plan badge strings in core language catalogs and regenerated compiled translations.<\/li>\n<\/ul>\n\n<h4>6.8.2 - 07\/04\/2026<\/h4>\n\n<ul>\n<li>Fixed: <code>transferee_client.personal_data.tax_id_vat.country_id<\/code> and <code>transferee_client.place.country_id<\/code> now receive the customer country reliably during XML\/PDF payload assembly; <code>CreateXml<\/code> initializes <code>$transfereeCountryId<\/code> before the payload is built, avoiding undefined-variable notices and empty country values in generated documents.<\/li>\n<li>Changed: PMPro order billing resolution is now more defensive for address, city, state, postcode and country, with fallback lookup across POP order metas (<code>billing_*<\/code>), WordPress user metas and legacy PMPro user metas (<code>pmpro_b*<\/code>) when the <code>MemberOrder-&gt;billing<\/code> object is incomplete.<\/li>\n<\/ul>\n\n<h4>6.8.1 - 07\/04\/2026<\/h4>\n\n<ul>\n<li>Fixed: PMPro bridge now restores pre-6.8.0 addon bootstrap timing by firing <code>wc_el_inv-after_init<\/code> after plugin bootstrap, so PMPro callbacks are registered before checkout\/gateway order flows emit their hooks.<\/li>\n<li>Fixed: PMPro addon filter loading is now merged explicitly across <code>filtersAlways<\/code>, <code>filtersFront<\/code>, <code>filtersAdmin<\/code>, and <code>filtersAjax<\/code>, preventing loss of shared <code>inc<\/code> hooks such as invoice\/date assignment and fiscal-meta sync.<\/li>\n<li>Fixed: PMPro order success handling now backfills missing POP fiscal metas (<code>billing_choice_type<\/code>, <code>billing_invoice_type<\/code>, <code>billing_sdi_type<\/code>, <code>billing_vat_number<\/code>, <code>billing_company<\/code>, <code>billing_tax_code<\/code>) even when the success transition happens later via Stripe\/webhook and the original checkout <code>POST<\/code> is no longer available.<\/li>\n<li>Fixed: When PMPro front-end document-type choice is disabled, the effective default now becomes <code>invoice<\/code> instead of inheriting the receipt-oriented field default.<\/li>\n<li>Fixed: PMPro provider billing-company resolution now prioritizes the POP order meta <code>billing_company<\/code> over stale PMPro billing object values, so updated company names entered at checkout are reflected consistently in orders and generated documents.<\/li>\n<li>Changed: PMPro Council Directive price-label formatting now uses the current site language instead of the account country, appending <code>+IVA<\/code> only for Italian and <code>+VAT<\/code> for all other languages.<\/li>\n<li>Changed: Core helper <code>getCurrentLanguage()<\/code> is now normalized and WPML-aware, using <code>isWpmlActive()<\/code> with <code>ICL_LANGUAGE_CODE<\/code> when available and otherwise falling back reliably to the current WordPress locale.<\/li>\n<li>Added: Targeted PMPro\/WPML language-label tests covering WordPress locale fallback and WPML current-language precedence.<\/li>\n<li>Added: Centralized diagnostic log helpers in core for shared path resolution, bootstrap, write-status tracking and protected admin log viewing.<\/li>\n<li>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.<\/li>\n<li>Changed: Addon event logs are now opened through a nonce-protected admin endpoint instead of direct public <code>\/wp-content\/*.log<\/code> URLs, reducing false 404s caused by cache, rewrite rules or WAF policies.<\/li>\n<li>Added: Targeted diagnostic-log tests covering bootstrap, write flow, early conflict detection and protected viewer URL generation.<\/li>\n<li>Added: Unified POP API overquota payload (<code>pop_api_overquota<\/code>) with shared normalization helpers, localized titles\/messages\/CTA labels, and admin\/order persistent state stored in the global option <code>wc_el_inv_pop_api_overquota_state<\/code>.<\/li>\n<li>Fixed: POP API overquota business blocks no longer terminate with legacy <code>wp_die()<\/code> in programmable flows; AJAX\/admin and addon consumers now receive a structured payload, while <code>_blank<\/code> document generation renders a dedicated HTML fallback page.<\/li>\n<li>Changed: Overquota handling is now aligned across core and indirect addon consumers (<code>getXmlFromOrder() -&gt; CreateXml -&gt; popApi()<\/code>), with shared detection\/extraction helpers in PHP and a single SweetAlert2 renderer in <code>assets\/js\/admin.js<\/code>.<\/li>\n<li>Fixed: Core AJAX flows and Fatture in Cloud, Aruba, and SdI via PEC addon UIs now intercept <code>pop_api_overquota<\/code> before generic error handling and render the shared dialog instead of degrading to \u201cinvalid XML\u201d or generic API errors.<\/li>\n<li>Added: Persistent overquota notices on POP XML settings (<code>page=wc_el_inv-options-page&amp;tab=xml<\/code>) and WooCommerce order screens, dismissible per page view but automatically shown again until the global overquota state is cleared on a successful document flow.<\/li>\n<li>Fixed: Overquota business copy is now clearer across reason-code states, including explicit cause\/unblock guidance for plan limit, disabled overquota, settlement required, cap reached, payment-method and overdue-balance cases.<\/li>\n<li>Fixed: Updated translation catalogs (<code>el-inv.pot<\/code>, <code>it_IT<\/code>) and rebuilt the <code>it_IT<\/code> <code>.mo<\/code> file for the refined overquota titles\/messages, CTA labels (<code>Open POP<\/code>, <code>Contact support<\/code>) and step label (<code>Next step<\/code>).<\/li>\n<li>Added: Extended CloudApi quota\/overquota test coverage for normalized payloads, global option persistence\/cleanup, admin notice rendering, settlement-required branching and unpaid-overquota fallback CTA mapping.<\/li>\n<li>Fixed: PMPro Council Directive tax hooks now initialize correctly even when the PMPro bridge is loaded after <code>init<\/code>, restoring <code>pmpro_format_price<\/code>, <code>pmpro_tax<\/code> and <code>pmpro_vat_by_country<\/code> on checkout.<\/li>\n<li>Added: Targeted bootstrap-hardening coverage for the PMPro Council Directive snippet when it is included after <code>init<\/code>.<\/li>\n<li>Fixed: Cozmos PMS admin payment form no longer fatals when <code>pms_in_tax_eu_vat_enabled()<\/code> is unavailable; the bridge now falls back to local tax settings when the PMS VAT helper is not loaded.<\/li>\n<li>Added: PMPro order view (<code>pmpro-orders<\/code> view page) now shows read-only POP \u201cInvoice Fields\u201d and \u201cInvoice Data\u201d sections after the main order details, so saved billing\/fiscal data is visible without entering edit mode.<\/li>\n<li>Fixed: PMPro and Cozmos now align saved fiscal meta (<code>nature_rc<\/code>, <code>ref_norm_rc<\/code>, <code>order_vies_check<\/code>) more closely with the WooCommerce provider flow, including <code>company_no_vies<\/code> handling and San Marino support during order\/meta persistence.<\/li>\n<li>Fixed: Cozmos VIES checks now call the shared validator with the correct VAT\/country argument order, avoiding false negatives that could block the correct fiscal meta assignment.<\/li>\n<li>Changed: Legacy <code>stripTags()<\/code> has been removed and replaced by explicit text helpers that separate HTML-to-plain-text extraction from SDI and PEPPOL normalization policies.<\/li>\n<li>Changed: SDI text normalization now uses deterministic ASCII-safe business tokens for disallowed symbols (<code>&amp; -&gt; AND<\/code>, <code>% -&gt; PCT<\/code>, <code># -&gt; NUM<\/code>, <code>\u20ac -&gt; EUR<\/code>) together with stronger transliteration for accented and extended Latin characters.<\/li>\n<li>Added: Targeted text-normalization tests covering HTML cleanup, SDI-safe replacements, extended Latin transliteration, control-character filtering and conservative PEPPOL business-text preservation.<\/li>\n<li>Fixed: SdI via PEC filename progression is now centralized and persisted in the visible order custom field <code>invoice_progressive_file_number<\/code>, with a new unique 5-character code reserved on each real transmission and reinvio.<\/li>\n<li>Changed: Local <code>ProgressivoInvio<\/code> generation has been removed from the plugin XML payload so SdI transmission progressives remain owned exclusively by the API.<\/li>\n<\/ul>\n\n<h4>6.8.0 - 13\/03\/2026<\/h4>\n\n<ul>\n<li>Fixed: Registered <code>wc_el_inv_swal2<\/code> globally in admin so <code>wc_el_inv_admin<\/code> dependencies resolve correctly outside POP settings pages without forcing SweetAlert2 enqueue on every admin screen.<\/li>\n<li>Fixed: Restored <code>POP Checkout Fields<\/code> block visibility in the block inserter by registering <code>pop-checkout-block-editor<\/code> before <code>register_block_type()<\/code>.<\/li>\n<li>Fixed: Simplified POP checkout block editor dependencies to valid Gutenberg\/Woo Blocks handles, removing missing dependency issues that prevented block loading.<\/li>\n<li>Fixed: Hardened <code>assets\/js\/pop-block.js<\/code> against missing <code>wc_el_inv_admin<\/code> \/ <code>wc_el_inv_invoice<\/code> globals by using localized fallback data for messages and field positioning.<\/li>\n<li>Changed: Free-plan premium settings now remain visible with disabled UI, including <code>Paid only<\/code> badges, while server-side save and runtime enforcement prevent unavailable features from being used on <code>free<\/code>.<\/li>\n<li>Fixed: Free-plan endpoint cards now show an explicit upgrade message with plans CTA, with updated locale catalogs.<\/li>\n<li>Fixed: Premium runtime enforcement now blocks VIES, reverse charge, XML directory saving, automatic sending and webhook execution on <code>free<\/code> while preserving stored values for paid-plan reactivation.<\/li>\n<li>Changed: Membership entrypoints <code>PMPro<\/code> and <code>Cozmos<\/code> can now coexist without forced mutual reset, with integration bootstrap updated to support both providers in the same installation.<\/li>\n<li>Fixed: PMPro and Cozmos addon bootstrap now supports late loading after <code>init<\/code>, restoring correct field\/provider initialization after moving <code>wc_el_inv-after_init<\/code> to the proper lifecycle point.<\/li>\n<li>Fixed: Provider enqueue is now re-run after membership addon loading so late-loaded providers are registered before downstream order\/tax flows use them.<\/li>\n<li>Fixed: Composer autoloaders for core and local addons now use explicit unique suffixes, preventing class-name collisions when multiple POP addons are loaded together.<\/li>\n<li>Changed: Plan-based gating has been realigned for <code>basic<\/code>, <code>growth<\/code> and <code>pro<\/code> across settings, runtime checks and integration cards, including <code>Paid only<\/code> visibility, upgrade messages, country-specific PEPPOL notices and dependency notices for Fatture in Cloud receipts\/warehouse cards.<\/li>\n<li>Fixed: <code>basic<\/code> now correctly enables credit notes, XML directory, reverse charge\/VIES, POP SdI\/PEPPOL automations, webhooks and activation of <code>SdI<\/code> \/ <code>PEPPOL<\/code>, while unsupported endpoints show the explicit upgrade message.<\/li>\n<li>Fixed: <code>growth<\/code> and higher plans now consistently show the PEPPOL country-specific notice whenever the plan allows activation but the configured country is not eligible.<\/li>\n<li>Added: Pro-only dependency notices for <code>Fatture in Cloud (receipts)<\/code> and <code>Fatture in Cloud (warehouse management)<\/code> when the base FIC integration is not active, with localized strings across supported languages.<\/li>\n<li>Fixed: <code>to\/*<\/code> addon bootstrap hardening now covers late loading after <code>init<\/code> for Fatture in Cloud, Aruba, SdI PEC, FIC Receipts and FIC Stock, including immediate execution of internal <code>init<\/code> jobs registered via addon loaders.<\/li>\n<li>Added: Targeted tests for post-<code>init<\/code> addon loader behavior and test bootstrap action stubs; full local suite passing.<\/li>\n<li>Fixed: Fatture in Cloud payment-account handling now avoids undefined-property warnings on missing <code>payAccountID<\/code> mappings and re-validates payment account data after filters before building the API payload.<\/li>\n<\/ul>\n\n<h4>6.7.5 - 11\/03\/2026<\/h4>\n\n<ul>\n<li>Fix: SweetAlert2 admin assets are now loaded only on POP plugin pages, preventing conflicts with other admin plugins that use different SweetAlert2 versions.<\/li>\n<\/ul>\n\n<h4>6.7.4 - 11\/03\/2026<\/h4>\n\n<ul>\n<li>Change: admin SweetAlert2 confirm and notification buttons now use plugin-consistent styling<\/li>\n<li>Fix: PMPro applies stamp duty after rivalsa so stamp duty does not affect rivalsa calculation<\/li>\n<li>Change: PMPro admin order shows stamp duty and rivalsa values as read-only reference fields with a checkout consistency notice<\/li>\n<li>Fix: PMPro admin order save repairs taxes only when tax calculation is enabled, the order is not sent and totals are inconsistent<\/li>\n<li>Fix: XML stamp duty by customer force-apply remains limited to invoice orders and excludes credit notes<\/li>\n<li>Change: Integrations &gt; Entrypoint cards are now visible independently from allowed-addon license checks; activation remains gated by allowed add-ons and account configuration.<\/li>\n<li>Add: New WooCommerce Entrypoint card (native integration) with documentation link and active\/disabled visual state based on WooCommerce availability.<\/li>\n<li>Change: Integrations tooltips now show a dedicated pre-wizard message when account setup is incomplete, while preserving context-specific messages after wizard completion.<\/li>\n<li>Fix: VIES VAT normalization now supports alphanumeric EU VAT formats in both WooCommerce checkout and PMPro VIES checks.<\/li>\n<li>Change: PMPro Council Directive tax-rate check now uses normalized VAT\/country values before VIES validation.<\/li>\n<li>Change: Settings &gt; Numeration helper text updated from \u201cRecommended 4 (you can leave it blank)\u201d to \u201cEnter a value from 1 to 6.\u201d with updated locale catalogs.<\/li>\n<li>Fix: Invoice next-number candidate scan now continues when a recent WooCommerce order is outside the active series, instead of stopping early.<\/li>\n<li>Fix: Shared numeration yearly scope now also applies when \"Reset the numbers at each year change\" is enabled (even if year suffix is disabled), preventing historical previous-year numbers from affecting current-year assignment.<\/li>\n<li>Fix: Updated translation catalogs (it_IT, fr_FR, es_ES) and rebuilt locale binaries (.mo) for new integration and numeration strings.<\/li>\n<\/ul>\n\n<h4>6.7.3 - 04\/03\/2026<\/h4>\n\n<ul>\n<li>Add: Native response helpers <code>safeJsonDecode<\/code> and <code>prefixNativeFlowMessage<\/code> to centralize robust JSON parsing and channel-prefixed diagnostics.<\/li>\n<li>Change: SDI\/PEPPOL create-and-send user-facing errors now use clear channel prefixes (<code>SDI:<\/code> \/ <code>PEPPOL:<\/code>) with simplified messages, while technical detail remains in logs\/payload fields.<\/li>\n<li>Fix: SDI (<code>InvoiceApi::createAndSendInvoice<\/code>) response handling is now hardened for invalid\/malformed JSON and missing properties, with safer UUID extraction and no contract-breaking output changes.<\/li>\n<li>Fix: PEPPOL (<code>PeppolApi::createAndSendUblInvoice<\/code>) response handling is now hardened for invalid\/malformed JSON and mixed response shapes, including guarded access to nested <code>data<\/code> fields.<\/li>\n<li>Fix: PEPPOL state check (<code>PeppolApi::stateInvoice<\/code>) now safely parses mixed response bodies and falls back gracefully when body is not valid JSON.<\/li>\n<li>Add: <code>CloudApi<\/code> JSON parser helper (<code>parsePopApiJsonBody<\/code>) for internal no-breaking normalization and decode-error tracking.<\/li>\n<li>Fix: <code>CloudApi<\/code> error path now returns consistent JSON-safe fallback payloads when upstream body is not valid JSON (<code>error<\/code>, <code>status_code<\/code>, <code>decode_error<\/code>, <code>raw<\/code>) without changing successful v2 response formats.<\/li>\n<li>Fix: <code>CloudApi<\/code> integration JSON handling now validates shape before reading <code>xml_string<\/code>, avoiding silent\/fatal failures on unexpected payloads.<\/li>\n<li>Fix: Admin native-actions UI (<code>assets\/js\/admin.js<\/code>) now uses robust <code>fetch<\/code> parsing with <code>response.text()<\/code> fallback when response is not JSON, preventing generic JSON parse crashes and preserving actionable toasts.<\/li>\n<li>Add: Unit tests for new native helpers (<code>safeJsonDecode<\/code>, <code>prefixNativeFlowMessage<\/code>) and for <code>CloudApi<\/code> parser behavior on valid\/invalid\/non-string inputs.<\/li>\n<li>Fix: Updated translation catalogs (it_IT, fr_FR, es_ES) for new simplified runtime strings and rebuilt locale binaries (<code>.mo<\/code>).<\/li>\n<\/ul>\n\n<h4>6.7.2 - 25\/02\/2026<\/h4>\n\n<ul>\n<li>Fix: Integration cards for Aruba, Fatture in Cloud (core\/receipts\/stock), and SDI via PEC are now correctly disabled for non-Pro accounts.<\/li>\n<li>Fix: Integration toggle AJAX now validates option names against a whitelist and blocks unsupported option writes.<\/li>\n<li>Fix: Integration toggle AJAX now enforces account-level and integration-status checks before enabling add-ons, preventing invalid activations.<\/li>\n<li>Fix: Add-on options are now normalized at runtime (license\/plan\/status aware) to reset stale active flags after plan or integration status changes.<\/li>\n<li>Fix: Active invoice channel resolution now requires both option enabled and add-on plugin loaded (Fatture in Cloud, Aruba, SDI via PEC), preventing false-active channels.<\/li>\n<li>Fix: PMPro admin order save now avoids resetting existing user billing\/fiscal metas when POP fields are submitted empty from the order edit screen.<\/li>\n<li>Fix: Cozmos PMS checkout scripts are now enqueued using registration-page context detection (including <code>[pms-register]<\/code>) instead of relying only on query params.<\/li>\n<li>Fix: Cozmos PMS tax callbacks now fail-safe when PMS Pro Tax classes are unavailable, preventing fatal errors on non-Pro or inactive-license setups.<\/li>\n<li>Change: Removed unused <code>PMS_IN_Tax_Extra_Fields<\/code> instantiations in Cozmos filters callbacks.<\/li>\n<li>Add: New cross-provider candidate resolver for invoice next-number alignment via <code>wc_el_inv-next_number_last_assigned_candidate_for_series<\/code>.<\/li>\n<li>Add: Candidate utilities now track number\/timestamp\/provider\/order_id and apply deterministic tie-break (timestamp, number, order_id).<\/li>\n<li>Change: PMPro and Cozmos next-number integrations now contribute structured candidates (chronological winner) instead of max-number merges.<\/li>\n<li>Add: Unit tests for candidate chain propagation, chronological selection, tie-break behavior, and legacy integer-filter fallback.<\/li>\n<li>Fix: Tests bootstrap now stubs FIC\/Aruba\/SDI-PEC plugin classes so integration-channel tests reflect runtime <code>class_exists<\/code> conditions.<\/li>\n<li>Add: Centralized SDI\/PEPPOL context helpers in Integrations (<code>getNormalizedShopCountry<\/code>, <code>isUblCountry<\/code>, <code>isSdiCountryContext<\/code>, <code>isPeppolCountryContext<\/code>, <code>isSdiContext<\/code>, <code>isPeppolContext<\/code>) and replaced duplicated context checks across WC, PMPro, Cozmos, admin filters, and order list actions.<\/li>\n<li>Change: SDI context detection now includes third-party SDI channels (Fatture in Cloud and Aruba) in addition to native SDI channels.<\/li>\n<li>Fix: In PEPPOL context, SDI field (<code>billing_sdi_type<\/code>) is now consistently hidden in checkout\/profile\/admin areas (WC, PMPro, Cozmos), including label\/description visibility where applicable.<\/li>\n<li>Fix: Cozmos checkout\/UI guardrails for SDI field visibility in PEPPOL context, including fixes for residual label\/description rendering and stability improvements for field toggling flows.<\/li>\n<li>Fix: SDI field validation (<code>La PEC o il Codice Destinatario ...<\/code>) now runs only in SDI context and is skipped in PEPPOL context for WC\/PMPro\/Cozmos checkout flows.<\/li>\n<li>Fix: WC PEPPOL private-customer actions now correctly disable XML generate\/view\/download actions while keeping PDF available; related PEPPOL private warning behavior aligned in order table\/order actions.<\/li>\n<li>Fix: Hardened PEPPOL country checks to avoid undefined-country-index warnings in settings (<code>pageSettingsFields.php<\/code>) and to support robust UBL-country detection.<\/li>\n<li>Fix: WooCommerce email section \"Tax information\" now renders its info block with styled container for better readability (<code>color #636363<\/code>, <code>border #e5e5e5<\/code>, <code>padding 12px<\/code>).<\/li>\n<li>Add: Extended unit test coverage for new integration\/context helpers and channel behavior (including FIC\/Aruba SDI context), plus test bootstrap\/order stubs alignment; full unit suite passing.<\/li>\n<li>Fix: SDI\/PEPPOL context resolution is now mutually exclusive with shop-country precedence to handle edge cases where legacy SDI-only add-ons (FIC\/Aruba) remain enabled after switching store country to PEPPOL.<\/li>\n<li>Change: PEPPOL detection in WooCommerce tax-information\/admin billing views is now aligned to global store context (not per-order billing country) for consistent visibility rules.<\/li>\n<li>Fix: Cozmos checkout JS field toggling now guards null elements before <code>classList<\/code> operations, preventing runtime errors during invoice-type transitions.<\/li>\n<li>Fix: Added defensive <code>isset<\/code> checks when forcing SDI field hidden state in Cozmos billing fields to avoid PHP warnings\/notices in filtered edge cases.<\/li>\n<li>Fix: In PEPPOL context, Tax Code (<code>billing_tax_code<\/code>) is now consistently hidden across WooCommerce\/PMPro\/Cozmos checkout-profile-admin-order views, aligned with SDI absence rules.<\/li>\n<li>Change: In PEPPOL context, CF-related settings are now hidden from Integration settings (<code>Disable Fiscal Code<\/code>, <code>Verify Tax Code<\/code>, <code>Disable PEC\/SDI<\/code>) to avoid misleading configuration paths.<\/li>\n<li>Change: Runtime localization now forces PEPPOL-safe flags (<code>disable_pec_sdi=on<\/code>, <code>disable_cf=on<\/code>, <code>active_js_cf_check=off<\/code>) for consistent frontend behavior.<\/li>\n<li>Change: <code>assets\/js\/cf\/codice-fiscale.js<\/code> is now enqueued only when <code>invoice_active_js_cf_check=on<\/code> and SDI context is active (WooCommerce, PMPro, Cozmos).<\/li>\n<li>Fix: PEPPOL checkout validation\/process\/store flows now ignore and clear Tax Code persistence for classic\/block paths where required, preventing hidden-field validation regressions.<\/li>\n<li>Fix: Cozmos CF checks now fail-safe when the Tax Code input is absent, avoiding JS runtime errors in PEPPOL-hidden flows.<\/li>\n<li>Fix: In PEPPOL checkout (non-IT), <code>billing_invoice_type<\/code> is no longer dropped when VAT\/Tax Code are empty, ensuring \"Customer type\" remains persisted and correctly visible in order details.<\/li>\n<li>Fix: PMPro checkout now resets <code>billing_company<\/code> when customer type is switched to <code>private<\/code> in PEPPOL context, preventing stale company value carry-over.<\/li>\n<li>Fix: PMPro server-side persistence now forcibly clears <code>billing_company<\/code> for PEPPOL + <code>billing_invoice_type=private<\/code> (checkout and renewal sync), keeping order\/user meta aligned with latest customer selection.<\/li>\n<\/ul>\n\n<h4>6.7.1 - 18\/02\/2026<\/h4>\n\n<ul>\n<li>Fix: POP API quota exceeded responses now show a readable quota-limit message instead of raw JSON output.<\/li>\n<li>Add: Dedicated quota-limit UI message for wp_die with bold title, quota usage details, and actionable upgrade\/refresh steps.<\/li>\n<li>Fix: Admin error email for quota-limit events now sends a clear human-readable message instead of raw API JSON.<\/li>\n<li>Add: New translation strings for quota-limit title\/messages in POT and PO catalogs (it_IT, fr_FR, es_ES).<\/li>\n<li>Add: Unit test coverage for quota-error payload parsing, detection, message formatting, and HTML output.<\/li>\n<li>Change: Replaced legacy WooPop\/WooPOP\/WooPoP naming with POP in user-facing localized strings across PHP\/JS, file headers, and comments (without changing technical identifiers).<\/li>\n<li>Fix: Updated affected translation catalogs and rebuilt locale binaries for changed domains (.po\/.mo).<\/li>\n<li>Fix: Bootstrap environment loading now fails safely in dev mode when <code>config\/environments\/dev.php<\/code> is missing (admin notice + early return), preventing unintended fallback to production config.<\/li>\n<li>Add: PMPro admin order screen now includes on-demand billing sync buttons in \"Invoice Fields\" to recover missing POP fiscal\/billing data from the linked user profile.<\/li>\n<li>Add: PMPro admin order save flow now supports two explicit sync modes from user profile (<code>fill_missing<\/code>, <code>overwrite<\/code>) before persisting order metas.<\/li>\n<li>Change: POP profile invoice fields are now centralized in a single global WordPress user profile block (shared across providers), with one save path to user meta <code>billing_*<\/code>.<\/li>\n<li>Fix: Removed duplicate PMPro profile show\/save hooks to avoid multi-source profile saves and key collisions on shared POP billing fields.<\/li>\n<li>Fix: In WordPress user profile screens (<code>profile.php<\/code>, <code>user-edit.php<\/code>), duplicated WC\/PMPro POP fields are now forced read-only via disabled state while keeping the centralized global POP block editable.<\/li>\n<li>Add: Admin profile hardening script to enforce disabled duplicated provider fields and inject a contextual notice with anchor link to the centralized POP section.<\/li>\n<\/ul>\n\n<h4>6.7.0 - 17\/02\/2026<\/h4>\n\n<ul>\n<li>Add: DB advisory lock helpers based on MySQL\/MariaDB GET_LOCK\/RELEASE_LOCK to prevent concurrent duplicate create\/send\/upload actions.<\/li>\n<li>Fix: Fatture in Cloud send flow now requires explicit docID and wfc-issued_send_document=false; removed implicit docID fallback from stored document meta.<\/li>\n<li>Fix: Fatture in Cloud create flow now uses atomic lock guard to avoid duplicate issued documents under concurrent Ajax\/Cron execution.<\/li>\n<li>Fix: Added channel guards to SDI\/PEPPOL\/FIC status callbacks so native\/addon flows run only when their integration channel is effectively active.<\/li>\n<li>Fix: Hardened _invoice_sent writes across channels (SDI native, PEPPOL, Aruba, SDI via PEC, FIC) by requiring minimum success\/coherence conditions before setting sent.<\/li>\n<li>Fix: Added recurring cron cleanup for inactive\/disabled upload schedules (FIC, Aruba, SDI via PEC) to avoid orphan scheduled events.<\/li>\n<li>Fix: Fatture table invoice number rendering now only shows dismiss icon when both order_number_invoice and formatted number are missing, with recovery from formatted where possible.<\/li>\n<li>Add: Native SDI\/PEPPOL timeout-pending flow with explicit admin recovery actions in order list (Confirm UUID \/ Cancel timeout).<\/li>\n<li>Add: New admin AJAX actions confirmNativeSendWithUuid and cancelNativeTimeoutPending to finalize or clear timeout-pending state safely.<\/li>\n<li>Add: Native timeout helper set (meta keys\/channel prefix\/timeout detection) and centralized timeout pending metadata management.<\/li>\n<li>Fix: SDI and PEPPOL create\/send flows now mark timeout-pending on timeout-like provider responses and clear pending state on successful UUID save.<\/li>\n<li>Fix: SDI and PEPPOL create\/send error responses now include readable provider detail extracted from raw payload data when available.<\/li>\n<li>Change: Timeout pending UUID input in native actions UI is now full-width with explicit spacing before recovery buttons.<\/li>\n<li>Fix: getNextInvoiceNumber now aligns stale next numeration values to max(next, last_assigned+1) for the active series, preventing duplicates and backward numbering.<\/li>\n<li>Add: series-aware duplicate check now uses WooCommerce order queries (HPOS compatible), comparing type\/prefix\/year context against the latest assigned order.<\/li>\n<li>Add: provider-level series hooks for PMPro and Cozmos addons via wc_el_inv-next_number_already_assigned and wc_el_inv-next_number_last_assigned_for_series.<\/li>\n<li>Add: Extended unit test coverage for timeout helpers, native error detail extraction, resolver hardening edge cases, and wrapper\/adapter behavior.<\/li>\n<li>Fix: Resolver hardening for invalid filter outputs (channels status\/priority), empty priorities, non-string priority entries, and normalized shop country handling.<\/li>\n<\/ul>\n\n<h4>6.6.2 - 13\/02\/2026<\/h4>\n\n<ul>\n<li>Fix: WooCommerce Blocks checkout now reliably saves POP additional billing fields into order meta during checkout completion.<\/li>\n<li>Fix: Restored JS validation flow for invoice fields in block checkout after the legacyId refactor regression.<\/li>\n<li>Fix: In PEPPOL context, billing_sdi_type is now always ignored\/emptied on save for both WooCommerce classic and block checkout flows.<\/li>\n<li>Fix: In PEPPOL context, _billing_sdi_type and related SdI labels\/help text are hidden in WooCommerce admin billing edit\/view.<\/li>\n<li>Add: New \"Tax information\" section on order confirmation, rendered after billing address for both classic and block checkout.<\/li>\n<li>Change: Tax information output now appears only when fiscally meaningful data is present (company\/freelance with VAT, private with tax code).<\/li>\n<li>Removed: Legacy billing-address formatting hooks for POP tax fields replaced by dedicated Tax information rendering.<\/li>\n<\/ul>\n\n<h4>6.6.1 - 12\/02\/2026<\/h4>\n\n<ul>\n<li>Add: isCheckout and isAccountPage utility<\/li>\n<li>Add: overrides filter \"wc_el_inv-language_force_apply\" for default PDF language<\/li>\n<li>Add: billingFields.php to pmpro addon<\/li>\n<li>Fix: Harden PMPro product provider by validating membership level objects before accessing properties, preventing fatal errors when SKU\/name data is missing.<\/li>\n<li>Fix: Sanitize empty value in $refundFee array<\/li>\n<li>Fix: pmpro chckout scripts<\/li>\n<li>Fix: pmpro admin label undefined field_name<\/li>\n<li>Fix: PMPro renewals now always restore billing\/fiscal data (private: codice fiscale; company\/freelance: P.IVA\/SDI) from user or previous order, avoiding loss when SDI is absent.<\/li>\n<li>Change: document date now always uses emission time (now); od_date uses operation date for invoices or linked document date for credit notes; invoice_date for credit notes uses the linked invoice date.<\/li>\n<li>Removed: hook 'wfc-create-invoice_datetime-invoice' to prevent external overrides on od_date.<\/li>\n<\/ul>\n\n<h4>6.6.0 - 23\/01\/2026<\/h4>\n\n<ul>\n<li>Fix: run checkout block validation\/save hooks only when WooCommerce is active.<\/li>\n<li>Fix: guard checkout block loading so the plugin doesn\u2019t load WC blocks when only PMPro is used.<\/li>\n<li>Fix: pass the provider to Invoice API, Peppol, and Webhook actions in the order list to support non-WooCommerce providers.<\/li>\n<\/ul>\n\n<h4>6.5.9 - 20\/01\/2026<\/h4>\n\n<ul>\n<li>Add: PEPPOL via POP action to check document state from the admin with new stateInvoice AJAX endpoint and UI button.<\/li>\n<li>Fix: Applied wc_el_inv-invoice_progressive_file_number filter when generating PDFs and pass context (pdf\/xml) to the hook.<\/li>\n<li>Fix: Use peppol_pop-{type}_uuid meta key when handling PEPPOL POP documents to read the correct UUID.<\/li>\n<\/ul>\n\n<h4>6.5.8 - 08\/01\/2026<\/h4>\n\n<ul>\n<li>Add: resolveOrder<\/li>\n<li>Fix: disableInvoiceOnOrderTotalZero, add support for auto completed order<\/li>\n<li>Fix: getNature and getRefN<\/li>\n<\/ul>\n\n<h4>6.5.7 - 23\/12\/2025<\/h4>\n\n<ul>\n<li>Add: Freshworks widget<\/li>\n<li>Fix: PMPro update fields from admin<\/li>\n<li>Fix: Aruba - ArgumentCountError: Too few arguments to function \"WooPoPToFattureArubaJobsScheduledNotify\"<\/li>\n<li>Fix: Added mergeOrdersById in src\/Admin\/XmlOrderListTable.php to aggregate results without duplicates.<\/li>\n<\/ul>\n\n<h4>6.5.6 - 12\/12\/2025<\/h4>\n\n<ul>\n<li>Add: localization fr_FR.po<\/li>\n<li>Fix: CF check and add setCustomValidity message<\/li>\n<li>Fix: Limit order search queries to bounded pages and meta lookups to prevent timeouts on stores with many orders while still allowing direct invoice\/order number lookups.<\/li>\n<li>Fix: Sync PMPro billing fields with PMPro meta, force invoice date on success, update translations<\/li>\n<\/ul>\n\n<h4>6.5.5 - 03\/12\/2025<\/h4>\n\n<ul>\n<li>Fix: PMPro - save invoice number from admin<\/li>\n<\/ul>\n\n<h4>6.5.4 - 03\/12\/2025<\/h4>\n\n<ul>\n<li>Fix: vendor error<\/li>\n<\/ul>\n\n<h4>6.5.4 - 03\/12\/2025<\/h4>\n\n<ul>\n<li>Fix: vendor error<\/li>\n<\/ul>\n\n<h4>6.5.3 - 03\/12\/2025<\/h4>\n\n<ul>\n<li>Add: update Fatture in Cloud SDK<\/li>\n<li>Fix: lista_errori from notifications<\/li>\n<li>Fix: extend WC_EL_INV_UBL_COUNTRIES<\/li>\n<li>Fix: reactivated 'wc_el_inv-options-capability' filter<\/li>\n<li>Fix: support for custom customer type<\/li>\n<li>Fix: Force attachments for custom emails and normalize XML handling<\/li>\n<li>Fix: integrations image references<\/li>\n<li>Fix: PMPro - separate checkout\/renewal logics<\/li>\n<li>Fix: PMPro - fix running during webhooks only<\/li>\n<li>Fix: PMPro - pop_pmproAdjustRenewalTax_CouncilDirective_2006_112_EC return order<\/li>\n<li>Fix: PMPro - check in pmpro_after_checkout order $orderProvider instanceof POPxPMPro\\Providers\\Order<\/li>\n<li>Fix: PMPro - add fallback 'invoice' to all get_billing_choice_type()<\/li>\n<li>Fix: PMPro - fix edit order url<\/li>\n<li>Add: Allow updating the invoice number from the admin order edit screen.<\/li>\n<\/ul>\n\n<h4>6.5.2 - 22\/10\/2025<\/h4>\n\n<ul>\n<li>Fix: Removed unintended exit statement that caused script termination in certain cases.<\/li>\n<\/ul>\n\n<h4>6.5.1 - 22\/10\/2025<\/h4>\n\n<ul>\n<li>Fix: \"GeneralFields\" Class not found to addon\/for\/pmpro\/inc\/snippets\/billing-fields-in-order.php:200<\/li>\n<\/ul>\n\n<h4>6.5.0 - 22\/10\/2025<\/h4>\n\n<ul>\n<li>Add: checkAndUpdateFormattedNumber to update the invoice number (if needed) when the xml is generated<\/li>\n<li>Add: sdi_pop-invoice_validation_errors contains invoice validation errors<\/li>\n<li>Add: shopCountry check for apply Bollo and Rivalsa<\/li>\n<li>Add: error message for UUID exist<\/li>\n<li>Fix: save formatted number invoice and credit note on save metabox<\/li>\n<li>Fix: getXmlFromOrder - added action and method parameter check to correctly return JSON response from integrations<\/li>\n<li>Fix: postal code to XML for PEPPOL<\/li>\n<li>Fix: retry request, only one request for integration<\/li>\n<li>Improved: Stamp duty and INPS surcharge handling in PMPro checkout\nAdded dynamic management of stamp duty and INPS surcharge during the Paid Memberships Pro checkout process.\nFees are now calculated and added to the order before gateway processing, with proper tax exclusion.\nMetadata for both fees are stored in the order for accurate invoicing and reporting.<\/li>\n<\/ul>\n\n<h4>6.4.0 - 01\/09\/2025<\/h4>\n\n<ul>\n<li>Fix: Uncaught Error: Class &gt; fattureincloud\/src\/Jobs.php:122<\/li>\n<\/ul>\n\n<h4>6.3.9 - 25\/09\/2025<\/h4>\n\n<ul>\n<li>Fix: getXmlFromOrder xml for integrations - error (param string is array)<\/li>\n<li>Fix: Error Uncaught ArgumentCountError: Too few arguments to function ..inc\/wc\/filters.php:218<\/li>\n<li>Fix: condition for Invoice not generated message<\/li>\n<\/ul>\n\n<h4>6.3.8 - 22\/09\/2025<\/h4>\n\n<ul>\n<li>Add: allowed reverse charge for growth level<\/li>\n<li>Fix: minor fix<\/li>\n<\/ul>\n\n<h4>6.3.7 - 04\/09\/2025<\/h4>\n\n<ul>\n<li>Fix: sdi via pec Progressive file number generator<\/li>\n<li>Fix: sdi via pec Progressive file number generator<\/li>\n<li>Fix: output_buffering XML generator<\/li>\n<li>Fix: POP billing fields current value from user logged in<\/li>\n<li>Add: customer email to popapi payload<\/li>\n<\/ul>\n\n<h4>6.3.6 - 01\/09\/2025<\/h4>\n\n<ul>\n<li>Fix: Init frontend block<\/li>\n<\/ul>\n\n<h4>6.3.5 - 29\/08\/2025<\/h4>\n\n<ul>\n<li>Fix: invoiceFields loadEvent from checkout standard<\/li>\n<\/ul>\n\n<h4>6.3.4 - 28\/08\/2025<\/h4>\n\n<ul>\n<li>Fix: minor fix<\/li>\n<\/ul>\n\n<h4>6.3.3 - 28\/08\/2025<\/h4>\n\n<ul>\n<li>Add: POP checkout fields for WooCommerce Block<\/li>\n<li>Add: extra log for cron job<\/li>\n<li>Fix: various minor fix<\/li>\n<\/ul>\n\n<h4>6.3.2 - 09\/08\/2025<\/h4>\n\n<ul>\n<li>Fix: count error for \"temp_order_filtered\" options<\/li>\n<\/ul>\n\n<h4>6.3.1 - 07\/08\/2025<\/h4>\n\n<ul>\n<li>Fix: getListKeyValue support code key<\/li>\n<\/ul>\n\n<h4>6.3.0 - 07\/08\/2025<\/h4>\n\n<ul>\n<li>Fix: order customer display name and edit link<\/li>\n<li>Fix: added invoice number param to sdi-via-pop\/document-preserve<\/li>\n<li>Fix: sdi_pop_notifications visibility<\/li>\n<li>Fix: check invoice send on uploadInvoice() (sdi via pec)<\/li>\n<li>Fix: product get meta<\/li>\n<li>Fix: FIC get invoice date from CreateXml::dateInvoice (change visibility method)<\/li>\n<li>Add: admin notice for WC prices include tax<\/li>\n<li>Add: support multi provider for JOBS<\/li>\n<li>Add: notice for reviews<\/li>\n<li>Add: log and list errors to notificationsInvoice<\/li>\n<li>Add: added functionality for batch downloads with AJAX<\/li>\n<li>Add: added API key management system and ability to create new API keys<\/li>\n<li>Add: support for PMPro as a provider for generating invoices and credit notes<\/li>\n<li>Add: SdI via POP - check to avoid sending if the invoice already has a uuid, and check notifications based on current uuid<\/li>\n<li>Improved: creation of progressive file number<\/li>\n<li>Improved: remove inline scripts (integration and wizard)<\/li>\n<li>Improved: extend extra address info for fatture in cloud - add file integration.js, wizard.js<\/li>\n<\/ul>\n\n<h4>6.2.5 - 14\/07\/2025<\/h4>\n\n<ul>\n<li>Fix: Call to a member function format() on null - InvoiceFields.php:788<\/li>\n<li>Add: support for revolut_cc to getPaymentMethodInvoiceCode<\/li>\n<li>Add: Support for San Marino, XML creation and SdI submission for companies and freelancers, PDF creation for private clients<\/li>\n<li>Improved: SdI via POP notification error message - add error list<\/li>\n<\/ul>\n\n<h4>6.2.4 - 09\/07\/2025<\/h4>\n\n<ul>\n<li>Fix: filterRefundedOrders for multi refund<\/li>\n<li>Fix: get_invoice_sent, get_invoice_sent_timestamp, set_invoice_sent and set_invoice_sent_timestamp order id (refund order id used)<\/li>\n<li>Fix: error \"Provider name is required\"<\/li>\n<\/ul>\n\n<h4>6.2.3 - 08\/07\/2025<\/h4>\n\n<ul>\n<li>Fix: src\/WooCommerce\/Providers\/OrderRefund get_order_number_invoice meta key<\/li>\n<li>Fix: credit note action for SdI via POP and Webhook<\/li>\n<li>Fix: style actions button<\/li>\n<\/ul>\n\n<h4>6.2.2 - 07\/07\/2025<\/h4>\n\n<ul>\n<li>Add: Webhook integration (POP \u2192 Webhook) \u2013 automatically send invoice data to external services via JSON or XML.<\/li>\n<li>Add: Added UI on popapi.io &gt; My Account &gt; Integrations &gt; POP to Webhook &gt; Connect to create and manage custom webhooks (name, URL, format).<\/li>\n<li>Add: Plugin settings section under Advanced &gt; Webhook to activate webhooks and configure webhook ID.<\/li>\n<li>Add: Option to enable CRON-based automation for webhook data delivery.<\/li>\n<li>Add: Flattened JSON structure for better compatibility with Zapier, Make.com, Google Sheets and other no-code tools.<\/li>\n<li>Add: Arrays (e.g., order_items) are now dynamically indexed (order_items_0, order_items_1, etc.) for easier parsing.<\/li>\n<li>Add: Proper Content-Type header based on selected format (JSON or XML).<\/li>\n<li>Add: Fallback error message if webhook is not properly configured or data is missing.<\/li>\n<li>Improved: Better separation of logic for encoding and sending webhook data for maintainability and clarity.<\/li>\n<\/ul>\n\n<p>= 6.2.1 -  &hellip;<\/p>","raw_excerpt":"Automate European e-invoicing for e-commerce: generate XML &amp; PDF invoices, send via SdI and PEPPOL, manage compliance with API credits.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/103276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=103276"}],"author":[{"embeddable":true,"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/popdev"}],"wp:attachment":[{"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=103276"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=103276"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=103276"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=103276"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=103276"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/srd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=103276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}