Invoices, credit notes, proforma invoices, non-fiscal sales documents and order confirmations. Gap-free sequential 10-digit numbering, safe under concurrent orders. VAT breakdown by rate (20%, 9%, 0%), for both VAT-inclusive pricing and WooCommerce’s own tax engine. Document totals always equal what
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 6.5 and PHP 8.1.
SourceWordPress plugins · Oct 28, 2026
01 / Source details
Aboutthistool.
Invoices, credit notes, proforma invoices, non-fiscal sales documents and order confirmations.
Gap-free sequential 10-digit numbering, safe under concurrent orders.
VAT breakdown by rate (20%, 9%, 0%), for both VAT-inclusive pricing and WooCommerce’s own tax engine. Document totals always equal what the customer was charged; if they cannot, the document is not issued and you are alerted.
Automatic credit notes for refunds and cancellations. When a refund cannot be attributed to a single VAT rate, no document is guessed: you get an alert and choose the rate yourself.
Company details at checkout (classic and block checkout): company name, EIK with check-digit validation, VAT number verified with EU VIES, MOL and registered address.
Couriers: Econt, Speedy, Pigeon Express and BOX NOW. Delivery to office, parcel locker or address on the classic and the block checkout: locality search, office list and map, address in parts with the courier’s streets, price table or the courier’s live price with automatic fallback (capped at a maximum the buyer pays, if you set one), cash on delivery, waybills (create, change, print, cancel), tracking and optional completion on delivery.
Checkout: compact layout without the address fields for a courier delivery, delivery options as cards, tiles, rows with courier logos or one row per courier, side cart, minimum order with a progress bar, cash on delivery hidden per courier, selling to other countries.
A checkout form of your own: reorder, rename, show or hide each field – for billing and for delivery – and choose which must be filled in, on the classic and the block checkout.
Pickup from your own shop, or deliver it yourself with no courier – one location free, several with BulCommerce Pro.
The expected delivery date, shown on the order-received page, in the account, in the order e-mails or on the admin order screen, per courier (where the courier’s own API gives one).
A shipment-tracking page and a right-of-withdrawal page of your own ([bulcommerce_tracking] and [bulcommerce_withdrawal]) – a buyer finds their order by its number and e-mail, no account needed, for either one.
An admin warning as your EU cross-border sales approach the €10,000 OSS VAT threshold; companies from other EU countries with a VAT number confirmed in VIES get services without Bulgarian VAT (reverse charge) or goods as an intra-Community supply at 0%, each with its own legal basis on the invoice.
Fiscal receipts on a fiscal device through ErpNet.FP, the NRA audit file (Ordinance N-18), Microinvest export, a document archive and the accountant’s monthly e-mail.
Cash on delivery: payout report, the month’s deliveries at the shop’s expense and an optional risk check (НепоСтоп) – or BulCommerce Guard (free, beta), which checks against a shared risk network instead of your own key.
A restorable settings backup, free on the BulCommerce network: the plugin settings, every courier’s credentials and options, and the delivery methods in your shipping zones.
Card payments through Stripe (optional): the Payment Element with cards, Apple Pay, Google Pay and local methods, 3-D Secure, saved cards, refunds from the order screen and a signed webhook. Works on the classic and the block checkout.
Fonts
PDF documents use the Inter typeface by The Inter Project Authors (https://github.com/rsms/inter), licensed under the SIL Open Font License 1.1. A Latin, Cyrillic and Greek subset is bundled in assets/fonts/ together with the licence ( OFL.txt ); tools/build-font.php rebuilds it.
External services
The plugin works without any external service until you switch one on. What follows is every service it can contact, what it sends and when.
Econt Express (courier)
Used when you enable Econt: to load its localities and offices, to ask for a delivery price at the checkout, to create, cancel and track a waybill and to download the label. Requests go to https://ee.econt.com/services (or https://demo.econt.com/ee/services with the demo account) with the credentials you enter.
Sent when you use those features: your sender details, the recipient’s name, phone and e-mail, the chosen office or address, the parcel’s weight, count and description, the cash-on-delivery amount and the order number. Nothing is sent for orders delivered by another method.
Service by “Econt Express” OOD: https://www.econt.com/ – terms: https://www.econt.com/za-nas/obshti-uslovia – privacy: https://www.econt.com/politika-za-poveritelnost
Speedy (courier)
Used when you enable Speedy, for the same purposes and with the same kind of data as above. Requests go to https://api.speedy.bg/v1 with the credentials you enter.
Service by “Speedy” AD: https://www.speedy.bg/ – terms: https://www.speedy.bg/bg/terms-and-conditions – privacy: https://www.speedy.bg/bg/gdpr
Pigeon Express (courier)
Used when you enable Pigeon Express, for the same purposes and with the same kind of data as above. Requests go to the API address of the account you enter (its sandbox or its production address).
Service by “Pigeon Express”: https://pigeonexpress.com/ – terms: https://pigeonexpress.com/terms – privacy: https://pigeonexpress.com/privacy
VIES (VAT number check, European Commission)
Used when a buyer asks for a company invoice and VAT checking is on (it can be switched off in the settings, and then only the format is checked). The VAT number and its country code are sent to https://ec.europa.eu/taxation_customs/vies/rest-api/check-vat-number, which answers whether the number is registered and, when the country publishes them, the company name and address.
Service by the European Commission: https://ec.europa.eu/taxation_customs/vies/ – legal notice: https://ec.europa.eu/info/legal-notice_en – privacy: https://commission.europa.eu/privacy-policy-websites-managed-european-commission_en
European Central Bank (exchange rates)
Used when “Invoices for orders in another currency” is on: the euro reference rates are downloaded from https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml (and the full file when an older rate is needed) to convert an order into euro. No data about your shop, your orders or your buyers is sent.
Service by the European Central Bank: https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html – disclaimer and copyright: https://www.ecb.europa.eu/services/disclaimer/html/index.en.html – data protection: https://www.ecb.europa.eu/services/data-protection/html/index.en.html
Off by default. It works only after you switch the add-on on and enter your own API key. Before a cash-on-delivery order the buyer’s phone number is sent to https://nepostop.com/api/v1 to ask how many of that phone’s parcels were not collected. If you also switch on reporting, the phone number and the waybill number of your cash-on-delivery shipments are sent after they are created, so their outcome adds to the shared history. Tell your buyers about this check in your privacy policy.
Service by НепоСтоп: https://nepostop.com/ – terms: https://nepostop.com/terms – privacy: https://nepostop.com/gdpr
Off by default. It works only after you switch the “BulCommerce Guard” add-on on. Before a cash-on-delivery order the buyer’s phone number is sent to https://wpsupporting.com/api/wp to ask how many of that phone’s parcels were not collected; the phone is hashed on the server. If auto-reporting is on, the phone, the waybill number and the outcome (delivered / returned) of your cash-on-delivery shipments are sent after they are final, so the shared history stays useful, together with your licence key and your site’s domain to identify the shop. The order screen can also report a customer or erase them from the network on request. Tell your buyers about this check in your privacy policy.
Service by wpsupporting (the makers of BulCommerce): https://wpsupporting.com/
euShipments, BOX NOW and Sameday
Three more couriers, used in the same way and with the same kind of data as the couriers above, each only after you switch it on and enter your account: euShipments (https://eushipments.com/ – https://api1.inout.bg/api/v1, tests https://test-api.inout.bg/api/v1), BOX NOW (https://boxnow.bg/ – the public locker list at https://locationapi-production.boxnow.bg (tests https://locationapi-stage.boxnow.bg) and the Partner API at https://api-production.boxnow.bg, tests https://api-stage.boxnow.bg) and Sameday (https://sameday.bg/ – https://api.sameday.bg, tests https://sameday-api-bg.demo.zitec.com).
This package contains no licence check and no update server of its own.
Stripe (card payments, optional)
Off by default. It works only after you enable the Stripe payment method and enter your own Stripe API keys. When a buyer pays by card, their browser loads Stripe.js from https://js.stripe.com and the payment is created and confirmed through https://api.stripe.com with your secret key. Sent to Stripe for a payment: the amount and currency, the order number and key, the buyer’s e-mail (for the receipt) and the card details the buyer enters (the card data goes from the browser straight to Stripe – it never reaches your site). Stripe notifies your site of the payment’s outcome through a signed webhook. Card and payment processing is subject to Stripe’s terms.
Service by Stripe: https://stripe.com/ – terms: https://stripe.com/legal – privacy: https://stripe.com/privacy
OpenStreetMap (map tiles, optional)
Off by default. When you choose to show a courier’s offices on a map, the buyer’s browser loads the map images from https://tile.openstreetmap.org when the map is shown, which sends the buyer’s IP address and browser details to OpenStreetMap. Nothing about the order or the buyer is sent.
Service by the OpenStreetMap Foundation: https://www.openstreetmap.org/ – tile usage policy: https://operations.osmfoundation.org/policies/tiles/ – privacy: https://osmfoundation.org/wiki/Privac
BulCommerce is made by wpsupporting. Product page: https://wpsupporting.com/store/bulcommerce – support: https://wpsupporting.com/contact or info@wpsupporting.com (support policy: https://wpsupporting.com/support-policy). Attach the diagnostic report from BulCommerce → Help.
Is the “sales document” a fiscal receipt?
No. A fiscal receipt must come from a registered fiscal device. The sales document is informational.
What happens to documents when I uninstall?
Deleting the plugin keeps your setup by default (company details, courier credentials, add-on settings and the delivery methods with their prices), so an accidental delete costs you nothing; caches and scheduled jobs are cleared. Issued invoices, credit notes and their numbering always stay – they are accounting records you must keep. If you want a completely clean removal, switch on “Also delete all settings when the plugin is deleted” in Settings first.
My site is behind Cloudflare or another CDN and the plugin’s logos/styles are blocked as “mixed content”.
This happens when the CDN terminates HTTPS and WordPress does not detect it, so it builds asset URLs as http:// on an https:// site. The plugin’s own assets follow the site address you set in Settings → General, so they are served over https as soon as that address is https. For everything else on the site (uploaded images, other plugins), tell WordPress it is behind an https proxy by adding this near the top of wp-config.php:
Website LLMs.txt and LLMs-Full.txt Generator is an LLMs.txt generator and llms-full.txt generator for WordPress. It helps site owners generate, manage, preview, validate, and serve AI discovery files from published public content. Use it to create structured /llms.txt and optional /llms-full.txt end
EngageDock AI is a customizable floating contact widget for WordPress websites that want more leads and faster visitor communication. It helps small businesses turn website traffic into calls, texts, emails, and callback requests from one clean contact panel. Key Features: Click-to-Call – One tap ca
Altify AI is an auto ALT text and AI ALT text plugin for WordPress images. It helps generate descriptive image ALT text for accessibility and image SEO. Use bulk image ALT text tools for your Media Library, generate featured image ALT text automatically, and scale WooCommerce image ALT updates with
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati