EFI Data Protocols
For Banks, 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 |
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 - sanctions_screening_result - sanctions_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 |
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 | Dependence | If dependence indicated, name of file(s) |
---|---|---|---|
Wolfsberg CBDDQ | 1 | ||
Transactions | 1 | ||
Account Holders | 2 | x | Accounts, Account-Holder Ref |
Employee Data | 2 | x | Affiliates Report |
Sanctions Screening | 2 | x | Transactions |
Transaction Monitoring | 2 | x | Transactions |
Product Report | 2 | ||
Affiliates Report | 2 | x | Employee Data |
Vendors | 2 | ||
Accounts | 2 | x | Account Holders, Account-Holder Ref |
Account-Holder Ref | 2 | x | Account Holders, Account |
Watchlist Management | 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 | |
Employee Data | x | |
Sanctions Screening* | x | x |
Transaction Monitoring* | x | x |
Product Report | x | |
Affiliates Report | x | |
Vendors | x | |
Accounts | x | |
Account-Holder Ref | x | |
Watchlist Management | 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
Accounts
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/Accounts"
},
"efiVersion": "0.9",
"definitions": {
"Accounts": {
"type": "object",
"additionalProperties": false,
"properties": {
"account_number": { "$ref": "#/definitions/NumberOrString" },
"cash_balance_amount": { "$ref": "#/definitions/NumberOrString" },
"cash_balance_currency": { "$ref": "#/definitions/Currency" },
"account_open_date": { "$ref": "#/definitions/MaybeDate" },
"account_closed_date": { "$ref": "#/definitions/MaybeDate" },
"account_closed_reason": { "type": "string" },
"account_suspended": { "$ref": "#/definitions/YesNoOptionOrEmpty" },
"account_suspended_date": { "$ref": "#/definitions/MaybeDate" },
"account_opening_type": { "$ref": "#/definitions/AccountOpeningType" },
"branch_id": { "$ref": "#/definitions/nonEmptyString" },
"relationship_manager_employee_id": { "$ref": "#/definitions/nonEmptyString" },
"product_usage": { "$ref": "#/definitions/ProductUsage" }
},
"required": [
"account_number",
"cash_balance_amount",
"cash_balance_currency",
"account_open_date",
"account_closed_date",
"account_closed_reason",
"account_suspended",
"account_suspended_date",
"account_opening_type",
"branch_id",
"relationship_manager_employee_id",
"product_usage"
],
"title": "Accounts",
"allOf": [{
"if": {
"properties": {
"account_closed_date": { "$ref": "#/definitions/nonEmptyString" }
}
},
"then": {
"properties": {
"account_closed_reason": { "$ref": "#/definitions/AccountClosureReason" }
}
}
}]
},
"YesNoOption": {
"type": "string",
"enum": ["yes", "no"],
"title": "YesNoOption"
},
"YesNoOptionOrEmpty": {
"type": "string",
"enum": ["yes", "no", ""],
"title": "YesNoOption"
},
"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"
},
"ProductUsage": {
"type": "string",
"enum": [
"retail_txn_account",
"retail_current_account",
"retail_savings_account",
"retail_debit_cards",
"retail_atm_cards",
"retail_credit_cards",
"retail_travelers_cheques",
"retail_mortgage",
"retail_homeequity_loans",
"retail_personal_loans",
"retail_term_deposit",
"retail_cryptocurrencies",
"retail_sweep_accounts",
"retail_money_market_accounts",
"retail_brokerage_accounts",
"retail_retirement_savings",
"retail_prepaid_cards",
"retail_other",
"privatebank_txn_account",
"privatebank_current_account",
"privatebank_savings_account",
"privatebank_debit_cards",
"privatebank_atm_cards",
"privatebank_credit_cards",
"privatebank_travelers_cheque",
"privatebank_mortgage",
"privatebank_homeequity_loans",
"privatebank_personal_loans",
"privatebank_term_deposit",
"privatebank_cryptocurrencies",
"privatebank_money_market_accounts",
"privatebank_retirement_savings",
"privatebank_trust_services",
"privatebank_prepaid_cards",
"privatebank_brokerage_accounts",
"privatebank_other",
"transactional_cb_nostro",
"transactional_cb_vostro",
"transactional_cb_loro",
"transactional_lettersofcredit",
"transactional_invoice_financing",
"transactional_asset_financing",
"transactional_lockbox",
"transactional_remote_deposit_capture",
"transactional_cashmanagement",
"transactional_cashremittances",
"transactional_currencydelivery",
"transactional_other",
"commercial_current_account",
"commercial_cryptocurrencies",
"commercial_deposit_account",
"commercial_overdraft_loans",
"commercial_cash_management",
"commercial_treasury_management",
"commercial_private_equity_financing",
"commercial_other",
"commercial_bank_drafts",
"investment_equity_capital",
"investment_debt_capital",
"investment_mergers_acquisitions",
"investment_private_equity",
"investment_private_placements",
"investment_syndicated_finance",
"investment_leveraged_finance",
"investment_leasing",
"investment_restructuring",
"investment_omnibus_accounts",
"investment_trust_services",
"investment_other",
"investment_project_finance",
"islamic_hawala",
"islamic_mudharabah",
"islamic_musharakah",
"islamic_murabahah",
"islamic_iljarah",
"islamic_sukuk",
"islamic_wadiah",
"islamic_takaful",
"islamic_credit_cards",
"islamic_funds",
"islamic_microfinance",
"capital_markets",
"security_services_custody",
"broker_dealer"
],
"title": "ProductUsage"
},
"NumberOrString": {
"title": "NumberOrString",
"oneOf": [{
"$ref": "#/definitions/nonEmptyString"
}, {
"type": "number"
}]
},
"date": {
"title": "date",
"type": "string",
"format": "date"
},
"MaybeDate": {
"title": "MaybeDate",
"oneOf": [{
"type": "string",
"format": "date"
}, {
"type": "string",
"format": "date-time"
}, {
"const": ""
}]
},
"nonEmptyString": {
"type": "string",
"minLength": 1
},
"AccountClosureReason": {
"title": "AccountClosureReason",
"type": "string",
"enum": [
"customer_decision",
"financial_crime_risk_event",
"credit_default", "litigation",
"commercial_strategic_decision",
"product_contract_expiration",
"other"
]
},
"AccountOpeningType": {
"title": "AccountOpeningType",
"type": "string",
"enum": [
"online_unverified",
"online_verified",
"face_to_face",
"telephone",
"third_party",
"other"
]
}
}
}
version 1.1
@totalColumns 12
@separator ','
// @efi_version 0.9
// Internal customer Number
account_number: notEmpty
// Amount rounded to the smallest currency unit
cash_balance_amount: notEmpty
// ISO 4217
cash_balance_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)$")
account_open_date: xDate
// ISO 8601
account_closed_date: xDate or empty
account_closed_reason: if($account_closed_date/notEmpty, any("customer_decision", "financial_crime_risk_event", "credit_default", "litigation", "commercial_strategic_decision", "product_contract_expiration", "other"), empty)
// ISO 8601
account_suspended: any("yes", "no") or empty
account_suspended_date: xDate or empty
account_opening_type: any("online_unverified", "online_verified", "face_to_face", "telephone", "third_party", "other")
branch_id: notEmpty or empty
// internal employee ID
relationship_manager_employee_id: notEmpty or empty
product_usage: any("retail_txn_account", "retail_current_account", "retail_savings_account", "retail_debit_cards", "retail_atm_cards", "retail_credit_cards", "retail_travelers_cheques", "retail_mortgage", "retail_homeequity_loans", "retail_personal_loans", "retail_term_deposit", "retail_cryptocurrencies", "retail_sweep_accounts", "retail_money_market_accounts", "retail_brokerage_accounts", "retail_retirement_savings", "retail_prepaid_cards", "retail_other", "privatebank_txn_account", "privatebank_current_account", "privatebank_savings_account", "privatebank_debit_cards", "privatebank_atm_cards", "privatebank_credit_cards", "privatebank_travelers_cheque", "privatebank_mortgage", "privatebank_homeequity_loans", "privatebank_personal_loans", "privatebank_term_deposit", "privatebank_cryptocurrencies", "privatebank_money_market_accounts", "privatebank_retirement_savings", "privatebank_trust_services", "privatebank_prepaid_cards", "privatebank_brokerage_accounts", "privatebank_other", "transactional_cb_nostro", "transactional_cb_vostro", "transactional_cb_loro", "transactional_lettersofcredit", "transactional_invoice_financing", "transactional_asset_financing", "transactional_lockbox", "transactional_remote_deposit_capture", "transactional_cashmanagement", "transactional_cashremittances", "transactional_currencydelivery", "transactional_other", "commercial_current_account", "commercial_cryptocurrencies", "commercial_deposit_account", "commercial_overdraft_loans", "commercial_cash_management", "commercial_treasury_management", "commercial_private_equity_financing", "commercial_other", "commercial_bank_drafts", "investment_equity_capital", "investment_debt_capital", "investment_mergers_acquisitions", "investment_private_equity", "investment_private_placements", "investment_syndicated_finance", "investment_leveraged_finance", "investment_leasing", "investment_restructuring", "investment_omnibus_accounts", "investment_trust_services", "investment_other", "investment_project_finance", "islamic_hawala", "islamic_mudharabah", "islamic_musharakah", "islamic_murabahah", "islamic_iljarah", "islamic_sukuk", "islamic_wadiah", "islamic_takaful", "islamic_credit_cards", "islamic_funds", "islamic_microfinance", "capital_markets", "security_services_custody", "broker_dealer") or notEmpty
File Name
The file regarding accounts data should have the prefix accounts
and the date for which it represents.
accounts_YYYYMM.csv
For example, a file with all the data from January 2019 should be:
accounts_201901.csv
Data Types
See more information about the data types:
Frequency
Initially a full load and thereafter, the full load incorporating any changes for the prior month.
Sample Package
Download sample package here
Attribute Details
Attribute name | Type, format and values | Description | Pseu. | Req. |
---|---|---|---|---|
account_number |
Number or string | Provide the account number of the customer. This should consistently link with the transactions file originator/beneficiary account number, where a transaction is performed for an institution's customer | Yes | Yes |
cash_balance_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 |
cash_balance_currency |
String ISO 4217 alpha-3 currency code |
Provide the cash balance currency in required ISO 4217 format | No | Yes |
account_open_date |
Date YYYY-MM-DD ISO 8601 format |
Provide the opening date of the account | No | Yes |
account_closed_date |
Date YYYY-MM-DD ISO 8601 format |
Provide the date of account closure. If the account remains open, leave blank | No | No |
account_closed_reason |
String "customer_decision", "financial_crime_risk_event", "credit_default", "litigation", "commercial_strategic_decision", "product_contract_expiration", "other" |
Provide a mapped reason for account closure | No | No |
account_suspended |
nullable Boolean "yes", "no" |
Indicate if the account has been suspened (no transactional activity allowed) but has not yet been closed. This attribute can be provided as part of data loads from Dec 2020 onwards | No | Yes |
account_suspended_date |
Date YYYY-MM-DD ISO 8601 format |
If the account has been suspended but not closed, please provide the timestamp of suspension. This attribute can be provided as part of data loads from Dec 2020 onwards | No | No |
account_opening_type |
String "online_unverified", "online_verified", "face_to_face", "telephone", "third_party", "other" |
Provide how the account has been opened by the customer | No | No |
branch_id |
String | Provide the branch ID associated with this customer | No | No |
relationship_manager_employee_id |
String | Unique identifier of relationship manager | No | No |
product_usage |
String Product Usage |
Provide the set of products used by the customer, use the Elucidate product usage list. Multiple codes may be loaded with ";" as a separator | No | Yes |
Account Holder
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/AccountHolder"
},
"efiVersion": "0.9",
"definitions": {
"AccountHolder": {
"type": "object",
"additionalProperties": false,
"properties": {
"account_holder_id": { },
"full_name": { "$ref": "#/definitions/nonEmptyString" },
"first_name": { "type": "string" },
"middle_names_patronymic": { "type": "string" },
"last_name": { "type": "string" },
"date_of_birth": { "$ref": "#/definitions/date" },
"place_of_birth_city": { "$ref": "#/definitions/nonEmptyString" },
"place_of_birth_country": { "$ref": "#/definitions/Country" },
"country_citizenship": { "$ref": "#/definitions/Country" },
"document_present": { "$ref": "#/definitions/YesNoOption" },
"address": { "$ref": "#/definitions/Address" },
"address_country": { "$ref": "#/definitions/Country"},
"address_postal_code": { "type": "string"},
"address_city": { "type": "string"},
"legal_entity_identifier": { "type": "string"},
"legal_entity_type": { "$ref": "#/definitions/LegalEntityType" },
"legal_form": { "$ref": "#/definitions/LegalForm" },
"isic_code": { "$ref": "#/definitions/InternationalStandardIndustrialClassificationCode" },
"adverse_information_search": { "$ref": "#/definitions/YesNoOption" },
"adverse_information_search_date": { "$ref": "#/definitions/MaybeDate" },
"net_worth_amount": { "$ref": "#/definitions/NumberOrString", "description": "Amount rounded to the smallest currency unit" },
"net_worth_currency": { "$ref": "#/definitions/Currency" },
"source_of_wealth": { "$ref": "#/definitions/SourceOfWealth" },
"source_of_funds": { "$ref": "#/definitions/SourceOfFunds" },
"initial_cdd_completion_date": { "$ref": "#/definitions/MaybeDate" },
"last_cdd_review_date": { "$ref": "#/definitions/MaybeDate" },
"system_risk_rating": { "$ref": "#/definitions/SystemRiskRating" },
"pep_status": { "$ref": "#/definitions/YesNoOption" },
"associated_pep_status": { "$ref": "#/definitions/YesNoOption" },
"edd_triggered": { "$ref": "#/definitions/YesNoOption" },
"branch_id": { "$ref": "#/definitions/nonEmptyString" },
"relationship_manager_employee_id": { "$ref": "#/definitions/nonEmptyString" },
"sanctions_screening_result": { "$ref": "#/definitions/SanctionScreeningResult" },
"sanctions_screening_date": { "$ref": "#/definitions/MaybeDate" }
},
"required": [
"account_holder_id",
"full_name",
"first_name",
"middle_names_patronymic",
"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",
"net_worth_currency",
"source_of_wealth",
"source_of_funds",
"initial_cdd_completion_date",
"last_cdd_review_date",
"system_risk_rating",
"pep_status",
"associated_pep_status",
"edd_triggered",
"branch_id",
"relationship_manager_employee_id",
"sanctions_screening_result",
"sanctions_screening_date"
],
"title": "AccountHolder",
"allOf": [{
"if": {
"properties": {
"adverse_information_search": { "const": "yes" }
}
},
"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)$"
},
"YesNoOption": {
"type": "string",
"enum": ["yes", "no"],
"title": "YesNoOption"
},
"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"
]
},
"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"
},
"SourceOfFunds": {
"title": "SourceOfFunds",
"anyOf": [
{
"type": "string",
"enum": [
"sof_employment_income",
"sof_statutory_income",
"sof_investment_income",
"sof_business_income",
"sof_realestate_income",
"sof_other"
]
}, {
"type": "string",
"minLength": 1
}
]
},
"SourceOfWealth": {
"title": "SourceOfWealth",
"anyOf": [
{
"type": "string",
"enum": [
"sow_inheritance_wealth",
"sow_employment_income",
"sow_investment_wealth",
"sow_realestate_wealth",
"sow_sale_of_business_wealth",
"sow_sale_of_asset_wealth",
"sow_business_wealth",
"sow_other"
]
},
{
"type": "string",
"minLength": 1
}
]
},
"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"
}, {
"type": "string",
"format": "date-time"
}, {
"const": ""
}]
},
"MaybeDateTime": {
"title": "MaybeDate",
"oneOf": [{
"type": "string",
"format": "date-time"
}, {
"const": ""
}]
},
"Address": {
"type": "string",
"minLength": 1,
"faker": "address.streetAddress"
},
"nonEmptyString": {
"type": "string",
"minLength": 1
},
"InternationalStandardIndustrialClassificationCode": {
"title": "InternationalStandardIndustrialClassificationCode",
"description": "https://unstats.un.org/unsd/classifications/Econ/ISIC.cshtml",
"oneOf": [
{ "type": "string", "pattern": "([0-9]{1,4})" },
{ "type": "number", "minimum": 0, "maximum": 9999 },
{ "const": "" }
]
},
"LegalForm": {
"title": "LegalForm",
"description": "https://www.gleif.org/en/about-lei/code-lists/iso-20275-entity-legal-forms-code-list",
"oneOf": [{
"type": "string",
"pattern": "^[A-Z0-9]{4}$"
}, {
"const": ""
}]
},
"date-time": {
"title": "date-time",
"type": "string",
"format": "date-time"
}
}
}
version 1.1
@totalColumns 34
@separator ','
// @efi_version 0.9
// Internal customer Number
account_holder_id: notEmpty
full_name: notEmpty
first_name: notEmpty or empty
middle_names_patronymic: notEmpty or empty
last_name: notEmpty or empty
// For Non individuals, use it as date of incorporation
// ISO 8601
date_of_birth: xDate
// For Non individuals, use it as place of incorporation
place_of_birth_city: notEmpty
// 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)$")
document_present: any("yes", "no")
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)$")
address_postal_code: notEmpty or empty
address_city: notEmpty or empty
// Legal Entity Identifier (LEI)
// if Individual without a LEI number, value should be : -1
// if not Individual without a LEI number, values should be : 0
// if LEI is present, value should be: ISO 17442
legal_entity_identifier: notEmpty or empty
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")
legal_form: empty or regex("^[A-Z0-9]{4}$")
// Standard Industrial Classification code
isic_code: regex("^[0-9]{1,4}(\s*;\s*[0-9]{1,4})*$") or empty
adverse_information_search: any("yes", "no")
// ISO 8601
adverse_information_search_date: if($adverse_information_search/is("yes"),xDate,empty or xDate)
// Amount rounded to the smallest currency unit
net_worth_amount: notEmpty
// ISO 4217
net_worth_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)$")
// source of wealth should always be mapped to Elucidate internal table
// if only free text is availbale then include free text.
// if multiple sources add "employment_income; savings; company_sale "//
source_of_wealth: any("sow_inheritance_wealth", "sow_employment_income", "sow_investment_wealth", "sow_realestate_wealth", "sow_sale_of_business_wealth", "sow_sale_of_asset_wealth", "sow_business_wealth", "sow_other") or notEmpty
source_of_funds: any("sof_employment_income", "sof_statutory_income", "sof_investment_income", "sof_business_income", "sof_realestate_income", "sof_other") or notEmpty
// ISO 8601
initial_cdd_completion_date: xDate or empty
// ISO 8601
last_cdd_review_date: xDate or empty
// if you do not rate your customers values should be empty
// if you rate your customers, value should be: one of "low", "medium" or "high"
system_risk_rating: any("low", "medium", "high") or empty
pep_status: any("yes", "no")
// information if account holder has an association with a pep
associated_pep_status: any("yes", "no")
edd_triggered: any("yes", "no")
branch_id: notEmpty or empty
// internal employee ID
relationship_manager_employee_id: notEmpty or empty
sanctions_screening_result: any("sanctioned", "not_sanctioned")
sanctions_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
Initially a full load and thereafter, the full load incorporating any changes for the prior month.
Sample Package
Download sample package here
Attribute Details
Attribute name | Type, format and values | Description | Pseu. | Req. |
---|---|---|---|---|
account_holder_id |
String | Unique identifier of account holder | Yes | Yes |
full_name |
String | This should be the full name of the customer, as it appears on the account | Yes | Yes |
first_name |
String | This applies to individuals only - it should be populated with the customer first name | Yes | Yes |
middle_names_patronymic |
String | This applies to individuals only and may be culturally specific. If the names are not used, leave empty | Yes | No |
last_name |
String | This applies to individuals only - it should be populated with the customer last/family name | 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 | Yes | Yes |
place_of_birth_city |
String | The city in which the customer was born. For legal entities, this would be the city of incorporation | Yes | 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 |
document_present |
nullable Boolean "yes", "no" |
Indicate whether an identification document is recorded for this customer | No | Yes |
address |
String | Provide the customer's 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 |
address_postal_code |
String | Provide the customer's/ companies/ legal entities current postal or zip code, if available. If it is not available, leave blank | No | No |
address_city |
String | Provide the city name for the address | Yes | No |
legal_entity_identifier |
String ISO 17442 format [gleif] |
Provide the LEI codes for the legal entity according to ISO 17442 format. If no LEI is available, then leave as empty - the legal entity type should be populated to indicate if it is an individual | No | No |
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 |
legal_form |
String ISO 20275 entity Legal form code |
Provide the mapped legal form of this customer according to this list | No | No |
isic_code |
String ISIC codes have the pattern regex("^[0-9]{1,4}$") |
Provide the isic_code of the industry of the customer according to the UN ISIC code list. View the full list of ISIC and conversions. Multiple codes may be loaded from Dec 2020 with ";" as a separator | No | No |
adverse_information_search |
String "yes", "no" |
Provide an indicator whether this customer was screened against adverse media or negative news | No | Yes |
adverse_information_search_date |
Date YYYY-MM-DD ISO 8601 format |
Provide the adverse media screening date, if conducted | No | No |
net_worth_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 |
net_worth_currency |
String ISO 4217 alpha-3 currency code |
Provide the net worth currency in the required ISO 4217 format | No | Yes |
source_of_wealth |
String "sow_inheritance_wealth", "sow_employment_income", "sow_investment_wealth", "sow_realestate_wealth", "sow_sale_of_business_wealth", "sow_sale_of_asset_wealth", "sow_business_wealth", "sow_other" |
Provide the source of wealth, as gathered during KYC. Multiple codes may be loaded from Dec 2020 with ";" as a separator | No | No |
source_of_funds |
String "sof_employment_income", "sof_statutory_income", "sof_investment_income", "sof_business_income", "sof_realestate_income", "sof_other" |
Provide the source of funds, as gathered during KYC. Multiple codes may be loaded from Dec 2020 with ";" as a separator | No | No |
initial_cdd_completion_date |
Date YYYY-MM-DD ISO 8601 format |
Provide the date on which initial CDD was completed on the customer. ISO 8601 format | No | Yes |
last_cdd_review_date |
Date YYYY-MM-DD ISO 8601 format |
Provide the last periodic review date completed for the customer. A periodic review is conducted on a customers CDD file to ensure customer information is updated | 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 |
pep_status |
nullable Boolean "yes", "no" |
Indicate whether the customer is, or has been at any time, entrusted with prominent public functions and is a known PEP | No | Yes |
associated_pep_status |
nullable Boolean "yes", "no" |
Indicate whether the customer has association to a pep. This may also be known as an RCA (relative or close associate) | No | Yes |
edd_triggered |
nullable Boolean "yes", "no" |
Indicate whether EDD was triggered for this customer | No | Yes |
branch_id |
String | Provide the branch ID associated with this customer | No | No |
relationship_manager_employee_id |
String | Unique identifier of relationship manager | No | No |
sanctions_screening_result |
String "sanctioned", "not_sanctioned" |
Results of most recent sanctions screening | No | No |
sanctions_screening_date |
Date YYYY-MM-DD ISO 8601 format |
Date of most recent sanctions screening | No | No |
Account-Holder Ref
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/AccountHolderRef"
},
"efiVersion": "0.9",
"definitions": {
"AccountHolderRef": {
"type": "object",
"additionalProperties": false,
"properties": {
"account_number": { "$ref": "#/definitions/NumberOrString" },
"account_holder_id": { "$ref": "#/definitions/NumberOrString" },
"beneficial_owner_documentation": { "$ref": "#/definitions/MaybeYesNoOption" },
"is_beneficial_owner": { "$ref": "#/definitions/MaybeYesNoOption" },
"owner_share_percentage": { "$ref": "#/definitions/NumberOrString" },
"is_director": { "$ref": "#/definitions/MaybeYesNoOption" },
"is_signatory": { "$ref": "#/definitions/MaybeYesNoOption" },
"ultimate_beneficial_owner": { "$ref": "#/definitions/MaybeYesNoOption" }
},
"required": [
"account_number",
"account_holder_id",
"beneficial_owner_documentation",
"is_beneficial_owner",
"owner_share_percentage",
"is_director",
"is_signatory",
"ultimate_beneficial_owner"
],
"title": "AccountHolderRef"
},
"MaybeYesNoOption": {
"type": "string",
"enum": ["yes", "no", ""],
"title": "YesNoOption"
},
"NumberOrString": {
"title": "NumberOrString",
"oneOf": [{
"$ref": "#/definitions/nonEmptyString"
}, {
"type": "number"
}]
},
"nonEmptyString": {
"type": "string",
"minLength": 1
}
}
}
version 1.1
@totalColumns 8
@separator ','
// @efi_version 0.9
// Account number will be linked to Account file
account_number: notEmpty
// Account holder number will be linked to Account holder file
account_holder_id: notEmpty
beneficial_owner_documentation: any("yes", "no", "")
is_beneficial_owner: any("yes", "no")
owner_share_percentage: notEmpty
is_director: any("yes", "no", "")
is_signatory: any("yes", "no")
ultimate_beneficial_owner: any("yes", "no")
File Name
The file regarding account-holder ref data should have the prefix account_holder_ref
and the date for which it represents.
account_holder_ref_YYYYMM.csv
For example, a file with all the data from January 2019 should be:
account_holder_ref_201901.csv
Frequency
Initially a full load and thereafter, the full load incorporating any changes for the prior month.
Sample Package
Download sample package here
Attribute Details
Attribute name | Type, format and values | Description | Pseu. | Req. |
---|---|---|---|---|
account_number |
Number or string | Provide the account number of the customer. This should consistently link with the transactions file originator/beneficiary account number, where a transaction is performed for an institution's customer | Yes | Yes |
account_holder_id |
Number or string | Unique identifier of account holder | Yes | Yes |
beneficial_owner_documentation |
nullable Boolean "yes", "no" |
Indicate whether an identification document is recorded for the beneficial owner. If this information is not gathered/available, then populate with empty | No | No |
is_beneficial_owner |
nullable Boolean "yes", "no" |
Indicate if the individual or group is a beneficial owner. A beneficial owner is defined as an individual or group of individuals (such as a trust) who have ownership of an asset (account), even though the asset is not held in their name. If this information is not gathered/available, then populate with empty | Yes | No |
owner_share_percentage |
Number or string | The percentage ownership which the beneficial owner holds over this account | No | No |
is_director |
nullable Boolean "yes", "no" |
Indicate if the individual is a director(s) of the account. If this information is not gathered/available, then populate with empty | Yes | No |
is_signatory |
nullable Boolean "yes", "no" |
Indicate if the individual is a signatory of the account, which may be one or multiple people and may be different to the account holder. If this information is not gathered/available, then populate with empty | Yes | No |
ultimate_beneficial_owner |
nullable Boolean "yes", "no" |
Indicate if the individual is the ultimate beneficial owner, which is defined as an individual who has ownership or control in excess of 25% of an account. This is a new attribute which can be loaded as part of this file from Dec 2020 onwards. If this information is not gathered/available, then populate with empty | No | No |
Transactions
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/NonSwiftTransactionElement"
},
"efiVersion": "0.9",
"definitions": {
"NonSwiftTransactionElement": {
"type": "object",
"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_direction": { "$ref": "#/definitions/Direction" },
"transaction_status": { "$ref": "#/definitions/TransactionStatus" },
"instrument_type": { "$ref": "#/definitions/InstrumentType" },
"originator_full_name": { "$ref": "#/definitions/nonEmptyString" },
"originator_first_name": { "$ref": "#/definitions/nonEmptyString" },
"originator_middle_names_patronymic": { "$ref": "#/definitions/WarnIfEmpty" },
"originator_last_name": { "$ref": "#/definitions/nonEmptyString" },
"originator_address": { "$ref": "#/definitions/nonEmptyString" },
"originator_country": { "$ref": "#/definitions/Country" },
"originator_account_number": { "$ref": "#/definitions/nonEmptyString" },
"originator_branch_id": { "type": "string" },
"originator_bic": { "$ref": "#/definitions/nonEmptyString" },
"originator_fi_name": { "$ref": "#/definitions/nonEmptyString" },
"originator_fi_country": { "$ref": "#/definitions/nonEmptyString" },
"incoming_intermediary_fi_bic": { "$ref": "#/definitions/BICList" },
"outgoing_intermediary_fi_bic": { "$ref": "#/definitions/BICList" },
"beneficiary_full_name": { "$ref": "#/definitions/nonEmptyString" },
"beneficiary_first_name": { "$ref": "#/definitions/nonEmptyString" },
"beneficiary_middle_names_patronymic": { "$ref": "#/definitions/WarnIfEmpty" },
"beneficiary_last_name": { "$ref": "#/definitions/nonEmptyString" },
"beneficiary_address": { "$ref": "#/definitions/nonEmptyString" },
"beneficiary_country": { "$ref": "#/definitions/Country" },
"beneficiary_account_number": { "$ref": "#/definitions/NumberOrString" },
"beneficiary_branch_id": { "type": "string" },
"beneficiary_bic": { "$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_direction",
"transaction_status",
"instrument_type",
"originator_full_name",
"originator_first_name",
"originator_middle_names_patronymic",
"originator_last_name",
"originator_address",
"originator_country",
"originator_account_number",
"originator_branch_id",
"originator_bic",
"originator_fi_name",
"originator_fi_country",
"beneficiary_full_name",
"beneficiary_first_name",
"beneficiary_middle_names_patronymic",
"beneficiary_last_name",
"beneficiary_address",
"beneficiary_country",
"beneficiary_account_number",
"beneficiary_branch_id",
"beneficiary_bic",
"beneficiary_fi_name",
"beneficiary_fi_country"
],
"title": "NonSwiftTransactionElement",
"if": {
"properties": {
"originator_branch_id": { "const": "" }
}
},
"then": {
"properties": {
"beneficiary_branch_id": { "$ref": "#/definitions/nonEmptyString" }
}
},
"else": {
"if": {
"properties": {
"beneficiary_branch_id": { "const": "" }
}
},
"then": {
"properties": {
"originator_branch_id": { "$ref": "#/definitions/nonEmptyString" }
}
}
}
},
"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"]
},
"Direction": {
"title": "Direction",
"type": "string",
"enum": ["i","o","io"]
},
"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"
},
"YesNoOption": {
"title": "YesNoOption",
"type": "string",
"anyOf": [{
"enum": ["yes", "no"]
}, {
"const": ""
}]
},
"MaybeDate": {
"title": "MaybeDate",
"anyOf": [{
"$ref": "#/definitions/date"
}, {
"$ref": "#/definitions/date-time"
}, {
"const": ""
}]
},
"MaybeString": {
"title": "MaybeString",
"anyOf": [{
"type": "string"
}, {
"const": ""
}]
},
"BICList": {
"oneOf": [{
"type": "string",
"pattern": "([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?;?)+"
}, {
"const": ""
}]
},
"WarnIfEmpty": {
"type": "string",
"title": "Warning if empty",
"description": "Recommended to have"
}
}
}
version 1.1
@totalColumns 33
@separator ','
// @efi_version 0.9
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_direction: any("i", "o", "io")
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_first_name: notEmpty or empty
originator_middle_names_patronymic: notEmpty or empty
originator_last_name: notEmpty or empty
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
originator_branch_id: if($beneficiary_branch_id/empty, notEmpty, empty or notEmpty)
originator_bic: notEmpty
originator_fi_name: notEmpty
originator_fi_country: notEmpty
// incoming_intermediary_fi_bic can be one or a list of BIC codes separated by `;` they should contain all intermediaries before the processor institution
incoming_intermediary_fi_bic: regex("/([a-z]{4}[a-z]{2}[a-z0-9]{2}([a-z0-9]{3})?;?)+/gmi") or empty
// outgoing_intermediary_fi_bic can be one or a list of BIC codes separated by `;` they should contain all intermediaries after the processor institution
outgoing_intermediary_fi_bic: regex("/([a-z]{4}[a-z]{2}[a-z0-9]{2}([a-z0-9]{3})?;?)+/gmi") or empty
beneficiary_full_name: notEmpty
beneficiary_first_name: notEmpty or empty
beneficiary_middle_names_patronymic: notEmpty or empty
beneficiary_last_name: notEmpty or empty
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
beneficiary_branch_id: if($originator_branch_id/empty, notEmpty, empty or notEmpty)
beneficiary_bic: 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
After initial submission, submitted monthly only with the previous month's 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_direction |
String "i", "o", "io" |
Provide the direction of the transaction where i is incoming, o is outgoing and if both the inbound and outbound directions are integrated into the same transaction, then io | No | No |
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 | Yes | Yes |
originator_branch_id |
String | If available, provide the branch id of the originating transaction | No | No |
originator_bic |
String A BIC has the following pattern ([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)? |
Provide the BIC of the originator's FI according to ISO 9362 | No | Yes |
originator_fi_name |
String | Provide the name of the originator's FI | 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_bic |
String A BIC has the following pattern ([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)? |
Provide the intermediary's FI BIC according to ISO 9362 - Multiple BIC codes may be loaded from Dec 2020 with ";" as a separator | No | No |
outgoing_intermediary_fi_bic |
String A BIC has the following pattern ([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)? |
Provide the intermediary's FI BIC according to ISO 9362 - Multiple BIC codes may be loaded from Dec 2020 with ";" as a separator | 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 | Yes | Yes |
beneficiary_branch_id |
String | Provide the benficiary branch id of the transaction | No | No |
beneficiary_bic |
String A BIC has the following pattern ([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)? |
Provide the BIC of the beneficiary according to ISO 9362 | 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 |
Employee Data
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/EmployeeElement"
},
"efiVersion": "0.9",
"definitions": {
"EmployeeElement": {
"type": "object",
"patternProperties": {
"^training_assessment": { "$ref": "#/definitions/TrainingAssessment" },
"^training_date": { "$ref": "#/definitions/MaybeDate" },
"^training_subject": { "$ref": "#/definitions/MaybeTrainingSubject" },
"^abc_breach_amount": { "$ref": "#/definitions/NumberOrString" },
"^abc_breach_currency": { "$ref": "#/definitions/MaybeCurrency" },
"^abc_breach_date": { "$ref": "#/definitions/MaybeDate" }
},
"additionalProperties": false,
"properties": {
"employee_full_name": { "$ref": "#/definitions/nonEmptyString" },
"employee_first_name": { "$ref": "#/definitions/nonEmptyString" },
"employee_middle_names_patronymic": { "type": "string" },
"employee_last_name": { "$ref": "#/definitions/nonEmptyString" },
"employee_id": { "$ref": "#/definitions/NumberOrString" },
"employee_department": { "$ref": "#/definitions/nonEmptyString" },
"employee_fincrime_primary_responsibility": { "$ref": "#/definitions/MaybeBoolean" },
"employee_birthdate": { "$ref": "#/definitions/MaybeDate" },
"employee_email_address": { "$ref": "#/definitions/nonEmptyString" },
"employee_title": { "type": "string" },
"employee_manager_id": { "type": "string" },
"employee_seniority": { "$ref": "#/definitions/EmployeeSeniority" },
"joined_date": { "$ref": "#/definitions/MaybeDate" },
"exited_date": { "$ref": "#/definitions/MaybeDate" },
"employee_in_position_date": { "$ref": "#/definitions/MaybeDate" },
"pep_status": { "$ref": "#/definitions/YesNoOption" },
"employee_associated_pep": { "$ref": "#/definitions/YesNoOption" },
"employee_outside_business_interest": { "$ref": "#/definitions/YesNoOption" },
"employee_outside_business_organisation": { "type": "string" },
"mlro_officer": { "$ref": "#/definitions/YesNoOption" },
"abc_officer": { "$ref": "#/definitions/YesNoOption" },
"board_member": { "$ref": "#/definitions/YesNoOption" },
"entity_ubo": { "$ref": "#/definitions/YesNoOption" },
"branch_id": { "$ref": "#/definitions/NumberOrString" },
"contract_consultant": { "$ref": "#/definitions/MaybeBoolean" },
"employee_affiliate_name": { "type": "string" },
"employee_affiliate_id": { "type": "string" },
"employee_country_location": { "$ref": "#/definitions/MaybeCountry" },
"employee_mlro_external_certification": { "$ref": "#/definitions/MaybeYesNoOption" },
"employee_financial_crime_certification": { "type": "string" },
"employee_financial_crime_certification_date": { "$ref": "#/definitions/MaybeDate" },
"training_assessment": { "$ref": "#/definitions/TrainingAssessment" },
"training_date": { "$ref": "#/definitions/MaybeDate" },
"training_subject": { "$ref": "#/definitions/MaybeTrainingSubject" },
"abc_breach_amount": { "$ref": "#/definitions/NumberOrString" },
"abc_breach_currency": { "$ref": "#/definitions/MaybeCurrency" },
"abc_breach_date": { "$ref": "#/definitions/MaybeDate" }
},
"required": [
"employee_full_name",
"employee_first_name",
"employee_middle_names_patronymic",
"employee_last_name",
"employee_id",
"employee_department",
"employee_fincrime_primary_responsibility",
"employee_birthdate",
"employee_email_address",
"employee_title",
"employee_manager_id",
"employee_seniority",
"joined_date",
"exited_date",
"employee_in_position_date",
"pep_status",
"employee_associated_pep",
"employee_outside_business_interest",
"employee_outside_business_organisation",
"mlro_officer",
"abc_officer",
"board_member",
"entity_ubo",
"branch_id",
"contract_consultant",
"employee_affiliate_name",
"employee_affiliate_id",
"employee_country_location",
"employee_mlro_external_certification",
"training_assessment",
"training_date",
"training_subject",
"abc_breach_amount",
"abc_breach_currency",
"abc_breach_date"
],
"title": "EmployeeElement"
},
"YesNoOption": {
"type": "string",
"enum": ["yes", "no"],
"title": "YesNoOption"
},
"MaybeYesNoOption": {
"type": "string",
"enum": ["yes", "no", ""],
"title": "YesNoOption"
},
"EmployeeSeniority": {
"type": "string",
"enum": [
"intern",
"analyst_officer",
"manager",
"associate_partner",
"director",
"department_head",
"regional_director",
"vice_president",
"senior_vice_president",
"assistant_vice_president",
"executive_director",
"managing_director",
"c_level_management",
"other"
],
"title": "EmployeeSeniority"
},
"nonEmptyString": {
"type": "string",
"minLength": 1
},
"NumberOrString": {
"title": "NumberOrString",
"oneOf": [{
"$ref": "#/definitions/nonEmptyString"
}, {
"type": "number"
}, {
"const": ""
}]
},
"date": {
"title": "date",
"type": "string",
"format": "date"
},
"MaybeDate": {
"title": "MaybeDate",
"oneOf": [{
"type": "string",
"format": "date"
}, {
"type": "string",
"format": "date-time"
}, {
"const": ""
}]
},
"MaybeBoolean": {
"title": "MaybeBoolean",
"oneOf": [{
"type": "string",
"enum": ["yes", "no"]
}, {
"const": ""
}]
},
"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)$"
},
"MaybeCountry": {
"title": "MaybeCountry",
"oneOf": [{
"$ref": "#/definitions/Country"
}, {
"const": ""
}]
},
"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"
},
"MaybeCurrency": {
"title": "MaybeCurrency",
"oneOf": [{
"$ref": "#/definitions/Currency"
}, {
"const": ""
}]
},
"TrainingAssessment": {
"type": "string",
"enum": ["pass", "fail", ""],
"title": "TrainingAssessment"
},
"TrainingSubject": {
"type": "string",
"enum": [
"anti_bribery_and_corruption",
"anti_money_laundering",
"anti_terrorist_financing",
"client_due_diligence",
"conduct_and_culture",
"cyber_security",
"external_compliance_certification",
"financial_crime_typologies_and_risk",
"fraud",
"internal_escalation_process",
"other_product_specific_fincrime_training",
"politically_exposed_persons",
"sanctions",
"source_of_wealth/funds",
"trade_based_money_laundering",
"transaction_monitoring/investigation_techniques",
"other_corporate_training"
],
"title": "TrainingSubject"
},
"MaybeTrainingSubject": {
"title": "MaybeTrainingSubject",
"oneOf": [{
"$ref": "#/definitions/TrainingSubject"
}, {
"const": ""
}]
}
}
}
version 1.1
@totalColumns 37
@separator ','
// @efi_version 0.9
employee_full_name: notEmpty
employee_first_name: notEmpty
employee_middle_names_patronymic: notEmpty or empty
employee_last_name: notEmpty
employee_id: notEmpty
employee_department : notEmpty
employee_fincrime_primary_responsibility: any("yes", "no")
employee_birthdate: xDate
employee_email_address: notEmpty
employee_title: notEmpty
employee_manager_id: notEmpty @warning
employee_seniority: any("intern", "analyst_officer", "manager", "associate_partner", "director", "department_head", "regional_director", "vice_president", "senior_vice_president", "assistant_vice_president", "executive_director", "managing_director", "c_level_management", "other")
joined_date: xDate
exited_date: xDate or empty
employee_in_position_date: xDate or empty
pep_status: any("yes", "no")
employee_associated_pep: any("yes", "no")
employee_outside_business_interest: any("yes", "no")
// if multiple add "Company 1 ; Company 2 ; Company 3"
employee_outside_business_organisation: empty or notEmpty
mlro_officer: any("yes", "no")
abc_officer: any("yes", "no")
board_member: any("yes", "no")
entity_ubo: any("yes", "no")
branch_id: notEmpty
contract_consultant: any("yes", "no") or empty
employee_affiliate_name: notEmpty or empty
employee_affiliate_id: notEmpty or empty
employee_country_location: 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)$")
employee_mlro_external_certification: any("yes", "no")
employee_financial_crime_certification: notEmpty or empty
employee_financial_crime_certification_date: xDate or empty
training_assessment: if($employee_id/notEmpty ,any("pass", "fail"), empty)
training_date: if($employee_id/notEmpty , xDate, empty)
training_subject: if($employee_id/notEmpty , any("anti_bribery_and_corruption","anti_money_laundering","anti_terrorist_financing","client_due_diligence","conduct_and_culture","cyber_security","external_compliance_certification","financial_crime_typologies_and_risk","fraud","internal_escalation_process","other_product_specific_fincrime_training","politically_exposed_persons","sanctions","source_of_wealth/funds","trade_based_money_laundering","transaction_monitoring/investigation_techniques", "other_corporate_training" ), empty)
// Amount rounded to the smallest currency unit
abc_breach_amount: notEmpty or empty
// ISO 4217
abc_breach_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)$") or empty
abc_breach_date: xDate or empty
File Name
The file regarding employee data should have the prefix employee_data
and the date for which it represents.
employee_data_YYYYMM.csv
For example, a file with all the data from January 2019 should be:
employee_data_201901.csv
Frequency
After initial submission, submitted monthly with all the employee's population.
Sample Package
Download sample package here
Attribute Details
Attribute name | Type, format and values | Description | Pseu. | Req. |
---|---|---|---|---|
employee_full_name |
String | Provide the employee's full name | Yes | Yes |
employee_first_name |
String | Provide the first name of the employee | Yes | Yes |
employee_middle_names_patronymic |
String | Provide any middle names or patronymic names, if used | Yes | No |
employee_last_name |
String | Provide the employee's last name/family name | Yes | Yes |
employee_id |
Number or string | Provide the Unique Employee ID | No | Yes |
employee_department |
String | The department assigned to the employee | No | Yes |
employee_fincrime_primary_responsibility |
nullable Boolean "yes", "no" |
Indicate whether the employee has FinCrime responsibility | No | Yes |
employee_birthdate |
Date YYYY-MM-DD ISO 8601 format |
The employee's date of birth | Yes | Yes |
employee_email_address |
String | The email address of the employee | Yes | Yes |
employee_title |
String | The employee's official job title | No | Yes |
employee_manager_id |
Number or string | The employee id of the employee's manager | No | No |
employee_seniority |
String "intern", "analyst_officer", "manager", "associate_partner", "director", "department_head", "regional_director", "vice_president", "senior_vice_president", "assistant_vice_president", "executive_director", "managing_director", "c_level_management", "other" |
Provide the seniority level of the employee from the available values | No | Yes |
joined_date |
Date YYYY-MM-DD ISO 8601 format |
The date the employee joined in the format YYYY-MM-DD | No | Yes |
exited_date |
Date YYYY-MM-DD ISO 8601 format |
The date of departure of the employee, if applicable | No | No |
employee_in_position_date |
Date YYYY-MM-DD ISO 8601 format |
Provide the date at which the employee started in their current position - this may not be the same as the date on which they joined the organisation | No | Yes |
pep_status |
nullable Boolean "yes", "no" |
Indicate whether the employee is a confirmed PEP | No | Yes |
employee_associated_pep |
nullable Boolean "yes", "no" |
Indicate whether the employee is a confirmed Relative & Close Associate | No | Yes |
employee_outside_business_interest |
nullable Boolean "yes", "no" |
Indicate if the employee is involved in other business interests | No | Yes |
employee_outside_business_organisation |
String | If the employee is involved in other business interests, provide the name(s) of those organisation(s). Multiple names may be loaded from Dec 2020 with ";" as a separator | No | No |
mlro_officer |
nullable Boolean "yes", "no" |
Indicate if the employee is an MLRO | No | Yes |
abc_officer |
nullable Boolean "yes", "no" |
Indicate if the employee is an Anti-Bribery and Corruption officer | No | Yes |
board_member |
nullable Boolean "yes", "no" |
Indicate if the employee is a board member | No | Yes |
entity_ubo |
nullable Boolean "yes", "no" |
Indicate if the employee is an Ultimate Beneficial Owner of the financial institution | No | Yes |
branch_id |
String | Provide the branch id associated with the employee, if applicable | No | Yes |
contract_consultant |
nullable Boolean "yes", "no" |
Indicate whether the employee is a contractor or a consultant | No | Yes |
employee_affiliate_name |
String | Provide the name of the affiliate in which the employee is employed | No | No |
employee_affiliate_id |
String | Provide the unique affiliate identifier where the employee is employed. This will link to the Affiliate report/affiliate_id, where an affiliate report has been provided. If an affiliate report is not provided, use the employee_affiliate_name | No | No |
employee_country_location |
String ISO Country code 3166-1 alpha-2 |
Provide the ISO country code of the employee's location | No | Yes |
employee_mlro_external_certification |
nullable Boolean "yes", "no" |
Indicate if the MLRO officer has been externally certified | No | Yes |
employee_financial_crime_certification |
String | Provide the financial crime certification body that the employee has obtained their qualifications from | No | No |
employee_financial_crime_certification_date |
Date YYYY-MM-DD ISO 8601 format |
Provide the date of financial crime certification received from the provider, in ISO 8601 format | No | No |
training_assessment |
String "pass", "fail" |
Populate with the outcome status of the course | No | Yes |
training_date |
Date YYYY-MM-DD ISO 8601 format |
Provide the training date in ISO 8601 format. If the day is not available, then it should be provided as YYYY-MM | No | No |
training_subject |
TrainingSubject | Provide the training course name undertaken by the employee. If the exact name is not available, please choose the nearest equivalent. Please note that multiple selections for a single employee are not permitted in cases where an employee has completed multiple, it should be provided in separate entries. Multiple codes may be loaded from Dec 2020 with ";" as a separator | No | No |
abc_breach_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 | No |
abc_breach_currency |
String ISO 4217 alpha-3 currency code |
Provide the ISO 4217 currency code of the breach amount | No | No |
abc_breach_date |
Date YYYY-MM-DD ISO 8601 format |
Provide the date of the breach in ISO 8601 format. If the day is not available, then it should be provided as YYYY-MM | No | No |
SWIFT Data
You can extract data from your watch report or directly from your core bank system
If your bank has a different implementation or interpretation from the Swift standard please inform us in advance.
Product Report
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/ProductReportElement"
},
"efiVersion": "0.9",
"definitions": {
"ProductReportElement": {
"type": "object",
"additionalProperties": false,
"properties": {
"product_id": { "$ref": "#/definitions/nonEmptyString" },
"internal_product_name": { "$ref": "#/definitions/nonEmptyString" },
"inherent_product_risk_level": { "$ref": "#/definitions/RiskLevels" },
"mapped_product": { "$ref": "#/definitions/MappedProductName" },
"percentage_of_bank_revenue": { "$ref": "#/definitions/NumberOrString" },
"new_product_release": { "$ref": "#/definitions/MaybeBoolean" }
},
"required": [
"product_id",
"internal_product_name",
"inherent_product_risk_level",
"mapped_product",
"percentage_of_bank_revenue",
"new_product_release"
],
"title": "ProductReportElement"
},
"nonEmptyString": {
"type": "string",
"minLength": 1
},
"RiskLevels": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"MappedProductName": {
"type": "string",
"enum": [
"retail_txn_account",
"retail_current_account",
"retail_savings_account",
"retail_debit_cards",
"retail_atm_cards",
"retail_credit_cards",
"retail_travelers_cheques",
"retail_mortgage",
"retail_homeequity_loans",
"retail_personal_loans",
"retail_term_deposit",
"retail_cryptocurrencies",
"retail_sweep_accoounts",
"retail_money_market_accounts",
"retail_brokerage_accounts",
"retail_retirement_savings",
"retail_prepaid_cards",
"retail_other",
"privatebank_txn_account",
"privatebank_current_account",
"privatebank_savings_account",
"privatebank_debit_cards",
"privatebank_atm_cards",
"privatebank_credit_cards",
"privatebank_travelers_cheque",
"privatebank_mortgage",
"privatebank_homeequity_loans",
"privatebank_personal_loans",
"privatebank_term_deposit",
"privatebank_cryptocurrencies",
"privatebank_money_market_accounts",
"privatebank_retirement_savings",
"privatebank_trust_services",
"privatebank_prepaid_cards",
"privatebank_brokerage_accounts",
"privatebank_other",
"transactional_cb_nostro",
"transactional_cb_vostro",
"transactional_cb_loro",
"transactional_lettersofcredit",
"transactional_invoice_financing",
"transactional_asset_financing",
"transactional_lockbox",
"transactional_remote_deposit_capture",
"transactional_cashmanagement",
"transactional_cashremittances",
"transactional_currencydelivery",
"transactional_other",
"commercial_current_account",
"commercial_cryptocurrencies",
"commercial_deposit_account",
"commercial_overdraft_loans",
"commercial_cash_management",
"commercial_treasury_management",
"commercial_private_equity_financing",
"commercial_other",
"commercial_bank_drafts",
"investment_equity_capital",
"investment_debt_capital",
"investment_mergers_acquisitions",
"investment_private_equity",
"investment_private_placements",
"investment_syndicated_finance",
"investment_leveraged_finance",
"investment_leasing",
"investment_restructuring",
"investment_omnibus_accounts",
"investment_trust_services",
"investment_other",
"investment_project_finance",
"islamic_hawala",
"islamic_mudharabah",
"islamic_musharakah",
"islamic_murabahah",
"islamic_iljarah",
"islamic_sukuk",
"islamic_wadiah",
"islamic_takaful",
"islamic_credit_cards",
"islamic_funds",
"islamic_microfinance",
"capital_markets",
"securityservices_custody",
"broker_dealer"
]
},
"NumberOrString": {
"title": "NumberOrString",
"oneOf": [{
"$ref": "#/definitions/nonEmptyString"
}, {
"type": "number"
}]
},
"MaybeBoolean": {
"title": "MaybeBoolean",
"oneOf": [{
"type": "string",
"enum": ["yes", "no"]
}, {
"const": ""
}]
}
}
}
version 1.1
@totalColumns 6
@separator ','
// @efi_version 0.9
product_id: notEmpty
internal_product_name: notEmpty
inherent_product_risk_level: any("low", "medium", "high")
mapped_product: any("retail_txn_account","retail_current_account","retail_savings_account","retail_debit_cards","retail_atm_cards","retail_credit_cards","retail_travelers_cheques","retail_mortgage","retail_homeequity_loans","retail_personal_loans","retail_term_deposit","retail_cryptocurrencies","retail_sweep_accoounts","retail_money_market_accounts","retail_brokerage_accounts","retail_retirement_savings","retail_prepaid_cards","retail_other","privatebank_txn_account","privatebank_current_account","privatebank_savings_account","privatebank_debit_cards","privatebank_atm_cards","privatebank_credit_cards","privatebank_travelers_cheque","privatebank_mortgage","privatebank_homeequity_loans","privatebank_personal_loans","privatebank_term_deposit","privatebank_cryptocurrencies","privatebank_money_market_accounts","privatebank_retirement_savings","privatebank_trust_services","privatebank_prepaid_cards","privatebank_brokerage_accounts","privatebank_other","transactional_cb_nostro","transactional_cb_vostro","transactional_cb_loro","transactional_lettersofcredit","transactional_invoice_financing","transactional_asset_financing","transactional_lockbox","transactional_remote_deposit_capture","transactional_cashmanagement","transactional_cashremittances","transactional_currencydelivery","transactional_other","commercial_current_account","commercial_cryptocurrencies","commercial_deposit_account","commercial_overdraft_loans","commercial_cash_management","commercial_treasury_management","commercial_private_equity_financing","commercial_other","commercial_bank_drafts","investment_equity_capital","investment_debt_capital","investment_mergers_acquisitions","investment_private_equity","investment_private_placements","investment_syndicated_finance","investment_leveraged_finance","investment_leasing","investment_restructuring","investment_omnibus_accounts","investment_trust_services","investment_other","investment_project_finance","islamic_hawala","islamic_mudharabah","islamic_musharakah","islamic_murabahah","islamic_iljarah","islamic_sukuk","islamic_wadiah","islamic_takaful","islamic_credit_cards","islamic_funds","islamic_microfinance","capital_markets","securityservices_custody","broker_dealer")
percentage_of_bank_revenue: notEmpty
new_product_release: any("yes", "no") or empty
File Name
The file regarding product report data should have the prefix product_report
and the date for which it represents.
product_report_YYYYMM.csv
For example, a file with all the data from January 2019 should be:
product_report_201901.csv
Frequency
After initial submission, submitted monthly with the previous month's product information. If no new changes 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. |
---|---|---|---|---|
product_id |
String | Unique identifier for the product | No | Yes |
internal_product_name |
String | Provide the internal name of the product | No | Yes |
inherent_product_risk_level |
String "low", "medium", "high" |
Provide the risk level this product has been designated | No | Yes |
mapped_product |
String Product Usage |
Provide the name of the product, mapped to the available Elucidate product list | No | Yes |
percentage_of_bank_revenue |
Number or string | Provide the approximate percentage of bank revenue which is derived from this product | No | Yes |
new_product_release |
nullable Boolean "yes", "no" |
Indicate if a new product was introduced in the last month | No | Yes |
Sanctions Screening
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/SanctionsScreeningElement"
},
"efiVersion": "0.9",
"definitions": {
"SanctionsScreeningElement": {
"title": "SanctionsScreeningElement",
"type": "object",
"required": [
"sanctions_screening_datetime",
"alert_input_source",
"alert_id",
"alert_creation_datetime",
"alert_account_number",
"alert_entity_type",
"alert_client_number",
"alert_closure_datetime",
"alert_closure_reason",
"alert_escalation_to_level2_datetime",
"alert_escalation_to_level3_datetime",
"alert_entity_fullname",
"alert_entity_country",
"alert_entity_date_of_birth_incorp",
"alert_entity_citizenship_country",
"alert_transaction_amount",
"alert_transaction_id",
"alert_transaction_currency",
"alert_hit_name",
"alert_hit_country",
"alert_list_entry_addition_date",
"alert_list_name",
"sanctions_screening_system",
"sanctions_screening_system_version"
],
"properties": {
"sanctions_screening_datetime": { "$ref": "#/definitions/DateTime" },
"alert_input_source": { "$ref": "#/definitions/MaybeAlertInputSource" },
"alert_id": { "$ref": "#/definitions/NumberOrString" },
"alert_creation_datetime": { "$ref": "#/definitions/DateTime" },
"alert_account_number": { "$ref": "#/definitions/nonEmptyString" },
"alert_entity_type": { "$ref": "#/definitions/AlertEntityType" },
"alert_client_number": { "$ref": "#/definitions/nonEmptyString" },
"alert_closure_datetime": { "$ref": "#/definitions/DateTime" },
"alert_closure_reason": { "$ref": "#/definitions/AlertClosureReason" },
"alert_escalation_to_level2_datetime": { "$ref": "#/definitions/MaybeDate" },
"alert_escalation_to_level3_datetime": { "$ref": "#/definitions/MaybeDate" },
"alert_entity_fullname": { "$ref": "#/definitions/nonEmptyString" },
"alert_entity_country": { "$ref": "#/definitions/Country" },
"alert_entity_date_of_birth_incorp": { "$ref": "#/definitions/MaybeDate" },
"alert_entity_citizenship_country": { "$ref": "#/definitions/Country" },
"alert_transaction_amount": { "$ref": "#/definitions/NumberOrString" },
"alert_transaction_id": { "$ref": "#/definitions/NumberOrString" },
"alert_transaction_currency": { "$ref": "#/definitions/Currency" },
"alert_hit_name": { "type": "string" },
"alert_hit_country": { "$ref": "#/definitions/MaybeCountry" },
"alert_list_entry_addition_date": { "$ref": "#/definitions/DateTime" },
"alert_list_name": { "$ref": "#/definitions/nonEmptyString" },
"sanctions_screening_system": { "$ref": "#/definitions/nonEmptyString" },
"sanctions_screening_system_version": { "$ref": "#/definitions/NumberOrString" }
}
},
"AlertInputSource": {
"type": "string",
"enum": ["kyc_data", "aml_customer_reference_data", "transaction_data", "pep_list", "corporate_data", "sanctions_list", "cft_data"]
},
"MaybeAlertInputSource": {
"title": "MaybeAlertInputSource",
"oneOf": [{
"$ref": "#/definitions/AlertInputSource"
}, {
"const": ""
}]
},
"AlertEntityType": {
"type": "string",
"enum": ["individual", "entity"]
},
"AlertClosureReason": {
"type": "string",
"enum": [
"confirmed_false_positive",
"customer_offboarded",
"external_filing",
"internal_investigation",
"other"
]
},
"MaybeYesNo": {
"anyOf": [{
"$ref": "#/definitions/YesNoOption"
}, {
"$ref": "#/definitions/emptyString"
}]
},
"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"
},
"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)$"
},
"MaybeCountry": {
"title": "MaybeCountry",
"oneOf": [{
"$ref": "#/definitions/Country"
}, {
"const": ""
}]
},
"NumberOrString": {
"title": "NumberOrString",
"oneOf": [{
"$ref": "#/definitions/nonEmptyString"
}, {
"type": "number"
}]
},
"date": {
"title": "date",
"type": "string",
"format": "date"
},
"DateTime": {
"title": "date",
"type": "string",
"format": "date-time"
},
"MaybeDate": {
"title": "MaybeDate",
"oneOf": [{
"type": "string",
"format": "date"
}, {
"type": "string",
"format": "date-time"
}, {
"const": ""
}]
},
"nonEmptyString": {
"type": "string",
"minLength": 1
}
}
}
version 1.1
@totalColumns 24
@separator ','
// @efi_version 0.9
sanctions_screening_datetime: xDateTimeTz
alert_input_source: any("kyc_data", "aml_customer_reference_data", "transaction_data", "pep_list", "corporate_data", "sanctions_list", "cft_data")
alert_id: notEmpty
alert_creation_datetime: xDateTimeTz
alert_account_number: notEmpty
alert_entity_type: any("individual", "entity")
alert_client_number: notEmpty
alert_closure_datetime: xDateTimeTz
alert_closure_reason: any("confirmed_false_positive", "customer_offboarded", "external_filing", "internal_investigation", "other")
alert_escalation_to_level2_datetime: xDateTimeTz or empty
alert_escalation_to_level3_datetime: xDateTimeTz or empty
alert_entity_fullname: notEmpty
alert_entity_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)$")
alert_entity_date_of_birth_incorp: xDate or empty
alert_entity_citizenship_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)$")
alert_transaction_amount: notEmpty
alert_transaction_id: notEmpty or empty
alert_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)$")
alert_hit_name: notEmpty
alert_hit_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)$")
alert_list_entry_addition_date: xDateTimeTz
alert_list_name: notEmpty
sanctions_screening_system: notEmpty or empty
sanctions_screening_system_version: notEmpty or empty
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 sanctions. If no new sanctions 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. |
---|---|---|---|---|
sanctions_screening_datetime |
DateTime YYYY-MM-DDThh:mm:ssTZD |
The date time the sanctions screening was performed in ISO 8601 format, converted to UTC | No | Yes |
alert_input_source |
String "kyc_data", "aml_customer_reference_data", "transaction_data", "pep_list", "corporate_data", "sanctions_list", "cft_data" |
Specify the source of data used in screening | No | Yes |
alert_id |
Number or string | unique identifier for the alert generated | No | Yes |
alert_creation_datetime |
DateTime YYYY-MM-DDThh:mm:ssTZD |
Date time of the alert creation in ISO 8601 format, converted to UTC | No | Yes |
alert_account_number |
String | If the alert was created by a non-customer from transaction data sanctions screening, then the account number provided in the transaction for which a sanctions alert was generated. Else if the account_number alerted is a customer of the financial institution, it should link to the Transaction data originator_account_number or beneficiary_account_number attribute | Yes | Yes |
alert_entity_type |
String "individual", "entity" |
Provide an indicator as to whether the entity involved in generating an alert was an individual or an entity (of any sort) | No | Yes |
alert_client_number |
String | If the alert was created by a customer name, then the unique customer id - this should link to the customer data file's client_number attribute | No | Yes |
alert_closure_datetime |
DateTime YYYY-MM-DDThh:mm:ssTZD |
The date time the alert was closed in ISO 8601 format, converted to UTC | No | Yes |
alert_closure_reason |
String "confirmed_false_positive", "customer_offboarded", "external_filing", "internal_investigation", "other" |
Provide the reason for closing the alert | No | Yes |
alert_escalation_to_level2_datetime |
DateTime YYYY-MM-DDThh:mm:ssTZD |
The date time the alert was escalated in ISO 8601 format, converted to UTC, from level 1 (front line) to level 2, if escalated. If no escalation was required, leave blank | No | No |
alert_escalation_to_level3_datetime |
Date YYYY-MM-DDThh:mm:ssTZD |
The date time in ISO 8601 format, converted to UTC, the alert was escalated from level 2 to level 3, if escalated. If no escalation was required, leave blank | No | No |
alert_entity_fullname |
String | The full name of the subject of the alert - 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 | Yes | Yes |
alert_entity_country |
String ISO Country code 3166-1 alpha-2 |
The ISO country code of the alert subject's residential/business address - it may be more than one country | No | Yes |
alert_entity_date_of_birth_incorp |
Date YYYY-MM-DD ISO 8601 format |
The date of birth for the subject of the alert, where the subject is an individual. In cases where the subject is a legal entity, then the date of incorporation | Yes | No |
alert_entity_citizenship_country |
String ISO Country code 3166-1 alpha-2 |
If the subject of the alert was an individual, then the ISO country code of their citizenship | No | Yes |
alert_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 |
alert_transaction_id |
String | If the sanctions screening alert was generated as a result of a transaction, provide the transaction_id associated and should be linked to a transaction provided in the Transaction file. This is a new attribute which can be loaded as part of this file from Dec 2020 onwards | No | No |
alert_transaction_currency |
String ISO 4217 alpha-3 currency code |
If the alert was generated from transaction data, then the transaction currency using the required ISO 4217 currency codes | No | Yes |
alert_hit_name |
String | The name of the entity on the list for which the match was obtained | No | Yes |
alert_hit_country |
String ISO Country code 3166-1 alpha-2 |
The country of the entity on the list which generated/was involved in a match, if the user wants to add multiple countries its with ; e.g: DE;PL;UA | No | Yes |
alert_list_entry_addition_date |
DateTime YYYY-MM-DDThh:mm:ssTZD |
The datetime in ISO 8601 format, converted to UTC ,the entity was added to the list and is the subject of the alert | No | No |
alert_list_name |
String | Provide the name of the list against which a sanctions hit was generated e.g. UN/OFAC/EU/HMT. Multiple list names may be loaded from Dec 2020 with ";" as a separator | No | No |
sanctions_screening_system |
String | Provide the name of the internal or external sanctions screening system used | No | No |
sanctions_screening_system_version |
Number or string | Provide the version number of the internal or external sanctions screening system used | No | No |
Transaction Monitoring
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/TransactionsMonitoringElement"
},
"efiVersion": "0.9",
"definitions": {
"TransactionsMonitoringElement": {
"type": "object",
"title": "TransactionsMonitoringElement",
"required": [
"alert_id",
"alert_scenario",
"alert_scenario_rule_id",
"alert_list_entry_type",
"alert_list_entry_name",
"alert_list_entry_id",
"alert_creation_datetime",
"alert_entity_type",
"alert_client_number",
"alert_transaction_id",
"alert_originator_account_number",
"alert_beneficiary_account_number",
"alert_closure_datetime",
"alert_closure_reason",
"alert_closure_employee_id",
"alert_manual_creator_employee_id",
"alert_external_rfi_incoming_bic",
"alert_external_rfi_datetime",
"alert_external_rfi_account_number",
"alert_external_rfi_channel",
"alert_external_rfi_response_datetime",
"alert_external_rfi_response_channel",
"alert_external_rfi_response_reviewer_id",
"alert_ctr_create_datetime",
"alert_ctr_account_number",
"alert_ctr_filing_datetime",
"alert_ctr_reference_number",
"alert_ctr_filedwith",
"alert_ctr_threshold_amount",
"alert_ctr_currency_code",
"alert_type",
"account_regulator_filing",
"account_regulator_filing_date"
],
"properties": {
"alert_id": { "$ref": "#/definitions/NumberOrString" },
"alert_scenario": { "$ref": "#/definitions/AlertScenario" },
"alert_scenario_rule_id": { "$ref": "#/definitions/NumberOrString" },
"alert_list_entry_type": { "$ref": "#/definitions/AlertListEntryType" },
"alert_list_entry_name": { "$ref": "#/definitions/nonEmptyString" },
"alert_list_entry_id": { "$ref": "#/definitions/NumberOrString" },
"alert_creation_datetime": { "$ref": "#/definitions/DateTime" },
"alert_entity_type": { "$ref": "#/definitions/AlertEntryType" },
"alert_client_number": { "$ref": "#/definitions/NumberOrString" },
"alert_transaction_id": { "$ref": "#/definitions/NumberOrString" },
"alert_originator_account_number": { "$ref": "#/definitions/NumberOrString" },
"alert_beneficiary_account_number": { "$ref": "#/definitions/NumberOrString" },
"alert_closure_datetime": { "$ref": "#/definitions/MaybeDate" },
"alert_closure_reason": { "$ref": "#/definitions/AlertClosureReason" },
"alert_closure_employee_id": { "$ref": "#/definitions/NumberOrString" },
"alert_escalation_to_level2_datetime": { "$ref": "#/definitions/MaybeDate" },
"alert_escalation_to_level2_reviewer_id": { "$ref": "#/definitions/NumberOrString" },
"alert_escalation_to_level3_datetime": { "$ref": "#/definitions/MaybeDate" },
"alert_escalation_to_level3_reviewer_id": { "$ref": "#/definitions/NumberOrString" },
"alert_manual_creator_employee_id": { "$ref": "#/definitions/NumberOrString" },
"alert_external_rfi_incoming_bic": { "$ref": "#/definitions/BIC" },
"alert_external_rfi_datetime": { "$ref": "#/definitions/MaybeDate" },
"alert_external_rfi_account_number": { "$ref": "#/definitions/NumberOrString" },
"alert_external_rfi_channel": { "$ref": "#/definitions/AlertChannel" },
"alert_external_rfi_response_datetime": { "$ref": "#/definitions/MaybeDate" },
"alert_external_rfi_response_channel": { "$ref": "#/definitions/MaybeAlertChannel" },
"alert_external_rfi_response_reviewer_id": { "$ref": "#/definitions/NumberOrString" },
"alert_ctr_create_datetime": { "$ref": "#/definitions/MaybeDate" },
"alert_ctr_account_number": { "$ref": "#/definitions/NumberOrString" },
"alert_ctr_filing_datetime": { "$ref": "#/definitions/MaybeDate" },
"alert_ctr_reference_number": { "type": "string" },
"alert_ctr_filedwith": { "type": "string" },
"alert_ctr_threshold_amount": { "$ref": "#/definitions/NumberOrString" },
"alert_ctr_currency_code": { "$ref": "#/definitions/Currency" },
"alert_type": { "$ref": "#/definitions/AlertType" },
"account_regulator_filing": { "$ref": "#/definitions/YesNoOption" },
"account_regulator_filing_date": { "$ref": "#/definitions/MaybeDate" }
}
},
"AlertType": {
"type": "string",
"enum": ["automated", "manual", "external_rfi", "ctr", "regulator_fiu", "aml", "fraud"]
},
"AlertScenario": {
"type": "string",
"enum": ["automated_alert", "manual_alert"]
},
"AlertListEntryType": {
"type": "string",
"enum": ["internal_watchlist", "external_watchlist", "internal_investigation", "external_investigation"]
},
"AlertEntryType": {
"type": "string",
"enum": ["individual", "entity"]
},
"AlertClosureReason": {
"type": "string",
"enum": ["true_positive", "false_positive", "other", "internal_investigation", "external_investigation"]
},
"AlertChannel": {
"type": "string",
"enum": ["swift", "email", "post", "telephone", "other"]
},
"NumberOrString": {
"title": "NumberOrString",
"oneOf": [{
"$ref": "#/definitions/nonEmptyString"
}, {
"const": ""
}, {
"type": "number"
}]
},
"date": {
"title": "date",
"type": "string",
"format": "date"
},
"DateTime": {
"title": "date",
"type": "string",
"format": "date-time"
},
"nonEmptyString": {
"type": "string",
"minLength": 1
},
"emptyString": {
"const": ""
},
"WarnIfEmpty": {
"type": "string",
"title": "Warning if empty",
"description": "Recommended to have"
},
"BIC": {
"type": "string",
"pattern": "([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)?"
},
"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"
},
"MaybeAlertChannel": {
"title": "MaybeAlertChannel",
"oneOf": [{
"$ref": "#/definitions/AlertChannel"
}, {
"const": ""
}]
},
"MaybeDate": {
"title": "MaybeDate",
"oneOf": [{
"type": "string",
"format": "date"
}, {
"type": "string",
"format": "date-time"
}, {
"const": ""
}]
},
"YesNoOption": {
"type": "string",
"enum": ["yes", "no"],
"title": "YesNoOption"
}
}
}
version 1.1
@totalColumns 37
@separator ','
// @efi_version 0.9
alert_id: notEmpty or empty
alert_scenario: any("automated_alert", "manual_alert")
alert_scenario_rule_id: notEmpty
alert_list_entry_type: any("internal_watchlist", "external_watchlist", "internal_investigation", "external_investigation")
alert_list_entry_name: notEmpty
alert_list_entry_id: notEmpty
alert_creation_datetime: xDateTimeTz
alert_entity_type: any("individual", "entity")
alert_client_number: notEmpty
alert_transaction_id: notEmpty
alert_originator_account_number: notEmpty
alert_beneficiary_account_number: notEmpty
alert_closure_datetime: xDateTimeTz
alert_closure_reason: any("true_positive", "false_positive", "other", "internal_investigation", "external_investigation")
alert_closure_employee_id: notEmpty
alert_escalation_to_level2_datetime: xDateTimeTz or empty
alert_escalation_to_level2_reviewer_id: notEmpty or empty
alert_escalation_to_level3_datetime: xDateTimeTz or empty
alert_escalation_to_level3_reviewer_id: notEmpty or empty
alert_manual_creator_employee_id: notEmpty
alert_external_rfi_incoming_bic: regex("([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)")
alert_external_rfi_datetime: xDateTimeTz or empty
alert_external_rfi_account_number: notEmpty or empty
alert_external_rfi_channel: any("swift", "email", "post", "telephone", "other")
alert_external_rfi_response_datetime: xDateTimeTz or empty
alert_external_rfi_response_channel: any("swift", "email", "post", "telephone", "other") or empty
alert_external_rfi_response_reviewer_id: notEmpty or empty
alert_ctr_create_datetime: xDateTimeTz or empty
alert_ctr_account_number: notEmpty
alert_ctr_filing_datetime: xDateTimeTz or empty
alert_ctr_reference_number: notEmpty or empty
alert_ctr_filedwith: notEmpty or empty
alert_ctr_threshold_amount: notEmpty
alert_ctr_currency_code: 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)$")
alert_type: any("automated", "manual", "external_rfi", "ctr", "regulator_fiu", "aml", "fraud")
account_regulator_filing: any("yes","no")
account_regulator_filing_date: xDate or empty
File Name
The file regarding transaction monitoring data should have the prefix transactions_monitoring
and the date of the last day of data
transactions_monitoring_YYYYMMDD.csv
For example, a file with all the data from January 2018 should be:
transactions_monitoring_20180131.csv
Frequency
After initial submission, submitted monthly only with the previous month's transaction monitoring. If no new events 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. |
---|---|---|---|---|
alert_id |
Number or string | Unique identifier generated for this alert during transaction monitoring | No | Yes |
alert_scenario |
String "automated_alert", "manual_alert" |
Provide the underlying reason for this alert, if it was generated automatically or manually: - automated_alert, - manual_alert" |
No | Yes |
alert_scenario_rule_id |
Number or string | When an alert was triggered due to a monitoring rule, provide the rule id associated with the triggered rule. This should cross reference the rule_id in the Transaction Rules file | No | No |
alert_list_entry_type |
String "internal_watchlist", "external_watchlist", "internal_investigation", "external_investigation" |
If the alert was generated due to list screening, then provide the type of list involved | No | No |
alert_list_entry_name |
String | If the alert was generated to list screening, provide the name of the list involved. Multiple list names may be loaded from Dec 2020 with ";" as a separator | No | No |
alert_list_entry_id |
String | If the alert was generated due to list screening, then provide the unique identifier for the list entry it matched | No | No |
alert_creation_datetime |
Date YYYY-MM-DDThh:mm:ssTZD |
The date time of the alert creation | No | No |
alert_entity_type |
String Individual, entity |
Provide an indication of whether the subject of the alert is an individual or entity | No | Yes |
alert_client_number |
Number or string | If the alert involved transactions associated to a client, populate with the client number. This should link to the Customer data file client_number attribute | No | No |
alert_transaction_id |
Number or string | Provide the transaction id(s) of the transaction(s) involved in generating this alert. These should should be linked to the transactions file provided | No | No |
alert_originator_account_number |
Number or string | Populate with the account number(s) of the originator involved in the transaction(s) which are the subject of the alert | No | Yes |
alert_beneficiary_account_number |
Number or string | Populate with the account number(s) of the beneficiary involved in the transaction(s) which are the subject of the alert | No | Yes |
alert_closure_datetime |
Date YYYY-MM-DDThh:mm:ssTZD |
The date time of the alert closure | No | Yes |
alert_closure_reason |
String "true_positive", "false_positive", "other", "internal_investigation", "external_investigation" |
The reason for closing the alert | No | Yes |
alert_closure_employee_id |
Number or string | Provide the unique employee id of the investigator closing the alert | No | Yes |
alert_escalation_to_level2_datetime |
Date YYYY-MM-DDThh:mm:ssTZD |
The date time of escalation to level 2 alert investigation. If this was not escalated, leave blank | No | No |
alert_escalation_to_level2_reviewer_id |
String | If the alert was escalated to level 2 alert investigation and required a review prior to closure, the employee id(s) of the reviewer(s) | No | No |
alert_escalation_to_level3_datetime |
Date YYYY-MM-DDThh:mm:ssTZD |
The date time of escalation to level 3 alert investigation. If this was not escalated, leave blank | No | No |
alert_escalation_to_level3_reviewer_id |
String | If the alert was escalated to level 3 alert investigation and required a review prior to closure, the employee id(s) of the reviewer(s) | No | No |
alert_manual_creator_employee_id |
Number or string | In cases where an alert was created manually, provide the employee id of the alert creator | No | No |
alert_external_rfi_incoming_bic |
String | In cases where the alert involved an external incoming RFI from another financial institution, provide the BIC of the sending institution | No | No |
alert_external_rfi_datetime |
Date YYYY-MM-DDThh:mm:ssTZD |
In cases where the alert involved an external incoming RFI from another financial institution, provide the date time of the RFI received | No | No |
alert_external_rfi_account_number |
Number or string | In cases where the alert involved an external incoming RFI from another financial institution, provide the account number associated to the subject of the RFI | No | No |
alert_external_rfi_channel |
String "SWIFT", "email", "post", "telephone", "other" |
Provide the incoming channel through which the RFI was received | No | No |
alert_external_rfi_response_datetime |
Date YYYY-MM-DDThh:mm:ssTZD |
Provide the date time of the response to the incoming RFI | No | No |
alert_external_rfi_response_channel |
String "SWIFT", "email", "post", "telephone", "other" |
Provide the response channel used for the RFI | No | No |
alert_external_rfi_response_reviewer_id |
String | Provide the employee id of the reviewer of the RFI response, if one was required | No | No |
alert_ctr_create_datetime |
Date YYYY-MM-DDThh:mm:ssTZD |
In cases where a CTR was required, the date time of the creation of the CTR | No | No |
alert_ctr_account_number |
Number or string | In cases where a CTR was required, the account number of the subject of the CTR | No | No |
alert_ctr_filing_datetime |
Date YYYY-MM-DDThh:mm:ssTZD |
In cases where a CTR was required, the filing date time of the CTR, which may or may not be the same as the creation date time | No | No |
alert_ctr_reference_number |
String | Provide the unique CTR reference number which was received when the CTR was filed externally | No | No |
alert_ctr_filedwith |
String | Provide the name of the regulator where the Currency Transaction Report (CTR) was filed | No | No |
alert_ctr_threshold_amount |
Number | 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 | No |
alert_ctr_currency_code |
String | Provide the ISO 4217 currency code for the amount | No | No |
alert_type |
String "automated", "manual", "external_rfi", "ctr", "regulator_fiu", "aml", "fraud" |
Populate with a defined type of alert generated during transaction monitoring, which was NOT a sanctions alert. Provide with any of the following values "automated", "manual", "external_rfi", "ctr", "Regulator_FIU", "AML", "Fraud" | No | Yes |
account_regulator_filing |
nullable Boolean "yes", "no" |
Indicate if the account has been reported to the local regulator, law enforcement or financial intelligence unit | No | No |
account_regulator_filing_date |
Date YYYY-MM-DD ISO 8601 format |
If the account has been reported to the local regulator, law enforcement or financial intelligence unit please provide the timestamp of send date | No | No |
Affiliates Report
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://elucidate.co/schemas/affiliates_report.json",
"type": "array",
"items": {
"$ref": "#/definitions/AffiliateElement"
},
"efi_version": "0.9",
"definitions": {
"AffiliateElement": {
"title": "AffiliateElement",
"type": "object",
"required": [
"affiliate_type",
"affiliate_BIC",
"affiliate_percent_ownership",
"affiliate_isic_code",
"affiliate_name",
"affiliate_address",
"affiliate_country",
"affiliate_id",
"affiliate_internal_risk_level",
"affiliate_LEI",
"revenue_percent_generated_per_affiliate",
"products_per_affiliate",
"new_product_release_list"
],
"properties": {
"affiliate_type": { "$ref": "#/definitions/AffiliateType" },
"affiliate_BIC": { "$ref": "#/definitions/BIC" },
"affiliate_percent_ownership": { "$ref": "#/definitions/NumberOrString" },
"affiliate_isic_code": { "$ref": "#/definitions/InternationalStandardIndustrialClassificationCode"},
"affiliate_name": { "$ref": "#/definitions/nonEmptyString" },
"affiliate_address": { "$ref": "#/definitions/nonEmptyString" },
"affiliate_country": { "$ref": "#/definitions/Country" },
"affiliate_id": { "type": "string" },
"affiliate_internal_risk_level": { "$ref": "#/definitions/RiskLevel" },
"affiliate_LEI": { "type": "string" },
"revenue_percent_generated_per_affiliate": { "$ref": "#/definitions/NumberOrString" },
"products_per_affiliate": { "type": "string" },
"new_product_release_list": { "type": "string" }
}
},
"nonEmptyString": {
"type": "string",
"minLength": 1
},
"emptyString": {
"const": ""
},
"AffiliateType": {
"title": "AffiliateType",
"type": "string",
"enum": ["branch", "subsidiary", "representative"]
},
"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)$"
},
"RiskLevel": {
"title": "RiskLevel",
"type": "string",
"enum": ["low", "medium", "high"]
},
"BIC": {
"type": "string",
"pattern": "([A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?)?"
},
"InternationalStandardIndustrialClassificationCode": {
"title": "InternationalStandardIndustrialClassificationCode",
"description": "https://unstats.un.org/unsd/classifications/Econ/ISIC.cshtml",
"oneOf": [
{
"type": "string",
"pattern": "([0-9]{1,4});?"
},
{
"type": "number",
"minimum": 0,
"maximum": 9999
},
{
"const": ""
}
]
},
"NumberOrString": {
"title": "NumberOrString",
"oneOf": [{
"type": "string"
}, {
"type": "number"
}]
}
}
}
version 1.1
@totalColumns 13
@separator ','
// @efi_version 0.9
affiliate_type: any("branch", "subsidiary", "representative")
affiliate_BIC: regex("([A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?)") or empty
affiliate_percent_ownership: notEmpty or empty
affiliate_isic_code: regex("\b([0-9A-Z]){1,4}\b;?") or empty
affiliate_name: notEmpty or empty
affiliate_address: notEmpty or empty
// ISO 3166-1 alpha-2
affiliate_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)$") or empty
affiliate_id: notEmpty or empty
affiliate_internal_risk_level: any("low", "medium", "high")
// according to LEI 17442 format
affiliate_LEI: notEmpty or empty
revenue_percent_generated_per_affiliate: notEmpty or empty
products_per_affiliate: notEmpty or empty
new_product_release_list: notEmpty or empty
File Name
The file regarding affiliates report data should have the prefix affiliates_report
and the date for which it represents.
affiliates_report_YYYYMM.csv
For example, a file with all the data from January 2019 should be:
affiliates_report_201901.csv
Frequency
After initial submission, submitted monthly with all affiliate relations.
Sample Package
Download sample package here
Attribute Details
Attribute name | Type, format and values | Description | Pseu. | Req. |
---|---|---|---|---|
affiliate_type |
String "branch", "subsidiary", "representative" |
Choose one of three: branch, subsidiary, representative. An affiliate covers any financial institution that controls, is controlled by, or is under common control with another Financial institution | No | Yes |
affiliate_BIC |
String A BIC has the following pattern ([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)? according to ISO 9362 |
Provide if the affiliate is an FI with a BIC according to ISO 9362, otherwise blank | No | No |
affiliate_percent_ownership |
Number or string | Provide the ownership percentage of the affiliate in the format XX.XX% | No | No |
affiliate_isic_code |
String ISIC codes have the pattern regex("^[A-Z0-9]{1,4}$") |
Provide the isic_code of the industry of the customer according to the UN ISIC code list. If multiple codes are applicable, then supply each code separated by ";". A full list of ISIC and conversions can be found here | No | No |
affiliate_name |
String | Name of the affiliate | No | No |
affiliate_address |
String | This should be the local billing address | No | No |
affiliate_country |
String ISO Country code 3166-1 alpha-2 |
Provide the ISO 2 digit country code of the affiliate's local address | No | Yes |
affiliate_id |
String | Unique identifier for the affiliate. This identifier should be used for cross reference in the Employee data file | No | No |
affiliate_internal_risk_level |
String "low", "medium", "high" |
Provide the internal risk rating applied to this affiliate, as rated during your internal risk assessment. If the Affiliate is a branch, leave as "empty" | No | No |
affiliate_LEI |
String ISO 17442 format |
According to the codes according to LEI 17442 format | No | No |
revenue_percent_generated_per_affiliate |
Number | Provide the approximate percentage of revenue which is derived from this affiliate | No | No |
products_per_affiliate |
String | Provide the name of the product, mapped to the available Elucidate product list. If multiple products are applicable, then supply each product separated by ";". | No | No |
new_product_release_list |
String | Provide the list of new products introduced in the last month by your Affiliate. If multiple products are applicable, then supply each product separated by ";" | No | No |
Vendors
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/VendorElement"
},
"efiVersion": "0.9",
"definitions": {
"VendorElement": {
"type": "object",
"additionalProperties": false,
"properties": {
"vendor_id": { "$ref": "#/definitions/NumberOrString" },
"third_party_vendor_name": { "$ref": "#/definitions/nonEmptyString" },
"fincrime_responsibility": { "$ref": "#/definitions/YesNoOption" },
"service_provided": { "$ref": "#/definitions/ServiceProvided" },
"vendor_website": { "$ref": "#/definitions/nonEmptyString" },
"vendor_address": { "$ref": "#/definitions/nonEmptyString" },
"vendor_subject_to_audit": { "$ref": "#/definitions/YesNoOption" },
"vendor_subject_to_fincrime_training": { "$ref": "#/definitions/YesNoOption" },
"contract_start_date": { "$ref": "#/definitions/MaybeDate" },
"contract_end_date": { "$ref": "#/definitions/MaybeDate" },
"vendor_address_country": { "$ref": "#/definitions/nonEmptyString" }
},
"required": [
"vendor_id",
"third_party_vendor_name",
"fincrime_responsibility",
"service_provided",
"vendor_website",
"vendor_address",
"vendor_subject_to_audit",
"vendor_subject_to_fincrime_training",
"contract_start_date",
"contract_end_date",
"vendor_address_country"
],
"title": "VendorElement"
},
"ServiceProvided": {
"title": "ServiceProvided",
"type": "string",
"enum": [
"vendor_svc_infrastructure_outsrc",
"vendor_svc_compliance_outsrc",
"vendor_svc_other_banking_technology",
"vendor_svc_education_training",
"vendor_svc_financial_accounting_legal_risk",
"vendor_svc_hr_recruit_mngt",
"vendor_svc_marketing_customer_pr",
"vendor_svc_digitial_payment_solutions",
"vendor_svc_wealth_mngt",
"vendor_svc_insurance",
"vendor_svc_other"
]
},
"YesNoOption": {
"type": "string",
"enum": ["no", "yes"],
"title": "YesNoOption"
},
"date": {
"title": "date",
"type": "string",
"format": "date"
},
"MaybeDate": {
"title": "MaybeDate",
"oneOf": [{
"type": "string",
"format": "date"
}, {
"type": "string",
"format": "date-time"
}, {
"const": ""
}]
},
"nonEmptyString": {
"type": "string",
"minLength": 1
},
"emptyString": {
"const": ""
},
"NumberOrString": {
"title": "NumberOrString",
"oneOf": [
{
"type": "string",
"pattern": "\\d+"
},
{
"type": "number",
"multipleOf": 1,
"minimum": 0
}
]
}
}
}
version 1.1
@totalColumns 11
@separator ','
// @efi_version 0.9
vendor_id: notEmpty
third_party_vendor_name: notEmpty
fincrime_responsibility: any("yes", "no")
service_provided: any("vendor_svc_infrastructure_outsrc","vendor_svc_compliance_outsrc","vendor_svc_other_banking_technology","vendor_svc_education_training","vendor_svc_financial_accounting_legal_risk","vendor_svc_hr_recruit_mngt","vendor_svc_marketing_customer_pr","vendor_svc_digitial_payment_solutions","vendor_svc_wealth_mngt","vendor_svc_insurance","vendor_svc_other")
vendor_website: notEmpty
vendor_address: notEmpty
vendor_subject_to_audit: any("yes", "no")
vendor_subject_to_fincrime_training: any("yes", "no")
contract_start_date: xDate
contract_end_date: xDate or empty
vendor_address_country: notEmpty
File Name
The file regarding vendors relations data should have the prefix vendors
and the date for which it represents.
vendors_YYYYMM.csv
For example, a file with all the data from January 2019 should be:
vendors_201901.csv
Frequency
After the initial submission, submitted with the all vendor relations.
Sample Package
Download sample package here.
Attribute Details
Attribute name | Type, format and values | Description | Pseu. | Req. |
---|---|---|---|---|
vendor_id |
Number or string | Provide if you have a unique identifier for the vendor | No | Yes |
third_party_vendor_name |
String | The name of the vendor service provider | No | Yes |
fincrime_responsibility |
nullable Boolean "yes", "no" |
Indicate if this vendor has responsibility for financial crime investigation - a vendor providing screening lists is a contributor but does not have responsibility for conducting investigations | No | Yes |
service_provided |
String "vendor_svc_infrastructure_outsrc", "vendor_svc_compliance_outsrc", "vendor_svc_other_banking_technology", "vendor_svc_education_training", "vendor_svc_financial_accounting_legal_risk", "vendor_svc_hr_recruit_mngt", "vendor_svc_marketing_customer_pr", "vendor_svc_digitial_payment_solutions", "vendor_svc_wealth_mngt", "vendor_svc_insurance", "vendor_svc_other" |
Indicate if this vendor has responsibility for financial crime investigation - i.e, a vendor providing screening lists is a contributor but does not have responsibility for conducting investigations. Multiple services may be loaded from Dec 2020 with ";" as a separator | No | Yes |
vendor_website |
String | Provide the website URL address for the vendor | No | Yes |
vendor_address |
String | Provide the lo cal legal entity address of the vendor - if this is a multinational vendor, only the local address is required | No | Yes |
vendor_subject_to_audit |
nullable Boolean "yes", "no" |
Indicate whether this vendor is subject to your organisation's audit processes | No | Yes |
vendor_subject_to_fincrime_training |
nullable Boolean "yes", "no" |
Indicate whether this vendor is subject to Financial Crime training programs (online/refresher/onsite) in your organisation | No | Yes |
contract_start_date |
Date YYYY-MM-DD ISO 8601 format |
Provide the start date of the current(most recent if there are a series) contract in ISO 8601 format. If the day is not available, then it should be provided as YYYY-MM | No | Yes |
contract_end_date |
Date YYYY-MM-DD ISO 8601 format |
Provide the end date (or expected) of the current contract. If the contract is ongoing, leave Empty and this will be understood to be an ongoing contract. The date should be provided in ISO 8601 format, converted to UTC. If the day is not available, then it should be provided as YYYY-MM | No | Yes |
vendor_address_country |
String ISO Country code 3166-1 alpha-2 |
Provide the ISO 3166-1 country code for the address of the vendor | No | Yes |
Watchlist Management
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"$ref": "#/definitions/WatchListManagementElement"
},
"efiVersion": "0.9",
"definitions": {
"WatchListManagementElement": {
"type": "object",
"additionalProperties": false,
"properties": {
"internal_list_entry_id": { "$ref": "#/definitions/MaybeNumberOrString" },
"external_watchlist_provider": { "$ref": "#/definitions/YesNoOption" },
"external_list_fullname": { "type": "string" },
"internal_list_addition_datetime": { "$ref": "#/definitions/DateTime" },
"internal_list_addition_reason": { "$ref": "#/definitions/ListAdditionReason" },
"internal_list_dateofbirth_incorp": { "$ref": "#/definitions/MaybeDate" },
"internal_list_deletion_datetime": { "$ref": "#/definitions/DateTime" },
"internal_list_deletion_reason": { "$ref": "#/definitions/ListDeletionReason" },
"internal_list_entity_type": { "$ref": "#/definitions/ListEntityType" },
"internal_list_entry_country_location": { "$ref": "#/definitions/Country" },
"internal_list_entry_source": { "$ref": "#/definitions/ListEntrySource" },
"internal_list_fullname": { "type": "string" }
},
"required": [
"internal_list_entry_id",
"external_watchlist_provider",
"internal_list_addition_datetime",
"internal_list_addition_reason",
"internal_list_dateofbirth_incorp",
"internal_list_entity_type",
"internal_list_entry_country_location",
"internal_list_entry_source"
],
"title": "WatchListManagementElement"
},
"YesNoOption": {
"type": "string",
"enum": ["no", "yes"],
"title": "YesNoOption"
},
"DateTime": {
"title": "date",
"type": "string",
"format": "date-time"
},
"ListAdditionReason": {
"title": "ListAdditionReason",
"type": "string",
"enum": [
"cdd/edd_investigation",
"external_authority",
"internal_legal_decision",
"compliance_review",
"internal_audit",
"external_audit",
"other"
]
},
"ListDeletionReason": {
"title": "ListDeletionReason",
"type": "string",
"enum": [
"internal_legal_decision",
"internal_audit",
"list_expiration",
"regulatory_requirement",
"compliance_review",
"other"
]
},
"ListEntrySource": {
"title": "ListEntrySource",
"type": "string",
"enum": [
"compliance_review",
"internal_audit",
"external_audit",
"cdd/edd_investigation",
"regulator",
"authorities",
"other"
]
},
"MaybeDate": {
"title": "MaybeDate",
"oneOf": [{
"type": "string",
"format": "date"
}, {
"type": "string",
"format": "date-time"
}, {
"const": ""
}]
},
"ListEntityType": {
"type": "string",
"enum": ["individual", "entity"]
},
"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)$"
},
"NumberOrString": {
"title": "NumberOrString",
"oneOf": [
{
"type": "string",
"pattern": "\\d+"
},
{
"type": "number",
"multipleOf": 1,
"minimum": 0
}
]
},
"MaybeNumberOrString": {
"title": "NumberOrString",
"oneOf": [
{
"type": "string",
"pattern": "\\d+"
},
{
"type": "number",
"multipleOf": 1,
"minimum": 0
},
{
"const": ""
}
]
},
"nonEmptyString": {
"type": "string",
"minLength": 1
}
}
}
version 1.1
@totalColumns 12
@separator ','
// @efi_version 0.9
internal_list_entry_id: notEmpty
external_watchlist_provider: any("yes", "no")
external_list_fullname: notEmpty or empty
internal_list_addition_datetime: xDateTimeTz
internal_list_addition_reason: any("cdd/edd_investigation", "external_authority", "internal_legal_decision", "compliance_review", "internal_audit", "external_audit", "other")
internal_list_dateofbirth_incorp: xDate
internal_list_deletion_datetime: xDateTimeTz or empty
internal_list_deletion_reason: any("internal_legal_decision", "internal_audit", "list_expiration", "regulatory_requirement", "compliance_review", "other") or empty
internal_list_entity_type: any("individual", "entity")
internal_list_entry_country_location: 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_list_entry_source: any("compliance_review", "internal_audit", "external_audit", "cdd/edd_investigation", "regulator", "authorities", "other")
internal_list_fullname: notEmpty or empty
The Watchlist file holds information regarding the contents of your watchlists used for screening. It is built to accommodate both your external based watchlists as well as ones internal to your institution. This is to minimize the amount of files that need to be submitted.
When using external watchlists, please name the watchlist in the external_watchlist_provider
and external_list_fullname
rows. We are able to identify the entries on those watchlists ourselves.
For internal watchlists, please post every entity added to the watchlist to this file as well as its supporting information (date it was added, reason, etc). This way, the file can accommodate both your external watchlist providers as well as entries you have added internally.
File Name
The file regarding watchlist management data should have the prefix watchlist_management
and the date for which it represents.
watchlist_management_YYYYMM.csv
For example, a file with all the data from January 2019 should be:
watchlist_management_201901.csv
Frequency
Initially a full load and thereafter, the full load incorporating any changes for the prior month.
Sample Package
Download sample package here
Attribute Details
Attribute name | Type, format and values | Description | Pseu. | Req. |
---|---|---|---|---|
internal_list_entry_id |
Number | Provide the unique identifier for this entity on the internal watchlist | No | Yes |
external_watchlist_provider |
nullable Boolean "yes", "no" |
Indicate if the entry comes from an external list (i.e. OFAC, HMT) | No | Yes |
external_list_fullname |
String | If entry comes from an external list, please provide the full name of the list used (i.e. OFAC, HMT) | No | No |
internal_list_addition_datetime |
DateTime YYYY-MM-DDThh:mm:ssTZD |
Provide the date and time when the entry was added to the internal watchlist | No | Yes |
internal_list_addition_reason |
String "cdd/edd_investigation", "external_authority", "internal_legal_decision", "compliance_review", "internal_audit", "external_audit", "other" |
Provide a brief description of why this entry was added to the internal watchlist | No | Yes |
internal_list_dateofbirth_incorp |
Date YYYY-MM-DD ISO 8601 format |
Provide the date of birth (in ISO 8601 format) if the entry is an individual or the date of incorporation if the entry is a legal entity | No | Yes |
internal_list_deletion_datetime |
DateTime YYYY-MM-DDThh:mm:ssTZD |
Provide the date time when the entry was deleted from the internal watchlist | No | No |
internal_list_deletion_reason |
String "internal_legal_decision", "internal_audit", "list_expiration", "regulatory_requirement", "compliance_review", "other" |
Provide a brief description of why this entry was deleted from the internal watchlist | No | No |
internal_list_entity_type |
String "individual", "entity" |
Declare the type of entity which is on the internal watchlist - is it an individual or legal entity (of any sort) | No | Yes |
internal_list_entry_country_location |
String ISO Country code 3166-1 alpha-2 |
Provide the ISO 3166-1 alpha-2 Country Code(s) of the country/countries the entity is located in. Multiple entries separated with ; | No | Yes |
internal_list_entry_source |
String "compliance_review", "internal_audit", "external_audit", "cdd/edd_investigation", "regulator", "authorities", "other" |
Provide the source that led to this list entry | No | Yes |
internal_list_fullname |
String | Provide the full name of the individual or entity placed onto the list. e.g: Maria Smith | No | No |
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
Product Usage
Categorised financial product(s) offered by the institution.
"ProductUsage": {
"type": "string",
"enum": [
"retail_txn_account",
"retail_current_account",
"retail_savings_account",
"retail_debit_cards",
"retail_atm_cards",
"retail_credit_cards",
"retail_travelers_cheques",
"retail_mortgage",
"retail_homeequity_loans",
"retail_personal_loans",
"retail_term_deposit",
"retail_cryptocurrencies",
"retail_sweep_accounts",
"retail_money_market_accounts",
"retail_brokerage_accounts",
"retail_retirement_savings",
"retail_prepaid_cards",
"retail_other",
"privatebank_txn_account",
"privatebank_current_account",
"privatebank_savings_account",
"privatebank_debit_cards",
"privatebank_atm_cards",
"privatebank_credit_cards",
"privatebank_travelers_cheque",
"privatebank_mortgage",
"privatebank_homeequity_loans",
"privatebank_personal_loans",
"privatebank_term_deposit",
"privatebank_cryptocurrencies",
"privatebank_money_market_accounts",
"privatebank_retirement_savings",
"privatebank_trust_services",
"privatebank_prepaid_cards",
"privatebank_brokerage_accounts",
"privatebank_other",
"transactional_cb_nostro",
"transactional_cb_vostro",
"transactional_cb_loro",
"transactional_lettersofcredit",
"transactional_invoice_financing",
"transactional_asset_financing",
"transactional_lockbox",
"transactional_remote_deposit_capture",
"transactional_cashmanagement",
"transactional_cashremittances",
"transactional_currencydelivery",
"transactional_other",
"commercial_current_account",
"commercial_cryptocurrencies",
"commercial_deposit_account",
"commercial_overdraft_loans",
"commercial_cash_management",
"commercial_treasury_management",
"commercial_private_equity_financing",
"commercial_other",
"commercial_bank_drafts",
"investment_equity_capital",
"investment_debt_capital",
"investment_mergers_acquisitions",
"investment_private_equity",
"investment_private_placements",
"investment_syndicated_finance",
"investment_leveraged_finance",
"investment_leasing",
"investment_restructuring",
"investment_omnibus_accounts",
"investment_trust_services",
"investment_other",
"investment_project_finance",
"islamic_hawala",
"islamic_mudharabah",
"islamic_musharakah",
"islamic_murabahah",
"islamic_iljarah",
"islamic_sukuk",
"islamic_wadiah",
"islamic_takaful",
"islamic_credit_cards",
"islamic_funds",
"islamic_microfinance",
"capital_markets",
"security_services_custody",
"broker_dealer"
],
"title": "ProductUsage"
}
Products ├── Retail Banking │ ├── transactional_accounts │ ├── current_accounts │ ├── savings_accounts │ ├── debit_cards │ ├── atm_cards │ ├── credit_cards │ ├── travelers_cheques │ ├── mortgages │ ├── home_equity_loans │ ├── personal_loans │ ├── term_deposits │ ├── cryptocurrencies │ ├── sweep_accounts │ ├── money_market_accounts │ ├── brokerage_accounts │ ├── retirement_savings │ ├── prepaid_cards │ └── retail_other ├── Private Banking │ ├── transactional_accounts │ ├── current_accounts │ ├── savings_accounts │ ├── debit_cards │ ├── atm_cards │ ├── credit_cards │ ├── travelers_cheques │ ├── mortgages │ ├── home_equity_loans │ ├── personal_loans │ ├── term_deposits │ ├── cryptocurrencies │ ├── money_market_accounts │ ├── retirement_savings │ ├── trust_services │ ├── prepaid_cards │ ├── brokerage_accounts │ └── other ├── Transactional Banking │ ├── nostro │ ├── vostro │ ├── loro │ ├── letters_of_credit │ ├── invoice_financing │ ├── asset_financing │ ├── lockbox │ ├── remote_deposit_capture │ ├── cash_management │ ├── cash_remittances │ ├── currency_delivery │ └── other ├── Commercial Banking │ ├── current_accounts │ ├── cryptocurrencies │ ├── deposit_accounts │ ├── overdraft_loan │ ├── cash_management │ ├── treasury_management │ ├── private_equity_financing │ ├── other │ └── bank_drafts ├── Investment │ ├── equity_capital │ ├── debt_capital │ ├── mergers_acquisitions │ ├── private_equity │ ├── private_placements │ ├── syndicated_finance │ ├── leveraged_finance │ ├── leasing │ ├── restructuring │ ├── omnibus_accounts │ ├── trust_services │ ├── other │ └── project_finance ├── Islamic Banking │ ├── hawala │ ├── mudharabah │ ├── musharakah │ ├── murabahah │ ├── ijarah │ ├── sukuk │ ├── wadiah │ ├── takaful │ ├── islamic_credit_cards │ ├── islamic_funds │ └── islamic_microfinance ├── Capital Markets ├── Security Services and Custody └── Broker Dealer
Source of Funds
Specify the origin of the particular funds or any other monetary instrument which are the subject of the transaction between a institution and the customer.
"SourceOfFunds": {
"title": "SourceOfFunds",
"anyOf": [
{
"type": "string",
"enum": [
"sof_employment_income",
"sof_statutory_income",
"sof_investment_income",
"sof_business_income",
"sof_realestate_income",
"sof_other"
]
}, {
"type": "string",
"minLength": 1
}
]
}
sof_employment_income sof_statutory_income sof_investment_income sof_business_income sof_realestate_income sof_other
Source of Wealth
Specify the origin of the customer’s entire body of wealth.
"SourceOfWealth": {
"title": "SourceOfWealth",
"anyOf": [
{
"type": "string",
"enum": [
"sow_inheritance_wealth",
"sow_employment_income",
"sow_investment_wealth",
"sow_realestate_wealth",
"sow_sale_of_business_wealth",
"sow_sale_of_asset_wealth",
"sow_business_wealth",
"sow_other"
]
}, {
"type": "string",
"minLength": 1
}
]
}
sow_inheritance_wealth sow_employment_income sow_investment_wealth sow_realestate_wealth sow_sale_of_business_wealth sow_sale_of_asset_wealth sow_business_wealth sow_other
System Risk Rating
Specify the risk rating that the institution assigned the entity.
"SystemRiskRating": {
"title": "SystemRiskRating",
"type": "string",
"enum": ["low", "medium", "high"]
}
ISIC Code
Please populate the isic_code with the id as specified at https://unstats.un.org/unsd/classifications/Econ/ISIC.cshtml
Field allows multiple values separated by ;
"InternationalStandardIndustrialClassificationCode": {
"title": "InternationalStandardIndustrialClassificationCode",
"description": "https://unstats.un.org/unsd/classifications/Econ/ISIC.cshtml",
"oneOf": [
{ "type": "string", "pattern": "\b([0-9]{1,4})\b;?" },
{ "type": "number", "minimum": 0, "maximum": 9999 }
]
}
Account closure reasons
Specify the reason by which the institution decided to close the customer account.
"AccountClosureReason": {
"title": "AccountClosureReason",
"type": "string",
"enum": [
"customer_decision",
"financial_crime_risk_event",
"credit_default",
"litigation",
"commercial_strategic_decision",
"product_contract_expiration",
"other"
]
}
customer_decision financial_crime_risk_event credit_default litigation commercial_strategic_decision product_contract_expiration other
Training Subject
Specify the financial crime topic that the training focused on.
"TrainingSubject": {
"title": "TrainingSubject"
"type": "string",
"enum": [
"anti_bribery_and_corruption",
"anti_money_laundering",
"anti_terrorist_financing",
"client_due_diligence",
"conduct_and_culture",
"cyber_security",
"external_compliance_certification",
"financial_crime_typologies_and_risk",
"fraud",
"internal_escalation_process",
"other_product_specific_fincrime_training",
"politically_exposed_persons",
"sanctions",
"source_of_wealth/funds",
"trade_based_money_laundering",
"transaction_monitoring/investigation_techniques",
"other_corporate_training"
]
}
anti_bribery_and_corruption anti_money_laundering anti_terrorist_financing client_due_diligence conduct_and_culture cyber_security external_compliance_certification financial_crime_typologies_and_risk fraud internal_escalation_process other_product_specific_fincrime_training politically_exposed_persons sanctions source_of_wealth/funds trade_based_money_laundering transaction_monitoring/investigation_techniques other_corporate_training
Service provided
Specify the service(s) that the vendor provides.
"ServiceProvided": {
"title": "ServiceProvided",
"type": "string",
"enum": [
"vendor_svc_infrastructure_outsrc",
"vendor_svc_compliance_outsrc",
"vendor_svc_other_banking_technology",
"vendor_svc_education_training",
"vendor_svc_financial_accounting_legal_risk",
"vendor_svc_hr_recruit_mngt",
"vendor_svc_marketing_customer_pr",
"vendor_svc_digitial_payment_solutions",
"vendor_svc_wealth_mngt",
"vendor_svc_insurance",
"vendor_svc_other"
]
},
vendor_svc_infrastructure_outsrc vendor_svc_compliance_outsrc vendor_svc_other_banking_technology vendor_svc_education_training vendor_svc_financial_accounting_legal_risk vendor_svc_hr_recruit_mngt vendor_svc_marketing_customer_pr vendor_svc_digitial_payment_solutions vendor_svc_wealth_mngt vendor_svc_insurance vendor_svc_other
Legal form
Please populate the legal form using the code specification provided at GLEIF
"LegalForm": {
"title": "LegalForm",
"description": "https://www.gleif.org/en/about-lei/code-lists/iso-20275-entity-legal-forms-code-list",
"type": "string",
"pattern": "^[A-Z0-9]{4}$"
}
Employee ID, Numeric values
The identification number of the employee.
"NumberOrString": {
"title": "NumberOrString",
"oneOf": [{
"type": "string",
"pattern": "\\d+"
}, {
"type": "number",
"multipleOf": 1,
"minimum": 0
}]
}
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