{"id":396281,"date":"2026-11-03T18:17:32","date_gmt":"2026-11-03T18:17:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/szamlama-for-woocommerce\/"},"modified":"2026-11-03T18:17:01","modified_gmt":"2026-11-03T18:17:01","slug":"szamlama-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/szamlama-for-woocommerce\/","author":16975756,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.8","stable_tag":"1.0.8","tested":"7.1.4","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Sz\u00e1ml\u00e1ma for WooCommerce","header_author":"Gelencs\u00e9r Istv\u00e1n","header_description":"Issue invoices, pro forma invoices, receipts and delivery notes from WooCommerce orders with the Sz\u00e1ml\u00e1ma online invoicing service (Hungarian NAV Online Sz\u00e1mla compliant).","assets_banners_color":"22324d","last_updated":"2026-11-03 18:17:01","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/szamlama.hu\/woocommerce-bovitmeny\/","header_author_uri":"https:\/\/gelencseristvan.hu\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":44,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.8":{"tag":"1.0.8","author":"gelenfarkas","date":"2026-11-03 18:17:01","revision":3782410}},"upgrade_notice":{"1.0.8":"<p>The automatic invoice of a status change (e.g. pro forma \u2192 invoice on Completed) is now sent to the customer in the WooCommerce e-mail, as a link instead of a PDF attachment.<\/p>","1.0.7":"<p>Security hardening of the forms; the failure notice appears only on the WooCommerce order screens.<\/p>","1.0.6":"<p>The tax ID of buyers outside the EU is now printed on the invoice.<\/p>","1.0.5":"<p>Long variation data in the line note is shortened (200 characters by default, adjustable); it no longer stops the invoice.<\/p>","1.0.4":"<p>First release on WordPress.org; from now on updates arrive through the WordPress updater. No functional change.<\/p>","1.0.3":"<p>OSS invoices for EU private customers with the VAT rate of their country; storno invoice link in the customer e-mails.<\/p>","1.0.2":"<p>Foreign VAT rates are no longer rounded to a Hungarian rate (no wrong invoice); company name without tax number, customer note condition, own e-mail texts, storno e-mail.<\/p>","1.0.1":"<p>Fixes invoicing of HUF orders with coupons (fractional unit prices were rejected).<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3782410,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3782410,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3782410,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3782410,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3782410,"resolution":"1","location":"assets","locale":"","width":1120,"height":1348},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3782410,"resolution":"2","location":"assets","locale":"","width":1060,"height":904},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3782410,"resolution":"3","location":"assets","locale":"","width":280,"height":608},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3782410,"resolution":"4","location":"assets","locale":"","width":1060,"height":208}},"screenshots":{"1":"Account settings: live and test keys, connection status, payment notifications.","2":"Automation rules with conditions.","3":"The Sz\u00e1ml\u00e1ma box on the order screen with the check before issuing.","4":"Payment method mapping."}},"plugin_section":[],"plugin_tags":[147641,12480,4891,59940,286],"plugin_category":[45],"plugin_contributors":[290543],"plugin_business_model":[],"class_list":["post-396281","plugin","type-plugin","status-publish","hentry","plugin_tags-hungary","plugin_tags-invoice","plugin_tags-nav","plugin_tags-szamla","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-gelenfarkas","plugin_committers-gelenfarkas"],"banners":{"banner":"https:\/\/ps.w.org\/szamlama-for-woocommerce\/assets\/banner-772x250.png?rev=3782410","banner_2x":"https:\/\/ps.w.org\/szamlama-for-woocommerce\/assets\/banner-1544x500.png?rev=3782410","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/szamlama-for-woocommerce\/assets\/icon-128x128.png?rev=3782410","icon_2x":"https:\/\/ps.w.org\/szamlama-for-woocommerce\/assets\/icon-256x256.png?rev=3782410","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/szamlama-for-woocommerce\/assets\/screenshot-1.png?rev=3782410","caption":"Account settings: live and test keys, connection status, payment notifications."},{"src":"https:\/\/ps.w.org\/szamlama-for-woocommerce\/assets\/screenshot-2.png?rev=3782410","caption":"Automation rules with conditions."},{"src":"https:\/\/ps.w.org\/szamlama-for-woocommerce\/assets\/screenshot-3.png?rev=3782410","caption":"The Sz\u00e1ml\u00e1ma box on the order screen with the check before issuing."},{"src":"https:\/\/ps.w.org\/szamlama-for-woocommerce\/assets\/screenshot-4.png?rev=3782410","caption":"Payment method mapping."}],"raw_content":"<!--section=description-->\n<p><strong>Sz\u00e1ml\u00e1ma for WooCommerce<\/strong> connects your shop to <a href=\"https:\/\/szamlama.hu\/\">Sz\u00e1ml\u00e1ma<\/a>, the Hungarian online invoicing service. Documents are issued in Sz\u00e1ml\u00e1ma \u2014 with the numbering, the NAV Online Sz\u00e1mla data reporting and the archiving handled there \u2014 automatically from your orders or with one click.<\/p>\n\n<h4>Documents<\/h4>\n\n<ul>\n<li>Invoice (electronic or paper), pro forma invoice, receipt (e-receipt), delivery note, advance invoice<\/li>\n<li>Your own prefixes (numbering series) for each document type, chosen from your Sz\u00e1ml\u00e1ma account<\/li>\n<li>Paid pro forma invoice \u2192 paid invoice automatically, in one step<\/li>\n<li>Storno of the invoice \/ voiding of the receipt when the order is cancelled or refunded<\/li>\n<li>Hungarian, English or German documents (or by the billing country)<\/li>\n<\/ul>\n\n<h4>Automation with rules<\/h4>\n\n<ul>\n<li>Event: order created, payment completed, any order status (custom statuses of other plugins too)<\/li>\n<li>Conditions: payment method, shipping method, company \/ private customer, country, currency, order total, product category, receipt requested \u2014 all or any of them<\/li>\n<li>Fulfillment date (order \/ payment \/ completion date \u00b1 days), payment deadline, mark as paid<\/li>\n<li>Runs in the background with automatic retries; failures are reported in the order notes, in the admin and by e-mail<\/li>\n<li>Never twice: one live document per type and order, guaranteed on the Sz\u00e1ml\u00e1ma side too<\/li>\n<\/ul>\n\n<h4>Payment and shipping methods<\/h4>\n\n<ul>\n<li>Payment method on the document, payment deadline, \"mark as paid\" and the \"Pay now\" (online card payment) link per WooCommerce payment method<\/li>\n<li>Line name and VAT per shipping method<\/li>\n<\/ul>\n\n<h4>VAT<\/h4>\n\n<ul>\n<li>Automatic from the WooCommerce tax rates, or with VAT markings in the tax rate name (AAM, TAM, FAD, KBAET, EUFAD37, \u00c1KK, \u00c1THK, HO \u2026 and the EU \/ EUT \/ EUK \/ EUKT \/ MAA \/ F.AFA names used by other plugins)<\/li>\n<li>Mapping per tax class, subject-exempt (AAM) shops, EU company buyers (KBAET \/ EUFAD37), sales outside the EU (EAM \/ \u00c1THK)<\/li>\n<\/ul>\n\n<h4>Checkout<\/h4>\n\n<ul>\n<li>Tax number field: when a company name is entered, always, with a \"company purchase\" checkbox, or with private \/ company radio buttons<\/li>\n<li>Formal check of the Hungarian tax number and the EU VAT number<\/li>\n<li>Company name and address filled in from the NAV database after the tax number is typed<\/li>\n<li>\"I ask for a receipt\" option with hidden billing fields and disallowed payment methods<\/li>\n<li>Classic and block checkout (Cart &amp; Checkout blocks), HPOS compatible<\/li>\n<\/ul>\n\n<h4>Payment notifications (webhook)<\/h4>\n\n<p>Sz\u00e1ml\u00e1ma notifies the shop when a document is paid \u2014 by bank statement matching, online card payment or manually \u2014, cancelled, or its NAV status changes. The plugin updates the order (status, notes) and makes the invoice from a paid pro forma invoice. The notification endpoint is registered in Sz\u00e1ml\u00e1ma with one click; every notification is signed (HMAC-SHA256) and verified.<\/p>\n\n<h4>Sharing<\/h4>\n\n<ul>\n<li>Download links in the WooCommerce e-mails; the order e-mail waits for the automatic document and goes out with its link<\/li>\n<li>Documents on the My account \u2192 Orders pages<\/li>\n<li>E-mail from Sz\u00e1ml\u00e1ma, and forwarding of every new document to further addresses (e.g. your accountant)<\/li>\n<\/ul>\n\n<h4>Test mode<\/h4>\n\n<p>With a Sz\u00e1ml\u00e1ma test API key every document is a TEST document: it gets a TESZT-\u2026 number, is not reported to NAV and does not use your numbering. You can try the whole flow \u2014 including the payment notifications \u2014 before going live.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the <strong>Sz\u00e1ml\u00e1ma API<\/strong> (<code>https:\/\/app.szamlama.hu\/api\/v1<\/code>), operated by Software-Wolf Kft. (Hungary), to issue and manage invoicing documents. It is required for the plugin to work, and it is only contacted after you enter your own Sz\u00e1ml\u00e1ma API key.<\/p>\n\n<p>What is sent and when:<\/p>\n\n<ul>\n<li>When a document is issued (automatically by your rules or when you click \"Issue\" \/ use a bulk action): the order number, the billing (and, if different, the shipping) name, company name, tax number, address, e-mail address and phone number of the customer, the ordered items with quantities, prices and VAT, the shipping and fee lines, the currency, the payment method and the dates of the document.<\/li>\n<li>When you check a document, mark it paid, cancel it, send it or download its PDF: the Sz\u00e1ml\u00e1ma id of the document.<\/li>\n<li>When a customer types a Hungarian tax number at checkout and the NAV lookup is enabled: the first 8 digits of the tax number, to fetch the company's name and address from the NAV database through Sz\u00e1ml\u00e1ma.<\/li>\n<li>On the settings screen: requests to read your account status, numbering series, bank accounts and selectable values, and to register the notification (webhook) endpoint of your shop.<\/li>\n<\/ul>\n\n<p>Sz\u00e1ml\u00e1ma may send signed notifications to your shop's REST endpoint (<code>\/wp-json\/szamlama\/v1\/webhook<\/code>) about your documents.<\/p>\n\n<ul>\n<li>Terms of use: https:\/\/szamlama.hu\/aszf\/<\/li>\n<li>Privacy policy: https:\/\/szamlama.hu\/jogi\/adatkezeles\/<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin (WooCommerce must be active).<\/li>\n<li>In Sz\u00e1ml\u00e1ma, go to <strong>Settings \u2192 API keys<\/strong> and create a key with the <strong>WooCommerce plugin<\/strong> scope \u2014 one live and one test key.<\/li>\n<li>In WooCommerce go to <strong>Settings \u2192 Sz\u00e1ml\u00e1ma<\/strong>, paste the keys, choose the mode (start with Test) and save.<\/li>\n<li>On the same page click <strong>Connect<\/strong> for the payment notifications (your shop must be on HTTPS).<\/li>\n<li>Set the document basics, the payment methods and the rules on the other tabs, then try a few test orders.<\/li>\n<li>Switch to Live mode.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20sz%C3%A1ml%C3%A1ma%20account%3F\"><h3>Do I need a Sz\u00e1ml\u00e1ma account?<\/h3><\/dt>\n<dd><p>Yes. The documents are issued in Sz\u00e1ml\u00e1ma; the plugin is the connection between the shop and your account.<\/p><\/dd>\n<dt id=\"is%20it%20free%3F\"><h3>Is it free?<\/h3><\/dt>\n<dd><p>The plugin is free. Using Sz\u00e1ml\u00e1ma is subject to its own terms.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20sz%C3%A1ml%C3%A1ma%20cannot%20be%20reached%3F\"><h3>What happens if Sz\u00e1ml\u00e1ma cannot be reached?<\/h3><\/dt>\n<dd><p>The checkout never waits for Sz\u00e1ml\u00e1ma: documents are issued in the background. Temporary errors are retried automatically (after 5, 30, 120 and 360 minutes); if a document still cannot be issued, you see it in the order notes, in an admin notice and optionally by e-mail.<\/p><\/dd>\n<dt id=\"can%20an%20order%20be%20invoiced%20twice%3F\"><h3>Can an order be invoiced twice?<\/h3><\/dt>\n<dd><p>No. An order gets at most one live document of each type. Each request carries a unique identifier, so Sz\u00e1ml\u00e1ma returns the existing document even if the same request arrives twice. After a storno the order can be invoiced again.<\/p><\/dd>\n<dt id=\"can%20the%20customer%20ask%20for%20a%20receipt%20instead%20of%20an%20invoice%3F\"><h3>Can the customer ask for a receipt instead of an invoice?<\/h3><\/dt>\n<dd><p>Yes, enable receipts on the Checkout &amp; receipts tab. A receipt cannot be issued above 900,000 HUF or to a customer with a tax number \u2014 then an invoice is issued (or an error is reported, as you choose).<\/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. The tax number, the company purchase checkbox and the receipt request appear in the \"Additional order information\" section of the block checkout. Hiding billing fields for receipts and the NAV lookup work in the classic checkout.<\/p><\/dd>\n<dt id=\"the%20payment%20notifications%20do%20not%20arrive.%20my%20shop%20is%20behind%20cloudflare.\"><h3>The payment notifications do not arrive. My shop is behind Cloudflare.<\/h3><\/dt>\n<dd><p>Cloudflare's bot protection may answer the notifications of Sz\u00e1ml\u00e1ma with a challenge page (\"Just a moment...\"), which a server cannot pass. In Cloudflare, add a WAF custom rule with the action \"Skip\" for the path <code>\/wp-json\/szamlama\/v1\/webhook<\/code> (or allow the IP addresses of Sz\u00e1ml\u00e1ma: 2.28.99.30 and 2a01:4f8:c016:d944::1). The notifications are signed, so the plugin only accepts genuine ones. Failed notifications are retried by Sz\u00e1ml\u00e1ma for about 8 hours.<\/p><\/dd>\n<dt id=\"where%20do%20i%20see%20what%20happened%3F\"><h3>Where do I see what happened?<\/h3><\/dt>\n<dd><p>In the order notes, in the Sz\u00e1ml\u00e1ma box of the order and \u2014 in developer mode \u2014 in WooCommerce \u2192 Status \u2192 Logs (source: szamlama). API keys are never written to the log.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Fix: a document issued automatically on a status change (e.g. the invoice made from the pro forma when the order is set to Completed) now reaches the customer. Automatic documents are issued in the background, after WooCommerce has sent the e-mail of the new status, so the e-mail went out without the new document. Now the On hold \/ Processing \/ Completed e-mail waits for the document (usually within a minute, at most 30 minutes) and goes out with its link; when no such e-mail is sent, the customer gets the \"Order details\" e-mail with the new document. New option on the Sharing tab, on by default.<\/li>\n<li>The documents are no longer attached to the e-mails as PDF: the customer gets the download link (the \"PDF attachment\" option was removed). Forwarding to further addresses (e.g. the accountant) still sends the PDF.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Security hardening: the plugin itself also verifies the nonce of the settings, product and bulk order forms and of the checkout; the shop identifier is now random instead of being derived from the site salts.<\/li>\n<li>The failure notice is shown only on the WooCommerce order screens and on the Sz\u00e1ml\u00e1ma settings tab.<\/li>\n<li>Translations are delivered by translate.wordpress.org.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Fix: for a buyer outside the EU (e.g. Switzerland, USA, Serbia) the local tax ID given at checkout is now printed on the invoice and reported to NAV (third-country tax ID). Before, only the company name reached the invoice.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Line note length: the WooCommerce data in the line note (variation attributes, item meta, e.g. long custom product options) is shortened with \"\u2026\" above 200 characters by default. On the Line items tab it can be kept only when short, or left off entirely; the limit is adjustable (20\u2013500 characters). The note of the product is always printed.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Published on WordPress.org: updates now arrive through the WordPress updater.<\/li>\n<li>Tested with WordPress 7.1 and WooCommerce 11.2.<\/li>\n<li>FAQ: what to set in Cloudflare when the payment notifications do not arrive.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>OSS (EU One-Stop Shop): when WooCommerce charges the VAT rate of another EU country to a customer without an EU VAT number, an OSS invoice is issued with that rate (requires Sz\u00e1ml\u00e1ma with the OSS registration date set in Company data). Sz\u00e1ml\u00e1ma checks the rate for the destination country and the fulfilment date; an outdated rate (e.g. Romania 19%) is refused with the list of valid rates. OSS invoices are not reported to NAV. New option on the VAT tab (on by default).<\/li>\n<li>E-mails: download link of the storno invoice in the customer e-mails after the invoice of the order was cancelled (new option on the Sharing tab, on by default; own text in the \"Own text and button\" style).<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>VAT: a tax rate that Sz\u00e1ml\u00e1ma does not accept (e.g. the 19 % \/ 20 % \/ 23 % rate of an OSS sale to another EU country) is no longer rounded to the nearest Hungarian rate \u2014 the document is not issued, the order gets a note and the admin an e-mail, so no invoice is made with a wrong VAT rate.<\/li>\n<li>Buyer name: new option to print the company name even when no tax number was given (the buyer stays a private person for NAV).<\/li>\n<li>Notes: new condition \"Customer note\" (the customer wrote a note \/ no note), e.g. to print the note of the customer instead of the default text.<\/li>\n<li>E-mails: own text and button per document type (invoice, pro forma, receipt, advance invoice) instead of the \"Documents\" list, with {number} and {order_number}.<\/li>\n<li>Storno: new option to e-mail the storno invoice to the customer through Sz\u00e1ml\u00e1ma (automatic and manual cancelling; never for test documents).<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>HUF orders: line items are sent with whole-forint unit prices (a line is split when its total is not divisible by the quantity, e.g. 3 \u00d7 333.33 \u2192 2 \u00d7 333 + 1 \u00d7 334), so the document total always equals the order total without fill\u00e9r; discount, shipping and fee lines are whole forints; a rounding line is only sent for the cash 0\/5 rounding.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Hungarian invoices, pro forma invoices and receipts from WooCommerce orders with the Sz\u00e1ml\u00e1ma invoicing service (NAV Online Sz\u00e1mla).","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/396281","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=396281"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gelenfarkas"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=396281"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=396281"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=396281"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=396281"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=396281"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=396281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}