{"id":283956,"date":"2026-03-11T09:23:47","date_gmt":"2026-03-11T09:23:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/invoicing-integration-for-ifirma-and-for-woocommerce\/"},"modified":"2026-05-25T09:17:24","modified_gmt":"2026-05-25T09:17:24","slug":"invoicing-integration-for-ifirma-and-woocommerce","status":"publish","type":"plugin","link":"https:\/\/it.wordpress.org\/plugins\/invoicing-integration-for-ifirma-and-woocommerce\/","author":23342730,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.20","stable_tag":"1.0.20","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Invoicing Integration for iFirma and WooCommerce","header_author":"Devikit","header_description":"WooCommerce integration with iFirma accounting system for Polish businesses.","assets_banners_color":"","last_updated":"2026-05-25 09:17:24","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/invoicing-integration-for-ifirma-and-woocommerce\/","header_author_uri":"https:\/\/devikit.pl\/","rating":5,"author_block_rating":0,"active_installs":10,"downloads":703,"num_ratings":2,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.11":{"tag":"1.0.11","author":"devikit","date":"2026-05-01 09:49:42"},"1.0.12":{"tag":"1.0.12","author":"devikit","date":"2026-05-04 04:54:34"},"1.0.13":{"tag":"1.0.13","author":"devikit","date":"2026-05-04 06:59:12"},"1.0.14":{"tag":"1.0.14","author":"devikit","date":"2026-05-04 07:10:20"},"1.0.15":{"tag":"1.0.15","author":"devikit","date":"2026-05-07 09:00:20"},"1.0.16":{"tag":"1.0.16","author":"devikit","date":"2026-05-07 09:06:27"},"1.0.18":{"tag":"1.0.18","author":"devikit","date":"2026-05-20 03:38:10"},"1.0.19":{"tag":"1.0.19","author":"devikit","date":"2026-05-20 08:11:41"},"1.0.2":{"tag":"1.0.2","author":"devikit","date":"2026-03-11 09:23:37"},"1.0.20":{"tag":"1.0.20","author":"devikit","date":"2026-05-25 09:17:24"},"1.0.3":{"tag":"1.0.3","author":"devikit","date":"2026-03-11 09:34:43"},"1.0.4":{"tag":"1.0.4","author":"devikit","date":"2026-03-11 10:31:42"},"1.0.5":{"tag":"1.0.5","author":"devikit","date":"2026-04-21 08:57:11"},"1.0.6":{"tag":"1.0.6","author":"devikit","date":"2026-04-22 04:38:37"},"1.0.7":{"tag":"1.0.7","author":"devikit","date":"2026-04-22 04:53:42"},"1.0.8":{"tag":"1.0.8","author":"devikit","date":"2026-04-29 04:20:03"},"1.0.9":{"tag":"1.0.9","author":"devikit","date":"2026-04-29 09:30:20"}},"upgrade_notice":{"1.0.19":"<p>Tested up to WordPress 7.0; no functional changes.<\/p>","1.0.18":"<p>Poprawka krytyczna dla u\u017cytkownik\u00f3w z zam\u00f3wieniami z poprzednich miesi\u0119cy: sync miesi\u0105ca ksi\u0119gowego dzia\u0142a\u0142 od 1.0.17, ale by\u0142 oparty o dat\u0119 wystawienia (dzi\u015b) zamiast dat\u0119 sprzeda\u017cy \u2014 teraz dzia\u0142a poprawnie.<\/p>","1.0.17":"<p>Wa\u017cna poprawka dla u\u017cytkownik\u00f3w wystawiaj\u0105cych faktury dla starszych zam\u00f3wie\u0144: wtyczka teraz automatycznie ustawia miesi\u0105c ksi\u0119gowy iFirma przed ka\u017cdym dokumentem, dzi\u0119ki czemu trafia on do w\u0142a\u015bciwego okresu rozliczeniowego.<\/p>","1.0.16":"<p>Minor readme updates; no functional changes.<\/p>","1.0.15":"<p>Minor readme updates; no functional changes.<\/p>","1.0.14":"<p>Empty postcode is sent as a harmless placeholder (<code>-<\/code>) so iFirma API accepts overseas addresses; customizable via filter.<\/p>","1.0.13":"<p>OSS: Greece delivery country now sent as EL (not GR) so iFirma accepts KrajDostawy.<\/p>","1.0.12":"<p>Readme screenshots updated; no functional changes.<\/p>","1.0.11":"<p>Greece (GR): iFirma <code>PrefiksUE<\/code> now uses VAT prefix EL so contractor sync succeeds when billing country is Greece.<\/p>","1.0.9":"<p>Reverse-charge note for selected third-country B2B orders; correct PDF endpoint on My Account for non-domestic invoices.<\/p>","1.0.8":"<p>Better rounding alignment for shops that enter catalog prices with tax included.<\/p>","1.0.7":"<p>Correct foreign-company document type in PLN, and fakturawaluta payload without NBP\/visibility when Waluta is PLN.<\/p>","1.0.6":"<p>Fixes for WDT invoice currency (Waluta) and EU-only PrefiksUE when syncing contractors to iFirma.<\/p>","1.0.5":"<p>NIP on invoices now also reads EU VAT ID and foreign Tax ID from meta fields of third-party plugins (e.g. WooCommerce EU VAT Number).<\/p>","1.0.4":"<p>Fix NIP save when WooCommerce passes WP_Post instead of WC_Order.<\/p>","1.0.3":"<p>Plugin title update.<\/p>","1.0.2":"<p>Editable NIP field in order meta box.<\/p>","1.0.1":"<p>5-minute email delay for KSeF, order column mismatch indicator, compiled translations.<\/p>","1.0.0":"<p>Initial release of the plugin.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3479867,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3479867,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3479867,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.11","1.0.12","1.0.13","1.0.14","1.0.15","1.0.16","1.0.18","1.0.19","1.0.2","1.0.20","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3521919,"resolution":"1","location":"assets","locale":"","width":2560,"height":1335},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3521919,"resolution":"10","location":"assets","locale":"","width":588,"height":668},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3521919,"resolution":"2","location":"assets","locale":"","width":2560,"height":1335},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3521919,"resolution":"3","location":"assets","locale":"","width":2560,"height":1326},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3521919,"resolution":"4","location":"assets","locale":"","width":2560,"height":1326},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3521919,"resolution":"5","location":"assets","locale":"","width":2560,"height":1334},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3521919,"resolution":"6","location":"assets","locale":"","width":2560,"height":1328},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3521919,"resolution":"7","location":"assets","locale":"","width":2560,"height":1330},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3521919,"resolution":"8","location":"assets","locale":"","width":2560,"height":1329},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3521919,"resolution":"9","location":"assets","locale":"","width":2560,"height":1333}},"screenshots":{"1":"Plugin settings","2":"Plugin settings","3":"Plugin settings","4":"Plugin settings","5":"Plugin settings","6":"Plugin settings","7":"Plugin settings","8":"Plugin settings","9":"Plugin settings","10":"Plugin settings"}},"plugin_section":[],"plugin_tags":[257513,12480,194202,19126,286],"plugin_category":[45],"plugin_contributors":[245825],"plugin_business_model":[],"class_list":["post-283956","plugin","type-plugin","status-publish","hentry","plugin_tags-ifirma","plugin_tags-invoice","plugin_tags-poland","plugin_tags-vat","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-devikit","plugin_committers-devikit","plugin_support_reps-devikitsupport"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/invoicing-integration-for-ifirma-and-woocommerce\/assets\/icon.svg?rev=3479867","icon":"https:\/\/ps.w.org\/invoicing-integration-for-ifirma-and-woocommerce\/assets\/icon.svg?rev=3479867","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/invoicing-integration-for-ifirma-and-woocommerce\/assets\/screenshot-1.png?rev=3521919","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-ifirma-and-woocommerce\/assets\/screenshot-2.png?rev=3521919","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-ifirma-and-woocommerce\/assets\/screenshot-3.png?rev=3521919","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-ifirma-and-woocommerce\/assets\/screenshot-4.png?rev=3521919","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-ifirma-and-woocommerce\/assets\/screenshot-5.png?rev=3521919","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-ifirma-and-woocommerce\/assets\/screenshot-6.png?rev=3521919","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-ifirma-and-woocommerce\/assets\/screenshot-7.png?rev=3521919","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-ifirma-and-woocommerce\/assets\/screenshot-8.png?rev=3521919","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-ifirma-and-woocommerce\/assets\/screenshot-9.png?rev=3521919","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/invoicing-integration-for-ifirma-and-woocommerce\/assets\/screenshot-10.png?rev=3521919","caption":"Plugin settings"}],"raw_content":"<!--section=description-->\n<p><strong>Invoicing Integration for iFirma and WooCommerce<\/strong> connects your WooCommerce store with the iFirma accounting system.<\/p>\n\n<p>Generate invoices from the order screen, download PDFs, and let customers download documents from My Account. The plugin supports WooCommerce Blocks checkout and HPOS.<\/p>\n\n<p>https:\/\/youtu.be\/XJUJdKuv8CA<\/p>\n\n<h4>Key Features (FREE)<\/h4>\n\n<ul>\n<li><strong>Manual Invoice Generation<\/strong> - Create invoices directly from WooCommerce order edit screen<\/li>\n<li><strong>Customer Synchronization<\/strong> - Sync customer data with iFirma contractors<\/li>\n<li><strong>NIP Field Support<\/strong> - Add NIP number field to checkout (compatible with nip-field-woocommerce plugin)<\/li>\n<li><strong>WooCommerce Blocks Support<\/strong> - Compatibility with Gutenberg checkout blocks<\/li>\n<li><strong>Advanced VAT Mapping<\/strong> - Map WooCommerce tax classes to iFirma VAT codes\/rates (23%, 8%, 5%, zw, 0%)<\/li>\n<li><strong>Lump Sum (Rycza\u0142t) Support<\/strong> - Add lump sum tax rate (rycza\u0142t) to invoice positions (global default + per product\/variation)<\/li>\n<li><strong>Invoice Download<\/strong> - Download PDFs directly from WordPress admin<\/li>\n<li><strong>Customer Download<\/strong> - Allow customers to download invoices from My Account \u2192 View Order<\/li>\n<li><strong>Detailed Logging<\/strong> - Track API communications for debugging<\/li>\n<li><strong>HPOS Compatible<\/strong> - Full support for WooCommerce High-Performance Order Storage<\/li>\n<\/ul>\n\n<h4>PRO Features<\/h4>\n\n<ul>\n<li><strong>Automatic Invoice Generation<\/strong> - Create invoices automatically on order status change<\/li>\n<li><strong>Automatic Proforma Invoices<\/strong> - Issue proformas automatically for selected statuses<\/li>\n<li><strong>Rachunki Support<\/strong> - Generate non-VAT documents (rachunki) when applicable<\/li>\n<li><strong>Email with PDF Attachments<\/strong> - Send documents to customers as PDF attachments<\/li>\n<li><strong>Bulk Operations<\/strong> - Generate documents and download PDFs for multiple orders with progress tracking<\/li>\n<li><strong>GTU \/ PKWiU \/ Units<\/strong> - Product-level fields + global defaults in settings<\/li>\n<li><strong>Global Invoice Notes<\/strong> - Define global invoice notes in settings (supports placeholders)<\/li>\n<li><strong>Priority Support<\/strong> - Direct access to our support team<\/li>\n<li><strong>Automatic Updates<\/strong> - Get new features and fixes automatically<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/devikit.pl\/produkt\/ifirma-woocommerce-pro\/\"><strong>Get PRO Version<\/strong><\/a><\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.8 or higher<\/li>\n<li>WooCommerce 5.0 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>Active iFirma account with API access<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to two third-party\/external services: iFirma API (for invoicing) and NBP API (for exchange rates).<\/p>\n\n<h4>What is iFirma API?<\/h4>\n\n<p>iFirma is a Polish online accounting system that provides invoicing and accounting services for businesses. This plugin uses their official API to:\n*   Create and manage customers (contractors) in your iFirma account.\n*   Generate invoices (FREE).\n*   Generate proformas and rachunki (PRO).\n*   Download document PDFs.<\/p>\n\n<h4>What data is sent and when?<\/h4>\n\n<p>The plugin sends the following data to iFirma API (<code>https:\/\/api.ifirma.pl\/<\/code>) in these situations:<\/p>\n\n<p><strong>When you click \"Create Invoice\" (or when automation triggers document generation in PRO version):<\/strong>\n*   Customer billing information: first name, last name, company name, VAT number (NIP), email, phone number, billing address (street, city, postal code, country).\n*   Order information: order items (product names, quantities, prices, VAT rates), shipping details, payment method, order date, order total.<\/p>\n\n<p><strong>When the plugin connects to iFirma API (on settings page load or when needed):<\/strong>\n*   Your API credentials entered in the plugin settings (for authentication).\n*   Requests to retrieve data required for issuing documents (e.g. templates\/series\/settings where applicable).<\/p>\n\n<p><strong>No data is sent automatically without your action in FREE version.<\/strong> The plugin communicates with iFirma API when:\n*   You manually create an invoice from the order screen.\n*   You open the plugin settings page (to test the connection and load configuration).\n*   You enable automatic document generation in PRO version (if installed).<\/p>\n\n<h4>Service provider information<\/h4>\n\n<ul>\n<li><strong>Service name:<\/strong> iFirma API<\/li>\n<li><strong>Service URL:<\/strong> https:\/\/www.ifirma.pl\/<\/li>\n<li><strong>API documentation:<\/strong> https:\/\/api.ifirma.pl\/<\/li>\n<li><strong>Terms of Service:<\/strong> https:\/\/pomoc.ifirma.pl\/pomoc-kategoria\/oferta-serwisu-ifirma\/regulaminy\/<\/li>\n<li><strong>Privacy Policy:<\/strong> https:\/\/www.ifirma.pl\/rodo\/polityka-prywatnosci-ifirma-pl\/<\/li>\n<\/ul>\n\n<h4>What is NBP API?<\/h4>\n\n<p>NBP (Narodowy Bank Polski) API is the Polish National Bank's public API that provides official exchange rates for foreign currencies. This plugin uses it to obtain exchange rates when generating invoices in foreign currencies (e.g. EUR, USD) or when issuing WDT\/OSS documents with non-PLN amounts. The rate is needed to convert amounts to PLN for iFirma according to Polish accounting rules.<\/p>\n\n<h4>What data is sent to NBP and when?<\/h4>\n\n<p><strong>When you create an invoice in a foreign currency<\/strong> (or when automation triggers it in PRO):\n*   The plugin sends a GET request to NBP API with the currency code (e.g. EUR, USD) and the invoice\/order date in the URL. No personal data, customer data, or order details are sent.\n*   Example URL: <code>https:\/\/api.nbp.pl\/api\/exchangerates\/rates\/A\/EUR\/2024-01-15\/?format=json<\/code>\n*   The response (exchange rate) is cached for 24 hours to reduce requests.<\/p>\n\n<p><strong>No data is sent to NBP without creating a document that requires a foreign currency rate.<\/strong> The request happens only when an invoice (or proforma\/rachunek in PRO) is being generated and the order currency is not PLN.<\/p>\n\n<h4>NBP service provider information<\/h4>\n\n<ul>\n<li><strong>Service name:<\/strong> NBP API (Narodowy Bank Polski)<\/li>\n<li><strong>Service URL:<\/strong> https:\/\/api.nbp.pl\/<\/li>\n<li><strong>API documentation:<\/strong> https:\/\/api.nbp.pl\/<\/li>\n<li><strong>Privacy Policy:<\/strong> https:\/\/nbp.pl\/o-nbp\/kontakt\/regulaminy\/<\/li>\n<\/ul>\n\n<p>By using this plugin, you acknowledge that customer and order data will be transmitted to iFirma for invoice generation purposes, and that currency codes and dates may be sent to NBP API to obtain exchange rates. You are responsible for ensuring compliance with applicable data protection laws (including GDPR) and informing your customers about this data processing.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/invoicing-integration-for-ifirma-and-woocommerce\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to WooCommerce \u2192 iFirma<\/li>\n<li>Enter your iFirma API keys and test the connection<\/li>\n<li>Configure VAT mapping and invoice settings<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20find%20my%20ifirma%20api%20keys%3F\"><h3>Where do I find my iFirma API keys?<\/h3><\/dt>\n<dd><p>Log in to your iFirma account and generate\/copy the keys in: Configuration \u2192 Extensions and integrations \u2192 API.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20woocommerce%20blocks%3F\"><h3>Does this work with WooCommerce Blocks?<\/h3><\/dt>\n<dd><p>Yes, the plugin is compatible with both classic checkout and WooCommerce Blocks checkout.<\/p><\/dd>\n<dt id=\"can%20customers%20download%20their%20invoices%3F\"><h3>Can customers download their invoices?<\/h3><\/dt>\n<dd><p>Yes, customers can download invoices from the My Account \u2192 View Order page after an invoice has been created.<\/p><\/dd>\n<dt id=\"is%20this%20compatible%20with%20nip%20field%20woocommerce%20plugin%3F\"><h3>Is this compatible with NIP Field WooCommerce plugin?<\/h3><\/dt>\n<dd><p>Yes. The plugin detects popular NIP field plugin and avoids duplicating the field.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.20<\/h4>\n\n<ul>\n<li>Fix: NIP field now saves correctly in WP Admin user profile and synchronises with My Account edit address (bidirectional sync).<\/li>\n<li>Fix: NIP is now populated when selecting a customer or clicking \"Load billing address\" in admin order edit screen.<\/li>\n<\/ul>\n\n<h4>1.0.19<\/h4>\n\n<ul>\n<li>Tested up to WordPress 7.0.<\/li>\n<\/ul>\n\n<h4>1.0.18<\/h4>\n\n<ul>\n<li>Fix: sync accounting month based on sale date (DataSprzedazy), not issue date \u2014 iFirma validates the sale date against the active accounting month, so syncing to today's date was a no-op for backdated orders.<\/li>\n<\/ul>\n\n<h4>1.0.17<\/h4>\n\n<ul>\n<li>Fix: automatically sync iFirma accounting month before creating any document (invoice, proforma, rachunek, WDT, foreign, OSS) so backdated orders are recorded in the correct accounting period instead of the current one.<\/li>\n<\/ul>\n\n<h4>1.0.16<\/h4>\n\n<ul>\n<li>Docs: minor readme updates.<\/li>\n<\/ul>\n\n<h4>1.0.15<\/h4>\n\n<ul>\n<li>Docs: minor readme updates.<\/li>\n<\/ul>\n\n<h4>1.0.14<\/h4>\n\n<ul>\n<li>Fix: contractor sync and invoices \u2014 empty billing postcode (<code>KodPocztowy<\/code>) rejected by iFirma API (\u201cadres.kodPocztowy nie mo\u017ce by\u0107 puste\u201d) while WooCommerce often has no postcode (e.g. UAE\/Dubai and other countries, or omitted at checkout); we now substitute a configurable non-empty placeholder (default <code>-<\/code>). Override via WordPress filter <code>devikit_ifirma_empty_postcode_placeholder<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.13<\/h4>\n\n<ul>\n<li>Fix: OSS invoices \u2014 iFirma rejects <code>KrajDostawy<\/code> \/ <code>Kontrahent.KodKraju<\/code> <strong>GR<\/strong> (\u201cNieprawid\u0142owy kraj dostawy\u2026 dwuliterowy kod ISO kraju z UE\u201d); WooCommerce uses <strong>GR<\/strong> for Greece but the EU\/VAT code expected in these fields is <strong>EL<\/strong> \u2014 same normalization as for <code>PrefiksUE<\/code>. Contractor <code>KodKraju<\/code> on sync also maps <strong>GR \u2192 EL<\/strong>.<\/li>\n<\/ul>\n\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Docs: readme screenshots section updated for WordPress.org asset screenshots (screenshot-1 through screenshot-10).<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Fix: contractor sync \/ WDT \u2014 Greek customers billing as <strong>GR<\/strong>: iFirma requires EU VAT prefix <strong>EL<\/strong>, not ISO <code>GR<\/code>; <code>Kontrahent.PrefiksUE<\/code> is now normalized (fixes \"Podana warto\u015b\u0107 Kontrahent.PrefiksUE przyjmuje nieprawid\u0142ow\u0105 warto\u015b\u0107\" when only a numeric tax\/VAT-like ID is entered).<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Fix: invoices for customers from Romania (RO) and Portugal (PT) failed with \"Podana warto\u015b\u0107 pola Jezyk przyjmuje nieprawid\u0142ow\u0105 warto\u015b\u0107\" \u2014 iFirma API does not support <code>ro<\/code> or <code>pt<\/code> language codes; both now fall back to <code>en<\/code> (English).<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>New: append \"Reverse charge\" (translatable) to invoice notes for orders billed <strong>outside Poland<\/strong> and <strong>outside the EU<\/strong> when a tax identifier (NIP \/ EU VAT \/ Tax ID) is saved on the order.<\/li>\n<li>Fix: customer <strong>My Account<\/strong> invoice PDF download uses the same iFirma document type as the admin button (<code>_ifirma_invoice_type<\/code>: foreign, OSS, WDT), not always domestic.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Fix: when WooCommerce prices are entered <strong>including tax<\/strong>, send gross unit prices to iFirma with <code>LiczOd<\/code> BRT (domestic, proforma, foreign currency, OSS, WDT, rachunek, corrections). Aligns document totals and VAT split with order totals charged at checkout.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Fix: non-Poland billing addresses use <code>fakturawaluta<\/code> (not domestic <code>fakturakraj<\/code>) even when the order is in PLN \u2014 avoids issuing Polish domestic invoices for foreign companies.<\/li>\n<li>Fix: <code>fakturawaluta<\/code> in PLN \u2014 do not send exchange-rate related fields (e.g. <code>KursWalutyWidoczny<\/code>, NBP rate); fixes iFirma error about exchange rate only applying to non-PLN invoices.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Fix: WDT invoices \u2014 add required API field Waluta and NBP rate when the document currency is not PLN.<\/li>\n<li>Fix: contractors and WDT \u2014 send Kontrahent.PrefiksUE only for valid EU member-state VAT prefixes; avoid invalid values for non-EU customers or non-EU tax IDs (iFirma API validation).<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Compatibility: resolve order tax identifier (NIP \/ EU VAT \/ foreign Tax ID) from multiple order meta keys so values saved by third-party plugins (WooCommerce EU VAT Number, nip-field-for-woocommerce, custom checkout fields, etc.) are sent to iFirma under the NIP label.<\/li>\n<li>New filters: <code>devikit_ifirma_order_tax_id_meta_keys<\/code> (customize the list of checked meta keys) and <code>devikit_ifirma_order_tax_id<\/code> (override the resolved value).<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fix: save_admin_order_nip - handle WP_Post passed by woocommerce_process_shop_order_meta in some WooCommerce versions<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Plugin title: Invoicing Integration for iFirma and WooCommerce<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Editable NIP field in order meta (admin order edit screen)<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>5-minute delay for automatic invoice email (KSeF processing)<\/li>\n<li>Order column: total mismatch indicator (order vs document sum) with tooltip<\/li>\n<li>Compiled translations (pl_PL.mo)<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Manual invoice generation<\/li>\n<li>Customer synchronization<\/li>\n<li>Advanced VAT mapping<\/li>\n<li>Customer invoice download<\/li>\n<li>NIP field support with compatibility<\/li>\n<li>HPOS compatibility<\/li>\n<li>WooCommerce Blocks checkout support<\/li>\n<\/ul>","raw_excerpt":"Seamless integration between WooCommerce and iFirma accounting system for Polish businesses.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/283956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=283956"}],"author":[{"embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/devikit"}],"wp:attachment":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=283956"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=283956"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=283956"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=283956"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=283956"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=283956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}