
Harbor EU E-Invoicing for WooCommerce turns a WooCommerce order into a structured EN 16931 invoice: a UBL 2.1 XML document that carries the seller and buyer identifiers, the VAT breakdown per category and rate, allowances and charges, and the payment details. The XML is generated on your own server and stored with the order, ready to be downloaded or handed to whatever channel you use to deliver it.
Read this before you install: which profile do you need?
The plugin has two profiles, set under WooCommerce > E-Invoicing.
If you sell B2C, choose EN 16931. If you sell B2B into the Peppol network, choose Peppol and collect VAT numbers at checkout.
What the free version does
Requirements
Filters
hein_is_service – whether a line item is a service. By default a virtual or downloadable product is a service, which determines whether a cross-border EU supply is reported as an intra-community supply of goods or as a reverse charge on services. Use this filter for a service that is sold as an ordinary simple product.hein_tax_category – the resolved VAT category for a line, charge or allowance.hein_invoice_data – the complete invoice array before it is serialized.hein_invoice_number – the assigned invoice number.hein_buyer_endpoint – the buyer’s electronic address, when it cannot be derived from a VAT number.hein_manage_capability – the capability required to generate and download an invoice. Defaults to edit_shop_order.hein_item_tax_percent – the VAT rate resolved for a line, when your tax setup is not one WooCommerce reports per line.hein_unit_code – the UN/ECE Rec 20 unit of measure for a line. Defaults to C62 (piece).hein_payment_means_code – the UNTDID 4461 payment means code derived from the order’s gateway.hein_rounding_tolerance – how far the document total may differ from the sum of its parts before generation fails. Defaults to 0.05.hein_eu_countries – the list of country codes treated as EU member states.hein_generator_formats – the list of available invoice formats.hein_invoice_filename – the filename used for a downloaded invoice.hein_store_to_filesystem – whether an invoice is also written to the uploads folder.Not in this plugin: features of the separate paid version
This plugin does UBL 2.1 only, generated manually from the order screen. The following are not capabilities of the plugin you are reading about. They belong to a separate paid product sold at harborplugins.com, and their code is not present in this plugin in any form, enabled or disabled: the XRechnung, ZUGFeRD / Factur-X and FatturaPA formats, automatic generation on order completion, bulk regeneration, Peppol network delivery through the Storecove access point, and VeriFACTU reporting (beta).
If you need any of those, this plugin is not the one to install. If you need UBL 2.1 you need nothing else: what is described under “What the free version does” is the whole plugin, not a trial of it.
Privacy
Invoices are generated and stored on your own server. No order or customer data is sent anywhere by this plugin. VAT numbers are checked offline against the format published for each member state; there is no call to any validation service. See the Privacy Policy section for what the licensing SDK involves.
All invoice data is derived from your own WooCommerce orders and stored in your own database. This plugin does not transmit order data, customer data or VAT numbers to any external service.
This plugin uses the Freemius SDK for licensing and updates. On activation you are shown a one-time opt-in screen; if you skip it, no diagnostic data is collected. If you opt in, Freemius collects non-personally-identifiable environment data (site URL, WordPress version, PHP version, plugin version) for update delivery and, where applicable, license validation. See the Freemius privacy policy.