Shopify app
GoRoute: Peppol E-Invoicing turns every paid business order on a Shopify store into the legally required e-invoice and delivers it over the Peppol network. GoRoute is the access point, so issuing, delivery and the delivery answer are one service. A buyer who is not on the network is emailed the invoice as a PDF, with the e-invoice file alongside it. Refunds and cancellations raise credit notes.
This guide covers installation, the four set-up steps, the blocks a merchant must switch on, what happens to an order, plans and billing, and what every state on an order means.
Who it is forโ
The app issues for a business registered in Belgium, Germany, the Netherlands, Australia, New Zealand or Oman. Customers can be anywhere: a business customer in another country is invoiced on its own VAT or business number, read from that number's own country prefix.
It requires the Shopify Online Store sales channel, because the VAT-number field is a theme app extension. It works on every Shopify plan. On Shopify Plus the field can also sit inside the checkout itself; on every other plan Shopify does not allow apps into the checkout steps, so the field lives in the cart and the cart drawer instead. Both write the same data to the order.
Installโ
Install from the Shopify App Store listing for GoRoute: Peppol E-Invoicing. Shopify shows the permissions the app asks for (read and write orders, read customers, products and companies); press Install.
The app then lives under Apps in the Shopify admin, and that is also where you reopen it afterwards. The app's own site at connect.goroute.ai describes it and links to the App Store listing; it is not somewhere you install from.
The app opens on Home, which counts the set-up steps left and, once set up, shows what was issued, delivered and needs attention this month.
Set-upโ
Open Set-up & settings from the app's navigation. Four steps, in order.
1. Countryโ
Choose the country the business is registered in and press Save country. From this answer the app knows which identifier to ask business customers for, which document buyers accept, and what to check on the store. A country that is not on the list cannot be invoiced yet.
2. Connect a GoRoute accountโ
Press Connect to GoRoute. You are taken to GoRoute to sign in or create an account, approve the store once, and come straight back. The account starts on the Free plan.
A Shopify development store connects to GoRoute's test environment automatically: documents issued from it reach the test network only, and test buyers such as DE000000020 exist there. A real store connects to production.
3. Business detailsโ
Enter the registered business name, the VAT or business number, and the address that appears on invoices, and press Save business details. This also registers the store's identifier on the Peppol network so the store can receive documents. The Store readiness panel on the same page shows each thing sending and receiving depends on, checked live against the network, and offers a fix where one is needed.
Other settings here:
- Logo URL: a public PNG or JPG shown at the top of every invoice PDF.
- Issue the invoice when the order is paid or fulfilled.
- PDF language: English, or Arabic and English for Oman.
- Delivery notes: only when asked from the order, one on every fulfilment, or never.
- Email the customer the invoice PDF. The e-invoice file is sent with it. In Oman this email is a copy for the customer and never the delivery: the invoice reaches the buyer over the Fawtara network and the Tax Authority either way.
4. Turn the app on in the storefront and adminโ
Shopify never places an app's blocks for a merchant. Until these are switched on, the app is installed but invisible: business customers have nowhere to type their VAT number, so every order is invoiced as a consumer sale, and the order page shows nothing about the invoice.
The VAT-number field. Press Turn on the VAT field. The theme editor opens with the app embed already enabled; press Save there. The field then appears directly above the Check out button wherever the shopper meets one, in the cart drawer and on the cart page, and asks for the VAT or business number and the registered business name. A merchant who prefers to choose the exact spot on the cart page can add the VAT number block to a section of the Cart template instead; where the block is placed, the embed steps aside. On Shopify Plus, open Settings โ Checkout โ Customize, open the apps panel and add GoRoute VAT number to the Contact section.
The invoice on the Thank you and Order status pages. Open Settings โ Checkout โ Customize, switch to the Thank you and Order status tabs at the top of the editor, add GoRoute invoice after checkout on each, and save. The customer then sees the invoice as soon as it is issued and can download it again later.
The invoice block on the order page. Open any order, press Add block in the right-hand column, and choose GoRoute: Peppol E-Invoicing. It stays on every order from then on and shows the invoice number, how it was sent, whether it was delivered, and the PDF, with buttons to issue, retry or download. Printing works without this block: GoRoute is already under More actions โ Print on every order and on the orders list.
What happens to an orderโ
- The order is paid (or fulfilled, per step 3). Shopify tells the app.
- The buyer is identified. The app reads the VAT or business number the buyer gave in the cart, the checkout field on Plus, or an order attribute named
vat_number, and reads it as its own country's number. A German number on a Belgian store is a German business, not a broken Belgian one. - A business sale needs the buyer's registered name. It comes from the billing address's company field, a Plus purchasing company, the business-name field beside the VAT number, or the shipping address's company, in that order. Without a name the order is marked Failed with the reason, and pressing Issue now after adding one issues it.
- The invoice is issued in the format the seller's country requires, validated before anything leaves. One order can only ever produce one invoice.
- It is delivered. A buyer on the Peppol network receives it in their accounting software. Anyone else is emailed two files: a PDF to read, and the e-invoice itself as a separate XML attachment. What the PDF contains depends on the seller's country. For a German or Dutch seller the e-invoice is also carried inside the PDF โ EN 16931 data in a PDF/A-3, going by the name that market knows: ZUGFeRD for a German seller, EN 16931 for a Dutch one. For an Australian or New Zealand seller no such combined file is made: the PDF is a plain one, and the e-invoice is the XML attachment beside it. Belgium does not accept email between businesses, and the order says so rather than pretending the invoice arrived. An Omani invoice is never delivered by email โ it always goes over the Fawtara network and to the Tax Authority. The customer is still emailed a copy of it when the merchant has Email the customer the invoice PDF switched on.
- The answer comes back onto the order: the invoice number, the channel, and the delivery state, as tags and as the block on the order page.
A sale to a consumer, with no VAT number, is deliberately not invoiced outside Oman, and the order says so. In Oman a consumer sale becomes a simplified tax invoice with the Fawtara QR code, reported to the Tax Authority.
Credit notes, pro forma invoices and delivery notesโ
- A refund credits what was refunded; a cancellation credits in full. Each credit note cites the original invoice and travels the same way it went. Refund in the Shopify admin as normal; the document follows.
- A pro forma invoice can be raised from the order for a buyer who needs a document before paying. One per order, replaced rather than duplicated, and labelled plainly as not a tax invoice.
- A delivery note is raised per fulfilment with its despatch date and tracking reference, with or without prices.
Pro forma invoices and delivery notes are not tax documents: they are never transmitted, never reported, and never counted against the plan allowance.
Documentsโ
The Documents page lists every invoice and credit note the store has issued, with the PDF and the XML, the channel and the delivery state. From here a merchant can issue an order that has nothing yet, retry one that failed, email a PDF again, and download or email in bulk. The order page's block links here for that order.
What the customer seesโ
- The cart: the VAT-number and business-name fields, with a line under them saying whether the number was recognised on the network and how the invoice will arrive.
- The Thank you page and the Order status page: the invoice, once issued, with a download.
- The customer account: each order's invoice, so a buyer who lost the email fetches the PDF themselves.
Plans and billingโ
Plans are chosen, changed and cancelled on Shopify and appear on the store's Shopify bill. The app's Plan page shows the current plan and this month's usage and links to Shopify's plan picker.
| Plan | A month | Documents a month |
|---|---|---|
| Free | $0 | 50 |
| Starter | $19 | 250 |
| Growth | $49 | 1,000, 30 days free first |
| Business | $99 | 5,000 |
| Agency | $249 | 20,000, shared across your stores |
- Every plan includes every country and every feature. Nothing is charged per document within the allowance.
- Free stops at its allowance: the next document is held, not lost. When the month turns or the plan changes, retry it from the Documents page โ see the Held row under Order states.
- A paid plan is never stopped. Past the allowance each further document is billed at $0.05, added to the same Shopify bill.
- A document is a tax invoice or a credit note. Pro forma invoices and delivery notes do not count.
- Plans are monthly. Shopify cannot add a per-document rate to a plan with a yearly option, so the yearly rate exists only for accounts billed by GoRoute directly.
- Development stores are never charged: Shopify marks every charge on them as a test charge.
Order statesโ
| State on the order | Meaning | What to do |
|---|---|---|
| Sent, Delivered over Peppol | Issued and accepted by the buyer's access point. | Nothing. |
| Sent, Sent by email | The buyer is not on the network; the PDF and the e-invoice file went by email. | Nothing. |
| Sent, Being delivered | Handed to the network; the answer has not come back yet. | Wait; the state updates by itself. |
| Delivery failed | The network refused or could not reach the buyer. | Check the buyer's number on the Documents page and retry. |
| Failed: needs the buyer's registered name | A business sale with a VAT number but no company name anywhere on the order. | Add the company to the billing or shipping address, then Issue now. |
| Skipped: consumer sale | No VAT number was given, so no e-invoice is required. | Nothing, or add the buyer's number to the order and press Issue now. |
| Not invoiced: invalid number | The number does not match its country's format. | Correct it on the order, then Issue now. |
| Held | Free plan allowance used up. The document is kept, not lost. | Once the allowance renews at the turn of the month, or you choose a plan, press Retry on the document in the Documents page. A held document is not released on its own. |
Order attributesโ
The fields write two attributes onto the cart, which arrive on the order as custom attributes and can be set by other apps or by hand:
| Attribute | Content |
|---|---|
vat_number | The buyer's VAT or business number, with its country prefix. |
company_name | The buyer's registered business name. |
The app also accepts a VAT number under goroute_vat_number, vat, abn, nzbn, vatin or tax_id, and a company name under goroute_company, company or business_name.
Uninstallingโ
Uninstalling the app removes its blocks and embed from the store and, within 48 hours, the store's data from the app: the connection, the business details and the document records. Documents already issued remain in the GoRoute account they were issued under. Reinstalling starts from step 1.
Data and privacyโ
The app reads the buyer's name, email and address from an order because a compliant e-invoice must carry them, and the buyer's VAT number because a business invoice is issued to it. It never reads phone numbers. Customer data lives only as invoice content on the transaction, under the GoRoute privacy policy; the app itself keeps only shop and document references, returned or removed by Shopify's compliance webhooks and deleted on uninstall.
Supportโ
Write to admin@goroute.ai. Include the store's .myshopify.com domain and the order number.