8digits Factura for WooCommerce
Documentation
Everything you need to set up automatic PDF invoices in WooCommerce: issuer details, sequential numbering, VAT breakdown and email delivery.
Introduction
8digits Factura for WooCommerce generates PDF invoices from WooCommerce orders. Each invoice receives a sequential number, includes a VAT breakdown and can be attached to the email your store already sends.
The free version covers the daily flow: automatic or manual generation, list, download, resend, voiding and export. Professional adds credit notes, B2B fields, a customer portal and PDF customisation.
- Automatic invoices when an order reaches the status you choose.
- Sequential numbering by prefix and year, in the format F-2026-0001.
- PDF with issuer, customer, line items, bases, VAT rates and total.
- Attachment to processing and completed order emails.
Requirements
| Component | Minimum version |
|---|---|
| WordPress | 6.0 or later |
| WooCommerce | 7.0 or later |
| PHP | 8.0 or later |
| MySQL / MariaDB | 5.6 / 10.0 or later |
The plugin declares compatibility with High-Performance Order Storage (HPOS). You do not need to keep legacy order storage enabled.
Installation
From the WordPress directory: Plugins → Add New, search for “8digits Factura for WooCommerce”, install and activate. Then open 8Digits Factura → Settings and enter your company details.
Manual installation: download the ZIP from WordPress.org, go to Plugins → Add New → Upload Plugin, install and activate. WooCommerce must be installed and active; if it is not, the plugin shows a notice and does not load.
Invoices will not be valid until you complete the company name, NIF/CIF and address in Settings. Do this before accepting real orders.
Quick start
You can have the basic flow ready in a few minutes.
- Issuer details: 8Digits Factura → Settings → Seller details. Complete name, NIF/CIF and fiscal address.
- Prefix: in Invoice settings, set the prefix (default F). The resulting format is F-2026-0001.
- Trigger status: choose which statuses generate an invoice. The initial value is Processing.
- Email: leave Attach PDF to email enabled if you want it sent with the order email.
- Save changes. The next order that reaches the chosen status will receive a PDF invoice.
- Preview: visit /wp-admin/?eightdigits_factura_test_pdf=1 with an administrator account to see a test PDF with the current settings.
Seller details
These fields identify your business in the issuer block of every PDF. Complete at least the tax details before issuing real invoices.
| Field | Description | Required |
|---|---|---|
| Company name | Legal or trading name. | Yes |
| NIF / CIF | Spanish tax identification. Format is validated. | Yes |
| Address | Fiscal address: street and number. | Yes |
| Postcode | Five-digit postcode. | Yes |
| City | Town or city of the fiscal address. | Yes |
| Province | List of Spanish provinces, Ceuta, Melilla and the Balearic Islands. | Yes |
| Phone | Contact phone. Optional. | No |
| Contact email | Contact email. Optional. | No |
NIF/CIF is checked with the official algorithm (Royal Decree 338/1990). The field accepts NIF, NIE and CIF formats. If it is flagged as invalid, check leading zeros and the control letter.
Invoice settings
In 8Digits Factura → Settings → Invoice settings you define prefix, starting number, default VAT, trigger statuses and the email attachment.
- Prefix: appears at the start of the number, followed by the year and a zero-padded sequence: PREFIX-YYYY-NNNN. Letters, numbers and hyphens only. The prefix RC is reserved for credit notes.
- Series start number: useful if you migrate from another system. Set it before issuing the first invoice; afterwards it is locked so continuity is not broken.
- Default VAT: 21%, 10%, 4% or 0%. The plugin reads WooCommerce taxes; this value is used only if the VAT class cannot be resolved.
- Attach PDF to email: when enabled, the PDF is added to customer processing and completed order emails, once the invoice has been generated.
| Trigger status | Typical use |
|---|---|
| Processing (default) | Payment received and the order being prepared. Recommended for most stores. |
| Completed | Order delivered. Useful for services or digital products. |
| On hold | Payment awaiting confirmation, for example a bank transfer. |
You can enable one or more statuses. Only one invoice is generated per order: if the order passes through several triggers, the first creates the document and later ones do not duplicate the number.
If you change the prefix mid-year, a new counter starts for that prefix. Previous invoices keep their original number. Do not change the prefix if you want to continue the same series.
Invoice list
Open 8Digits Factura → Invoices to see every generated document.
| Column | Content |
|---|---|
| Invoice # | Full number, for example F-2026-0042. Sortable. |
| Order | WooCommerce order number, with a link to the order. |
| Customer | Billing name and email. |
| Date | Generation date. Sortable. |
| Total | Amount including VAT. Sortable. |
| VAT | VAT amount. |
| Status | Generated, sent or voided. |
| Actions | Download PDF, resend, regenerate or void. |
- Search by invoice or order number.
- Filter by status: generated, sent or voided.
- Date range, useful for a quarter or a tax year.
- Export CSV from the filter bar, using the same applied criteria.
| Status | Meaning |
|---|---|
| Generated | The invoice exists and the PDF is available. |
| Sent | The email with the PDF was sent to the customer. |
| Voided | The invoice was voided for administrative purposes. The PDF is kept. |
| Rectified (Pro) | A credit note has been issued against this document. |
Order panel
Each WooCommerce order screen includes the 8Digits Factura - Invoice panel, compatible with HPOS.
- Invoice number and date, if one already exists.
- Download PDF.
- Resend by email the order message with the PDF attached.
- Generate invoice, only if the order does not yet have one.
Use Resend by email if the customer says they did not receive the invoice. Also check the junk mail folder.
Manual generation
Use this for orders placed before installation, or for statuses that are not among the triggers.
- Open the order in WooCommerce → Orders.
- Find the 8Digits Factura - Invoice panel.
- Click Generate invoice. The number and date appear immediately.
Each order can have only one ordinary invoice. The button is not shown if the document already exists. The date of an invoice generated later is the generation day, not the original order date; take that into account in your accounts.
Voiding
Voiding marks the invoice as cancelled for administrative purposes. The record and PDF are kept; they are not deleted and the number is not reused.
- Go to 8Digits Factura → Invoices.
- Click Void next to the invoice.
- Confirm. The status changes to Voided.
Voiding is not a credit note. If the customer already received the document and you need a legal correction, use a credit note (Professional). Voiding is for internal use when the document should no longer stay active.
Bulk actions
Select several invoices in the list and choose an action. CSV is exported from the filter bar, not from the bulk dropdown.
| Action | What it does |
|---|---|
| Download ZIP | Packages the selected PDFs into a .zip file. |
| Export CSV | Downloads number, date, customer, NIF, bases, VAT, total and status, with the filters applied. |
| Regenerate PDFs | Regenerates the PDF files for the selected invoices. |
| Void | Voids the selected invoices at once. |
| Resend emails | Resends the order email with the PDF to each customer. |
Filter by dates before exporting CSV if you need a specific period, for example the first quarter.
Credit notesPro
A credit note (factura rectificativa) is the corrective document when an issued invoice needs to be cancelled or modified. Professional generates credit notes linked to the original invoice and includes the usual fields from Royal Decree 1619/2012 — original number and date, reason and type. The plugin produces the document from the data you enter; the store owner remains responsible for using it correctly.
- Open the WooCommerce order that has the invoice to correct.
- Click Generate credit note in the 8digits Factura panel.
- Choose the reason (required) and the type: substitution or differences.
- Confirm. The PDF is created, the original is marked as rectified and the customer is notified by email.
| Type | When to use it | Amounts |
|---|---|---|
| Substitution (full) | The entire original invoice is cancelled and replaced. | All amounts shown as negative. |
| Differences (partial) | Only part of the invoice is corrected. | Only the difference appears. |
Typical reasons: error in recipient data, goods return, packaging, later discount, incorrect tax rate, or another reason in free text.
Credit notes use the RC series, for example RC-2026-0001. That prefix cannot be used on ordinary invoices. The record stores the original number and date, reason and type, for the audit trail. You cannot issue a credit note without an original invoice, nor duplicate one for the same order unless the previous credit note was voided.
B2B checkout fieldsPro
Professional adds two fields to the WooCommerce checkout billing block and to My Account addresses.
| Field | Description |
|---|---|
| Legal name / Company | Customer’s legal name. Always optional. |
| NIF / CIF / NIE | Customer’s tax identification. Can be made required. |
- NIF: individuals (8 digits and a control letter).
- NIE: foreign residents (X, Y or Z, digits and a letter).
- CIF: companies and entities (organisation letter, digits and control).
Validation runs as the customer types and again on the server when the order is placed. In 8Digits Factura → Settings → B2B you can require the NIF; without a valid value the customer cannot complete the purchase.
The data appears on the PDF, in the order billing details and in My Account → Addresses for later orders. B2B checkout fields need the classic checkout or a compatible extension; invoice generation itself works with Blocks.
Customer portalPro
Professional adds a My invoices tab to the WooCommerce My Account page. The customer can view and download their documents without writing to the store.
- Table with number, type, order, date and amount.
- PDF download button for each document.
- Credit notes are marked as Credit note and link to the original.
- Pagination when there are many documents.
Only invoices for the authenticated account are shown. Download links use expiring nonces and are checked against the order customer.
If the tab does not appear after activating Professional, go to Settings → Permalinks and click Save Changes to regenerate rewrite rules.
Invoice designPro
In the free version the PDF uses the default template with the issuer details. Professional lets you adjust the look from Settings → Design.
- Logo: PNG or SVG, at least 200 px wide recommended, in the header of each invoice.
- Colours: background, header, accent, text, secondary text, table header, even and odd rows, border and total.
- Font sizes: body, title, number, table header, total and footer.
- Footer: turn it on or off and add your own text (payment terms, IBAN or a legal notice).
Numbering
The number follows the format PREFIX-YYYY-NNNN. The prefix is the configured one (F by default), YYYY is the year of issue and NNNN is the zero-padded sequence within that year and series.
- Examples: F-2026-0001, F-2026-0042, RC-2026-0003.
- Each series counter returns to 1 (or the configured start number) at the beginning of the calendar year. 2027 invoices will start at F-2027-0001 even if 2026 ended on a high number.
- When assigning the number the plugin uses a database lock so two simultaneous orders do not receive the same sequence.
Compliance notes
The plugin includes the usual fields from Royal Decree 1619/2012 on the PDF. Final validity depends on the configured data being correct.
| Required field | Source |
|---|---|
| Number and series | Generated by 8digits Factura for WooCommerce |
| Issue date | Date the invoice is generated |
| Issuer name | Settings → Seller details |
| Issuer NIF / CIF | Settings → Seller details |
| Issuer address | Settings → Seller details |
| Recipient name | Order billing name |
| Recipient NIF | Order; in Pro, B2B checkout fields |
| Recipient address | Order billing address |
| Description of goods or services | WooCommerce order lines |
| VAT rate and amount | Taxes configured in WooCommerce |
| Total consideration | Order total |
Professional credit notes include a reference to the original invoice number and date, plus the reason and type (substitution or differences). That is the structure commonly associated with Article 13; it is not a guarantee that a given document meets every obligation of your business.
Factura helps generate documents with the right structure. It is not a substitute for tax, accounting or legal advice. Confirm the configuration with an adviser before using it in production.
PDF storage and security
PDFs are saved in the WordPress uploads directory, organised by year and month: wp-content/uploads/eightdigits-factura/YYYY/MM/.
The plugin creates an .htaccess file in that folder to block direct URL access. Downloads only go through the plugin endpoint, which checks identity and permissions.
Include that folder in your WordPress backups. If a PDF disappears, it can be regenerated from the invoice record, but copies are still worth keeping.
Download links carry an expiring token (nonce). A link copied outside the system expires. Always download from the admin or, in Pro, from the customer portal.
Frequently asked questions
Are the invoices valid in Spain? The plugin includes the usual fields from Royal Decree 1619/2012. Validity depends on complete company and NIF details. Confirm the setup with a tax adviser.
Can I invoice orders placed before installation? Yes. Open the order and click Generate invoice. The date will be the generation date, not the order date.
Can I edit an invoice after it has been issued? No. If it needs correcting, void it and generate another only if the customer has not received it; if they already have it, issue a credit note (Pro).
What if there is a gap in the numbering? A jump can be a problem with the Spanish Tax Agency. The plugin avoids duplicates and gaps with a lock when assigning the number. If you see a gap, check voided invoices: they keep the number even if they are no longer active.
The customer did not receive the PDF? Resend the email from the order panel and ask them to check junk mail.
Does it work with the block checkout? Invoice generation does. Professional B2B fields need the classic checkout or a compatible extension.
Is it compatible with Veri*factu? We follow the regulatory development. Integration with the AEAT verifiable invoicing system is on the roadmap; we will publish an update when the technical specifications allow it.
What currency does it use? The one configured in WooCommerce → Settings → General → Currency. Spanish stores usually use EUR.
How do I migrate from another programme? Set the series start number to the next free sequence. If the last invoice was 150, use 151, and do it before issuing the first invoice with the plugin.
Troubleshooting
Invoices are not generated automatically.
- Check that the order status matches a trigger in Settings → Generate invoice when moving to.
- Verify that the order does not already have an invoice: only one is created per order.
- Check the server PHP error log for messages from 8digits Factura.
The PDF is blank or missing data.
- Complete every Seller details field.
- Review WooCommerce tax settings.
- Open /wp-admin/?eightdigits_factura_test_pdf=1 to see what is missing from the template.
The portal tab is not visible.
- Save Settings → Permalinks again.
- Confirm that the customer is logged in.
- Check that Professional is active.
The download returns 403 or file not found.
- The link may have expired. Return to the list and download again.
- If the file was deleted, click Regenerate PDF and then download.
- The server must be able to write to wp-content/uploads/eightdigits-factura/.
Validation rejects a valid NIF.
- A NIF has 8 digits: include the leading zero (01234567Z, not 1234567Z).
- On a NIE the first letter must be X, Y or Z in uppercase.
- On a CIF the first letter identifies the entity type (A–H, J–N, P–W).
More help: the free plan uses the WordPress.org support forum for 8digits Factura for WooCommerce. Professional includes priority support through 8digits.es. Technical support is not tax or legal advice.