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
-
-
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 DirectoryandIdentifiers Directoryis supported on IPF. While file available fromBIC DirectoryandSEPA Directoryfollows 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. -
The
Identifiers Allfile 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 theParty Entity Directory. -
Ingestion of TXT version of
Identifiers Allfile provided by SWIFT is not supported on IPF. -
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.
-
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.
-
While the
Identifiers Allfile 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 throughIdentifiers Allfile.
-
Important points to remember:
-
The client implementations should not modify the files names provided by industry sources and ingest the files as received.
-
The initial file processed must be a full file. Subsequently, full and delta files may be processed.
-
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
-
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
2) When record_status value = F
|
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"
}