{"id":152909,"date":"2022-03-28T19:39:34","date_gmt":"2022-03-28T19:39:34","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/fiscomm-purs-e-fiscalisation\/"},"modified":"2026-06-02T19:59:39","modified_gmt":"2026-06-02T19:59:39","slug":"fiscomm-purs-e-fiscalisation","status":"publish","type":"plugin","link":"https:\/\/ky.wordpress.org\/plugins\/fiscomm-purs-e-fiscalisation\/","author":20204022,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Fiscomm PURS E-Fiscalisation","header_author":"Square One Consulting","header_description":"Allows users to automate Fiscalisation of invoices for the Serbian Tax Authority (PURS). Plugin is intended as interface for connecting to the Fiscomm backend services.","assets_banners_color":"0b3640","last_updated":"2026-06-02 19:59:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/fiscomm.rs","header_author_uri":"https:\/\/fiscomm.rs\/","rating":0,"author_block_rating":0,"active_installs":100,"downloads":7077,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"fiscomm","date":"2022-03-25 16:10:48"},"0.1.2":{"tag":"0.1.2","author":"fiscomm","date":"2022-04-10 23:16:51"},"0.1.3":{"tag":"0.1.3","author":"fiscomm","date":"2022-04-18 15:18:55"},"1.2.0":{"tag":"1.2.0","author":"fiscomm","date":"2026-06-02 12:00:06"},"1.2.1":{"tag":"1.2.1","author":"fiscomm","date":"2026-06-02 19:59:39"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2699083,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2699083,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":2699083,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0","0.1.2","0.1.3","1.2.0","1.2.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[184741,265522,146746,286],"plugin_category":[45],"plugin_contributors":[208972],"plugin_business_model":[],"class_list":["post-152909","plugin","type-plugin","status-publish","hentry","plugin_tags-fiskalizacija","plugin_tags-racuni","plugin_tags-srbija","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-fiscomm","plugin_committers-fiscomm"],"banners":{"banner":"https:\/\/ps.w.org\/fiscomm-purs-e-fiscalisation\/assets\/banner-772x250.png?rev=2699083","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/fiscomm-purs-e-fiscalisation\/assets\/icon-128x128.png?rev=2699083","icon_2x":"https:\/\/ps.w.org\/fiscomm-purs-e-fiscalisation\/assets\/icon-256x256.png?rev=2699083","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Fiscomm PURS E-Fiscalisation connects your WooCommerce store to the <a href=\"https:\/\/fiscomm.rs\/\">Fiscomm E-Fiscalization API<\/a> and automatically submits fiscal invoices to the Serbian Tax Authority (Poreska Uprava Republike Srbije \u2014 PURS) when orders are completed or refunded.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li>Automatic fiscalization on WooCommerce order completion and refund<\/li>\n<li>Support for standard, advance, and proforma invoices<\/li>\n<li>Support for B2B invoices (taxpayer identification number \u2014 PIB)<\/li>\n<li>Configurable buyer ID fields (individual \/ company)<\/li>\n<li>Per-product tax labels with support for variable products<\/li>\n<li>Product SKU prefix \/ suffix support<\/li>\n<li>Training mode for sandbox testing<\/li>\n<li>Detailed fiscalization log per order<\/li>\n<li>Serbian (sr_RS) and English (en_US) translations included<\/li>\n<li>WooCommerce HPOS (High Performance Order Storage) compatible<\/li>\n<\/ul>\n\n<h4>Third-party services<\/h4>\n\n<p>This plugin connects to the <strong>Fiscomm E-Fiscalization API<\/strong> (https:\/\/fiscomm.rs\/) to submit fiscal invoices to the Serbian Tax Authority. By using this plugin you agree to send order data (amounts, tax rates, buyer information) to that service on every fiscalized order.<\/p>\n\n<ul>\n<li>Fiscomm service: https:\/\/fiscomm.rs\/<\/li>\n<li>Fiscomm terms of use: https:\/\/fiscomm.rs\/uslovi-koriscenja\/<\/li>\n<li>Fiscomm privacy policy: https:\/\/fiscomm.rs\/politika-privatnosti\/<\/li>\n<\/ul>\n\n<p>An active Fiscomm API key is required. You can obtain one at https:\/\/fiscomm.rs\/.<\/p>\n\n<h4>Developer extensibility<\/h4>\n\n<p>The plugin exposes documented WordPress action and filter hooks so that developers can customise fiscalization behaviour without modifying plugin files. See <code>docs\/HOOKS_REFERENCE.md<\/code> in the plugin folder for the full reference.<\/p>\n\n<p>Bundled third-party libraries and their licenses are documented in <code>THIRD_PARTY_LICENSES.md<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>fiscomm-purs-e-fiscalisation<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the <strong>Plugins &gt; Add New<\/strong> screen in WordPress.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Make sure WooCommerce is installed and active \u2014 this plugin requires WooCommerce.<\/li>\n<li>Navigate to <strong>WooCommerce &gt; Settings &gt; Fiscomm<\/strong> and enter your Fiscomm API key.<\/li>\n<li>Configure the desired invoice type, tax labels, and other options.<\/li>\n<li>Use <strong>Training Mode<\/strong> to test the integration against the Fiscomm sandbox before going live.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20work%20without%20woocommerce%3F\"><h3>Does this plugin work without WooCommerce?<\/h3><\/dt>\n<dd><p>No. This plugin requires WooCommerce to function. It will not initialise if WooCommerce is not active.<\/p><\/dd>\n<dt id=\"where%20do%20i%20get%20a%20fiscomm%20api%20key%3F\"><h3>Where do I get a Fiscomm API key?<\/h3><\/dt>\n<dd><p>You can obtain an API key by registering at https:\/\/fiscomm.rs\/.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20refunds%3F\"><h3>Does the plugin support refunds?<\/h3><\/dt>\n<dd><p>Yes. Refund invoices are automatically submitted to PURS when a WooCommerce refund is processed (configurable).<\/p><\/dd>\n<dt id=\"is%20woocommerce%20hpos%20supported%3F\"><h3>Is WooCommerce HPOS supported?<\/h3><\/dt>\n<dd><p>Yes. The plugin is compatible with WooCommerce High Performance Order Storage (HPOS \/ custom order tables).<\/p><\/dd>\n<dt id=\"what%20data%20is%20sent%20to%20the%20fiscomm%20api%3F\"><h3>What data is sent to the Fiscomm API?<\/h3><\/dt>\n<dd><p>Order amounts, tax rates, and optionally buyer identification data (name, PIB, address) are sent to the Fiscomm API to generate a fiscal invoice. No payment card data is ever transmitted.<\/p><\/dd>\n<dt id=\"can%20i%20test%20without%20submitting%20real%20invoices%3F\"><h3>Can I test without submitting real invoices?<\/h3><\/dt>\n<dd><p>Yes. Enable <strong>Training Mode<\/strong> in the plugin settings to send all invoices to the Fiscomm sandbox environment instead of the live PURS system.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<p>1.2.1\n- Added API key info card in plugin settings showing account details fetched from Fiscomm.\n- Added debug logging for API key verification request and response when debug logging is enabled.\n- Fixed QR code rendering in fiscalization confirmation emails (restored default renderer).\n- Fixed double-fiscalization of refunds when multiple refunds exist on the same order.\n- Fixed advance invoice finalization so a failed meta save cannot trigger a duplicate API call on retry.\n- Fixed buyer ID fields not being recognized when values contain leading\/trailing whitespace.\n- Meta box fields on fiscalized orders are now editable so buyer identification can be added before processing a refund.\n- Added warning notice in the meta box when refund fiscalization is enabled but buyer ID is not set.\n- Updated WordPress compatibility to 6.8.<\/p>\n\n<p>1.2.0\n- Removed third-party CDN loading for admin assets; now uses bundled local assets only.\n- Aligned plugin version metadata across plugin header, core constant, and readme stable tag.<\/p>\n\n<p>1.1.1\n- Added public extensibility hooks for receipt lifecycle and metadata persistence.\n- Added hook reference and WordPress hook audit documentation.\n- Improved CI quality gates and strengthened initial test coverage.<\/p>\n\n<p>1.1.1\n- Added support for default values for all settings\n- Refactored fiscalization settings and added logging functionality\n- Removed unused AddSettingsTab trait and related settings tab.\n- Introduced new system settings section for logging configuration.\n- Added custom logging functionality to track fiscalization processes.\n- Updated various methods to handle new logging and settings features.\n- Enhanced order refund handling with automatic fiscalization on status change.\n- Added new language files for English and Serbian translations.\n- Cleaned up deprecated code and improved overall structure.\n1.0.0\n- Initial release\n0.3.22\n- Call to undefined method WC_Order_Item_Fee::get_product() fix\n0.3.21\n- When country is empty, defaults to Serbia\n- Added more information about fiscalization under Shipping details in order\n0.3.20\n- Fixed exclude from fiscalization for variation products\n- Added new way of using SKU with Product Name (SKU - Product Name)\n0.3.19\n- API Key change support with saved settings\n0.3.18\n- Advance invoices order warning fix\n0.3.17\n- Fix labels not showing per product\n0.3.16\n- Product SKU prefix &amp; suffix support\n0.3.15\n- Reasons for not fiscalizable orders\n0.3.14\n- Option for hiding Tax Label section on Product page\n- Disable fiscalization for orders outside of Serbia\n- Synchronized Buyer IDS with documentation\n- Refund show fix\n0.3.13\n- Adjusted timeout for API requests to 30 seconds\n0.3.12\n- WooCommerce HPOS compatibility\n- Tax labels caching\n0.3.11\n- Added settings for using product SKU instead of product name in receipts\n0.3.10\n- Added number format for rounding on 2 decimals for Shipping\n0.3.9\n- Admin notice when Woocommerce is not installed\n- Fixed buyerId sending without buyerId value\n0.3.8\n- Header and Footer text on receipts\n- Buyer ID is now optional fields for Refunds\n- Buyer ID is now shown even if only \"Refunds\" are enabled, and not \"PIB\"\n0.3.7\n- Fixed get_product returning bool instead of product object\n0.3.6\n- Switched GuzzleHttp to wp_remote_post &amp; wp_remote_get for better compatibility\n0.3.5\n- Now supports disabling shipping item per payment method\n0.3.4\n- Added buyer cost center field in orders page\n0.3.3\n- Moved product specific tax labels to advanced tab\n- Added support for specific tax label for variable products\n0.3.2\n- Patched error on finalizing advance invoices (createInvoice method error)\n0.3.1\n- Removed sessions from the plugin\n0.3.0\n- Added support for advance invoices\n0.2.12\n- Fixed bug with woocommerce not saving Sell to specific countries setting\n0.2.11\n- Now supports only fee orders if Woocommerce Specific Fees are included in the settings\n0.2.10\n- Supports enabling of two decimals rounding in Woocommerce Specific Settings\n0.2.9\n- Added support for overriding default\/foreign tax labels for shipping invoice item\n0.2.8\n- Added support for adjusting exchange rate for foreign currencies\n0.2.1\n- Supports advance invoices\n- Added support for B2B invoices by adding additional Taxpayer Identification Number field.\n- Separated settings into sections for better readability\n0.2.0\n- Now supports multiple emails for training invoices\n- Added exclusive training mode \n0.1.4\n- Feature for setting the name of the invoice item for shipping.\n0.1.3\n- Added excluding shipping costs\n0.1.1\n- Fix for dropdown\n0.1.0\n- Released: March 4, 2022<\/p>","raw_excerpt":"WooCommerce connector for the Fiscomm E-Fiscalization API \u2014 automatically fiscalise Serbian Tax Authority (PURS) invoices on order completion.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/152909","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=152909"}],"author":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fiscomm"}],"wp:attachment":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=152909"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=152909"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=152909"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=152909"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=152909"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=152909"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}