{"id":390782,"date":"2026-10-25T09:33:52","date_gmt":"2026-10-25T09:33:52","guid":{"rendered":"https:\/\/es.wordpress.org\/plugins\/faro-factu-tax-details\/"},"modified":"2026-10-25T09:46:32","modified_gmt":"2026-10-25T09:46:32","slug":"faro-factu-datos","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/faro-factu-datos\/","author":23581855,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.4.2","stable_tag":"0.4.2","tested":"7.1.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Faro Factu \u2013 Tax Details","header_author":"FaroWP","header_description":"Collects and validates your customers' tax details in WooCommerce: NIF, NIE and CIF with real validation, company name, intra-EU VAT number, tax QR and CSV export for your accountant.","assets_banners_color":"0f223d","last_updated":"2026-10-25 09:46:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/farowp.com\/faro-factu-datos","header_author_uri":"https:\/\/farowp.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":86,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.4.2":{"tag":"0.4.2","author":"farowp","date":"2026-10-25 09:46:32","revision":3764261}},"upgrade_notice":{"0.4.0":"<p>Adds the getting started guide and the customer type selector with conditional fields.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3764226,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3764226,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3764241,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3764241,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.4.2"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Checkout with the tax ID field and its validation.","2":"Fiscal data shown in the order screen.","3":"Readiness check for Spanish e-invoicing rules.","4":"AEAT verification QR generator.","5":"CSV export of the fiscal data."}},"plugin_section":[],"plugin_tags":[16236,2012,19126,247447,286],"plugin_category":[45],"plugin_contributors":[286458],"plugin_business_model":[],"class_list":["post-390782","plugin","type-plugin","status-publish","hentry","plugin_tags-invoices","plugin_tags-tax","plugin_tags-vat","plugin_tags-verifactu","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-farowp","plugin_committers-farowp"],"banners":{"banner":"https:\/\/ps.w.org\/faro-factu-datos\/assets\/banner-772x250.png?rev=3764241","banner_2x":"https:\/\/ps.w.org\/faro-factu-datos\/assets\/banner-1544x500.png?rev=3764241","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/faro-factu-datos\/assets\/icon-128x128.png?rev=3764226","icon_2x":"https:\/\/ps.w.org\/faro-factu-datos\/assets\/icon-256x256.png?rev=3764226","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Faro Factu \u2013 Datos fiscales adds the fiscal data a Spanish invoice needs and validates it before the customer pays. It does not issue invoices and it does not send anything to the Spanish tax agency (AEAT): it makes sure the data you are going to invoice is correct.<\/p>\n\n<p><strong>What it does<\/strong><\/p>\n\n<ul>\n<li>Adds a tax ID field (NIF, NIE or CIF) to the checkout, in both the block checkout and the classic checkout.<\/li>\n<li>Validates the document for real, not with a regular expression: it checks the control letter of a NIF or NIE and the control digit of a CIF, so a typo or an invented number is rejected before payment.<\/li>\n<li>Optionally asks for the company name and the intra-EU VAT number.<\/li>\n<li>Saves the data on the order (compatible with HPOS) and shows it in the order screen, in the order emails and in the orders list.<\/li>\n<li>Lets the shop staff correct the tax ID of an existing order without touching the database.<\/li>\n<li>Exports the fiscal data of any date range to a CSV that opens cleanly in Excel and LibreOffice.<\/li>\n<li>Generates the AEAT verification QR for invoices issued with another system, following the four mandatory parameters (NIF, serial number, date and amount). That is the QR Veri*factu (also written Verifactu) asks for, generated here without issuing the invoice.<\/li>\n<\/ul>\n\n<p><strong>What it does not do<\/strong><\/p>\n\n<ul>\n<li>It does not issue invoices, it does not chain records and it does not send anything to the AEAT.<\/li>\n<li>It does not call any external service. No data leaves your server.<\/li>\n<\/ul>\n\n<p><strong>Requirements<\/strong><\/p>\n\n<ul>\n<li>WordPress 6.5 or later.<\/li>\n<li>WooCommerce 8.6 or later.<\/li>\n<li>PHP 7.4 or later.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin does not connect to any external service and does not send data anywhere.<\/p>\n\n<h3>Credits<\/h3>\n\n<ul>\n<li>QR generation uses <a href=\"https:\/\/github.com\/kazuhikoarase\/qrcode-generator\">qrcode-generator<\/a> by Kazuhiko Arase, licensed under the MIT license. The library is bundled in <code>assets\/js\/qrcode.js<\/code>.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install it from the Plugins screen.<\/li>\n<li>Activate it through the Plugins screen in WordPress.<\/li>\n<li>Go to WooCommerce \u2192 Tax details and set your tax ID, your territory and whether the tax ID is mandatory.<\/li>\n<li>Open WooCommerce \u2192 Diagnostics to check the store is ready.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20issue%20invoices%3F\"><h3>Does this plugin issue invoices?<\/h3><\/dt>\n<dd><p>No. It collects and validates the fiscal data. Issuing, chaining and sending invoices to the AEAT is the job of a billing system (a SIF, in Spanish).<\/p><\/dd>\n<dt id=\"is%20it%20mandatory%20for%20my%20customers%20to%20enter%20a%20tax%20id%3F\"><h3>Is it mandatory for my customers to enter a tax ID?<\/h3><\/dt>\n<dd><p>No, it is optional by default. You can make it mandatory in the settings, but for a shop selling to the general public it is usually better to leave it optional and only validate it when it is filled in.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20checkout%3F\"><h3>Does it work with the block checkout?<\/h3><\/dt>\n<dd><p>Yes. It registers the fields through the WooCommerce Additional Checkout Fields API, so they appear in the block checkout, and it also supports the classic checkout.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20hpos%3F\"><h3>Does it work with HPOS?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares compatibility with WooCommerce custom order tables.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20the%20data%20if%20i%20uninstall%20the%20plugin%3F\"><h3>What happens to the data if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>The plugin settings are deleted. The fiscal data stored in each order is kept, because it is part of the record of the sale.<\/p><\/dd>\n<dt id=\"does%20it%20validate%20vat%20numbers%20against%20vies%3F\"><h3>Does it validate VAT numbers against VIES?<\/h3><\/dt>\n<dd><p>No. It validates the format and, for Spanish numbers, the control digit. Checking a VAT number against VIES requires an online call to the European Commission, which this plugin does not make.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.4.2<\/h4>\n\n<ul>\n<li>Fix: the Spanish tax ID is sanitized before it is validated and stored (settings walkthrough, QR generator and order screen).<\/li>\n<li>Tidy: development test scripts are no longer shipped in the released package.<\/li>\n<\/ul>\n\n<h4>0.4.1<\/h4>\n\n<ul>\n<li>Fix: the QR generator nonce is unslashed and sanitized before it is verified.<\/li>\n<li>Fix: the EU VAT number is sanitized and validated before it is saved on the order.<\/li>\n<li>Fix: removed load_plugin_textdomain(), no longer needed since WordPress 4.6.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>New: three-step getting started guide when the plugin is activated.<\/li>\n<li>New: customer type selector (individual, Spanish company, EU company) with conditional fields.<\/li>\n<li>Fix: the CSV export now includes orders that only carry an EU VAT number.<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>The diagnostics and the product card adapt to the store territory: the paid product is not advertised where Veri*factu does not apply or the tax is not covered.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Diagnostics: new check for an active Veri*factu billing system, with an informational card about the paid product.<\/li>\n<\/ul>\n\n<h4>0.2.3<\/h4>\n\n<ul>\n<li>WordPress notices are back in their natural place, above the plugin header.<\/li>\n<\/ul>\n\n<h4>0.2.2<\/h4>\n\n<ul>\n<li>WordPress and third-party notices were shown below the header (reverted in 0.2.3).<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Header with the official FaroWP lighthouse icon.<\/li>\n<li>WordPress notices no longer overlap the header.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Panel redesign: brand header, tabs and cards shared by all four screens.<\/li>\n<li>CSV export now includes orders that only carry an EU VAT number.<\/li>\n<li>Fixed the block-checkout field registration (unsupported attribute).<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First version: tax ID fields for block and classic checkout, real NIF\/NIE\/CIF validation, order meta, emails, admin correction, readiness check, QR generator and CSV export.<\/li>\n<\/ul>","raw_excerpt":"Validates Spanish NIF, NIE and CIF at WooCommerce checkout, adds the Verifactu (Veri*factu) QR and exports the data.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/390782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=390782"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/farowp"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=390782"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=390782"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=390782"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=390782"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=390782"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=390782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}