This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

Fiscomm PURS E-Fiscalisation

Description

Fiscomm PURS E-Fiscalisation connects your WooCommerce store to the Fiscomm E-Fiscalization API and automatically submits fiscal invoices to the Serbian Tax Authority (Poreska Uprava Republike Srbije — PURS) when orders are completed or refunded.

Key features

  • Automatic fiscalization on WooCommerce order completion and refund
  • Support for standard, advance, and proforma invoices
  • Support for B2B invoices (taxpayer identification number — PIB)
  • Configurable buyer ID fields (individual / company)
  • Per-product tax labels with support for variable products
  • Product SKU prefix / suffix support
  • Training mode for sandbox testing
  • Detailed fiscalization log per order
  • Serbian (sr_RS) and English (en_US) translations included
  • WooCommerce HPOS (High Performance Order Storage) compatible

Third-party services

This plugin connects to the Fiscomm E-Fiscalization API (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.

  • Fiscomm service: https://fiscomm.rs/
  • Fiscomm terms of use: https://fiscomm.rs/uslovi-koriscenja/
  • Fiscomm privacy policy: https://fiscomm.rs/politika-privatnosti/

An active Fiscomm API key is required. You can obtain one at https://fiscomm.rs/.

Developer extensibility

The plugin exposes documented WordPress action and filter hooks so that developers can customise fiscalization behaviour without modifying plugin files. See docs/HOOKS_REFERENCE.md in the plugin folder for the full reference.

Bundled third-party libraries and their licenses are documented in THIRD_PARTY_LICENSES.md.

Installation

  1. Upload the fiscomm-purs-e-fiscalisation folder to the /wp-content/plugins/ directory, or install the plugin through the Plugins > Add New screen in WordPress.
  2. Activate the plugin through the Plugins screen in WordPress.
  3. Make sure WooCommerce is installed and active — this plugin requires WooCommerce.
  4. Navigate to WooCommerce > Settings > Fiscomm and enter your Fiscomm API key.
  5. Configure the desired invoice type, tax labels, and other options.
  6. Use Training Mode to test the integration against the Fiscomm sandbox before going live.

FAQ

Does this plugin work without WooCommerce?

No. This plugin requires WooCommerce to function. It will not initialise if WooCommerce is not active.

Where do I get a Fiscomm API key?

You can obtain an API key by registering at https://fiscomm.rs/.

Does the plugin support refunds?

Yes. Refund invoices are automatically submitted to PURS when a WooCommerce refund is processed (configurable).

Is WooCommerce HPOS supported?

Yes. The plugin is compatible with WooCommerce High Performance Order Storage (HPOS / custom order tables).

What data is sent to the Fiscomm API?

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.

Can I test without submitting real invoices?

Yes. Enable Training Mode in the plugin settings to send all invoices to the Fiscomm sandbox environment instead of the live PURS system.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Fiscomm PURS E-Fiscalisation” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.2.0
– Removed third-party CDN loading for admin assets; now uses bundled local assets only.
– Aligned plugin version metadata across plugin header, core constant, and readme stable tag.

1.1.1
– Added public extensibility hooks for receipt lifecycle and metadata persistence.
– Added hook reference and WordPress hook audit documentation.
– Improved CI quality gates and strengthened initial test coverage.

1.1.1
– Added support for default values for all settings
– Refactored fiscalization settings and added logging functionality
– Removed unused AddSettingsTab trait and related settings tab.
– Introduced new system settings section for logging configuration.
– Added custom logging functionality to track fiscalization processes.
– Updated various methods to handle new logging and settings features.
– Enhanced order refund handling with automatic fiscalization on status change.
– Added new language files for English and Serbian translations.
– Cleaned up deprecated code and improved overall structure.
1.0.0
– Initial release
0.3.22
– Call to undefined method WC_Order_Item_Fee::get_product() fix
0.3.21
– When country is empty, defaults to Serbia
– Added more information about fiscalization under Shipping details in order
0.3.20
– Fixed exclude from fiscalization for variation products
– Added new way of using SKU with Product Name (SKU – Product Name)
0.3.19
– API Key change support with saved settings
0.3.18
– Advance invoices order warning fix
0.3.17
– Fix labels not showing per product
0.3.16
– Product SKU prefix & suffix support
0.3.15
– Reasons for not fiscalizable orders
0.3.14
– Option for hiding Tax Label section on Product page
– Disable fiscalization for orders outside of Serbia
– Synchronized Buyer IDS with documentation
– Refund show fix
0.3.13
– Adjusted timeout for API requests to 30 seconds
0.3.12
– WooCommerce HPOS compatibility
– Tax labels caching
0.3.11
– Added settings for using product SKU instead of product name in receipts
0.3.10
– Added number format for rounding on 2 decimals for Shipping
0.3.9
– Admin notice when Woocommerce is not installed
– Fixed buyerId sending without buyerId value
0.3.8
– Header and Footer text on receipts
– Buyer ID is now optional fields for Refunds
– Buyer ID is now shown even if only “Refunds” are enabled, and not “PIB”
0.3.7
– Fixed get_product returning bool instead of product object
0.3.6
– Switched GuzzleHttp to wp_remote_post & wp_remote_get for better compatibility
0.3.5
– Now supports disabling shipping item per payment method
0.3.4
– Added buyer cost center field in orders page
0.3.3
– Moved product specific tax labels to advanced tab
– Added support for specific tax label for variable products
0.3.2
– Patched error on finalizing advance invoices (createInvoice method error)
0.3.1
– Removed sessions from the plugin
0.3.0
– Added support for advance invoices
0.2.12
– Fixed bug with woocommerce not saving Sell to specific countries setting
0.2.11
– Now supports only fee orders if Woocommerce Specific Fees are included in the settings
0.2.10
– Supports enabling of two decimals rounding in Woocommerce Specific Settings
0.2.9
– Added support for overriding default/foreign tax labels for shipping invoice item
0.2.8
– Added support for adjusting exchange rate for foreign currencies
0.2.1
– Supports advance invoices
– Added support for B2B invoices by adding additional Taxpayer Identification Number field.
– Separated settings into sections for better readability
0.2.0
– Now supports multiple emails for training invoices
– Added exclusive training mode
0.1.4
– Feature for setting the name of the invoice item for shipping.
0.1.3
– Added excluding shipping costs
0.1.1
– Fix for dropdown
0.1.0
– Released: March 4, 2022