Appendix 6-H

Use of <SettlInstructions> Component Block

Introduction

The SettlInstructions component block is used to transmit settlement instruction details on an Allocation Instruction, Allocation Report, Confirmation or Settlement Instruction message.

This component block can be used either to contain full settlement instruction details (i.e. settlement agent identities and account numbers) or a reference to a standing instruction database.

Where the component block is used to describe specific settlement instructions (i.e. using the NoDlvyInst repeating group), the number of entries in the NoDlvyInst repeating group is determined by the contents of the SettlDeliveryType field and the context of the message block (i.e. which message it is in). When used in an Allocation Instruction, Allocation Report or Settlement Instruction message, only the settlement instructions for the party generating the message need be specified. On a Confirmation message, both parties to the trade will have their settlement instructions specified. The matrix of usage of the NoDlvyInst repeating group is therefore as follows:

Allocation Instruction, Allocation Report or Settlement Instruction

SettlDeliveryType NoDlvyInst SettlInstSource DlvyInstType
0 – Versus Payment 1 1 (broker's), 2 (institution's) or 3 (investor's), depending on the identify of the originator of the message S – securities
1 – Free 2 1 (broker's), 2 (institution's) or 3 (investor's), depending on the identify of the originator of the message S – securities
1 (broker's), 2 (institution's) or 3 (investor's), depending on the identify of the originator of the message C – cash

Confirmation

SettlDeliveryType NoDlvyInst SettlInstSource DlvyInstType
0 – Versus Payment 2 1 (broker's) S – securities
2 (institution's) S – securities
1 – Free 4 1 (broker's) S – securities
1 (broker's) C – cash
2 (institution's) S – securities
2 (institution's) C – cash

The actual instructions themselves are held within the SettlParties component block inside the NoDlvyInst repeating group. This contains a repeating group of party identifiers and sub ids which is used to hold the identifiers of all parties involved in settlement (e.g. agent, custodian, depository) together with any required account numbers, registration details or similar.

Delivery Instruction Formatting & Structure

Parties & Party Sub-IDs

FIX supports the concept of a "SettlParty", this being an organisation or individual connected in some way to the settlement of a financial transaction. Every SettlParty has a role (defining what the SettlParty is doing), an identifier, SettlPartyID (with a SettlPartyIDSource to identify the type of SettlPartyID) and any number of sub-identifiers (SettlPartySubID), each with a SettlPartySubIDType to define the type of sub-identifier.

For the purposes of settlement instruction definition, the party sub-identifiers can be taken to represent one of three things:

When using the FIX SettlInstructions component block, it may be appropriate to provide a number of identifiers for the same SettlParty (e.g. both the BIC and CREST id for a CREST member agent bank). Only one of these can be held as a SettlPartyID – the other(s) must be held as SettlPartySubID(s). It does not matter which is held where.

Mapping FIX to ISO15022

It is important to note that the ISO15022 standard has a consistent set of codes for what in FIX terms would be called the SettlPartyIDSource (or SettlPartySubIDType for sub-identifiers). Examples include:

C — Country code
P — Qualifier (BIC/BEI)
R — Data Source Scheme/Proprietary Code
Q — Name and address
S — Alternate ID

In the interests of assuring STP, FIX fields and messages only map to ISO15022 options C, P or R (with a strong preference for P - BIC wherever possible). There is no equivalent of "Q" in FIX at the SettlParty level, though this is supported at SettlPartySubID level.

The ISO 15022 standard uses a similar methodology to the component blocks in FIX. This means that the same ISO tag can be used many times in the same message but its meaning depends on which message "sequence" it is in. This is equivalent to the FIX concept of SettlPartyRole. For example, a PSET BIC should be represented in FIX using these tags:

FIX Tag Value
782 SettlPartyID CEDELULL
783 SettlPartyIDSource B
784 SettlPartyIDRole 10

The mapping to a SWIFT tag would work here as follows:

  1. FIX tag 782 is a SettlPartyID and therefore maps to SWIFT tag 95 (Party)
  2. FIX tag 783 shows that the SettlPartyIDSource is a BIC and therefore maps to SWIFT option P.

We can now derive the correct SWIFT tag as 95P, which takes the format :Tag::Qualifier//BIC, or in SWIFT shorthand ::4!c//4!a2!a2!c[3!c] (where [3!c] represents the XXX characters at the end of an 8-character BIC). So, concatenating the values within, or implied by, the FIX tags the mapping is:

782 & 783::& 784 & //& 782, or in the final message, :95P::PSET//CEDELULL

Notes on CSD Identifiers

ISO15022 allows a CSD identifier to be specified along with the type of identifier being used. For example:

:95R::DEAG/CRST/636 — Tag(Option):: (Qualifier)/(Data Source Scheme)/(Proprietary Code)

Here, the various tags have the following meanings:

In order to avoid having the full set of CSD identifier types listed as separate enumerations of PartyIDSource/PartySubIDType, FIX treats all such identifiers simply as CSD participant/member codes (PartyIDSource = H, PartySubIDType = 17). The type of participant/member code (e.g. Euroclear vs. DTC vs. CREST etc.) can be derived simply by looking at the instruction's settlement location (PartyRole = 10 – equivalent to ISO15022 PSET). This is illustrated in the example below.

Settlement instructions for German domestic settlement with Citibank Frankfurt as local agent, into account 11921500:

<SettlParties>
Tag Field Name Value Comments
781 NoSettlPartyIDs 3
782 SettlPartyID DAKVDEFF PSET for German domestic settlement
783 SettlPartyIDSource B BIC is used as the identifier in 782
784 SettlPartyRole 10 Settlement location (PSET)
782 SettlPartyID 7671 Broker's agent's Kassenverein number
783 SettlPartyIDSource H

CSD participant/member code (e.g. Euroclear, DTC, CREST or Kassenverein number)

As the settlement location here is "German domestic", this identifier is therefore a Kassenverein number

784 SettlPartyRole 30 Agent — maps to SWIFT DEAG or REAG (depending on Side)
801 NoSettlPartySubIDs 1
785 SettlPartySubID CITIDEFF

This agent's BIC

This is held here as a PartySubID, though could also have been held as the PartyID with the Kassenverein number held as PartySubID instead

786 SettlPartySubIDType 16 BIC
782 SettlPartyID 9427 Broker or broker's custodian's Kassenverein number
783 SettlPartyIDSource H

CSD participant/member code (e.g. Euroclear, DTC, CREST or Kassenverein number) (KV no. in this case)

As the settlement location here is "German domestic", this identifier is therefore a Kassenverein number

784 SettlPartyRole 27 (client) or 28 (custodian) Deliverer/receiver of securities (or custodian) — maps to SWIFT DECU or RECU (depending on Side)
801 NoSettlPartySubIDs 1
785 SettlPartySubID 11921500 Securities account number
786 SettlPartySubIDType 10 Securities Account – maps to ISO15022 Tag 97 SAFE (Safekeeping account)
</SettlParties>

SWIFT settlement instruction for an example trade, using settlement instructions derived from the above FIX data:

:16R:GENL
   :20C::SEME//011204000064001
   :23G:NEWM
:16S:GENL
:16R:TRADDET
   :94B::TRAD//EXCH/XETR
   :98A::SETT//20011206
   :98A::TRAD//20011204
   :35B:ISIN DE0005557508
:16S:TRADDET
:16R:FIAC
   :36B::SETT//UNIT/3000,
   :97A::SAFE//11921500
:16S:FIAC
Securities account number (taken from third SettlParty in the table above).
:16R:SETDET
:22F::SETR//TRAD
:16R:SETPRTY
      :95R::DEAG/DAKV/7671
   :16S:SETPRTY
Agent – the second SettlParty in the table above. The DAKV identifies the number 7671 as being a Kassenverein number and is derived from a combination of this party's SettlPartyIDSource (H - CSD code) and the SettlPartyID of the settlement agent.
:16R:SETPRTY
      :95P:PSET//DAKVDEFF
   :16S:SETPRTY
Settlement location – the first SettlParty in the table above.
:16R:SETPRTY
      :95R::SELL/DAKV/9427
   :16S:SETPRTY
Custodian/client – the third SettlParty in the table above.
:16R:AMT
      :19A::SETT//EUR50700,
   :16S:AMT
:16S:SETDET
Registration Details & Investor IDs

Where registration details (e.g. a broker or agent's registration number or name) needs to be specified as part of a settlement instruction, this can be done as a SettlPartySubID with SettlPartySubIDType of 11 (registration number) or 14 (registration name) as appropriate. Investor IDs are represented by a completely separate SettlParty with a SettlPartyRole of 5 (investor id).

Notes on use of Settlement Location (PSET) and Trade Matching

One of the strengths of the FIX 4.4 post-execution process is the ability to enrich messages with PSET or full settlement details. This will allow brokers to match the buy-side's PSET for "settlement channel compatibility" prior to the confirmation process. Brokers will compare the PSET on the buy-side's Allocation Instruction with their default PSET for the security in question and, if the match is not exact, they will use their own proprietary logic to determine whether or not to support a "bridge" between the 2 PSETs. All participants are strongly encouraged to use the BIC for sending PSET information. This matching logic closely mimics that proposed by the GSTPA model and has the advantage of alerting parties to potential settlement issues well before instructions are sent to the market. For similar reasons, buy-side firms are encouraged to include net money calculations on their allocations.

Notes on Relational Integrity and Compatibility with ISO15022

The FIX 4.4 post-execution messages have been designed to be compatible with the ISO15022 standard. To ensure that all parties can translate a FIX message into a SWIFT message without ambiguity, it is essential that the information on Allocation Instructions and Confirmations conforms to certain relational integrity rules. This is particularly applicable to the data within the component blocks. The ability to use these blocks to define any number of parties gives considerable flexibility, but there are certain pitfalls. The same SettlPartyIDRole should never repeat within the same block. For example, this slightly contrived combination would be allowed because even though the values in SettlPartyID and SettlPartyIDSource are identical, the values of tag 784 (784=30 and 783=27) are unique.

<SettlParties>
Tag Field Name Value Comments
781 NoSettlPartyIDs 2
782 SettlPartyID CITIGB21XXX
783 SettlPartyIDSource B BIC
784 SettlPartyRole 30 Agent
782 SettlPartyID CITIGB21XXX
783 SettlPartyIDSource B BIC
784 SettlPartyRole 27 Buyer/Seller (receiver/deliverer)
</SettlParties>

However, this equally contrived combination would not be allowed because the values in SettlPartyRole are identical (784= 4 and 784=4) even though the BICs are different.

<SettlParties>
Tag Field Name Value Comments
781 NoSettlPartyIDs 2
782 SettlPartyID DAKV1234
783 SettlPartyIDSource C Generally accepted market code
784 SettlPartyRole 4 Clearing firm
782 SettlPartyID DEUTFF2LXXX
783 SettlPartyIDSource B BIC
784 SettlPartyRole 4 Clearing firm
</SettlParties>