Identifiers All to Party Entity Directory mapping

File Types Supported

File Name File Types Supported File Formats Supported File Naming Conventions

Identifiers All

Full

XML, ZIP (XML)

IDENTIFIERS-ALL-V1-F-YYYY-MM-DD.xml

Identifiers All

Daily Delta

XML, ZIP (XML)

IDENTIFIERS-ALL-V1-D-YYYY-MM-DD.xml

Identifiers All

Monthly Delta

XML, ZIP (XML)

IDENTIFIERS-ALL-V1-M-YYYY-MM-DD.xml

AWS S3 Ingestion identifies this file when the file name starts with "IDENTIFIERS". File type is identified using the file type flag value on the file name (F - Full, D - Daily Delta, M - Monthly Delta)
NOTE
  1. Identifiers_All file is available as part of multiple directories from SWIFT (Payments Directory, Identifiers Directory, BIC Directory and SEPA Directory). The version of the file available through Payments Directory and Identifiers Directory is supported on IPF. While file available from BIC Directory and SEPA Directory follows the same format and naming convention and can be ingested, this will not offer full extent of identifier look up needed by client implementations as the source files provided by SWIFT under these directories are filtered by BICs or by identifiers used for SEPA region respectively.

  2. The Identifiers All file can be an XML file on its own or a ZIP version of the XML file. While both the versions are supported, the unzipped XML version of the full file can exceed the file size supported by the ingestion applications and may lead to failures if ingested. It is recommended that client implementations ingest the ZIP version of the XML file on the Party Entity Directory.

  3. Ingestion of TXT version of Identifiers All file provided by SWIFT is not supported on IPF.

  4. Client implementations can subscribe to different frequencies of the files (Full file followed by daily delta or monthly delta). Daily and monthly ingestion frequencies should not be mixed. Where needed, daily and monthly delta file ingestion must be separated by a full file ingestion.

  5. Monthly ingestion of the files can create scheduled records on the party entity directory. After ingestion of the monthly delta files, the full files (if needed) should be ingested on the next scheduled date when the scheduled party entity records will have become active for given month. An out of sequence ingestion of full file (ahead of the next ingestion date) will need the scheduled entries to be deleted from party entity directory.

  6. While the Identifiers All file can be ingested for party entity look up and party entity look up performed using the entries added, the functionality of IBAN deconstruct and BIC Validation need configuration changes for these features to use the party entity records provided through this file. Refer application.conf for the config changes needed for enabling above features using the party entity records added through Identifiers All file.

Important points to remember:

  1. The client implementations should not modify the files names provided by industry sources and ingest the files as received.

  2. The initial file processed must be a full file. Subsequently, full and delta files may be processed.

  3. It is important that the client implementations follow the ingestion schedule as recommended by SWIFT and not ingest the files out of sequence. More information can be found on

  4. IPF currently does not maintain a counter for delta files. It is important for client implementations to ensure files are not processed out of sequence or any intermediate delta files are not skipped before processing subsequent delta files.

Delta File Load Processing

SWIFT provides a modification flag on the records on the Identifiers All files. The modification_flag denotes the type of change. Possible values are:

  • A = Added

  • D = Deleted

  • M = Modified

Records are updated accordingly.

For FULL files, all existing entries that are not part of the new file will be deleted, any new entries are added and any existing entries that have changed are updated.

For DELTA files, processing follows predefined flags, considering only the specified entries for (A)ddition, (D)eletion, or (M)odification.

More on how FULL files are processed can be found here

The monthly delta files can provide identifiers that are scheduled to become active in the days following the availability of the file or the identifiers that are scheduled to become active in the reporting period. This will create scheduled entries on the party entity directory.

Mapping Definitions

Below table provides the mapping as performed from Bank Directory Plus file into Party Entity Directory.

PartyEntity Directory Property (Destination)

Bank Directory Plus Property (Source)

Comment

processingEntity

Value = "UNKNOWN"

Party Entity data is global and common across all processing entities. processingEntity is a DPS specific attribute on the dynamic configuration.

activeFromDate

record_status, start_date

activeFromDate is a DPS specific attribute on the dynamic configuration. 1) When record_status value = C

  1. activeFromDate = START DATE (start_date) (if specified)

  2. activeFromDate = CurrentDate + Time (START DATE not specified)

2) When record_status value = F

  1. activeFromDate = START DATE (start_date) (if specified)

  2. Record skipped if START DATE is not available and a skipped event is raised

activeToDate

stop_date

entityUniqueId

EID (attribute_1)

parentEntityId

PARENT EID (attribute_2)

groupEntityId

PARENT EID (attribute_2)

entityDataSource

Value = "SWIFTRef_Identifiers_All"

entityType

ENTITY TYPE (attribute_4)

isHeadOffice

ENTITY TYPE (attribute_4)

Boolean: Indicates if the entity is a head office entity in the group. Value = True when ENTITY TYPE (attribute_4) = HO. False in all other cases.

entityName

NAME (attribute_19)

entityAddress.addressType

Constant value: ADDR

entityAddress.department

DEPARTMENT (attribute_24)

entityAddress.postBox

POST BOX (attribute_35)

entityAddress.postCode

POST CODE (attribute_36)

entityAddress.townName

TOWN NAME (attribute_32)

entityAddress.countrySubDivision

COUNTRY SUBDIVISION NAME (attribute_37)

entityAddress.country

COUNTRY CODE (attribute_5)

entityAddress.addressLine[0]

ADDRESS LINE 1 (attribute_21)

entityAddress.addressLine[1]

ADDRESS LINE 2 (attribute_22)

entityAddress.addressLine[2]

ADDRESS LINE 3 (attribute_23)

routingIdentifiers.swiftFinPlusBic

FIN(PLUS) BIC (attribute_15)

routingIdentifiers.swiftFinPlusDn

FINPLUS_DN (attribute_16)

ibanIdentifiers.ibanId

IBAN ID (attribute_17)

ibanIdentifiers.ibanBic

IBAN BIC (attribute_18)

entityIdentifier[0].identifier

ID (attribute_7)

entityIdentifier[0].identifierType

ID TYPE (attribute_8)

Value BIC" if ID TYPE (attribute_8) = "BIC11"

Value "LEI" if ID TYPE (attribute_8) = "LEI"

Value "NCC" if ID TYPE (attribute_8) != "BIC11", "BIC8", "LEI"

entityIdentifier[0].identifierSubType

ID TYPE (attribute_8)

Value "ACCOUNT_ISSUING_BIC" when ID TYPE (attribute_8) = "BIC11" Not mapped - When ID TYPE (attribute_8) = "LEI" Value = ID TYPE if (attribute_8) when ID TYPE (attribute_8) != "BIC11", "BIC8", "LEI"

entityIdentifier[1].identifier

ID (attribute_7)

When the identifier record being mapped has an ISO CLC TYPE value, this identifier is added as NCC type id.

entityIdentifier[1].identifierType

Value = NCC

entityIdentifier[ ].identifierSubType

ISO CLC TYPE (attribute_9)

The ISO CLC TYPE provides an ISO20022 equivalent NCC Subtype value.

Example Mapping

Source Record from Industry file

<?xml version="1.0" encoding="UTF-8"?>
<dataexport product="identifiers-all-v1" filetype="full" filedate="20240408">
	<identifiers-all-v1>
		<modification_type>A</modification_type>
		<record_key>ID0000000000</record_key>
		<record_structure>IDENTIFIER</record_structure>
		<record_content_type>H</record_content_type>
		<record_status>RECORD STATUS</record_status>
		<start_date>START DATE</start_date>
		<stop_date>STOP DATE</stop_date>
		<attribute_1>EID</attribute_1>
		<attribute_2>PARENT EID</attribute_2>
		<attribute_3>GROUP EID</attribute_3>
		<attribute_4>ENTITY TYPE</attribute_4>
		<attribute_5>COUNTRY CODE</attribute_5>
		<attribute_6>PAYMENT AREA CODES</attribute_6>
		<attribute_7>ID</attribute_7>
		<attribute_8>ID TYPE</attribute_8>
		<attribute_9>ISO CLC TYPE</attribute_9>
		<attribute_10>ID USAGE</attribute_10>
		<attribute_11>FINANCIAL TYPE</attribute_11>
		<attribute_12>SWIFT TYPE</attribute_12>
		<attribute_13>SUCCESSOR ID</attribute_13>
		<attribute_14>DOMESTIC ACH ID</attribute_14>
		<attribute_15>FIN(PLUS) BIC</attribute_15>
		<attribute_16>FINPLUS DN</attribute_16>
		<attribute_17>IBAN ID</attribute_17>
		<attribute_18>IBAN BIC</attribute_18>
		<attribute_19>NAME</attribute_19>
		<attribute_20>ALTERNATIVE NAME</attribute_20>
		<attribute_21>ADDRESS LINE 1</attribute_21>
		<attribute_22>ADDRESS LINE 2</attribute_22>
		<attribute_23>ADDRESS LINE 3</attribute_23>
		<attribute_24>DEPARTMENT</attribute_24>
		<attribute_25>DEPARTMENT TYPE</attribute_25>
		<attribute_26>SUBDEPARTMENT</attribute_26>
		<attribute_27>STREET NAME</attribute_27>
		<attribute_28>BUILDING NUMBER</attribute_28>
		<attribute_29>BUILDING NAME</attribute_29>
		<attribute_30>FLOOR</attribute_30>
		<attribute_31>ROOM</attribute_31>
		<attribute_32>TOWN NAME</attribute_32>
		<attribute_33>TOWN LOCATION NAME</attribute_33>
		<attribute_34>DISTRICT NAME</attribute_34>
		<attribute_35>POST BOX</attribute_35>
		<attribute_36>POST CODE</attribute_36>
		<attribute_37>COUNTRY SUBDIVISION NAME</attribute_37>
		<attribute_38>COUNTRY SUBDIVISION CODE</attribute_38>
		<attribute_39>COUNTRY NAME</attribute_39>
		<attribute_40>LANGUAGE</attribute_40>
		<attribute_41>SCRIPT</attribute_41>
		<attribute_42>TIME ZONE</attribute_42>
	</identifiers-all-v1>
	<identifiers-all-v1>
		<modification_type>A</modification_type>
		<record_key>ID000000000F</record_key>
		<record_structure>IDENTIFIER</record_structure>
		<record_content_type>D</record_content_type>
		<record_status>C</record_status>
		<start_date>1977-08-29</start_date>
		<attribute_1>006FVDI</attribute_1>
		<attribute_2>006FVDI</attribute_2>
		<attribute_3>006FVDI</attribute_3>
		<attribute_4>HO</attribute_4>
		<attribute_5>DE</attribute_5>
		<attribute_6>EMU,IBAN,SEPA</attribute_6>
		<attribute_7>AACSDE33XXX</attribute_7>
		<attribute_8>BIC11</attribute_8>
		<attribute_10>SWIA,FINPLUS,FIN</attribute_10>
		<attribute_11>FI</attribute_11>
		<attribute_12>SUPE</attribute_12>
		<attribute_14>031259</attribute_14>
		<attribute_15>AACSDE33XXX</attribute_15>
		<attribute_16>ou=xxx,o=aacsde33,o=swift</attribute_16>
		<attribute_17>39050000</attribute_17>
		<attribute_18>AACSDE33XXX</attribute_18>
		<attribute_19>SPARKASSE AACHEN</attribute_19>
		<attribute_21>MUENSTERPLATZ 7-9</attribute_21>
		<attribute_23>AACHEN, NORDRHEIN-WESTFALEN, 52059</attribute_23>
		<attribute_27>MUENSTERPLATZ</attribute_27>
		<attribute_28>7-9</attribute_28>
		<attribute_32>AACHEN</attribute_32>
		<attribute_35>POB 1000</attribute_35>
		<attribute_36>52059</attribute_36>
		<attribute_37>NORDRHEIN-WESTFALEN</attribute_37>
		<attribute_39>GERMANY</attribute_39>
		<attribute_41>SWIFTX</attribute_41>
		<attribute_42>Europe/Berlin</attribute_42>
	</identifiers-all-v1>
</dataexport>

Destination Record - Party Entity Directory

{
  "_id": "DynamicSettings|partyentity-SWIFTRef_IDENTIFIERS-ALL-ID000000000F-AACSDE33XXX-BIC",
  "payload": {
    "entityUniqueId": "ID000000000F",
    "entityDataSource": "SWIFTRef_IDENTIFIERS-ALL",
    "entityName": "SPARKASSE AACHEN",
    "entityAddress": {
      "addressType": "ADDR",
      "streetName": "MUENSTERPLATZ",
      "postCode": "52059",
      "townName": "AACHEN",
      "countrySubDivision": "NORDRHEIN-WESTFALEN",
      "country": "DE",
      "addressLines": ["MUENSTERPLATZ 7-9,AACHEN", "NORDRHEIN-WESTFALEN, 52059"]
    },
    "entityIdentifiers": [
      {
        "identifier": "AACSDE33XXX",
        "identifierType": "BIC",
        "identifierSubType": "ACCOUNT_ISSUING_BIC"
      }
    ],
    "ibanIdentifiers": {
      "ibanId": "39050000",
      "ibanBic": "AACSDE33XXX"
    },
    "routingIdentifiers": {
      "swiftFinPlusBic": "AACSDE33XXX",
      "swiftFinPlusDn": "ou=xxx,o=aacsde33,o=swift"
    },
    "isHeadOffice": true
  },
  "initiatingTimestamp": {
    "$date": "2024-04-05T07:26:27.112Z"
  },
  "recordType": "PartyEntity",
  "activeFromDate": {
    "$date": "2024-04-05T07:26:24.581Z"
  },
  "source": "import",
  "version": 1,
  "createdBy": "import",
  "originatingId": "e6e91e58-74b7-4cf8-9721-f0dcaec7006b",
  "status": "ACTIVE",
  "processingEntity": "UNKNOWN",
  "_class": "com.iconsolutions.ipf.dynamicsettings.repository.PartyEntitySetting"
}