Open source OTM libraries: making transport integrations faster to build

Crowds of fun-seekers exploring a city on foot, "

Arjan Franzen

April 2025

Logo of OpenTripModel (OTM), the open data standard for logistics.

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.

no image placeholder

We're confident we can supercharge your software operation

Our products and services will delight you.