This page proposes further changes in addition to an initial draft amendment to the standard and to the model registered in the repository.


In ISO 20022:2013, Amount is a data type built in to the meta model,
yet it comprises both a decimal quantity and a currency code.
ISO 20022-4:2013 renders the currency as an attribute of the element containing the decimal quantity.

We propose this is deprecated in favour of a Business Component named “Amount” and a corresponding Message Component “Amount1”. Both having elements named “Quantity” and “Currency”. By deprecated we mean that it would remain in the model to support old items, but new items would be prevented from using it.

There are 5 registered Amounts:


Identifier Sets, Code Sets, and “External” Code Sets

An Identifier Set is a reference to an external code list from the model.
A Code Set is a complete enumeration of a domain within the model.
“External” Code Sets were a “tactical” fudge to allow message schema
to select a Code Set by configuration at run time, rather than design time.
The Metamodel should be changed to allow for this distinction.
In the meantime, it is to be indicated in the Semantic Markup.

There are several sets that have been mis-modelled:

  • CurrencyCode, ActiveCurrencyCode are modelled as CodeSet,
    whereas they ought to be IdentifierSet, as the list is managed externally.

Transport Package

Metaclass Conversation is described as an “Exchange of one or more MessageInstances among MessagingEndpoints.” Yet it has no features.

We propose adding an attribute “message” aggregating TransportMessage;
and a trace to Message Choreography. This enables our Conversation+ class to specify constraints on the messages in the conversation, in order to implement a Choreography. Constraints can already be applied at MessagingEndpoint to implement an Interface.

Note that just as a instance of a message could exist that is invalid according to its syntax message scheme, an instance of a conversation could exist that is invalid according to its constraints. The constraints can be implemented to prevent this from happening, or to detect it has happened.

Object Identifiers

ISO20022-1:2013 specifies that each RepositoryConcept may have an objectIdentifier – An ITU-T X.660 | ISO/IEC 9834 series OID (Object Identifier).

This provides an external identifier that would be retained for the concept overtime, regardless of any changes that may occur to its other properties or tooling in which it is maintained.

Currently the e-Repository uses xmi:id to identify repository concepts,
which may be tool dependent.