Peppol e-invoicing for Shopify

Shopify takes the order. Zeppol issues the e-invoice.

From January 2027 a German B2B invoice has to be a structured e-invoice, and a PDF stops counting as one. Shopify does not produce them. Zeppol turns every B2B order into an EN 16931 document, numbered in sequence, checked against the EU and the German rules before it leaves, and sent over Peppol or by email.

Free plan, no card. Peppol BIS Billing 3.0 UBL, sent through a certified Access Point. Eight-year archive.

How it works

Set it up once, then stop thinking about it

Three screens between installing the app and an invoice that has left the building. After that Zeppol only asks for you when an order is missing something an invoice legally needs.

1

Tell Zeppol who you are

Your registered name, address, tax number and register entry. §14 UStG wants all of them on every invoice, so Zeppol asks once and stops rather than guesses if one is missing.

2

Connect the Access Point

Zeppol registers your company on the Peppol network through a certified Access Point. One screen, and you never have to think about AS4, SMP lookups or participant identifiers again.

3

Sell. The invoices follow

Choose whether an invoice is raised when an order is placed, paid or fulfilled. From then on every B2B order produces one, numbered in an unbroken sequence.

Zeppol's setup checklist in the Shopify admin, with all four steps marked done

Inside the app

The part that earns its keep is the invoice that did not go out

Generating a file is the easy half. An invoice that was legally required and gets refused is a failed job, so Zeppol checks first and tells you exactly what to fix.

Every order says where its invoice got to

Invoiced, stopped, or not owed one at all. The B2B badge shows which orders Zeppol considers in scope, and a stopped row carries its reason code instead of a spinner.

  • Consumer sales and non-EU exports are marked as skipped, not as failures
  • Generate an invoice by hand whenever you want one
Shopify orders in Zeppol, each row showing its invoice state and a Generate invoice action

A stopped invoice names the rule and the field

Zeppol runs the order past the EN 16931 rules and the German ones before anything is sent. When a check fails the invoice waits, and the row tells you which field to change: a VAT number VIES rejected, a missing supply date, VAT charged on a sale that should have been reverse charge.

27 reasons, each with one sentence naming what clears it. The full list is in the docs.

Zeppol explaining why an order produced no invoice: the buyer's VAT number was rejected by VIES

The record of what happened, not a status light

Each invoice keeps its number, the channel it left by, the AS4 receipt id the receiving Access Point returned, the VAT breakdown and both parties' legal details. That record is the archive, and it is the thing an auditor asks for.

  • The EN 16931 UBL and the PDF are the same invoice, downloadable together
  • Kept for eight years, per §14b UStG
A Zeppol invoice record: handed over, with its AS4 receipt id, VAT breakdown and both parties' details

Peppol or email, and both discharge the duty

A buyer published on the Peppol network gets the invoice over Peppol. Everyone else gets the same EN 16931 document by email, which satisfies §14 UStG just as well: Germany mandates the format, not the channel.

  • Emailed e-invoices are unlimited on every paid plan
  • Only Peppol hand-overs count against your plan, because only they cost anything
Zeppol's invoice list showing each invoice's channel, Peppol or email, and its state

Worth knowing before you buy anything

What Zeppol does not claim

A Peppol hand-over tells you the receiving Access Point took legal custody of your invoice. It does not tell you the buyer opened it, agreed with it or paid it. Peppol's own message-level status explicitly excludes business acceptance.

So Zeppol's final state is handed over, and it stays there. You get the signed AS4 receipt id and a timestamped record, which is the strongest evidence any sender is entitled to.

Credit notes are manual in this version. Zeppol invoices in euros only. It does not serve France, Italy, Poland, Romania or Spain, because those countries run national platforms rather than Peppol, and pretending otherwise would sell you a route that does not exist.

The FAQ has the rest of the edges, including the ones that are inconvenient.

Pricing

Unlimited e-invoices by email. You pay for Peppol

An emailed e-invoice costs Zeppol nothing worth counting, so it is not metered. A Peppol hand-over is bought per document from the Access Point, so that is what counts against your plan. Every band gets the same document and the same checks.

Free

$0 forever

Prove the whole path on one real buyer before paying anything.

  • 5 documents in total, then sending stops
  • No Peppol sends
Get early access

Starter

$19/month

Occasional B2B orders, and a handful of buyers who want Peppol.

  • Unlimited e-invoices by email
  • 50 Peppol sends a month
  • Then $0.30 per extra Peppol send
Get early access

Scale

$99/month

Hundreds of Peppol sends a month, where the overage rate is what matters.

  • Unlimited e-invoices by email
  • 500 Peppol sends a month
  • Then $0.20 per extra Peppol send
Get early access

Full pricing, and what happens at the limit →

Be ready before the deadline, not after it

Zeppol is in review for the Shopify App Store. Leave your email and I will tell you the day it is installable, along with what it does and does not cover.

Or write to [email protected].