{"id":219990,"date":"2025-04-20T07:47:25","date_gmt":"2025-04-20T07:47:25","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/merit-aktiva-synchronization\/"},"modified":"2026-06-27T07:09:18","modified_gmt":"2026-06-27T07:09:18","slug":"synchronization-merit-aktiva","status":"publish","type":"plugin","link":"https:\/\/is.wordpress.org\/plugins\/synchronization-merit-aktiva\/","author":15090818,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.3","stable_tag":"1.2.3","tested":"7.0","requires":"6.7","requires_php":"8.0","requires_plugins":null,"header_name":"Orders Synchronization for Merit Aktiva","header_author":"freelancermartin","header_description":"Wordpressi pistikprogramm e-poe omanikele Merit Aktiva ja Woocommerce andmete s\u00fcnkroniseerimiseks.","assets_banners_color":"b3b3b5","last_updated":"2026-06-27 07:09:18","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/freelancermartin.com\/et","header_plugin_uri":"https:\/\/freelancermartin.com\/et","header_author_uri":"https:\/\/freelancermartin.com\/et","rating":0,"author_block_rating":0,"active_installs":10,"downloads":1402,"num_ratings":0,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0":{"tag":"1.0","author":"freelancermartin","date":"2025-07-18 11:57:22"},"1.0.0.1":{"tag":"1.0.0.1","author":"freelancermartin","date":"2025-07-18 11:57:22"},"1.2.0":{"tag":"1.2.0","author":"freelancermartin","date":"2026-06-18 15:06:45"},"1.2.1":{"tag":"1.2.1","author":"freelancermartin","date":"2026-06-18 15:24:06"},"1.2.2":{"tag":"1.2.2","author":"freelancermartin","date":"2026-06-22 06:01:14"},"1.2.3":{"tag":"1.2.3","author":"freelancermartin","date":"2026-06-27 07:09:18"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3330195,"resolution":"128x128","location":"assets","locale":"","width":1024,"height":1024}},"assets_banners":{"banner-1544\u00d7500.jpg":{"filename":"banner-1544\u00d7500.jpg","revision":3330195,"resolution":"1544x500","location":"assets","locale":"","width":4627,"height":2987},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3330195,"resolution":"772x250","location":"assets","locale":"","width":4627,"height":2987}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.0.0.1","1.2.0","1.2.1","1.2.2","1.2.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3577469,"resolution":"1","location":"assets","locale":"","width":1841,"height":910},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3577469,"resolution":"2","location":"assets","locale":"","width":1849,"height":904},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3577469,"resolution":"3","location":"assets","locale":"","width":1850,"height":919},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3577469,"resolution":"4","location":"assets","locale":"","width":1705,"height":890}},"screenshots":[]},"plugin_section":[262246],"plugin_tags":[2526,27630,26218,267732,286],"plugin_category":[44,54],"plugin_contributors":[241070],"plugin_business_model":[],"class_list":["post-219990","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-accounting","plugin_tags-estonia","plugin_tags-invoicing","plugin_tags-merit-aktiva","plugin_tags-woocommerce","plugin_category-discussion-and-community","plugin_category-security-and-spam-protection","plugin_contributors-freelancermartin","plugin_committers-freelancermartin"],"banners":{"banner":"https:\/\/ps.w.org\/synchronization-merit-aktiva\/assets\/banner-772x250.jpg?rev=3330195","banner_2x":"https:\/\/ps.w.org\/synchronization-merit-aktiva\/assets\/banner-1544\u00d7500.jpg?rev=3330195","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/synchronization-merit-aktiva\/assets\/icon-128x128.png?rev=3330195","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/synchronization-merit-aktiva\/assets\/screenshot-1.png?rev=3577469","caption":""},{"src":"https:\/\/ps.w.org\/synchronization-merit-aktiva\/assets\/screenshot-2.png?rev=3577469","caption":""},{"src":"https:\/\/ps.w.org\/synchronization-merit-aktiva\/assets\/screenshot-3.png?rev=3577469","caption":""},{"src":"https:\/\/ps.w.org\/synchronization-merit-aktiva\/assets\/screenshot-4.png?rev=3577469","caption":""}],"raw_content":"<!--section=description-->\n<p>This plugin synchronizes WooCommerce orders with Merit Aktiva accounting software. A sales invoice is automatically created in Merit Aktiva for every new paid order \u2014 no manual work required.<\/p>\n\n<p>Requires at least the Merit PRO package.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Automatic invoice creation in Merit Aktiva for every new WooCommerce order (cron, every 5 minutes)<\/li>\n<li>Manual synchronization from the admin panel<\/li>\n<li>Estonian banking reference number generation (7-3-1 algorithm) with configurable prefix<\/li>\n<li>B2B support: company name, Estonian business registry code (validated) and VAT number at checkout<\/li>\n<li>B2C support: private customer name and contact details<\/li>\n<li>Payment method mapping (WooCommerce payment method \u2192 Merit Aktiva payment code)<\/li>\n<li>Automatic credit invoice when an order is fully refunded<\/li>\n<li>Invoice PDF download directly from Merit Aktiva within the WC order view<\/li>\n<li>Invoice reconciliation: detect discrepancies between WC and Merit Aktiva<\/li>\n<li>Sync history log with pagination<\/li>\n<li>API connection test in settings<\/li>\n<li>Settings export and import (JSON)<\/li>\n<li>WooCommerce HPOS (High-Performance Order Storage) support<\/li>\n<li>Toast notifications for sync results (top-right corner, disappear after 5s)<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the Merit Aktiva API v2 (aktiva.merit.ee).<\/p>\n\n<p>Data transmitted:\n* API authentication (ApiId, timestamp, HMAC-SHA256 signature)\n* Invoice data: customer name, address, email, phone number\n* Product codes, descriptions, quantities, prices, VAT\n* Reference number (Estonian 7-3-1 standard), invoice number, payment due date<\/p>\n\n<p>Data is transmitted every time an invoice is sent (automatically or manually).<\/p>\n\n<p>Service provider: Merit Aktiva (merit.ee)\nTerms of Service: https:\/\/www.merit.ee\/wp-content\/uploads\/2024\/12\/merit-software-terms-of-use-2024.pdf\nPrivacy Policy: https:\/\/www.merit.ee\/wp-content\/uploads\/2024\/12\/privacy-statement-2024.pdf<\/p>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>WordPress 6.7 or newer<\/li>\n<li>WooCommerce 8.6 or newer<\/li>\n<li>PHP 8.0 or newer<\/li>\n<li>Merit Aktiva account with API access (PRO package or higher)<\/li>\n<\/ul>\n\n<h3>Configuration<\/h3>\n\n<p><strong>API Settings:<\/strong>\n* API ID and API Key \u2014 from your Merit Aktiva account\n* Reference number prefix \u2014 prepended to the reference number (digits only)\n* Payment deadline in days\n* Contact person \u2014 displayed on the invoice<\/p>\n\n<p><strong>Payment Method Mapping:<\/strong>\nLink WooCommerce payment methods to Merit Aktiva payment codes (e.g. \"Bank Transfer\" \u2192 \"T\").<\/p>\n\n<p><strong>Business customers at checkout:<\/strong>\nCustomers can check \"I am a company\", enter a business registry code and VAT number. The registry code is validated using the Estonian business registry algorithm (mod-11).<\/p>\n\n<h3>Usage<\/h3>\n\n<p>Orders are synchronized automatically every 5 minutes. For manual sync:\n* All orders: Merit Aktiva Sync \u2192 Settings \u2192 \"Sync all orders\"\n* Single order: WooCommerce \u2192 Orders \u2192 open order \u2192 \"Send invoice to Merit Aktiva\"<\/p>\n\n<h3>Support<\/h3>\n\n<p>Email: freelancermartin1@gmail.com\nWebsite: https:\/\/freelancermartin.com\/et<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Download the plugin ZIP file<\/li>\n<li>Go to WordPress admin \u2192 Plugins \u2192 Add New \u2192 Upload Plugin \u2192 select the ZIP<\/li>\n<li>Activate the plugin<\/li>\n<li>Go to Merit Aktiva Sync \u2192 Settings<\/li>\n<li>Enter your Merit Aktiva API ID and API Key (found in Merit Aktiva \u2192 Settings \u2192 Integrations)<\/li>\n<li>Save and test the API connection<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Fix: RoundingAmount calculation now includes VAT (TaxAmount) per line so the comparison against the gross WooCommerce order total is correct when prices are stored excluding tax<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Fix: invoice amount mismatch error resolved by sending Merit API RoundingAmount field \u2014 corrects 0.01\u20130.02 floating-point rounding differences between WooCommerce order total and sum of individual line items<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Fix: myplugin\/ field prefix renamed to merit-aktiva\/ with automatic database migration<\/li>\n<li>Fix: text domain corrected to synchronization-merit-aktiva<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Toast notifications for sync results (red\/green, top-right corner, disappears after 5s)<\/li>\n<li>Fix: incorrect NotTDCustomer value for B2C customers (false \u2192 true)<\/li>\n<li>Fix: trim whitespace from customer name<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Configurable reference number prefix in settings<\/li>\n<li>Fix: RefNo now generated using 7-3-1 algorithm (Merit API requirement)<\/li>\n<li>Payment method mapping moved into general settings<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Redux-style admin UI (dark sidebar, cards)<\/li>\n<li>Sync history log with pagination (15 entries per page)<\/li>\n<li>Automatic API test after saving settings<\/li>\n<li>Settings export and import<\/li>\n<li>Invoice reconciliation between Merit Aktiva and WooCommerce<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>WooCommerce order export to Merit Aktiva<\/li>\n<li>Automatic cron synchronization<\/li>\n<\/ul>","raw_excerpt":"Automatically synchronize WooCommerce orders with Merit Aktiva accounting software.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/219990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=219990"}],"author":[{"embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/freelancermartin"}],"wp:attachment":[{"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=219990"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=219990"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=219990"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=219990"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=219990"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=219990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}