Open source OTM libraries: making transport integrations faster to build

In logistics, everyone talks to everyone. A shipper to a carrier, a carrier to a road authority, a planning system to an on-board computer. Without a shared language, every new combination means its own translation layer — and that has to be built, tested and maintained for years.
OpenTripModel is that shared language
OTM is an open data standard for logistics and traffic, originally developed by Simacan and managed since 2018 by the Stichting Uniforme Transport Code, together with TLN, evofenedex and DALTI. More than twenty carriers in the Netherlands use it to exchange data with shippers, retailers and road authorities.
A standard on paper is not the same as a standard in production, though. Anyone wanting to use it starts by writing out the data model in their own language, building serialisation, and checking that messages are valid. That is work every integration project was redoing.
What we built
In April 2025 we wrote two libraries from scratch supporting OTM 5.6: one for Java and one for .NET. Both are on GitHub under the MIT licence — free to use, adapt and pass on.
The Java library provides data model classes for OTM entities such as trips, locations and events, plus parsing and serialisation between OTM JSON and Java objects. It runs on JDK 8 and above, so older systems are not left out.
The .NET version is split into three NuGet packages. OpenTripModel.Model holds the type definitions, OpenTripModel.Serializer handles OTM's JSON conventions, and OpenTripModel.Profile validates messages against profiles such as CBS, TransportOrder and CarbonFootprint. So you are not just moving data — you are told when a message does not meet the agreed profile.
Why open source
A standard only becomes a standard when everyone can use it easily. Putting these libraries behind a licence would raise exactly the barrier OTM exists to remove. So they are freely available: any party in the chain can pick them up, and the data model work does not have to be repeated in every project.
The code is at github.com/opentripmodel — otm-library-java and otm-library.net. The standard itself, and changes to it, are tracked in otm5-change-requests.

We're confident we can supercharge your software operation
Our products and services will delight you.
Custom software, built and run
Applications that follow your process, not the other way round. From first sketch to production, and we keep them running after that.
Read more:

My AI Agent Works Through the Night. It Just Can't Decide Anything.
Since August, an agent runs every weekday at half past seven, reads our open merge requests and forms an opinion on each...

48 major outages in twelve months. What is going on at GitHub?
Eight hours down in a single afternoon, 48 major outages in a year, and the largest cause is capacity. On GitHub becomin...

What you're missing with AI agents is rarely a tool
I have been running several AI agents side by side for months. After five hours of DHH on programming with agents, my to...

The creator of Ruby on Rails doesn't write code any more
The creator of Ruby on Rails no longer writes a line of code himself and drives sixteen agents at once. Five hours with ...

Zenthropic: AI phone agents that pick up 24/7
The phone rings outside office hours, during an incident, or exactly when everyone is in a meeting. Zenthropic puts an A...

AI Vampires: The Hidden Price of Twenty Agents
On Joe Rogan, Marc Andreessen describes a new kind of programmer: one who stops sleeping because twenty agents are waiti...
