FINXIS.
Resources

The library.

Working material for teams implementing the CDM — code you can paste into a project, the model as a browsable reference, and canonical products to build against.

Code

Java examples

The pieces every CDM integration needs — building objects, JSON in and out, validation, qualification, calling the model's own functions and post-processing. Written against CDM 7.4.0.

ExampleWhat it covers
Maven setup Two ways in: a new project pulling cdm-java from Maven Central, or a module inside the CDM source tree inheriting cdm-parent. Build with JDK 21 — the CDM enforces [21,22) — while the bytecode targets Java 11. Adding a module to the tree also means adding it to the root pom’s <modules>, or the reactor skips it. Open →
Party builder Two parties — a legal entity with an LEI, an account and a business unit, and a natural person with a national identity number. Each carries its own external key, so both can sit in one document without their references colliding. Open →
Serialization and deserialization Round-trips an existing tradeState through JSON. Both calls throw JsonProcessingException. Open →
Validation Runs the model’s own validation rules over an object and reports what failed. Needs a Guice injector built from CdmRuntimeModule. Open →
Qualification Asks the model what an object is — which product or event type its economics match — and writes the answer back into the object. Takes a builder rather than a built object, so call toBuilder() on the way in; wfs here is a WorkflowStep from a function call. Needs the same Guice injector as validation. Open →
Execute a Rune function Calls one of the model’s own functions. Create_WorkflowStep takes eight arguments in declaration order — message information, timestamps, identifiers, parties, accounts, the previous step, the action and the business event — and optional ones can be null. Open →
Post-processing Run after a function returns and before build(). Four steps in order, mutating the builder in place: rekey, update temporary keys, resolve references, qualify. Covers on its own what the Rekey and Qualification sections do a step at a time — calling those as well as this one repeats work. Despite the name, WorkflowPostProcessor is not WorkflowStep-specific: it takes any root type, a Trade here. PostProcessor is an interface and nothing in CdmRuntimeModule binds it, hence the module — ask for WorkflowPostProcessor by its concrete class instead and you can drop it. Open →
Rekey Generates the global key on every object that declares [metadata key], then repoints external references at the keys it generated. Neither step is injectable — construct them. Takes a builder, not a built object. This is the first thing post-processing does, so call it on its own only when you want the keys without the rest of the chain. Open →

All Java examples

Reference

The model and the products.

Both free, both generated from the standard itself rather than written about it.

01

Model reference

Every type, enum and function in CDM 7.4.0 — attributes, cardinality, the conditions the model enforces, and which products use each type.

02

Product library

Canonical products across interest rate, credit, equity and FX, each with its classification, economics and full JSON.

03

Model Browser

The interactive version — tree, graph and text views, with a release switcher to see how a type has changed. Free, no signup.

Something missing?

Tell us what you are trying to build and we will add the example.