Back to blog

Insights

How to Send Stripe Invoices via Peppol

Stripe emails a PDF and a payment link. Belgian customers and public bodies need the invoice over Peppol instead. Two ways to get it there: the Peppost Stripe app, or sending natively from Financica.

September 3, 20266 min readBy Financica Team

  • #Peppol
  • #Stripe
  • #Invoices
  • #E-invoicing

You bill a Belgian customer €1,210 through Stripe. Stripe finalizes the invoice, emails the PDF with a payment link, and sends reminders. Then the customer's bookkeeper replies that they cannot book a PDF and need the invoice over Peppol.

Since 1 January 2026, a Belgian VAT-registered business invoicing another Belgian VAT-registered business has to issue a structured e-invoice. The default format is Peppol BIS Billing 3.0 over the Peppol network. Other formats are allowed only if both parties agree. The obligation sits with you as the issuer, so it is not one customer's preference but every Belgian B2B invoice you send. Public bodies in most EU countries have had to accept e-invoices for years, Germany has required businesses to be able to receive them since 2025, and Dutch companies ask for Peppol well ahead of any Dutch mandate.

Stripe Invoicing has no Peppol delivery as of September 2026. Both options below are ours: Peppost is a send-only tool we built for Stripe users, and Financica is the accounting app this blog belongs to. Which one fits depends on where you want the invoice to live.

What a Peppol send needs

Peppol is a delivery network. To reach a recipient you need four things:

  • A structured document. The EU profile is Peppol BIS Billing 3.0, a UBL 2.1 XML that follows the EN 16931 standard.
  • A sender identity. Your VAT number or company number is your participant identifier on the network.
  • An access point. Documents only travel between certified access points, so someone has to operate one on your behalf.
  • The recipient's identifier, and the recipient has to be registered to receive. For a Belgian company that is the VAT number (scheme 9925) or the company number (scheme 0208). Many small Belgian companies are still not registered at all.

Stripe holds the invoice data and, if you stored one, the customer's tax ID. The sender identity, the access point and the UBL conversion have to come from another tool.

Option 1: Peppost, from the Stripe Dashboard

Peppost reads a finalized Stripe invoice, converts it to Peppol BIS Billing 3.0 UBL, embeds the original Stripe PDF inside the document, and dispatches it through a certified access point. Stripe stays the system of record.

The quickest way to use it is the Peppost Stripe app. Once installed, every invoice in your Stripe Dashboard gets a Peppol panel showing the customer's tax ID from Stripe, your credit balance, and two actions:

  • Check recipient looks the customer up in the Peppol directory and tells you whether they are registered to receive invoices. The lookup is free.
  • Send converts the invoice, validates it against the Peppol BIS rules, hands it to the access point, and deducts one credit. The panel then shows the delivery status.

The same flow runs on peppo.st without installing anything in Stripe: Sign in with Stripe, confirm the sender profile Peppost pre-fills from your Stripe account, open Invoices and pick a row.

Pricing is prepaid credits, one credit per send. New accounts get 3 free sends. Packs are €10 for 50, €40 for 250, and €70 for 500, paid through Stripe Checkout with a VAT invoice for each purchase. Credits do not expire.

What the recipient receives, and what it costs you when things go wrong:

  • The UBL carries the Stripe invoice number, the finalization date as the issue date, and totals reconciled to Stripe's own excluding-VAT and total amounts. It is the same invoice in a second format, not a second issuance. The Stripe memo and footer travel in the document note.
  • A Stripe invoice the customer already paid by card goes out with the paid amount recorded and an amount payable of zero, so the bookkeeper does not pay it a second time by bank transfer.
  • The Stripe payment link is not part of the UBL. If you want the customer to pay through Stripe, keep Stripe's own email on. Peppost does not change what Stripe sends or when it sends reminders.
  • Only finalized invoices and credit notes are eligible. Drafts are skipped because their numbering and totals are not final yet.
  • The customer needs a tax ID in Stripe. Without one there is nothing to look up and the send is blocked. The same applies when the lookup finds no Peppol registration.
  • The credit is debited only after the access point accepts the document. A send that fails validation or never reaches the network costs nothing. A document the recipient's system rejects after delivery shows as Error with the network's message, and that credit is spent.
  • Peppol has no recall. Once a document has entered the network it stays sent. To correct one, issue a Stripe credit note and a new invoice, and send both the same way. The credit note goes out as a Peppol credit note referencing the original invoice number, which is what makes it bookable on the other side.
  • Peppost sends under your own VAT or company number but does not register you to receive. A Peppol receiving registration elsewhere, in Financica or another tool, is not affected.
  • Stripe test mode works end to end, on a sandbox path that never reaches a real recipient.

Option 2: send natively from Financica

If you keep your books in Financica, you do not need Peppost. Peppol sending is built in.

The setup is a one-time registration. Enter your company number and VAT number under Settings > Organization > General, then click Register on Peppol in the Peppol e-invoicing section. If you are already registered through another tool, Check status tells you, and Moving your Peppol registration to Financica covers the hand-over. The same registration receives your supplier invoices, which Peppost does not do.

From then on, Send invoice on any revenue invoice offers Send via Peppol next to Send by email. Financica checks the recipient's registration first. If the customer is not on Peppol, the option is disabled with a note saying so and you send by email instead. On a send, Financica builds the UBL with the PDF embedded and archives the XML exactly as delivered. You can download that file later from the invoice's Download menu. The invoice page keeps the delivery confirmation and any Message Level Response the recipient's system returns, which is the signal that their software accepted the document rather than just their access point. The no-recall rule applies here too: a sent invoice is corrected with a credit note, which Financica also sends over Peppol.

This applies only to invoices you issue as Financica invoices. Financica can also create invoices as Stripe invoices, where Stripe numbers them and hosts the payment page. Those always send through Stripe, and the Peppol option is not offered on them. Stripe invoices you send with Peppost still land in Financica's books through the Stripe integration, but their Peppol delivery status stays in Peppost.

Which one to use

  • Everything through Stripe, books elsewhere. Install the Peppost Stripe app and send from the Dashboard. Your Stripe setup stays as it is.
  • Stripe for collection, Financica for the books. Keep Stripe invoices for customers who pay by card or SEPA through the payment page, and send those over Peppol with Peppost. Issue invoices that will be paid by bank transfer as Financica invoices and send them via Peppol directly. You run two invoice number series, one from Stripe and one from Financica, which is allowed as long as each is continuous.
  • No Stripe invoicing. Register on Peppol in Financica and send from the invoice page.

Peppol sending in Financica is available on every plan in Belgium, the Netherlands, Luxembourg, Sweden, Norway, Denmark and Finland. Peppost is available today.