Setting Up Peppol Invoice Matching In Your TMS
Configure Peppol/UBL carrier invoice receipt and auto-matching in your TMS freight audit module, step by step, before Germany's 2027 mandate.
If you ship freight in or out of Belgium, you are already receiving Peppol invoices whether your TMS is ready for them or not. Belgium's 2026 e-invoicing mandate requires all VAT-registered businesses in Belgium to issue and receive structured electronic invoices for domestic B2B transactions starting 1 January 2026, and that includes the carriers moving your pallets. This guide walks you through wiring Peppol e-invoicing into your TMS freight audit module so UBL invoices from carriers land, match against tendered rates, and clear without someone re-keying PDF line items into a spreadsheet. We will cover the exact fields, the Access Point setup, and what to do when an invoice bounces.
Why This Matters Now, Not Just for Belgium and France
Short answer: three EU countries have already moved or are about to move, and Germany is next in January 2027. If your freight audit module still relies on PDF or email intake, you have a closing window to fix it before manual exception volume spikes.
Belgium's 2026 e-invoicing mandate requires all VAT-registered businesses in Belgium to issue and receive structured electronic invoices for domestic B2B transactions starting 1 January 2026, using the Peppol 4-corner network in EN 16931-compliant formats (UBL 2.1 or CII 16B). If you have carriers invoicing from a Belgian entity, you have likely already seen a UBL file land somewhere it shouldn't.
France is close behind, with a split timeline worth knowing precisely because it changes your rollout math. All French businesses must be able to receive e-invoices from the same date large companies and mid-sized companies (ETIs) must also start issuing them on 1 September 2026, via certified Plateformes Agréées with Peppol as the interoperability layer. The obligation then widens: the issuing obligation extends to SMEs and micro-enterprises from 1 September 2027, after which all French domestic B2B invoicing flows through certified platforms.
Germany is the one most of this blog's readers are planning around. As of January 2027, Germany will require businesses above the €800,000 turnover threshold to issue invoices in a structured electronic format aligned with the European standard EN 16931, with the main accepted formats including XRechnung and ZUGFeRD. That is roughly three months from the date this post went live. If your TMS admin team hasn't started a Peppol intake project, start this quarter, not next.
What You Need Before You Start
You need five things in place before you touch a single mapping field in your TMS. Skipping any of them is the fastest way to spend a weekend debugging a webhook that was never going to fire.
- A Peppol Access Point account. Pagero, Storecove, Tradeshift and TrueCommerce all operate certified Access Points that handle the conversion, validation and routing layer so your TMS never has to speak raw AS4.
- Your GLN (Global Location Number) registered as a receiving participant for each warehouse or legal entity that gets invoiced separately.
- A crosswalk mapping each carrier's SCAC or VAT ID to the matching carrier record in your TMS. Without this, every incoming invoice is an orphan.
- API or SFTP access into your TMS freight audit module for inbound UBL XML. If your TMS vendor only offers a manual upload screen, ask them directly when programmatic intake is on the roadmap.
- A sandbox Peppol participant ID from your Access Point so you can send test invoices before any carrier goes live.
Step by Step: Wiring Peppol Invoices Into TMS Freight Audit
This is the sequence that gets you from "we received a UBL file" to "the system auto-approved it against the tender." Expect two to four weeks end to end depending on how many carriers you onboard in parallel.
- Register your GLN(s) with your Access Point as a receiving participant. Confirm the SMP (Service Metadata Publisher) entry resolves correctly; your Access Point provider can run a lookup to prove it.
- Configure the Access Point to forward incoming Peppol BIS Billing 3.0 invoices to your TMS. Use a webhook if your TMS exposes one, or an SFTP drop folder polled every 15 minutes if it doesn't. Either way, specify the UBL 2.1 XML as the payload format, not a converted PDF.
- Map the key UBL fields, invoice number (BT-1), issue date (BT-2), currency code (BT-5), seller and buyer identifiers, and line items with prices and quantities, plus the buyer reference field, to your TMS freight audit fields: shipment ID, PO number, and accessorial code. This mapping table is the single most important artifact in the whole project; keep it in version control.
- Build the 3-way match rule: tendered rate from your EDI 204/990 tender record versus the invoiced charge versus any accessorial authorization on file. Most freight audit modules let you define this as a rule set rather than custom code.
- Set your auto-approve tolerance, for example plus or minus 2 percent or €5, whichever is smaller. Anything outside that band routes to an exception queue with a named owner, not a shared inbox.
- Run 20 live invoices in parallel with your existing PDF or email intake process for two weeks. Compare match outcomes side by side before you trust the automated path alone.
- Decommission the manual OCR or email intake step once match accuracy holds above 95 percent for one full billing cycle. Don't cut over on day one of a cycle; wait for the close so you have a clean before-and-after comparison.
How You Know It Worked
Three numbers tell you whether the setup is actually working, not just technically live.
- Match rate: aim for above 95 percent of invoices auto-matched within 24 hours of receipt. Below that, your field mapping or tolerance band needs a second look.
- Exception queue age: nothing should sit unresolved past 48 hours. An aging exception queue usually means your crosswalk is missing a carrier or GLN.
- Re-keying count: zero manually re-keyed invoices for any carrier that is Peppol-registered. If your AP team is still typing line items by hand for a carrier you onboarded onto Peppol, something upstream is broken.
Failure Mode: Invoices Bounce or Arrive Unmatched
The two most common causes are a GLN or reference mismatch, and an Access Point certificate that quietly expired. Both are preventable with a bit of calendar discipline.
A GLN mismatch happens when a carrier invoices against the wrong receiving entity's identifier, often because your crosswalk wasn't updated after a warehouse consolidation. The invoice arrives, your TMS can't resolve a shipment ID, and it lands in an unmatched bucket instead of bouncing outright, which is worse because nobody notices for days. Fix it by auditing your carrier-to-GLN crosswalk every quarter, not just at go-live.
Certificate expiry on the Access Point side is quieter and nastier. If your AP's signing certificate lapses, invoices stop routing silently; you don't get an error, you just get nothing. Set a calendar alert 30 days ahead of every certificate renewal date, and build a manual fallback queue for the first 90 days after go-live so you catch a silent failure before it becomes a two-week backlog. This is the same discipline this blog has pushed for credential rotations elsewhere; Peppol certificates are no exception.
Where This Fits With Your Multi-Carrier Stack
Peppol intake is one more inbound feed your freight audit module has to reconcile, alongside EDI 210s, carrier portals, and whatever your multi-carrier platform already pulls in. Ops teams evaluating or re-evaluating their stack for this tend to compare a similar shortlist.
| Platform | Primary role | Peppol/UBL intake noted |
|---|---|---|
| MercuryGate | TMS / freight audit | Not published |
| Descartes | TMS / multi-carrier connectivity | Not published |
| Alpega | TMS / freight procurement | Not published |
| Cargoson | Multi-carrier connectivity / freight visibility | Not published |
| Uber Freight | TMS / brokerage | Not published |
| ShipStation | Parcel shipping / fulfillment | Not published |
None of these vendors have published specific Peppol intake details as of this writing, so check directly with your account team before assuming support. If you want a plainer walkthrough of the Access Point layer itself before you brief your IT counterpart, the four-corner model explainer is the clearest version of how a Peppol invoice actually moves from a carrier's ERP to your inbox. For a vendor-side view of the certification work involved in becoming a Plateforme Agréée for France specifically, Tradeshift's own rundown is a useful second opinion on timing. If your freight audit module already sits downstream of a multi-carrier connectivity platform, loop that vendor into the field-mapping conversation early, since they often own the webhook or SFTP layer you'll be configuring in step two.
Mini-Checklist Recap
Hand this paragraph to your IT counterpart as the one-page version: get a Peppol Access Point account live (Pagero, Storecove, Tradeshift or TrueCommerce), register your GLN as a receiving participant, configure the Access Point to forward UBL 2.1 invoices via webhook or SFTP, map BT-1, BT-2, BT-5 and the buyer reference field plus accessorial codes into the freight audit module, build the three-way match against your EDI 204/990 tender data with a tolerance band of roughly 2 percent, run 20 invoices in parallel with your existing process for two weeks, and retire the manual intake path once match accuracy clears 95 percent for a full billing cycle. Set a calendar reminder now for your Access Point's certificate renewal date. That single reminder is the cheapest insurance you'll buy against a silent invoice backlog.