EFI Data Protocols
For Financial Institutions, it is critical to maintain and increase correspondent banking relationships, as well as to manage financial crime risk effectively.
The EFI provides a number of enterprise solutions to enable more targeted and effective FinCrime risk management.
Critically, we enable our clients to understand and evidence FinCrime risk profiles, and to control the narrative around FinCrime risk with Correspondents, Regulators and other counterparties.
In this page you will find all necessary data protocols you will need to extract from your system in order for Elucidate to perform the Elucidate FinCrime Index assessment.
Download all sample package here
Change Log
Versions 0.1 to 0.11 Changes
Version | Date | Change |
---|---|---|
0.1 | 01.11.2018 | Initial private version |
0.2 | 15.11.2018 | Added anonymisation mechanism |
0.5 | 13.12.2018 | Link samples to EFI version |
0.6 | 01.10.2019 | Improved transaction file |
0.7 | 27.01.2020 | Improved transaction file |
0.8 | 26.02.2020 | Improved customer data protocol |
0.9 | 03.06.2020 | Improved sanctions and transactions screening protocol |
0.10 | 11.09.2020 | New fields and types added |
0.11 | 29.10.2020 | Attribute details tables for all files and new fields and types and added |
1.0 | 04.01.2021 | Improved description of attributes and new data attributes added. Updates on Anonymisation, Security and Common Types |
2.0 | 01.03.2023 |
Version 1.0 Changes
Section | Changes |
---|---|
Customer Data | Added the following two new data attributes: - account_suspended - account_suspended_date Improved description of the following data attributes: - isic_code - product_usage - source_of_wealth - source_of_funds - account_suspended - account_suspended_date |
Customer Associated Parties | Added the following two new data attributes: - associated_countries - ultimate_beneficial_owner Improved description of the following data attributes: - account_number - entity_type - beneficial_owner_name - beneficial_owner_share_percentage - director_name - signatory_name - date_of_birth |
Transactions | Improved description of the following data attributes: - transaction_id - incoming_intermediary_fi_bic - outgoing_intermediary_fi_bic |
Employee Data | Added the following new data attribute: - contract_consultant Improved description of the following data attributes: - employee_outside_business_organisation |
Employee Training & Conduct | Improved description of the following data attributes: - training_subject |
Product Report | Updated title of data attributes from product_mapped_to_elucidate_standard_product_list to mapped_product Added the following new data attribute: - product_id |
Sanctions Screening | Added the following two new data attributes: - alert_transaction_id - alert_list_name |
Transaction Monitoring | Added the following new data attribute: - alert_list_entry_name |
Affiliates Report | Added the following new data attribute: - affiliate_percent_ownership |
Vendors | Added the following three new data attributes: - service_provided - vendor_id - vendor_address_country |
Anonymisation | Improved the description to request an anonymisation data submission file each month with sample names anonymised and detail of the header fields required in a file |
Security | Changed text for encryption of data to public instead of private key |
Not Collected | Added not_collected string in the Common Types section to cover where data points are not available to be provided. |
Version 1.2 Changes
Data protocol changes will be released on May 15th 2022 both on documentation and for new clients currently onboarding also on the platform. Existing clients will have individual timeline agreed with Customer Success Manager to switch to new formats until October 2022
Quick View
Old files v1.1 | New files v1.2 |
---|---|
Transactions | Transactions |
Customers | Account Holder |
Employee Data | Employee Data |
Sanctions Screening | Sanctions Screening |
Transaction Monitoring | Transaction Monitoring |
Product Report | Product Report |
Affiliates Report | Affiliates Report |
Vendors | Vendors |
Employee Training & Conduct | |
Customer Associated Parties | |
Accounts | |
Account-Holder Ref | |
Watchlist Management |
Detailed View
Old Files | New Files | Data Format Changes |
---|---|---|
Transactions | Transactions | No changes to data points |
Customers and Customers Associated Parties | Accounts, Account Holder, and Account-Holder Ref | Splitting customer and customers associated file into Accounts, Account Holders, and Account-Holder Ref. Accounts will include: - account_number - cash_balance_amount - cash_balance_currency - account_open_date - account_close_date - account_close_reason - account_suspended - account_suspended_date - account_opening_type - branch_id - relationship_manager_employee_id - product_usage Account holders file will include: - account_holder_id - full_name - first_name - middle_names_patronmyic - last_name - date_of_birth - place_of_birth_city - place_of_birth_country - country_citizenship - document_present - address - address_country - address_postal_code - address_city - legal_entity_identifier - legal_entity_type - legal_form - isic_code - adverse_information_search - adverse_information_search_date - net_worth_amount - source_of_wealth - source_of_funds - initial_cdd_completion_date - last_cdd_review_date - system_risk_rating - pep_status - associate_pep_status - edd_triggered - branch_id - relationship_manager_employee_id - is_sanctioned - sanction_screening_date Account-Holder Ref will include: - account_holder_id - account_number - beneficial_owner_documentation - is_beneficial_owner - owner_share_percentage - is_director - is_signatory - ultimate_beneficial_owner We will require a parent and child account number to show the link between accounts where applicable. in instances where there is a parent and child account; account_number_parent would be the parent and account_number would be the child |
Employee and Employee Training | Employee Data | Merged the Employee Training & Conduct file with the Employee file Added the following new data attribute: - employee_financial_crime_certification - employee_financial_crime_certification_date We will require 12 months of employee data When you select an employee breach, please ensure it includes the abc_breach_amount, abc_breach_currency & abc_breach_date This will be one line per employee. So if an employee has a 1, 2 or X amount of breaches, this should be input as - Breach 1 = abc_breach_amount 1, abc_breach_currency 1 & abc_breach_date 1 - Breach 2 = abc_breach_amount 2, abc_breach_currency 2 & abc_breach_date 2 - Breach 3 = abc_breach_amount 3, abc_breach_currency 3 & abc_breach_date 3 When you select an employee training, this should include the training_assessment, training_date and training_subject This will be one line per employee. So if an employee has a 1,2 or X amount of training, this should be input as - Training 1 = training_assessment, training_date 1and training_subject 1 - Training 2 = training_assessment 2, training_date 2 and training_subject 3 - Training 3 = training_assessment 3, training_date 3 and training_subject 3 |
Watchlist Management | Introduced a new data protocol on internal and external watchlists. This data protocol will require the following data attributes. The data points internal_list_dateofbirth_incorp and internal_list_fullname can be hashed and anonymised - external_list_fullname - external_watchlist_provider - internal_list_addition_datetime - internal_list_addition_reason - internal_list_dateofbirth_incorp - internal_list_deletion_datetime - internal_list_deletion_reason - internal_list_entity_type - internal_list_entry_country_location - internal_list_entry_id - internal_list_entry_source - internal_list_fullname |
|
Product Report | Product Report | Added the following new data attribute: - new_product_release |
Sanctions Screening | Sanctions Screening | Added the following new data attribute: - sanctions_screening_system - sanctions_screening_system_version |
Transaction Monitoring | Transaction Monitoring | Added the following new data attribute: - account_regulator_filing - account_regulator_filing_date |
Vendors | Vendors | No changes to data points |
Affiliates Report | Affiliates Report | Added the following new data attribute: - revenue_percent_generated_per_affiliate - products_per_affiliate - new_product_release_list If you have any affiliates, please complete and send this data protocol as part of your monthly upload |
Version 2.0 Changes
Data protocol changes will be released on May 15th 2023 both on documentation and for new clients currently onboarding also on the platform. Existing clients will have individual timeline agreed with Customer Success Manager to switch to new formats until October 2023
Quick View
Old files v1.2 | New files v2.0 |
---|---|
Transactions | Transactions |
Account Holder | Account Holder |
Sanctions Screening | Sanctions Screening |
Employee Data | |
Transaction Monitoring | |
Product Report | |
Affiliates Report | |
Vendors | |
Accounts | |
Account-Holder Ref | |
Watchlist Management |
Detailed View
Old Files | New Files | Data Format Changes |
---|---|---|
Transactions | Transactions | Transaction direction and branch id removed. BIC fields now renamed to id to support BIC, ABA, CHIPs Uid |
Account Holder | Account Holder | Removed fields for customer ease |
Sanctions Screening | Sanctions Screening | Removed fields for customer ease |
Timeline
Data from the previous calendar month needs to be made available by the 10th of the current month.
Formats
We will accept data submissions in CSV, xls, xlsx or JSON formats. We accept ISO 20022 format.
For CSV file descriptions, the CSV Schema can be referenced for additional detail CSV Schema
For JSON file descriptions, the JSON Schema can be referenced for additional detail JSON Schema
You can submit the files individually or zip
, rar
or tar.gz
If you want to encrypt the files please check our security section
Prioritisation
The priority level assigned to each file type is based on the number of tests conducted on the data contained in each.
File name | Priority |
---|---|
Wolfsberg CBDDQ | 1 |
Transactions | 1 |
Account Holders | 2 |
Sanctions Screening | 2 |
In general, there are two modes of assessment:
- Portfolio assessment - where your institution is assessing your counterparties
- Self assessment - where you are performing an assessment of your institution
The following table provides details on which files should be provided, based on the mode of assessment and how the files should be loaded:
File name | Self assessment | Portfolio assessment |
---|---|---|
Wolfsberg CBDDQ** | x | x |
Transactions* | x | x |
Account Holders | x | |
Sanctions Screening* | x | x |
*
These files should contain the relevant FI portfolio data
**
A completed Wolfsberg CBDDQ should be provided initially (A) and a new fully completed version anytime there are changes
There are two types of file loading. The appropriate loading type is specified in the table below:
Institution Data
Wolfsberg CBDDQ
In 2020 the Wolfsberg Group published the updated Correspondent Banking Due Diligence Questionnaire (CBDDQ v1.3) and related guidance material (Completion Guidance, Frequently Asked Questions (FAQs) and Glossary).
The CBDDQ aims to set an enhanced and reasonable standard for cross-border and/or other higher risk Correspondent Banking Due Diligence, reducing to a minimum any additional data requirements, as per the Wolfsberg definition and current FATF Guidance.
It is also the Group’s expectation that the Group members will begin to use the CBDDQ, in a phased approach, with all of their respondents. For more information about Wolfsberg CBDDQ go here.
Please note that CBDDQ versions 1.2 or 1.3 are acceptable for submission
File Name
Files regarding the Wolfsberg CBDDQ should have the prefix wolfsberg_cbddq
and the date for which it represents.
wolfsberg_cbddq_YYYYMMDD.xlsx
For example, a file with all the data from 2018 should be:
wolfsberg_cbddq_20181231.xlsx
If you plan to attach more documents referred in the Wolfsberg CBDDQ please do so using the same prefix.
Sample Package
Download sample package here
Account Holder
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/AccountHolder"
},
"efiVersion": "2.0",
"definitions": {
"AccountHolder": {
"type": "object",
"additionalProperties": false,
"properties": {
"account_number": { "$ref": "#/definitions/nonEmptyString" },
"full_name": { "$ref": "#/definitions/nonEmptyString" },
"account_holder_id": { "$ref": "#/definitions/nonEmptyString" },
"date_of_birth": { "$ref": "#/definitions/Date" },
"place_of_birth_country": { "$ref": "#/definitions/Country" },
"country_citizenship": { "$ref": "#/definitions/Country" },
"address": { "$ref": "#/definitions/Address" },
"address_country": { "$ref": "#/definitions/Country"},
"legal_entity_type": { "$ref": "#/definitions/LegalEntityType" },
"system_risk_rating": { "$ref": "#/definitions/SystemRiskRating" },
"is_pep": { "type": "boolean" },
"edd_triggered": { "type": "boolean" },
"is_sanctioned": { "type": "boolean" },
"sanction_screening_date": { "$ref": "#/definitions/Date" }
},
"required": [
"account_number",
"account_holder_id",
"full_name",
"date_of_birth",
"country_citizenship",
"address",
"address_country",
"legal_entity_type",
"system_risk_rating",
"is_pep",
"edd_triggered",
"is_sanctioned",
"sanction_screening_date"
],
"title": "AccountHolder",
"allOf": [{
"if": {
"properties": {
"adverse_information_search": { "const": "true" }
}
},
"then": {
"properties": {
"adverse_information_search_date": { "$ref": "#/definitions/MaybeDate" }
}
}
}]
},
"Country": {
"title": "Country",
"description": "ISO 3166-1 alpha-2 country code",
"type": "string",
"pattern": "^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$"
},
"LegalEntityType": {
"title": "Legal Entity Type",
"type": "string",
"enum": [
"individual",
"sole_proprietorship",
"ngo_general",
"ngo_foundation",
"ngo_non_profit",
"spv",
"spe",
"pef",
"pic",
"trust",
"foundation",
"mdb",
"partnership",
"gov_intl_org",
"gov_embassies",
"gov_other",
"corporate_extra_small",
"corporate_small",
"corporate_medium",
"corporate_large",
"corporate_extra_large",
"corporate_other",
"fi_bank",
"fi_psp",
"fi_crypto",
"fi_central_bank",
"fi_insurance",
"fi_broker_dealer",
"fi_msb",
"fi_credit_union",
"fi_investment",
"fi_islamic",
"fi_other",
"funds",
"legal_type_other"
]
},
"SystemRiskRating": {
"title": "SystemRiskRating",
"type": "string",
"enum": ["low", "medium", "high"]
},
"SanctionScreeningResult": {
"title": "SanctionScreeningResult",
"type": "string",
"enum": ["sanctioned", "not_sanctioned"]
},
"NumberOrString": {
"title": "NumberOrString",
"oneOf": [{
"$ref": "#/definitions/nonEmptyString"
}, {
"type": "number"
}]
},
"Date": {
"title": "Date",
"type": "string",
"format": "date"
},
"MaybeDate": {
"title": "MaybeDate",
"oneOf": [{
"type": "string",
"format": "date"
}, {
"const": ""
}]
},
"Address": {
"type": "string",
"minLength": 1,
"faker": "address.streetAddress"
},
"nonEmptyString": {
"type": "string",
"minLength": 1
}
}
}
version 1.1
@totalColumns 14
@separator ','
// @efi_version 2.0
// Unique and unambiguous identification for the account between the account owner and the account servicer.
account_number: notEmpty
account_holder_id: notEmpty
full_name: notEmpty
// For Non individuals, use it as date of incorporation
// ISO 8601
date_of_birth: xDate
// For Non individuals, use it as country of incorporation
place_of_birth_country: regex("^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$")
country_citizenship: regex("^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$")
address: notEmpty
// ISO 3166-1 alpha-2
address_country: regex("^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$")
legal_entity_type: any("individual", "sole_proprietorship", "ngo_general", "ngo_foundation", "ngo_non_profit", "spv", "spe", "pef", "pic", "trust", "foundation", "mdb", "partnership", "gov_intl_org", "gov_embassies", "gov_other", "corporate_extra_small", "corporate_small", "corporate_medium", "corporate_large", "corporate_extra_large", "corporate_other", "fi_bank", "fi_psp", "fi_crypto", "fi_central_bank", "fi_insurance", "fi_broker_dealer", "fi_msb", "fi_credit_union", "fi_investment", "fi_islamic", "fi_other", "funds", "legaltype_other")
system_risk_rating: any("low", "medium", "high") or empty
is_pep: any("true","false")
// information if account holder has an association with a pep
edd_triggered: any("true","false")
is_sanctioned: any("true","false")
sanction_screening_date: xDate
File Name
The file regarding account holder data should have the prefix account_holder
and the date for which it represents.
account_holder_YYYYMM.csv
For example, a file with all the data from January 2019 should be:
account_holder_201901.csv
Data Types
See more information about the data types:
Frequency
Initial submission should include records for the past year. After initial submission, submitted monthly only accounts that were not closed during the entire period, if the account was open for at least one legal second it should be included.
Sample Package
Download sample package here
Attribute Details
Attribute name | Type, format and values | Description | Pseu. | Req. |
---|---|---|---|---|
account_number |
String | Unique identifier of the account | No | Yes |
acount_holder_id |
String | Unique identifier of account holder | No | Yes |
full_name |
String | This should be the full name of the customer, as it appears on the account | Yes | Yes |
date_of_birth |
Date YYYY-MM-DD ISO 8601 format |
Provide in the ISO 8601 format. For individuals provide the date of birth. For companies/ legal entities provide the date of incorporation | No | Yes |
place_of_birth_country |
String ISO Country code 3166-1 alpha-2 |
ISO Country code 3166-1 alpha-2. Provide the country in which the customer was born. For legal entities, this would be the country of incorporation | No | Yes |
country_citizenship |
String ISO Country code 3166-1 alpha-2 |
ISO Country code 3166-1 alpha-2. Provide the customer's country of citizenship - this applies to individuals only | No | Yes |
address |
String | Provide the customer current residential address, in the case of individuals. For companies/legal entities, this would be the operational address of the entity | Yes | Yes |
address_country |
String ISO Country code 3166-1 alpha-2 |
The country associated with the residential/operational address of the customer | No | Yes |
legal_entity_type |
String "individual", "sole_proprietorship", "ngo_general", "ngo_foundation", "ngo_non_profit", "spv", "spe", "pef", "pic", "trust", "foundation", "mdb", "partnership", "gov_intl_org", "gov_embassies", "gov_other", "corporate_extra_small", "corporate_small", "corporate_medium", "corporate_large", "corporate_extra_large", "corporate_other", "fi_bank", "fi_psp", "fi_crypto", "fi_central_bank", "fi_insurance", "fi_broker_dealer", "fi_msb", "fi_credit_union", "fi_investment", "fi_islamic", "fi_other", "funds", "legal_type_other" |
Provide the legal entity type from the available allowed values on the legal type list. | No | Yes |
system_risk_rating |
String "low", "medium", "high" |
Provide the risk rating assigned to this customer - map the internal values to these generic groupings | No | Yes |
is_pep |
Boolean "true", "false" |
Indicate whether the customer is, or has been at any time, entrusted with prominent public functions and is a known PEP | No | Yes |
edd_triggered |
Boolean "true", "false" |
Indicate whether EDD was triggered for this customer | No | Yes |
is_sanctioned |
Boolean "true", "false" |
Results of most recent sanctions screening | No | Yes |
sanction_screening_date |
Date YYYY-MM-DD ISO 8601 format |
Date of most recent sanctions screening | No | Yes |
Transactions
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/TransactionElement"
},
"efiVersion": "2.0",
"definitions": {
"TransactionElement": {
"type": "object",
"title": "TransactionElement",
"additionalProperties": false,
"properties": {
"transaction_date": { "$ref": "#/definitions/MaybeDate" },
"transaction_id": { "$ref": "#/definitions/NumberOrString" },
"transaction_message": { "$ref": "#/definitions/nonEmptyString" },
"transaction_currency": { "$ref": "#/definitions/Currency" },
"transaction_amount": { "$ref": "#/definitions/NumberOrString" },
"transaction_type": { "$ref": "#/definitions/TransactionType" },
"transaction_status": { "$ref": "#/definitions/TransactionStatus" },
"instrument_type": { "$ref": "#/definitions/InstrumentType" },
"originator_full_name": { "$ref": "#/definitions/nonEmptyString" },
"originator_address": { "$ref": "#/definitions/nonEmptyString" },
"originator_country": { "$ref": "#/definitions/Country" },
"originator_account_number": { "$ref": "#/definitions/nonEmptyString" },
"originator_fi_id": { "$ref": "#/definitions/nonEmptyString" },
"originator_fi_name": { "$ref": "#/definitions/nonEmptyString" },
"originator_fi_country": { "$ref": "#/definitions/nonEmptyString" },
"incoming_intermediary_fi_ids": { "$ref": "#/definitions/IDList" },
"outgoing_intermediary_fi_ids": { "$ref": "#/definitions/IDList" },
"beneficiary_full_name": { "$ref": "#/definitions/nonEmptyString" },
"beneficiary_address": { "$ref": "#/definitions/nonEmptyString" },
"beneficiary_country": { "$ref": "#/definitions/Country" },
"beneficiary_account_number": { "$ref": "#/definitions/NumberOrString" },
"beneficiary_fi_id": { "$ref": "#/definitions/nonEmptyString" },
"beneficiary_fi_name": { "$ref": "#/definitions/NumberOrString" },
"beneficiary_fi_country": { "$ref": "#/definitions/NumberOrString" }
},
"required": [
"transaction_date",
"transaction_id",
"transaction_message",
"transaction_currency",
"transaction_amount",
"transaction_type",
"transaction_status",
"instrument_type",
"originator_full_name",
"originator_address",
"originator_country",
"originator_account_number",
"originator_fi_id",
"originator_fi_name",
"originator_fi_country",
"beneficiary_full_name",
"beneficiary_address",
"beneficiary_country",
"beneficiary_account_number",
"beneficiary_fi_id",
"beneficiary_fi_name",
"beneficiary_fi_country"
]
},
"Country": {
"title": "Country",
"description": "ISO 3166-1 alpha-2 country code",
"type": "string",
"pattern": "^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$"
},
"Currency": {
"type": "string",
"pattern": "^(AED|AFN|ALL|AMD|ANG|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BGN|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYR|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HRK|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LTL|LVL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRO|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLL|SOS|SRD|SSP|STD|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|USS|UYI|UYU|UZS|VEF|VND|VUV|WST|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XDR|XFU|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWL)$",
"title": "Currency"
},
"InstrumentType": {
"title": "InstrumentType",
"type": "string",
"enum": ["cash","check","ach/lcy_transfers","wire","securities","e-money/mobile_money","travellers_cheques","prepaid_cards","certified_cheques","vouchers","cashier_cheques/money_order","precious_metal","crypto/virtual_assets","interest/dividend","other"]
},
"TransactionType": {
"title": "TransactionType",
"type": "string",
"description": "Populate as follows: SWIFT messages: MTXXX where XXX is sourced from 'message type' field as per https://www2.swift.com/knowledgecentre/products/Standards%20MT\nISO format messages: According to xsd for the 'message id' e.g. pain.008.001.09 https://www.iso20022.org/iso-20022-message-definitions\nFedwire/ACH/CHIPs messages: 'Business function code' as per Fedwire (3600) proprietary message format specification\n For other transaction types, please contact us before submission"
},
"TransactionStatus": {
"title": "TransactionStatus",
"type": "string",
"enum": ["accepted", "rejected"]
},
"nonEmptyString": {
"type": "string",
"minLength": 1
},
"NumberOrString": {
"title": "NumberOrString",
"oneOf": [{
"$ref": "#/definitions/nonEmptyString"
}, {
"type": "number"
}]
},
"date": {
"title": "date",
"type": "string",
"format": "date"
},
"date-time": {
"title": "date-time",
"type": "string",
"format": "date-time"
},
"MaybeDate": {
"title": "MaybeDate",
"anyOf": [{
"$ref": "#/definitions/date"
}, {
"$ref": "#/definitions/date-time"
}, {
"const": ""
}]
},
"MaybeString": {
"title": "MaybeString",
"anyOf": [{
"type": "string"
}, {
"const": ""
}]
},
"IDList": {
"oneOf": [{
"type": "string",
"pattern": "([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?;?)+"
}, {
"const": ""
}]
}
}
}
version 1.1
@totalColumns 24
@separator ','
// @efi_version 2.0
transaction_date: xDateTimeTz
transaction_id: notEmpty
transaction_message: notEmpty
// ISO 4217
transaction_currency: regex("^(AED|AFN|ALL|AMD|ANG|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BGN|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYR|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HRK|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LTL|LVL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRO|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLL|SOS|SRD|SSP|STD|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|USS|UYI|UYU|UZS|VEF|VND|VUV|WST|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XDR|XFU|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWL)$")
// Amount rounded to the smallest currency unit
transaction_amount: notEmpty
// Populate as follows:
// SWIFT messages: MTXXX where XXX is sourced from "message type" field as per https://www2.swift.com/knowledgecentre/products/Standards%20MT
// ISO format messages: According to xsd for the "message id" e.g. pain.008.001.09 https://www.iso20022.org/iso-20022-message-definitions
// Fedwire/ACH/CHIPs messages: "Business function code" as per Fedwire (3600) proprietary message format specification
// For other transaction types, please contact us before submission
transaction_type: notEmpty
transaction_status: any("accepted", "rejected")
instrument_type: any("cash","check","ach/lcy_transfers","wire","securities","e-money/mobile_money","travellers_cheques","prepaid_cards","certified_cheques","vouchers","cashier_cheques/money_order","precious_metal","crypto/virtual_assets","interest/dividend","other")
originator_full_name: notEmpty
originator_address: notEmpty
// ISO 3166-1 alpha-2
originator_country: regex("^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$")
// Internal customer account number
originator_account_number: notEmpty
// Accepted values are BIC (ISO 9362), ABA routing number or CHIPS Uid
originator_fi_id: notEmpty
originator_fi_name: notEmpty
originator_fi_country: notEmpty
// incoming_intermediary_fi_ids can be one or a list of BIC, ABA, CHIPS codes separated by `;` they should contain all intermediaries before the processor institution
incoming_intermediary_fi_ids: notEmpty or empty
// outgoing_intermediary_fi_ids can be one or a list of BIC, ABA, CHIPS codes separated by `;` they should contain all intermediaries after the processor institution
outgoing_intermediary_fi_ids: notEmpty or empty
beneficiary_full_name: notEmpty
beneficiary_address: notEmpty
// ISO 3166-1 alpha-2
beneficiary_country: regex("^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$")
beneficiary_account_number: notEmpty
// Accepted values are BIC (ISO 9362), ABA routing number or CHIPS Uid
beneficiary_fi_id: notEmpty
beneficiary_fi_name: notEmpty
beneficiary_fi_country: notEmpty
File Name
The file regarding transaction data should have the prefix transactions
and the date for which it represents.
transactions_YYYYMM.csv
For example, a file with all the data from January 2019 should be:
transactions_201901.csv
Frequency
Initial submission should include transactions for the past year. After initial submission, submitted monthly only with the previous month transactions. If no new transactions occurred, submit the file only with the header.
Sample Package
Download sample package here
Attribute Details
Attribute name | Type, format and values | Description | Pseu. | Req. |
---|---|---|---|---|
transaction_date |
DateTime YYYY-MM-DDThh:mm:ssTZD |
Provide the UTC time stamp of the transaction in the prescribed ISO 8601 format, converted to UTC | No | Yes |
transaction_id |
String | A unique identifier for the transaction. This attribute can be provided as part of data loads in Dec 2020 | No | Yes |
transaction_message |
String | If a transaction message was included, for example SWIFT field 70, then it should be included here | No | Yes |
transaction_currency |
String ISO 4217 alpha-3 currency code |
The transaction currency inthe required ISO 4217 format | No | Yes |
transaction_amount |
Int | Amounts should be sent in the smallest unit of the given currency. If a currency is decimalized into cents, it should be sent as cents. E.g: If the transaction amount is 100.98 EUR, it should be sent as 10098 (in cents). If the currency has no subunits (as MGA), simply provide its amount. Therefor, 100 MGA can be sent simply as 100. |
No | Yes |
transaction_type |
String | Populate as follows: - SWIFT messages: MTXXX where XXX is sourced from "message type" field as per Standards MT - ISO messages: According to xsd for the message type e.g. pain.008.001.09 View ISO 20022 Message Definitions - Fedwire/ACH/CHIPs messages: Business function code as per Fedwire (3600) proprietary message format specification |
No | Yes |
transaction_status |
String "accepted", "rejected" |
Provide the status of the transaction. According to ISO 20022, the available transaction status is either accepted or rejected. If this attribute is not populated, then it will be assumed that all transactions are accepted | No | Yes |
instrument_type |
String "cash", "check", "ach/lcy_tranfers", "wire", "securities", "e-money/mobile_money", "travellers_cheques", "prepaid_cards", "certified_cheques", "vouchers", "cashier_cheques/money_order", "precious_metal", "crypto/virtual_assets", "interest/dividend", "other" or empty |
Provide the mapped instrument type for the transaction | No | No |
originator_full_name |
String | Provide the originator full name | Yes | Yes |
originator_first_name |
String | Provide the originator first name | Yes | No |
originator_middle_names_patronymic |
String | Provide the originator middle and/or patronymic names, if available | Yes | No |
originator_last_name |
String | Provide the originator last name | Yes | No |
originator_address |
String | Provide the originator address as per the transaction | Yes | Yes |
originator_country |
String ISO Country code 3166-1 alpha-2 |
Provide the ISO 3166-1 alpha-2 country code | No | Yes |
originator_account_number |
String | Provide the customer account number - extract from IBAN if the originator is a customer of another financial institution, else if the originator is a customer of the institution, this should link with the customer data file account number | No | Yes |
originator_fi_id |
String | Accepted values are BIC (ISO 9362), ABA routing number or CHIPS Uid | No | Yes |
originator_fi_name |
String | Provide the name of the originator Financial Institution | No | Yes |
originator_fi_country |
String ISO Country code 3166-1 alpha-2 |
Provide the ISO 3166-1 alpha-2 country code | No | Yes |
incoming_intermediary_fi_ids |
String | can be one or a list of BIC, ABA, CHIPS codes separated by ; they should contain all intermediaries before the processor institution |
No | No |
outgoing_intermediary_fi_ids |
String | can be one or a list of BIC, ABA, CHIPS codes separated by ; they should contain all intermediaries after the processor institution |
No | No |
beneficiary_full_name |
String | Provide the beneficiary full name | Yes | Yes |
beneficiary_first_name |
String | Provide the beneficiary first name | Yes | No |
beneficiary_middle_names_patronymic |
String | Provide the middle and/or patronymic names of the beneficiary, if available | Yes | No |
beneficiary_last_name |
String | Provide the last name of the beneficiary | Yes | No |
beneficiary_address |
String | Provide the address of the beneficiary as per the transaction | Yes | Yes |
beneficiary_country |
String ISO Country code 3166-1 alpha-2 |
Provide the ISO 3166-1 alpha-2 country code | No | Yes |
beneficiary_account_number |
String | Provide the account number of the beneficiary - extract from IBAN if the beneficiary is a customer of another financial institution, else if the beneficiary is a customer of the institution, this should link with the customer data file account number | No | Yes |
beneficiary_fi_id |
String | Accepted values are BIC (ISO 9362), ABA routing number or CHIPS Uid | No | Yes |
beneficiary_fi_name |
String | Provide the name of the beneficiary financial institution | No | Yes |
beneficiary_fi_country |
String ISO Country code 3166-1 alpha-2 |
Proivde the ISO 3166-1 alpha-2 country code | No | Yes |
Sanctions Screening
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/SanctionsScreeningElement"
},
"efiversion": "2.0",
"definitions": {
"SanctionsScreeningElement": {
"title": "SanctionsScreeningElement",
"type": "object",
"properties": {
"transaction_id": { "$ref": "#/definitions/MaybeId" },
"fi_id": { "$ref": "#/definitions/MaybeId" },
"full_name": { "$ref": "#/definitions/nonEmptyString" },
"account_number": { "$ref": "#/definitions/MaybeId" },
"is_sanctioned": { "type": "boolean" },
"sanction_screening_date": { "$ref": "#/definitions/Date" }
},
"required": [
"transaction_id",
"fi_id",
"full_name",
"account_number",
"is_sanctioned",
"sanction_screening_date"
]
},
"MaybeId": {
"title": "NumberOrString",
"oneOf": [{
"$ref": "#/definitions/nonEmptyString"
}, {
"type": "number"
}, {
"const": ""
}]
},
"nonEmptyString": {
"type": "string",
"minLength": 1
},
"Date": {
"title": "Date",
"type": "string",
"format": "date"
},
"DateTime": {
"title": "date",
"type": "string",
"format": "date-time"
}
}
}
version 1.1
@totalColumns 5
@separator ','
// @efi_version 2.0
// Transaction id can be included for merging with a specific transaction
transaction_id: notEmpty or empty
// Accepted values are BIC (ISO 9362), ABA routing number or CHIPS Uid
fi_id: notEmpty or empty
full_name: notEmpty
// Referenced in account_holder file
account_number: notEmpty or empty
is_sanctioned: any("true","false")
sanction_screening_date: xDate
This file is used to minimize the possibility of getting false positive sanction hits by Elucidate by taking in the information from the firm.
File Name
The file regarding sanctions screening data should have the prefix sanctions_screening
and the date for which it represents.
sanctions_screening_YYYYMM.csv
For example, a file with all the data from January 2019 should be:
sanctions_screening_201901.csv
Frequency
After initial submission, submitted monthly only with the previous month's screening report. If no false positive hits occur, submit the file only with the header.
Sample Package
Download sample package here
Attribute Details
Attribute name | Type, format and values | Description | Pseu. | Req. |
---|---|---|---|---|
transaction_id |
String | Transaction id can be included for merging with a specific transaction | No | Yes |
fi_id |
String | Accepted values are BIC (ISO 9362), ABA routing number or CHIPS Uid of when the alert was processed because of a transaction | No | Yes |
full_name |
String | The full name of the subject of the check - where it was a customer, then customer full name. Where it was a transaction alert, then the originator/beneficiary full name which generated the sanction alert | No | Yes |
account_number |
Number or string | Unique identifier of the internal account when the alert was processed because an account | No | Yes |
is_sanctioned |
Boolean "true", "false" |
Result of the check | No | Yes |
sanction_screening_date |
Date YYYY-MM-DD ISO 8601 format |
The date time the sanctions screening was performed in ISO 8601 format, converted to UTC | No | Yes |
Common Types
BIC
Specify the Bank Identification Code. It is an 8 to 11-character code that is used to identify a specific bank.
"BIC": {
"type": "string",
"pattern": "([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)?"
}
Legal Entity
Specify the legal structure by which the entity is organised. Could be an individual or group.
"LegalEntityType": {
"title": "Legal Entity Type",
"type": "string",
"enum": [
"individual",
"sole_proprietorship",
"ngo_general",
"ngo_foundation",
"ngo_non_profit",
"spv",
"spe",
"pef",
"pic",
"trust",
"foundation",
"mdb",
"partnership",
"gov_intl_org",
"gov_embassies",
"gov_other",
"corporate_extra_small",
"corporate_small",
"corporate_medium",
"corporate_large",
"corporate_extra_large",
"corporate_other",
"fi_bank",
"fi_psp",
"fi_crypto",
"fi_central_bank",
"fi_insurance",
"fi_broker_dealer",
"fi_msb",
"fi_credit_union",
"fi_investment",
"fi_islamic",
"fi_other",
"funds",
"legal_type_other"
]
}
Legal entities ├── individual ├── sole_proprietorship ├── non_governmental │ ├── ngo │ ├── foundation │ └── non_profit ├── spv ├── spe ├── pef ├── pic ├── trust ├── foundation ├── mdb ├── partnership ├── government │ ├── international_organisation │ ├── embassies │ └── other ├── corporate │ ├── extra_small │ ├── small │ ├── medium │ ├── large │ ├── extra_large │ └── other ├── financial_institution │ ├── bank │ ├── payment_services_provider │ ├── crypto_operator │ ├── central_bank │ ├── insurance │ ├── broker_dealer │ ├── msb │ ├── credit_union │ ├── investment │ ├── islamic │ └── other ├── funds └── other
System Risk Rating
Specify the risk rating that the institution assigned the entity.
"SystemRiskRating": {
"title": "SystemRiskRating",
"type": "string",
"enum": ["low", "medium", "high"]
}
Country
Specify the ISO 3166-1 alpha-2 country code.
"Country": {
"title": "Country",
"description": "ISO 3166-1 alpha-2 country code",
"type": "string",
"pattern": "^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$"
}
Currency
Specify the three-letter ISO currency code.
"Currency": {
"type": "string",
"pattern": "^(AED|AFN|ALL|AMD|ANG|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BGN|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYR|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HRK|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LTL|LVL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRO|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLL|SOS|SRD|SSP|STD|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|USS|UYI|UYU|UZS|VEF|VND|VUV|WST|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XDR|XFU|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWL)$",
"title": "Currency"
}
Date
Specify the date in the YYYY-MM-DD format.
"Date": {
"title": "date",
"type": "string",
"format": "date",
}
Date or Empty
Specify the date in the YYYY-MM-DD format or leave empty.
"MaybeDate": {
"title": "date",
"oneOf": [{
"type": "string",
"format": "date",
"example": "2020-02-18"
}, {
"const": ""
}]
}
DateTime Timezone-aware
Specify the datetime in the YYYY-MM-DDThh:mm:ssTZD format.
"DateTime": {
"title": "date",
"type": "string",
"format": "date-time",
"example": "2020-02-18T12:43:46Z"
}
DateTime Timezone-aware or Empty
Specify the datetime in the YYYY-MM-DDThh:mm:ssTZD format or leave empty.
"MaybeDateTime": {
"title": "MaybeDateTime",
"oneOf": [{
"type": "string",
"format": "date-time",
"example": "2020-02-18T12:43:46Z"
}, {
"const": ""
}]
}
Address
Street address.
"Address": {
"type": "string",
"minLength": 1,
"faker": "address.streetAddress"
}
Non empty string
Denotes that the string must be filled in.
"nonEmptyString": {
"type": "string",
"minLength": 1
}
Empty string
Denotes that the string can be empty.
"emptyString": {
"const": ""
}
Warning if Empty
As there is no easy way to trigger warning instead of an error, this data type is added.
One can set it to a minLength: 1
or so to check for strictness.
"WarnIfEmpty": {
"type": "string",
"title": "Warning if empty",
"description": "Recommended to have"
}
Not Collected
The institution does not collect this information.
"not_collected"
Pseudonymisation
$ hash('algo', "some text") : "uniqueString"
We treat all data submitted to us as highly confidential and apply industry best practices for data security. If you wish to learn more about our process, please contact us at security@elucidate.co.
If you prefer to pseudonymise data before submission to us, we request that you:
- Choose an pseudonymisation algorithm from those listed below, in order of preference
- Using the chosen algorithm, generate hashes for the following sample names & date:
- 2020-06-17
- ahmed, abubakar
- поддръжници на исляма в кюрдистан
- anwar nasser abdulla al-aulaqi
- taha yassin ramadan al-jizrawi
- عبد العالي ابو ذر
- Generate the pseudonymisation_checksum_YYYYMM file. This file should contain the following headers:
|created_month|input_value|pseudonymisation_algorithm|output|
, wherecreated_month
corresponds to the month of submission in the formatYYYY-MM
input_value
are the sample names (one row each)pseudonymisation_algorithm
is the algorithm in use SHA-3/BLAKE2B/MD5- Output is the pseudonymised hash value obtained
- Provide an pseudonymisation file each month along with your data submission
Please see our article on the Support Portal for additional information on how data can be pseudonymised and anonymised
SHA-3
SHA-3 (Secure Hash Algorithm 3) is the latest member of the Secure Hash Algorithm family of standards, released by NIST on August 5, 2015. Although part of the same series of standards, SHA-3 is internally quite different from the MD5-like structure of SHA-1 and SHA-2.
PHP
<?php
$value = 'Example $5ãÇ д赛یラ Company Co. Ltd.';
print("original: ".$value."\n");
$value = preg_replace(
'/[^\w$\x{0080}-\x{FFFF}]|\$+/u',
'',
mb_strtolower($value)
);
$value = hash('sha3-512', $value);
print("digested: ".$value."\n");
Node.js
const crypto = require('crypto');
let value = 'Example $5ãÇ д赛یラ Company Co. Ltd.'
console.log('original: '+value+'\n')
value = value.toLowerCase().replace(/[^\p{L}0-9]/gu, '')
value = crypto.createHash('sha3-512').update(value).digest('hex')
console.log('digested: '+value+'\n')
Python
import re
import hashlib
value = 'Example $5ãÇ д赛یラ Company Co. Ltd.'
print(f'original: {value}')
value = re.sub(r'[^\w]', '', value.lower())
value = hashlib.sha3_512(value.encode()).hexdigest()
print(f'digested: {value}')
Shell
#!/bin/bash
value='Example $5ãÇ д赛یラ Company Co. Ltd.'
echo "original: "$value
echo -n "digested: "
echo $value \
| sed -E 's/([[:alpha:]]*)/\L\1/g' \
| sed -E 's/[^[:alnum:]]//g' \
| openssl dgst -sha512 \
| cut -d' ' -f2
Sample
You can find a sample of the algorithm's application here
BLAKE2b
$ hash('BLAKE2b' , 'String you want to hash')
:"14c7a49806ce0ebb34ccfe00a90cbf9a0252eb8b1dafcdd80ed9678bc942be1dcd09718058babeb7e625d224f4ef65b7d4b93848c78af6ac56791443fb7ab8f6"
BLAKE and BLAKE2 are cryptographic hash functions based on Dan Bernstein's ChaCha stream cipher, but a permuted copy of the input block, XORed with some round constants, is added before each ChaCha round.
Sample
You can find a sample of the algorithm's application here
MD5
$ hash('md5' , 'String you want to hash')
: "502a25edec758b7a10c56e6fde700cae"
The MD5 message-digest algorithm is a widely used hash function producing a 128-bit hash value. Although MD5 was initially designed to be used as a cryptographic hash function, it has been found to suffer from extensive vulnerabilities. It can still be used as a checksum to verify data integrity, but only against unintentional corruption.
Sample
You can find a sample of the algorithm's application here
Normalisation
Before applying the desired algorithm, we request that you apply the following normalisations:
- lower case
- no consecutive whitespaces
- no pre or post whitespace"
- utf-8 encoding
Security
There are two methods of delivery:
Manual delivery - You can use our platform https://efi.elucidate.co to securely upload and submit files
API delivery - We have an API available which allows you to automate the delivery of data. The documentation is available from https://docs.elucidate.co/simple-api
If you wish to encrypt the data on your side you can use our public key from here
Errors
A validation tool will run offline on the server side. If we encounter any error in the files you have provided we will contact you for resubmission.
© Elucidate GmbH imprint