Title: GoRoute E-Invoicing for WooCommerce
Author: goroute
Published: <strong>September 2, 2026</strong>
Last modified: September 3, 2026

---

Search plugins

![](https://ps.w.org/goroute-e-invoicing-for-woocommerce/assets/banner-772x250.png?
rev=3678416)

![](https://ps.w.org/goroute-e-invoicing-for-woocommerce/assets/icon-256x256.png?
rev=3678416)

# GoRoute E-Invoicing for WooCommerce

 By [goroute](https://profiles.wordpress.org/goroute/)

[Download](https://downloads.wordpress.org/plugin/goroute-e-invoicing-for-woocommerce.1.3.7.zip)

 * [Details](https://wordpress.org/plugins/goroute-e-invoicing-for-woocommerce/#description)
 * [Reviews](https://wordpress.org/plugins/goroute-e-invoicing-for-woocommerce/#reviews)
 *  [Installation](https://wordpress.org/plugins/goroute-e-invoicing-for-woocommerce/#installation)
 * [Development](https://wordpress.org/plugins/goroute-e-invoicing-for-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/goroute-e-invoicing-for-woocommerce/)

## Description

From 2027, VAT-registered businesses in Oman must issue e-invoices. Tax Authority
Decision No. 189/2026 sets 1 April 2027 for businesses above OMR 5,000,000 in annual
supplies and 1 October 2027 for every remaining VAT registrant. Selling online does
not exempt a store from either date.

GoRoute E-Invoicing connects your WooCommerce store to GoRoute, an accredited Fawtara
service provider and certified Peppol Access Point (POP000991). Connect the store
once; every paid order is invoiced correctly from then on, and the tax report is
filed with the Oman Tax Authority without anyone touching it.

#### Consumer orders

 * A simplified tax invoice with the Fawtara QR code, built to the Tax Authority’s
   specification.
 * Shown on the order-received page, in the order email and under My Account, with
   a verify link and a PDF.
 * The Tax Data Document is filed with the Authority automatically.

#### Business customers

 * An optional VAT number field at checkout. An order with an Oman VAT number becomes
   a full tax invoice, delivered to the buyer’s e-invoicing address over the Peppol
   network.
 * Delivery status on the order, a PDF for every document, and a credit note on 
   refund that cites the original invoice.
 * A buyer not yet on the network is filed with the Authority under the address 
   the Solution Architecture defines, and you send them the PDF from the order page.
 * A network lookup on the settings page tells you whether any VAT number, yours
   or a customer’s, is registered to receive e-invoices.

#### Refunds, retries and reports

 * Every refund raises a credit note. Partial refunds credit only the refunded lines.
 * Duplicate submissions are impossible: a retried or double-clicked order returns
   the same invoice.
 * If GoRoute cannot be reached, the checkout is never blocked; issuing retries 
   in the background and a daily digest lists anything that needs a person.
 * A monthly E-Invoice report gives the net, VAT and gross figures for the VAT return,
   with a CSV export.

#### How to send an invoice

**A consumer sale (B2C).** The customer checks out and pays, leaving the VAT number
field empty. The moment the order is paid, or you mark it Completed, the simplified
tax invoice with the Fawtara QR is issued and the tax report filed. The customer
sees the QR on the order-received page, in the email and under My Account; you see
it in the GoRoute E-Invoice box on the order. For an order you create by hand: add
the items, set the billing country to Oman, click Recalculate so VAT is applied,
then set it to Completed.

**A business sale (B2B).** The customer enters their Oman VAT number and company
name at checkout, or you type them into the billing form of an order you create.
The plugin checks whether that VAT number is registered on the network. Registered:
a full tax invoice is delivered to the buyer’s e-invoicing address over Peppol and
the order shows the delivery state. Not registered yet: the invoice is filed with
the Tax Authority under the address the Solution Architecture defines, the order
shows “Reported to the Tax Authority”, and you send the customer the PDF from the
order page. A business invoice carries no QR.

**A refund.** Refund in WooCommerce as usual; a credit note referencing the invoice
is issued and delivered or filed the same way. The full step-by-step guide, with
what to do when something is refused, is under WooCommerce  E-Invoicing guide.

#### Before the first invoice

A Store readiness panel checks the five things a truthful Oman tax document depends
on: a connection to GoRoute, your VAT number registered on the network, taxes on
with the Oman 5% rate, the site clock on Muscat time, and prices in rials to three
decimals. Each red row has its fix beside it, including a one-click Oman VAT rate.
Products in zero-rated or exempt tax classes are declared correctly on the invoice.

#### Requires a GoRoute account

The plugin is free. A GoRoute subscription is what issues the documents; plans start
at OMR 25 per month including 1,000 documents. Press “Connect to GoRoute” on the
settings page to create an account or sign in, and the store is connected in one
step. Create an account at https://goroute.ai/ if you prefer to do that first.

### External Services

This plugin connects to the GoRoute e-invoicing API at https://goroute.ai to issue
tax documents. It is useless without it, by design: the compliance rules, validation
and QR construction live on the service so they stay current when Oman changes a
rule.

#### What is sent, and when

 * On each paid order and each refund: the order’s line items (name, quantity, net
   price, tax rate and category, SKU), totals, currency, your legal seller name 
   and VAT number, and the customer’s billing name, email, company, address and 
   VAT number if present.
 * On “Connect to GoRoute”: your store’s address and name, so GoRoute can issue 
   the store its own key.
 * On “Test connection” and “Look up”: a single authenticated read to verify the
   key or to ask whether a VAT number is on the network.
 * Nothing is sent at any other time, and nothing is sent by a store that has not
   been connected.

#### What comes back

The invoice number, a verification URL, the QR code as an inline image stored on
the order, delivery status for business documents, and PDFs on request. The plugin
loads no remote scripts, styles or images.

Service provider: GoRoute (ClayDesk LLC / Union Digital Technologies SPC). Terms:
https://goroute.ai/terms.html. Privacy: https://goroute.ai/privacy.html.

## Screenshots

[⌊Settings: the connection state, Store readiness with a fix beside each red row,
and the Network lookup with everything the network says about a VAT number.⌉⌊Settings:
the connection state, Store readiness with a fix beside each red row, and the Network
lookup with everything the network says about a VAT number.⌉[

Settings: the connection state, Store readiness with a fix beside each red row, 
and the Network lookup with everything the network says about a VAT number.

[⌊The order page: the GoRoute E-Invoice box shows the invoice number, its status,
the Fawtara QR code, a verify link, and any credit note raised for a refund.⌉⌊The
order page: the GoRoute E-Invoice box shows the invoice number, its status, the 
Fawtara QR code, a verify link, and any credit note raised for a refund.⌉[

The order page: the GoRoute E-Invoice box shows the invoice number, its status, 
the Fawtara QR code, a verify link, and any credit note raised for a refund.

[⌊What the customer sees on the order-received page and in the order email: the 
simplified tax invoice number and its QR code, ready to verify with the Oman Tax
Authority.⌉⌊What the customer sees on the order-received page and in the order email:
the simplified tax invoice number and its QR code, ready to verify with the Oman
Tax Authority.⌉[

What the customer sees on the order-received page and in the order email: the simplified
tax invoice number and its QR code, ready to verify with the Oman Tax Authority.

[⌊The Orders list: an E-Invoice column shows at a glance which orders are invoiced,
which went to a business buyer over Peppol, which had nothing to invoice, and which
need attention.⌉⌊The Orders list: an E-Invoice column shows at a glance which orders
are invoiced, which went to a business buyer over Peppol, which had nothing to invoice,
and which need attention.⌉[

The Orders list: an E-Invoice column shows at a glance which orders are invoiced,
which went to a business buyer over Peppol, which had nothing to invoice, and which
need attention.

[⌊Checkout: the optional VAT number field. A customer who fills it in gets a full
tax invoice instead of a consumer receipt, with no other change to your checkout.⌉⌊
Checkout: the optional VAT number field. A customer who fills it in gets a full 
tax invoice instead of a consumer receipt, with no other change to your checkout
.⌉[

Checkout: the optional VAT number field. A customer who fills it in gets a full 
tax invoice instead of a consumer receipt, with no other change to your checkout.

[⌊A business order: the tax invoice delivered to the buyer's e-invoicing address
over Peppol, its delivery state, a PDF download, and the credit note raised for 
a refund.⌉⌊A business order: the tax invoice delivered to the buyer's e-invoicing
address over Peppol, its delivery state, a PDF download, and the credit note raised
for a refund.⌉[

A business order: the tax invoice delivered to the buyer’s e-invoicing address over
Peppol, its delivery state, a PDF download, and the credit note raised for a refund.

[⌊VAT categories for the store's tax classes, the customer PDF language, the daily
digest and real-time delivery updates.⌉⌊VAT categories for the store's tax classes,
the customer PDF language, the daily digest and real-time delivery updates.⌉[

VAT categories for the store’s tax classes, the customer PDF language, the daily
digest and real-time delivery updates.

[⌊The E-Invoice report: every document of the month with net, VAT and gross, and
a CSV export for the VAT return.⌉⌊The E-Invoice report: every document of the month
with net, VAT and gross, and a CSV export for the VAT return.⌉[

The E-Invoice report: every document of the month with net, VAT and gross, and a
CSV export for the VAT return.

[⌊Connect to GoRoute: one button on the store, one approval in GoRoute, and the 
store comes back connected with its seller details filled in.⌉⌊Connect to GoRoute:
one button on the store, one approval in GoRoute, and the store comes back connected
with its seller details filled in.⌉[

Connect to GoRoute: one button on the store, one approval in GoRoute, and the store
comes back connected with its seller details filled in.

[⌊The E-Invoicing guide: every step for a consumer sale, a business sale from the
checkout or from a hand-made order, a refund, a buyer not on the network, and what
each refusal means.⌉⌊The E-Invoicing guide: every step for a consumer sale, a business
sale from the checkout or from a hand-made order, a refund, a buyer not on the network,
and what each refusal means.⌉[

The E-Invoicing guide: every step for a consumer sale, a business sale from the 
checkout or from a hand-made order, a refund, a buyer not on the network, and what
each refusal means.

## Blocks

This plugin provides 1 block.

 *   GoRoute E-Invoice The e-invoice for the order on this page: the Fawtara QR 
   receipt for a consumer, the tax invoice notice and PDF for a business customer.

## Installation

 1. Install the plugin from the WordPress plugin directory, or upload the zip under
    Plugins  Add New  Upload Plugin, and activate it.
 2. Open WooCommerce  GoRoute E-Invoicing and press “Connect to GoRoute”.
 3. Sign in to GoRoute, or create an account, and approve the connection. You come 
    back with the key, your legal name and VAT number filled in and delivery updates
    switched on. Prefer a key from your dashboard? Paste it into the API key field 
    instead.
 4. Check that the Store readiness rows are green, then place a test order.
 5. Selling to businesses too? Under “Business invoices: what you sell” pick the type
    of service from the list (or enter the 12-digit customs code for goods). A customer
    who enters a VAT number at checkout then receives a full tax invoice over Peppol.

## FAQ

### How do I connect the store to GoRoute?

Press “Connect to GoRoute” on the settings page, sign in or create your GoRoute 
account, and approve. GoRoute issues the store its own key and sends back your organisation’s
legal name and Omani VAT number; the plugin also switches on real-time delivery 
updates. The key is never shown or typed. Revoke it any time under API Keys in the
GoRoute dashboard; “Disconnect” on the settings page forgets it locally.

### Does it handle business customers?

Yes. The checkout carries an optional VAT number field. An order with a valid Oman
VAT number gets a full tax invoice to that buyer, delivered to their e-invoicing
address through the Peppol network by GoRoute, and the order shows the delivery 
status. Orders without a VAT number get the simplified tax invoice with the Fawtara
QR code.

### What if the business customer is not on the e-invoicing network yet?

The invoice is still issued. Oman’s rollout is gradual, and the Solution Architecture
provides for exactly this case: the document is filed with the Tax Authority under
the substitute address for a buyer not yet on the network, and you send the customer
the PDF, which the order page lets you download. The order shows “Reported to the
Tax Authority” rather than “Delivered”, and the customer’s confirmation carries 
the PDF link.

### How do I check whether a VAT number is on the network?

WooCommerce  GoRoute E-Invoicing  Network lookup. Enter any Oman VAT number, yours
or a customer’s, and the answer says whether it is registered to receive e-invoices
and under which business name. A pending business order also shows this for its 
buyer before the invoice is issued.

### Can two stores share one GoRoute account?

Yes. Connect each store; each gets its own key. Invoice numbers must be unique across
the account, so give the second store a document number prefix under GoRoute E-Invoicing(
INV-SHOP2-101 instead of INV-101). Stores that belong to different legal entities
should use different GoRoute organisations, one per VAT number.

### What does the store need before the first invoice?

Taxes on with the Oman 5% rate, the site clock on Muscat time, prices in rials to
three decimals, and the store’s own VAT number registered on the network. The Store
readiness panel at the top of the settings page checks all of these and offers the
fix beside each one, including a one-click Oman VAT rate. An order that would claim
0% VAT on a standard-rated item is refused with a plain explanation rather than 
filed.

### I sell both goods and services.

Set the store default to whichever you sell more of, then give the other products
their own classification on the product’s General tab: “Services” with the type 
of service from the list, or “Goods” with the 12-digit customs (HS) code. A product
left on “Store default” follows the store setting. Only business invoices need this;
consumer receipts do not.

### I sell zero-rated or exempt goods.

Put those products in a WooCommerce tax class and map the class under GoRoute E-
Invoicing  VAT categories. Zero-rated and exempt lines are then declared as such
on the invoice with the reason code the Tax Authority expects. Unmapped classes 
are standard rated.

### Can customers download a PDF?

Yes. Every invoice and credit note has a PDF link on the order-confirmation page,
in the order email and under My Account  Orders, in English or Arabic as you choose.
No login is needed; the link is signed and unguessable.

### Is there a shortcode or block?

Yes. `[goroute_invoice]` and the “GoRoute E-Invoice” block render the invoice for
the order on the page, for stores with a custom thank-you page. Pass `order="123"`
to show a specific order to someone allowed to see it.

### How do I get the monthly figures for the VAT return?

WooCommerce  E-Invoice report lists every document of a month with net, VAT and 
gross, invoices and credit notes, consumer and business, and exports it as CSV.

### What happens if an order is edited after its invoice was issued?

The tax document does not change with an edit. The order is flagged once, with the
total it was issued for, and the fix is a refund, which raises a credit note.

### Do I need to change my theme or checkout?

No. The plugin hooks the order events WooCommerce already fires. The VAT number 
field is added to the block checkout and the classic checkout without touching your
theme.

### What happens on a refund?

A credit note is issued referencing the original invoice and reported. Partial refunds
credit only the refunded lines. For a business customer the credit note is delivered
over Peppol like the invoice.

### What if GoRoute is unreachable when an order is paid?

The checkout is never blocked. Issuing retries automatically with backoff, the order
note records each attempt, the receipt follows by email once issued, and the daily
digest tells you if anything is still waiting.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“GoRoute E-Invoicing for WooCommerce” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ goroute ](https://profiles.wordpress.org/goroute/)

[Translate “GoRoute E-Invoicing for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/goroute-e-invoicing-for-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/goroute-e-invoicing-for-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/goroute-e-invoicing-for-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/goroute-e-invoicing-for-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/goroute-e-invoicing-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.3.7

 * A “Rate us” link on the Plugins list and a footer note on the plugin’s own screens.
 * FAQ: a store that sells both goods and services.

#### 1.3.6

 * A delivery that fails because the receiving side could not look the buyer up 
   in the registry, usually a momentary fault, is retried automatically after one,
   five and thirty minutes before the order asks for a person. The order box shows
   when the next retry is due.
 * The reachability check before a business invoice asks the network live instead
   of a cached answer.
 * The order panel is placed at the top of the right column by default; the webhook
   secret is masked on the settings page.

#### 1.3.5

 * The type of service for business invoices is chosen from the Tax Authority’s 
   list (CL-12-OM, twenty entries such as “86000000 — Education and Training Services”)
   instead of typed; a typed code the Authority does not know was the reason a business
   invoice on a real store was refused. Goods keep the 12-digit customs (HS) code,
   checked on save. Same picker on the product’s General tab.
 * A missing or invalid classification is explained on the order page with where
   to set it.

#### 1.3.4

 * The order box updates itself for ninety seconds after a business document is 
   issued, so “Being delivered” flips to “Delivered to the buyer via Peppol at 14:
   48” without a reload. “Delivered” carries the time the buyer’s system acknowledged
   the document.
 * A document still unacknowledged after a minute says “Still waiting for the buyer’s
   system to acknowledge” instead of a bare “Being delivered”.

#### 1.3.3

 * A business invoice the platform refuses on validation is now shown as refused,
   with the platform’s reasons in words on the order page, instead of being recorded
   as issued with no document behind it. Such a refusal is not retried; fix the 
   cause and use Issue now.
 * An order that an earlier version recorded as issued without a document behind
   it now says so and offers Issue now.

#### 1.3.2

 * A step-by-step guide under WooCommerce  E-Invoicing guide: before the first invoice,
   a consumer sale, a business sale from the checkout or from a hand-made order,
   refunds, buyers not on the network, checking what was sent, and what each refusal
   means. Linked from the settings page and the Plugins list.
 * The directory description carries a condensed “How to send an invoice”.

#### 1.3.1

 * The Oman-time check accepts any timezone at UTC+4 (Muscat, Dubai, or a manual
   offset) and names the site’s zone and how far off it is.
 * When an order carries no VAT line, the refusal now says why for that order: taxes
   off, the 5% rate missing, or a billing country other than Oman on an order created
   by hand, with the exact steps (Pending  country  Recalculate  complete  Issue
   now).

#### 1.3.0

 * One-button connection: “Connect to GoRoute” signs the merchant in to GoRoute,
   asks for approval, and returns with a store-specific key, the legal name and 
   VAT number filled in, and delivery updates switched on. The key is minted by 
   GoRoute and exchanged server to server; it never appears on screen. Pasting a
   key still works.
 * “Connected to your organisation” and Disconnect on the settings page; the first-
   run notice leads straight to Connect.
 * Document number prefix for a second store on the same GoRoute account, so the
   two stores’ invoice numbers cannot collide.
 * Delivery updates subscribe to the platform’s real event names; a refused registration
   is explained on the settings page.

#### 1.2.0

 * Store readiness panel: taxes and the Oman 5% rate (one click), Muscat time, OMR
   to three decimals, the store’s VAT number registered on the network. The same
   checks appear under WooCommerce  Status.
 * VAT categories: WooCommerce tax classes map to standard, zero rated or exempt,
   with optional reason codes. An invoice that would claim 0% VAT on a standard-
   rated item is refused in words instead of filed.
 * Customers get a signed PDF link for every invoice and credit note on the order-
   confirmation page, in the order email and under My Account; English or Arabic.
 * My Account  Orders  View shows the invoice; the `[goroute_invoice]` shortcode
   and a “GoRoute E-Invoice” block for custom thank-you pages.
 * Bulk action “Issue e-invoices” on the Orders list for orders completed before
   the store was connected.
 * E-Invoice report: the month’s documents with net, VAT and gross, and a CSV export.
 * Retries and delivery polling run on Action Scheduler, visible under WooCommerce
   Status  Scheduled Actions; a daily digest email lists orders needing attention.
 * Real-time delivery updates through a signed GoRoute webhook, connected from the
   settings page.
 * An order edited after its invoice was issued is flagged once with the total it
   was issued for.

#### 1.1.0

 * Business customers. A VAT number field at checkout (block and classic) and on
   the order. An order with a VAT number gets a full tax invoice delivered to the
   buyer’s e-invoicing address over Peppol, with delivery status on the order; refunds
   raise a credit note to the buyer. Orders without one keep getting the simplified
   receipt with the Fawtara QR.
 * Store default item type and classification code for business invoices, with a
   per-product override on the product’s General tab.
 * Network lookup on the settings page: is a VAT number registered to receive e-
   invoices? The same check runs before every business invoice.
 * A business buyer who is not on the network yet still gets an invoice: it is filed
   with the Tax Authority under the substitute address the Solution Architecture
   defines, the order shows “Reported to the Tax Authority”, and the PDF can be 
   downloaded from the order page to send to the customer.
 * Download PDF for every business invoice and credit note; credit notes show their
   own delivery state; a failed delivery can be retried from the order page.

#### 1.0.3

 * An order with no items or a zero total is no longer sent for invoicing; the order
   shows “Nothing to invoice” instead of a validation error, and nothing is retried.
 * An E-Invoice column on the Orders list; the order box shows a verify link and
   any credit notes; a first-run notice points to the settings until the store is
   connected; the legal seller name and VAT number are checked on save.
 * Validation refusals from the platform are shown in words rather than as raw JSON.

#### 1.0.2

 * Corrected the privacy policy URL in External Services, which returned a 404.
 * Removed the bundled Arabic translation files; translations are served from translate.
   wordpress.org.
 * The QR image is accepted only as a PNG data URI, the only form the service emits.
 * Queued retry events are cleared on deactivation.

#### 1.0.1

 * Hardening for the plugin directory review: the QR is validated as an image data
   URI before it is ever printed, the admin QR alt text is translatable, and the
   retry handler’s nonce ordering is documented.
 * readme: External Services states what the service returns and that nothing remote
   is loaded.

#### 1.0.0

 * First release: issue on payment, credit note on refund, QR on the thank-you page
   and in order emails, admin status box with retry, HPOS compatible.

## Meta

 *  Version **1.3.7**
 *  Last updated **4 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [e-invoicing](https://wordpress.org/plugins/tags/e-invoicing/)[Oman](https://wordpress.org/plugins/tags/oman/)
   [tax](https://wordpress.org/plugins/tags/tax/)[woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/goroute-e-invoicing-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/goroute-e-invoicing-for-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/goroute-e-invoicing-for-woocommerce/reviews/)

## Contributors

 *   [ goroute ](https://profiles.wordpress.org/goroute/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/goroute-e-invoicing-for-woocommerce/)