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.
Read more:

OTM 5.8: A Vehicle May Finally Have More Than One Fuel
OTM 5.8 shipped on 13 March 2026. Its most striking change deprecates a field that 5.4 had only just added: one fuel per...

The OTM .NET Packages Jump From 1.1 to 5.7
A month after their first release, the OTM .NET packages jumped from 1.1.1.x to 5.7.1.1. Not a semver accident but a del...

OTM Java Toolkit Lands on Maven Central
Eight days after the .NET packages came the Java side: on 9 July 2025 org.opentripmodel:otm-toolkit landed on Maven Cent...

OTM Gets an Official .NET Library on NuGet
For eight years OTM was a specification you had to retype yourself. On 1 July 2025 OpenTripModel.Model appeared on NuGet...

OTM 5.7: The Actor Becomes a Company or a Person
After eighteen months without a release, OTM 5.7 shipped on 23 May 2025. Its main change touches something nearly every ...

Open source OTM libraries: making transport integrations faster to build
Every integration between a shipper and a carrier starts with the same work: writing out the data model again. We built ...
