How X-Road Member Identifiers Are Structured?

In X-Road, member organisations have globally unique identifiers that consist of a sequence of hierarchical codes. The structure of the identifiers is predefined and cannot be changed. However, the values of different identifier parts can be freely defined for every X-Road environment. It’s strongly recommended that the environments that belong to the same X-Road ecosystem follow the same conventions.

A member identifier consists of three parts:

  • instance identifier

  • member class

  • member code.

It is important to plan the acceptable values and conventions upfront so that they are consistent across different environments of the ecosystem. In addition, changing the values is not possible once they have been initially set.

Instance identifier

Every X-Road environment has a code that identifies the X-Road instance – the instance identifier. The instance identifier defines a namespace for the environment. Federation between two X-Road environments - connecting two X-Road environments to one another - is not possible when two environments have the same instance identifier. Therefore, the instance identifier should be globally unique.

It is recommended to use the two-letter country code (defined in ISO 3166-1) of the country running the environment as an instance identifier. Since an X-Road ecosystem usually has more than one X-Road environment, an additional suffix defining the role of the environment may be appended to the country code. The instance identifier of all the environments of the same ecosystem should start with the country code that may be followed by an additional suffix. For example, the table below shows the instance identifiers of the Estonian X-Road ecosystem.

Instance identifier

Country code

Additional suffix

Description

EE

EE

-

Estonian production environment

EE-TEST

EE

TEST

Estonian test environment

EE-DEV

EE

DEV

Estonian development environment

In a corporate deployment, the company running the ecosystem can be included in the instance identifier to avoid a collision with a national ecosystem, for example, EE-MYCOMPANY, EE-MYCOMPANY-TEST, EE-MYCOMPANY-DEV.

Member class

Member classes are used to divide member organisations into different groups or categories, for example, governmental organisations, municipalities, private companies, non-profit organisations, etc. For example:

Member class

Description

GOV

Governmental organisations

MUN

Municipalities

COM

Private companies

NGO

Non-profit organisations

The number of the required member classes depends on the member code. However, it is a common practice to have multiple member classes even if they are not technically required.

Member code

Member code is a unique code identifying a member organization within its member class, for example, a business / company id. Therefore, the number of the required member classes depends on the information that is used as a member code. In case the member code is unique within the ecosystem, one member class is enough to satisfy the technical requirements. However, if there are overlapping member codes, member classes must be designed so that member codes are always unique within a member class.