Tolls, charges & invoicing
The toll is on the truck. The invoice is on the shipment.
Put toll costs inside your shipment margin while you are still planning.
A toll is incurred once, by one truck, on one route. Your invoice is per shipment, and a trip usually carries several. Orin prices the toll on the kilometres actually driven, pushes it onto the shipments that caused it, and carries it onto the invoice if that is what you agreed.
In the Netherlands this became everyone's problem on 1 July 2026, when the Vrachtwagenheffing started pricing every kilometre on the designated network, on top of the German Maut. The mechanism below is the same wherever you drive.
Route to invoice, in four steps
- 1
Route
The kilometres actually driven, counted per country.
- 2
Trip cost
Priced from the scheme's own grid for that specific truck.
- 3
Shipment margin
Split across the shipments that rode on the trip.
- 4
Invoice
Charged on, marked up or absorbed, per your agreement.
Priced from the scheme's own grid, not a per-kilometre guess
An average cent per kilometre is not close enough to invoice from. The Dutch rate depends on what the truck weighs and which CO₂ class it is certified in, and the spread between the cheapest and dearest band is more than fivefold.
What the calculation reads
- The route. Kilometres per country on the network that charges for them, from the road the trip was actually routed over.
- The vehicle. Gross weight, certified CO₂ class, axle count and Euro class, from the fleet record for the truck on the trip.
- The rate version valid on the day the trip runs, including any temporary discount then in force.
- The full Dutch grid (four weight bands × five CO₂ classes) matched to each vehicle's actual gross weight and certified emission class.
- Weight bands follow the official meer dan X tot en met Y convention, so a truck at exactly 12,000 kg lands in the lower band, the same way the RDW specification classifies it.
- German Maut is vehicle-specific (weight, axle count, Euro and CO₂ class), so Orin takes the exact per-vehicle toll from the routing provider and keeps a class-aware grid as the fallback.
- Country-scoped throughout: a German toll is billed only on the kilometres actually driven in Germany, not across the whole route.
- Calculated is not settled. What Orin produces is the expected toll for that trip. The amount you are actually charged arrives later on your toll provider's invoice, and Orin reconciles that bill line by line against the trips it belongs to, flagging the differences.
It tracks the regulation, including the parts that expire
Toll schemes are not static. They index annually, they carry introductory discounts, and they have opinions about trucks whose paperwork is incomplete. A rate table that ignores this is wrong within a year, usually silently.
Rates ship from the schemes themselves: the Dutch Wet vrachtwagenheffing tariff tables and the German Bundesfernstraßenmautgesetz rates. Each rate carries the validity window it applies in, so you can see which version priced a trip. Rates are per tenant, so you can adjust or add any of them.
Rate tables last reviewed: 22 September 2026
- The temporary −22.3% Dutch discount is held as its own dated version, applied automatically to trips inside the window and lapsing on its own afterwards. Nobody has to remember to switch it off.
- Rates are versioned by validity window, so a trip is always priced with the rate that applied on the day it ran, including when you re-open it months later.
- A vehicle with no certified CO₂ class resolves to class 1 (the scheme's own default for uncertified trucks) so an incomplete fleet record costs you nothing in under-recovery.
From the truck to the shipment
A toll is one cost on one truck. Unless it is broken down onto the shipments that caused it, margin per shipment is an average wearing a number's clothes.
- Toll cost is allocated per trip cost line down to each shipment on the trip: traceable back to the line it came from, not lumped into one figure.
- Provisional while you are still planning, so you see the effect on margin before committing the truck, then finalised in place when the trip completes, never duplicated.
- Change the route and the toll lines regenerate; the shipment-level allocation follows automatically.
- Margin then reads correctly at every level you care about: per trip, per shipment, per customer and per department.
One trip, three shipments
Trip TR-2026-00118 · 412 km · Vrachtwagenheffing € 58,20
| Shipment | Share of the load | Toll allocated |
|---|---|---|
| S-26-000101 | 6.0 ldm · 45% | € 26,19 |
| S-26-000102 | 4.0 ldm · 30% | € 17,46 |
| S-26-000103 | 3.4 ldm · 25% | € 14,55 |
Example figures.
Allocating a cost is not the same as charging it on
Allocation puts the cost against the shipment that caused it, which is what makes margin per shipment a real number. Whether the customer ever sees a toll line is a separate decision, set per customer in their rate template: charged on at cost, marked up, or folded into an all-in rate. Nothing lands on a customer invoice because it exists as an internal cost line.
And then it leaves on a document the receiving country accepts
Recovering a cost only counts once it is on something your customer's system will take, and that is a different problem in every country.
VAT determined automatically from seller and buyer country and status (standard, reverse charge, zero, exempt or outside scope), with the right category code and the mandatory legal text on the export.
Customer VAT numbers validated live against the EU VIES registry, because an intra-EU reverse charge is only valid with a verified number.
More on invoicing and VAT →The network standard
Peppol BIS Billing 3.0 in UBL, built to the EN 16931 semantic model. This is what most EU trading partners exchange on.
National requirements we support
- Germany · XRechnung, the national EN 16931 profile for public-sector invoicing.
- Italy · FatturaPA, exchanged through SdI.
- France · Factur-X, delivered through the Chorus Pro platform.
- Spain · VeriFactu, the certified-billing record regime.
- Portugal · ATCUD, the unique document code and its QR.
These are not all the same kind of thing: one is a network standard, some are national formats and some are regimes your billing software has to comply with. Orin produces what each one requires from the completed trip.
The toll, on the trip, on the shipment
The charge line as it sits on the trip: measured over the kilometres driven, then carried onto the shipment that rode along.
Questions we get asked
Which countries are covered?
Sixteen European toll countries ship with default rates, including the Netherlands, Germany, Belgium, Austria, Switzerland, France, Spain, Italy, Poland, Czechia, Slovakia, Hungary, Slovenia, Croatia, Romania and Bulgaria. Rates are per tenant, so you can adjust or add any of them yourself.
What if my routing provider already returns tolls?
Then Orin uses it. Which countries take the provider's figure and which use the built-in grid is a setting: the Dutch scheme defaults to the internal grid because it is class-based and statutory, while German Maut defaults to the provider's exact per-vehicle toll. You are never stuck with the less accurate of the two.
Does the toll update if the route changes?
Yes. Toll lines are generated from the route distance and regenerate whenever the route is recalculated: a re-plan, an added stop, a different vehicle. The allocation down to each shipment follows automatically.
Can I pass the toll on to my customer automatically?
Yes. Tolls are ordinary charge lines, so a customer rate template can mark them up, pass them through at cost, or fold them into an all-in rate, with an optional minimum-margin floor so a passthrough never quietly turns a load unprofitable.
What happens when the rates change next year?
Rates carry validity windows, so a new indexed rate is added as a new version rather than overwriting the old one. Historical trips keep the rate that applied when they ran, which is what you need when a customer queries an invoice from eight months ago.
See tolls and margin in a demo.
Book a demoThirty minutes on our own demo fleet. Want it on one of your own routes and trucks? We set that up after the first call.