Manual invoicing costs real time: at 3 minutes per invoice and 30 orders per day, you lose 1.5 hours daily - 33 hours per month on a task that a plugin handles in milliseconds. WooCommerce invoicing automation means the invoice is generated automatically with every order, emailed to the customer, and reported to ANAF, without you touching anything. This guide covers the complete setup for SmartBill and Oblio, a direct comparison between them, and e-Factura 2026 compliance.
Why manual invoicing doesn't scale
At 3 minutes per invoice, manual invoicing work grows linearly with order volume - while errors grow exponentially. Here's the concrete calculation:
| Orders/day | Manual time/day | Manual time/month | Cost equivalent (30 RON/h) |
|---|---|---|---|
| 10 | 30 min | 11 hours | 330 RON |
| 30 | 1.5 hours | 33 hours | 990 RON |
| 50 | 2.5 hours | 55 hours | 1,650 RON |
| 100 | 5 hours | 110 hours | 3,300 RON |
At 50 orders per day, the monthly cost exceeds the price of a SmartBill or Oblio subscription for an entire year. And that's without accounting for errors: wrong series, incorrect VAT, duplicate invoices, or forgotten invoices that result in ANAF fines.
Automation isn't a luxury - it's a necessity from the very first order.
SmartBill WooCommerce - step by step setup
SmartBill is the most widely used electronic invoicing service in Romania, with over 100,000 active companies and a free WooCommerce plugin that automatically issues invoices when the order status changes.
Requirements before starting
Step 1: Install the plugin
Go to Plugins > Add New in WordPress and search for SmartBill WooCommerce. Install and activate the official plugin (author: SmartBill). The plugin is free and compatible with WooCommerce 9.x + HPOS.
Step 2: API connection
Step 3: Configure invoice series
Step 4: Set automatic trigger
Configure which order status triggers the invoice:
In the plugin: WooCommerce > Settings > SmartBill > Auto-generate invoice > select the desired status.
Step 5: Configure invoice details
Step 6: Template and email delivery
Oblio WooCommerce - step by step setup
Oblio offers a more affordable alternative, with a free plan for up to 50 invoices per month and a WooCommerce plugin with features comparable to SmartBill.
Requirements
Setup
Oblio automatically syncs products and customers from WooCommerce - you don't need to enter them manually in the invoicing platform.
SmartBill vs. Oblio - direct comparison
| Criterion | SmartBill | Oblio |
|---|---|---|
| Monthly price | From ~20 RON | Free (50 invoices) / ~15 RON |
| WooCommerce plugin | Free, official | Free, official |
| HPOS compatibility | Yes | Yes |
| Automatic invoices on status change | Yes | Yes |
| e-Factura ANAF | Yes (integrated) | Yes (integrated) |
| e-Transport | Yes | Yes |
| Proforma | Yes | Yes |
| Delivery notes | Yes | Yes |
| Accounting reports | Advanced | Basic |
| Accountant integration | Direct export to accountant | CSV/PDF export |
| Multi-series invoices | Yes | Yes |
| Interface | Complex, comprehensive | Simple, intuitive |
| Technical support | Email + phone |
Verdict: SmartBill for stores with over 100 orders per month, complex accounting, or the need for advanced reports. Oblio for new stores, low volume, or limited budget - the free plan is enough to get started.
e-Factura ANAF 2026 - what you need to know
Since 2024, all VAT-registered companies are required to report through the ANAF e-Factura system - and starting in 2026, the obligation extends to B2C transactions for certain categories. Non-compliance carries fines from 5,000 to 10,000 lei.
What compliance requires
How to comply with SmartBill or Oblio
Both platforms have direct integration with the ANAF e-Factura system:
If you have a WooCommerce store and haven't configured e-Factura, do it now - fines apply retroactively.
Custom code: invoice trigger on custom status (HPOS-compatible)
If you use a custom order status and the invoicing plugin doesn't natively recognize it, you can trigger invoice generation through code. HPOS-compatible example for WooCommerce 9.x and PHP 8.2+:
/**
Trigger SmartBill invoice on custom order status change.
Compatible with WooCommerce 9.x HPOS.
Requires: PHP 8.2+
/
add_action('woocommerce_order_status_ready-to-ship', function (int $order_id): void {
$order = wc_get_order($order_id);
if (!$order instanceof WC_Order) {
return;
}
// Check if the invoice has already been issued
$invoice_number = $order->get_meta('_smartbill_invoice_number');
if (!empty($invoice_number)) {
return;
}
// Trigger invoice generation through SmartBill API
// The SmartBill plugin exposes the generation function
if (function_exists('smartbill_woocommerce_generate_invoice')) {
smartbill_woocommerce_generate_invoice($order_id);
}
// Log the action
$order->add_order_note(
sprintf('SmartBill invoice automatically triggered at status "%s".', 'ready-to-ship')
);
$order->save();
});
Important: This code uses $order->get_meta() and $order->save() - the HPOS-compatible methods. It doesn't use get_post_meta() or update_post_meta(), which don't work correctly with HPOS enabled.
We configure automatic SmartBill or Oblio invoicing for your WooCommerce store - complete setup, tested end-to-end, compliant with e-Factura ANAF. Request a quote
Common errors and how to fix them
Wrong or duplicate series
Symptom: Invoices with duplicate numbers or incorrect series.
Cause: The series in the plugin doesn't match the one in SmartBill/Oblio, or you have multiple integrations on the same series.
Solution: Create a series dedicated exclusively to WooCommerce. Don't use the same series for manual and automated invoices.
Duplicate invoices
Symptom: Two invoices issued for the same order.
Cause: The order passes through the trigger status twice (e.g., Processing → On Hold → Processing).
Solution: Add a check in code - verify whether the meta _smartbill_invoice_number or _oblio_invoice_number already exists before issuing. The official plugins do this natively, but check in settings that the "Prevent duplicate invoices" option is enabled.
Incorrect VAT
Symptom: Invoice with 19% VAT on products that should have 9% (food products).
Cause: The VAT rate isn't set correctly on the product in WooCommerce, or the invoicing plugin has a default rate that overrides it.
Solution: In WooCommerce > Settings > Tax, configure the VAT classes (Standard 19%, Reduced 9%). On each product, select the correct class. In the plugin, set "Pull VAT from WooCommerce" (not a fixed rate).
Invoice without shipping cost
Symptom: The invoice doesn't include the shipping line.
Cause: The plugin isn't configured to capture shipping.
Solution: In the plugin settings, enable the "Include shipping as invoice line" option.
Products with 0 price on invoice
Symptom: Free products from promotions (buy one get one free) appear with 0 price.
Cause: WooCommerce sends the 0 price to the plugin, which captures it literally.
Solution: Configure the promotion as a percentage discount on the product line, not as a separate free product. This way, the invoice shows the original price with a discount, not zero price.
Complete flow: order → invoice → e-Factura → customer email
Here's the automated end-to-end flow for a correctly configured WooCommerce store:
Zero manual intervention. From clicking "Place Order" to the invoice being issued, reported, and sent - under 5 seconds.
Invoicing for cash on delivery
Cash on delivery requires a different logic: you invoice only after the package is delivered and the money is collected, not when the order is placed. The correct setup:
If you issue the invoice at Processing for cash on delivery orders, you risk invoicing orders that are subsequently refused at delivery - and you'll need to issue a reversal, which complicates the accounting.
Frequently asked questions about WooCommerce invoicing automation
SmartBill or Oblio - which is better for a small store?
Oblio, for one simple reason: the free plan covers 50 invoices per month, enough for a store just starting out. The WooCommerce plugin does the same thing as SmartBill - automatic invoice on status change, email delivery, e-Factura reporting. When you exceed 100 orders per month or need advanced accounting reports, you migrate to SmartBill. The migration is simple - you switch the plugin and the invoice series.
Does it work with HPOS (High-Performance Order Storage)?
Yes. Both plugins (SmartBill WooCommerce and Oblio WooCommerce) are updated for compatibility with HPOS, which is enabled by default in WooCommerce 9.x. If you use an old or outdated plugin that writes directly to wp_postmeta with update_post_meta(), it will throw errors with HPOS enabled - make sure you have the latest version.
Can I automatically issue proforma invoices?
Yes. Both platforms support proforma. In the plugin, set the document type to "Proforma" and the trigger to an earlier status (e.g., On Hold or Pending Payment). When the order is paid and moves to Processing, you issue the final fiscal invoice. Useful for orders with bank transfer payment.
How do I reverse an automatically issued invoice?
In SmartBill: open the original invoice and click "Reverse" - a reversal invoice with a negative sign is automatically generated. In Oblio: same process. From WooCommerce, if you issue a Refund on the order, some plugin versions automatically issue the reversal. Check in settings whether the "Auto-reverse on refund" option is enabled.
What happens if the API connection drops during invoice generation?
The plugins have a retry mechanism: if the API call fails (timeout, server error), it automatically retries 2-3 times. If it still fails, the order is marked with an error note and the invoice remains unissued. Solution: check daily for orders with Processing status that don't have an invoice number attached (filter in WooCommerce > Orders) and issue manually for the missed ones.
Next step
Properly setting up automatic invoicing takes 1-2 hours and permanently eliminates a manual task that costs hundreds of lei per month. Start with SmartBill (if you already have an account) or Oblio (if you want a free plan), follow the steps above, and test with a real order before going live.
If you have a store with complex integrations - multiple VAT rates, B2B invoicing with different details, multiple series, or custom statuses - the correct setup requires experience with invoicing platform APIs and WooCommerce hooks.