Tag for International, local custodians, Universal Exchange Corporation Limited code


Hi all,

May i ask whether we have tags to denote International, local custodians, International and local accounts, Universal Exchange Corporation Limited code, SAFEX code etc.

Thanks in advance for the support and help as usual


Believe PartyID (448) can be used for custodians. For others?


Parties component can be used for actors such as custodians and accounts. You need to use the triple of PartyID(448), PartyIDSource(447) and PartyRole(452) together. For example 447=B (BIC) and 452=28 (custodian). PartyID(448) is always the actual identifier.

What do the codes “Universal Exchange Corporation Limited” and “SAFEX” represent?


Thx Hanno for your regular support. Highly appreciate. In addition, is there a tag to specify custodian account? Also SAFEXCode, Universal exchange corp ltd code are the ones used to specify portfolio trading in derivative, bond and money market instruments. Do we have a tag to specify these codes?


The custodian account would be a combination of PartyRole(452) and PartySubIDType(803). Party sub information is a repeating group nested in the Parties component and requires two fields: PartySubID(523) for the actual identifier and PartySubIDType(803) to explain it, e.g. 17=CSD participant member code (which could be equivalent to the account at the CSD).

You always need to attach a PartySubID component to a specific instance of the Parties component, e.g. a custodian.

I could only find a crypto currency called SAFEX (https://www.coingecko.com/de/munze/safe-exchange-coin/eur), Safe Exchange Coin. Not sure if that is what you are looking for. FIX does not assign its own currency codes and uses an ISO standard for that instead (ISO 4217).

It would be great if you can provide links to both the “codes” you are looking for. Portfolio trading in general can be identified by TrdType(828)=50 (Portfolio trading).


Are you talking about Johannesburg exchange ? Have a glance at the cash market interfaces:
SecurityIDSource is “8”, i.e. Exchange Code.
Though only available in the member restricted web site you find details about JSE derivatives trading and instrument/product identifiers downloadble here:

The product symbol (tag 55) is built as described in section 4:
Constructed using <Underlying Instrument ID (6)> + <”ANY” (3)> + <Expiry Date (6)> + <Instrument ID (9)>Example of a newly constructed Symbol:Underlying (6) + First 3 characters of the Instrument Category (3) + Expiry Date (6) + Universal Instrument ID (9) Example: JSEABCANY171218000004123

Does that match your SAFEX coding ?



Thx for your reply and the PDF. Yes I am talking here about JSE. By SAFEX code i mean it is the account assigned to specific portfolio used for trading in derivative markets. The other SOR Code is the account assigned for trading in money markets. UnexcorCode is the account assigned to specific portfolio used for trading in bond markets and YieldXAccount is the account used for trading in Interest rate markets. I was curious to know whether is there any close match tag to which i can map all these accounts.


@carmianleslie: the Parties component can be used for various accounts.

PartyID=<account/code number>
PartyRole=38 (position account) or 121 (trading sub-account)
PartySubID=“SAFEX” or “SOR” or “Unexor” or “YieldX”, i.e. your own values to identify different codes
PartySubIDType=26 (position account type)

If you cannot find standard PartySubIDType(803) values for asset-class specific accounts, you can also create a user-defined value above 1000, e.g. PartySubID=, PartySubIDType=1000 (account type).


Thx @hanno.klein for the clarification. Highly appreciate your time and constant support. As you are saying is it possible to created user-defined value for PartySubIDType above 1000? will it be understood if third party uses the generated FIXML? If PartySubIDType would have had one of the value as ‘UserDefined’ it would have been great. Infact, i wish ‘UserDefined’ as one of the value in all the pre-defined set of values for fields mentioned in FIX


“User defined” is not a value in itself, it is the name of a category of valid values. Not all FIX fields support user defined values, only those with a data type called e.g. Reserved100Plus or Reserved1000Plus. Some of the FIX fields are key fields, e.g. OrdStatus(39) where it is important to leave the definition of valid values to FIX due to FIX paradigms, e.g. order state changes, being behind these values.

PartySubIDType does support values defined by a specific implementation. It always requires a bilateral agreement with the counterparties to ensure that they are understood properly. Hence the usage of such values should always be the exception as it creates extra effort for all parties involved.


Thx Hanno for your time and support