NAV

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})?)?"
}

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

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:

  1. Choose an pseudonymisation algorithm from those listed below, in order of preference
  2. 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
    • عبد العالي ابو ذر
  3. Generate the pseudonymisation_checksum_YYYYMM file. This file should contain the following headers: |created_month|input_value|pseudonymisation_algorithm|output|, where
    • created_month corresponds to the month of submission in the format YYYY-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
  4. 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.

Wikipedia article

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.

Wikipedia article

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.

Wikipedia article

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:

  1. lower case
  2. no consecutive whitespaces
  3. no pre or post whitespace"
  4. utf-8 encoding

Security

There are two methods of delivery:

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