NAV

EFI Respondent Data Protocols

For Respondent 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 Banks 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

Version Date Change
0.1 01.11.2018 Initial private version
0.2 15.11.2018 Added anonymization 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

Timeline

Data from the previous calendar month needs to be made available by the 15 of the current month.

Formats

Reports are accepted in CSV, xlsx, json or Swift

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 data type is based on the number of tests conducted on the data contained in each.

There are two modes of assessment:

  • Portfolio assessment: if you wish to perform a portfolio assessment of your counterparties, you will need to provide a CBDDQ and a transaction file for each counterparty
  • Self assessment: if you wish to perform a self assessment, you should provide the complete set of files as listed below, in order of priority. These files can be provided in increments instead of an all-at-once approach. If you are providing in increments, they should also be delivered as per the priorty
Data Type Priority level
CBDDQ 1
Customer Data 1
Customer Associated Parties 1
SWIFT Data 1
Non-Swift Transactions 1
Employee Data 2
Employee Training & Conduct 2
Product Report 2
Sanctions Screening 2
Transaction Monitoring 2
Affiliates Report 2
Vendors 2

Institution Data

Wolfsberg CBDDQ

In 2017 the Wolfsberg Group published the updated Correspondent Banking Due Diligence Questionnaire (CBDDQ) 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.

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 refered in the Wolfsberg CBDDQ please do so using the same prefix.

Sample Package

Download sample package here

Customer Data

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/CustomerDatum"
  },
  "efiVersion": "0.9",
  "definitions": {
    "CustomerDatum": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "account_number":                   { "$ref": "#/definitions/NumberOrString" },
        "client_number":                    { "$ref": "#/definitions/nonEmptyString" },
        "full_name":                        { "$ref": "#/definitions/nonEmptyString" },
        "first_name":                       { "$ref": "#/definitions/nonEmptyString" },
        "middle_names_patronymic":          { "type": "string" },
        "last_name":                        { "$ref": "#/definitions/nonEmptyString" },
        "date_of_birth":                    { "$ref": "#/definitions/date" },
        "identification_document_present":  { "$ref": "#/definitions/YesNoOption" },
        "place_of_birth_city":              { "$ref": "#/definitions/nonEmptyString" },
        "place_of_birth_country":           { "$ref": "#/definitions/Country" },
        "country_citizenship":              { "$ref": "#/definitions/Country" },
        "address":                          { "$ref": "#/definitions/Address" },
        "address_country":                  { "$ref": "#/definitions/Country"},
        "address_postal_code":              { "$ref": "string"},
        "address_city":                     { "$ref": "string"},
        "legal_entity_identifier":          { "$ref": "#/definitions/nonEmptyString" },
        "legal_entity_type":                { "$ref": "#/definitions/LegalEntityType" },
        "isic_code":                        { "$ref": "#/definitions/InternationalStandardIndustrialClassificationCode" },
        "adverse_information_search":       { "$ref": "#/definitions/YesNoOption" },
        "adverse_information_search_date":  { "$ref": "#/definitions/MaybeDate" },
        "product_usage":                    { "$ref": "#/definitions/ProductUsage" },
        "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" },
        "cash_balance_amount":              { "$ref": "#/definitions/NumberOrString" },
        "cash_balance_currency":            { "$ref": "#/definitions/Currency" },
        "account_open_date":                { "$ref": "#/definitions/date" },
        "account_closed_date":              { "$ref": "#/definitions/MaybeDate" },
        "account_closed_reason":            { "$ref": "#/definitions/emptyString" },
        "initial_cdd_completion_date":      { "$ref": "#/definitions/date" },
        "last_cdd_review_date":             { "$ref": "#/definitions/date" },
        "system_risk_rating":               { "$ref": "#/definitions/SystemRiskRating" },
        "pep_status":                       { "$ref": "#/definitions/YesNoOption" },
        "associated_pep_status":            { "$ref": "#/definitions/YesNoOption" },
        "edd_triggered":                    { "$ref": "#/definitions/YesNoOption" },
        "relationship_manager_employee_id": { "$ref": "#/definitions/nonEmptyString" },
        "branch_id":                        { "$ref": "#/definitions/nonEmptyString" },
        "legal_form":                       { "$ref": "#/definitions/LegalForm" }
      },
      "required": [
        "account_closed_date",
        "account_closure_reason",
        "account_number",
        "account_open_date",
        "address_country",
        "address",
        "adverse_information_search_date",
        "adverse_information_search",
        "associated_pep_status",
        "branch_id",
        "cash_balance_amount",
        "cash_balance_currency",
        "client_number",
        "country_citizenship",
        "date_of_birth",
        "edd_triggered",
        "first_name",
        "full_name",
        "identification_document_present",
        "initial_cdd_completion_date",
        "last_cdd_review_date",
        "last_name",
        "legal_entity_identifier",
        "legal_entity_type",
        "middle_names_patronymic",
        "net_worth_amount",
        "net_worth_currency",
        "pep_status",
        "place_of_birth_city",
        "place_of_birth_country",
        "product_usage",
        "relationship_manager_employee_id",
        "isic_code",
        "source_of_funds",
        "source_of_wealth",
        "system_risk_rating",
        "legal_form"
      ],
      "title": "CustomerDatum",
      "allOf": [{
        "if": {
          "properties": {
            "adverse_information_search": { "const": "yes" }
          }
        },
        "then": {
          "properties": {
            "adverse_information_search_date": { "$ref": "#/definitions/date" }
          }
        }
      }, {
        "if": {
          "properties": {
            "account_closed_date": { "$ref": "#/definitions/nonEmptyString" }
          }
        },
        "then": {
          "properties": {
            "account_closed_reason": { "$ref": "#/definitions/AccountClosureReason" }
          }
        }
      }]
    },
    "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_extrasmall",
        "corporate_small",
        "corporate_medium",
        "corporate_large",
        "corporate_extralarge",
        "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"
      ]
    },
    "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_sweep_accoounts",
        "retail_money_market_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_money_market_accounts",
        "privatebank_retirement_savings",
        "privatebank_prepaid_cards",
        "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_other",
        "commercial_deposit_accounts",
        "commercial_overdraft_loans",
        "commercial_cash_management",
        "commercial_treasury_management",
        "commercial_private_equity_financing",
        "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_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"
      ],
      "title": "ProductUsage"
    },
    "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_investment_wealth",
            "sow_realestate_wealth",
            "sow_sale_of_business_wealth",
            "sow_sale_of_asset_wealth",
            "sow_business_wealth"
          ]
        },
        {
          "type": "string",
          "minLength": 1
        }
      ]
    },
    "SystemRiskRating": {
      "title": "SystemRiskRating",
      "type": "string",
      "enum": ["none", "low", "medium", "high"],
      "description": "If you do not rate your customers values should be: 'none', otherwise one of 'low', 'medium' or 'high'"
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [{
        "$ref": "#/definitions/nonEmptyString"
      }, {
        "type": "number"
      }]
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    },
    "MaybeDate": {
      "title": "MaybeDate",
      "oneOf": [{
        "$ref": "#/definitions/date"
      }, {
        "const": ""
      }]
    },
    "Address": {
      "type": "string",
      "minLength": 1,
      "faker": "address.streetAddress"
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "emptyString": {
      "const": ""
    },
    "WarnIfEmpty": {
      "type": "string",
      "title": "Warning if empty",
      "description": "Recommended to have"
    },
    "InternationalStandardIndustrialClassificationCode": {
      "title": "InternationalStandardIndustrialClassificationCode",
      "description": "https://unstats.un.org/unsd/classifications/Econ/ISIC.cshtml",
      "oneOf": [
        { "type": "string", "pattern": "[0-9A-Z]{1,4}" },
        { "type": "number", "minimum": 0, "maximum": 9999 }
      ]
    },
    "AccountClosureReason": {
      "title": "AccountClosureReason",
      "type": "string",
      "enum": [
        "customer_decision",
        "financial_crime_risk_event",
        "credit_default",
        "litigation",
        "commercial_strategic_decision",
        "product_contract_expiration",
        "other"
      ]
    },
    "LegalForm": {
      "title": "LegalForm",
      "description": "https://www.gleif.org/en/about-lei/code-lists/iso-20275-entity-legal-forms-code-list",
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[A-Z0-9]{4}$"
        },
        {
          "type": "string",
          "const": ""
        }
      ]
    }
  }
}

version 1.1
@totalColumns 39
@separator ','
// @efi_version 0.9
// Internal customer Number
account_number: notEmpty
client_number: notEmpty
full_name: notEmpty
first_name: notEmpty
middle_names_patronymic: notEmpty or empty
last_name: notEmpty
//            ISO 8601
date_of_birth: xDate
identification_document_present: any("yes", "no")
place_of_birth_city: notEmpty
//            ISO 3166-1 alpha-2
place_of_birth_country: regex("^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$")
country_citizenship: regex("^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$")
address: notEmpty
//            ISO 3166-1 alpha-2
address_country: regex("^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$")
address_postal_code: notEmpty
address_city: notEmpty
//            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
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_extrasmall","corporate_small","corporate_medium","corporate_large","corporate_extralarge","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")
//            Standard Industrial Classification code
isic_code: regex("^[A-Z0-9]{1,4}$") @warning
adverse_information_search: any("yes","no")
//            ISO 8601
adverse_information_search_date:  if($adverse_information_search/is("yes"),xDate,empty or xDate)
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_accoounts","retail_money_market_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","privatbank_cryptocurrencies","privatebank_money_market_accounts","privatebank_retirement_savings","privatebank_prepaid_cards","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_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_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") or notEmpty
//            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_investment_wealth","sow_realestate_wealth","sow_sale_of_business_wealth","sow_sale_of_asset_wealth","sow_business_wealth") 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
//            Total amount of all accounts held by this Customer number,
//            If other accounts are in other currencies convert to the most common one.
//            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)$")
//            source of funds 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 "//
//            ISO 8601
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
initial_cdd_completion_date: xDate
//            ISO 8601
last_cdd_review_date: xDate
//            if you do not rate your customers values should be: none
//            if you rate your customers, value should be: one of "low", "medium" or "high"
system_risk_rating: any("none","low", "medium", "high")
pep_status: any("yes","no")
associated_pep_status: any("yes","no")
edd_triggered: any("yes","no")
// internal employee ID
relationship_manager_employee_id: notEmpty
branch_id: notEmpty
// legal form code https://www.gleif.org/en/about-lei/code-lists/iso-20275-entity-legal-forms-code-list
legal_form: empty or regex("^[A-Z0-9]{4}$")

File Name

The file regarding customer data should have the prefix customer_data and the date for which it represents.

customer_data_YYYYMM.csv

For example, a file with all the data from January 2019 should be:

customer_data_201901.csv

Data Types

See more information about the data types:

Frequency

After initial submission, submitted monthly with all customer population.

Sample Package

Download sample package here

Customer Associated Parties

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/CustomerPartyElement"
  },
  "efiVersion": "0.9",
  "definitions": {
    "CustomerPartyElement": {
      "type": "object",
      "title": "CustomerPartyElement",
      "required": [
        "account_number",
        "beneficial_owner_name",
        "beneficial_owner_share_percentage",
        "date_of_birth",
        "director_name",
        "signatory_name"
      ],
      "properties": {
        "account_number":                      { "$ref": "#/definitions/nonEmptyString" },
        "date_of_birth":                       { "$ref": "#/definitions/date" }
      },
      "oneOf": [{
        "additionalProperties": false,
        "description": "Director and Signatory names are empty, Beneficial name is required",
        "properties": {
          "director_name":                     { "$ref": "#/definitions/emptyString" },
          "signatory_name":                    { "$ref": "#/definitions/emptyString" },
          "beneficial_owner_name":             { "$ref": "#/definitions/nonEmptyString" },
          "beneficial_owner_share_percentage": { "$ref": "#/definitions/nonEmptyString" }
        }
      }, {
        "additionalProperties": false,
        "description": "Beneficial and Signatory names are empty, Director name is required",
        "properties": {
          "director_name":                     { "$ref": "#/definitions/nonEmptyString" },
          "signatory_name":                    { "$ref": "#/definitions/emptyString" },
          "beneficial_owner_name":             { "$ref": "#/definitions/emptyString" },
          "beneficial_owner_share_percentage": { "$ref": "#/definitions/emptyString" }
        }
      }, {
        "additionalProperties": false,
        "description": "Director and Benificial names are empty, Signatory name is required",
        "properties": {
          "director_name":                     { "$ref": "#/definitions/emptyString" },
          "signatory_name":                    { "$ref": "#/definitions/nonEmptyString" },
          "beneficial_owner_name":             { "$ref": "#/definitions/emptyString" },
          "beneficial_owner_share_percentage": { "$ref": "#/definitions/emptyString" }
        }
      }]
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "emptyString": {
      "const": ""
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    }
  }
}

version 1.1
@totalColumns 6
@separator ','
// @efi_version 0.9
// Internal customer Number
account_number: notEmpty
beneficial_owner_name: if($director_name/empty and $signatory_name/empty,notEmpty,empty)
beneficial_owner_share_percentage: if($beneficial_owner_name/empty,empty,notEmpty)
director_name: if($signatory_name/empty and $beneficial_owner_name/empty,notEmpty,empty)
signatory_name: if($director_name/empty and $beneficial_owner_name/empty,notEmpty,empty)
date_of_birth: xDate

File Name

The file regarding customer data should have the prefix customer_associated_parties and the date for which it represents.

customer_associated_parties_YYYYMM.csv

For example, a file with all the data from January 2019 should be:

customer_associated_parties_201901.csv

Frequency

After initial submission, submitted monthly with all associated parties population.

Sample Package

Download sample package here

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_amount":                 { "$ref": "#/definitions/NumberOrString" },
        "transaction_currency":               { "$ref": "#/definitions/Currency" },
        "instrument_type":                    { "$ref": "#/definitions/InstrumentType" },
        "transaction_type":                   { "$ref": "#/definitions/TransactionType" },
        "transaction_direction":              { "$ref": "#/definitions/Direction" },
        "transaction_status":                 { "$ref": "#/definitions/TransactionStatus" },
        "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_branch_id":               { "type": "string" },
        "originator_account_number":          { "$ref": "#/definitions/nonEmptyString" },
        "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_bic":                    { "$ref": "#/definitions/nonEmptyString" },
        "beneficiary_branch_id":              { "type": "string" },
        "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_fi_name":                { "$ref": "#/definitions/NumberOrString" },
        "beneficiary_fi_country":             { "$ref": "#/definitions/NumberOrString" }
      },
      "required": [
        "beneficiary_account_number",
        "beneficiary_address",
        "beneficiary_branch_id",
        "beneficiary_country",
        "beneficiary_first_name",
        "beneficiary_full_name",
        "beneficiary_last_name",
        "beneficiary_middle_names_patronymic",
        "beneficiary_bic",
        "beneficiary_fi_name",
        "beneficiary_fi_country",
        "transaction_currency",
        "instrument_type",
        "originator_bic",
        "originator_account_number",
        "originator_address",
        "originator_branch_id",
        "originator_country",
        "originator_first_name",
        "originator_full_name",
        "originator_last_name",
        "originator_middle_names_patronymic",
        "originator_fi_name",
        "originator_fi_country",
        "transaction_message",
        "transaction_amount",
        "transaction_date",
        "transaction_id",
        "transaction_direction",
        "transaction_type",
        "transaction_status"
      ],
      "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",
      "oneOf": [{
        "type": "string",
        "enum": ["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"]
      }, {
        "const": ""
      }]
    },
    "TransactionType": {
      "title": "TransactionType",
      "oneOf": [{
        "type": "string",
        "enum": ["SWIFT/MT103", "TARGET2", "SEPA", "Other"]
      }, {
        "const": ""
      }]
    },
    "TransactionStatus": {
      "title": "TransactionStatus",
      "oneOf": [{
        "type": "string",
        "enum": ["accepted", "rejected"]
      }, {
        "const": ""
      }]
    },
    "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.2
@totalColumns 32
@separator ','
// @efi_version 0.9
transaction_date: xDateTime
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
transaction_type: any("SWIFT/MT103", "TARGET2", "SEPA", "Other")
transaction_direction: any("i", "o", "io")  or empty
transaction_status: any("accepted", "rejected") or empty
instrument_type: any("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
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
// incoming_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

Employee Data

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/EmployeeElement"
  },
  "efiVersion": "0.9",
  "definitions": {
    "EmployeeElement": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "employee_full_name":                       { "$ref": "#/definitions/nonEmptyString" },
        "employee_first_name":                      { "$ref": "#/definitions/nonEmptyString" },
        "employee_middle_names_patronymic":         { "$ref": "#/definitions/nonEmptyString" },
        "employee_last_name":                       { "$ref": "#/definitions/nonEmptyString" },
        "employee_id":                              { "$ref": "#/definitions/NumberOrString" },
        "employee_department":                      { "$ref": "#/definitions/nonEmptyString" },
        "employee_fincrime_primary_responsibility": { "$ref": "#/definitions/YesNoOption" },
        "employee_birthdate":                       { "$ref": "#/definitions/date" },
        "employee_email_address":                   { "$ref": "#/definitions/nonEmptyString" },
        "employee_title":                           { "type": "string" },
        "employee_manager_id":                      { "type": "string" },
        "employee_seniority":                       { "$ref": "#/definitions/EmployeeSeniority" },
        "joined_date":                              { "$ref": "#/definitions/date" },
        "exited_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" },
        "mlr_officer":                              { "$ref": "#/definitions/YesNoOption" },
        "abc_officer":                              { "$ref": "#/definitions/YesNoOption" },
        "board_member":                             { "$ref": "#/definitions/YesNoOption" },
        "entity_ubo":                               { "$ref": "#/definitions/YesNoOption" },
        "branch_id":                                { "$ref": "#/definitions/NumberOrString" },
        "employee_in_position_date":                { "$ref": "#/definitions/date" },
        "employee_mlro_external_certification":     { "$ref": "#/definitions/YesNoOption" },
        "employee_country_location":                { "$ref": "#/definitions/Country" },
        "employee_affiliate_id":                    { "type": "string" },
        "employee_affiliate_name":                  { "type": "string" }
      },
      "required": [
        "abc_officer",
        "board_member",
        "branch_id",
        "employee_birthdate",
        "employee_associated_pep",
        "employee_department",
        "employee_email_address",
        "employee_fincrime_primary_responsibility",
        "employee_first_name",
        "employee_full_name",
        "employee_id",
        "employee_last_name",
        "employee_manager_id",
        "employee_middle_names_patronymic",
        "employee_outside_business_interest",
        "employee_outside_business_organisation",
        "employee_seniority",
        "employee_title",
        "employee_affiliate_id",
        "employee_affiliate_name",
        "employee_country_location",
        "employee_mlro_external_certification",
        "employee_in_position_date",
        "entity_ubo",
        "exited_date",
        "joined_date",
        "mlr_officer",
        "pep_status"
      ],
      "title": "EmployeeElement"
    },
    "YesNoOption": {
      "type": "string",
      "enum": ["yes", "no"],
      "title": "YesNoOption"
    },
    "EmployeeSeniority": {
      "type": "string",
      "enum": [
        "analyst_officer",
        "assistant_vice_president",
        "associate_partner",
        "c_level_management",
        "department head",
        "director",
        "executive_director",
        "intern",
        "manager",
        "managing_director",
        "regional director",
        "senior_vice_president",
        "vice_president",
        "other"
      ],
      "title": "EmployeeSeniority"
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [{
        "$ref": "#/definitions/nonEmptyString"
      }, {
        "type": "number"
      }]
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    },
    "MaybeDate": {
      "title": "MaybeDate",
      "oneOf": [{
        "type": "string",
        "format": "date"
      }, {
        "const": ""
      }]
    },
    "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)$"
    }
  }
}

version 1.1
@totalColumns 23
@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
//              EFI standard
employee_seniority: any("analyst_officer","assistant_vice_president","associate_partner","c_level_management","department head","director","executive_director","intern","manager","managing_director","regional director","senior_vice_president","vice_president","other")
joined_date: xDate
exited_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
mlr_officer: any("yes", "no")
abc_officer: any("yes", "no")
board_member: any("yes", "no")
entity_ubo: any("yes", "no")
branch_id: notEmpty

employee_affiliate_id: notEmpty
employee_affiliate_name: notEmpty
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_in_position_date: xDate

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

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.

Employee Training & Conduct

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/EmployeeTrainingElement"
  },
  "efiVersion": "0.9",
  "definitions": {
    "EmployeeTrainingElement": {
      "title": "EmployeeTrainingElement",
      "type": "object",
      "required": [
        "abc_breach_amount",
        "abc_breach_currency",
        "abc_breach_date",
        "abc_breach_employee_id",
        "employee_id",
        "training_assessment",
        "training_date",
        "training_subject"
      ],
      "oneOf": [{
        "title": "Employee training",
        "additionalProperties": false,
        "properties": {
          "employee_id":            { "$ref": "#/definitions/NumberOrString" },
          "training_subject":       { "$ref": "#/definitions/TrainingSubject" },
          "training_assessment":    { "$ref": "#/definitions/TrainingAssessment" },
          "training_date":          { "$ref": "#/definitions/date" },
          "abc_breach_employee_id": { "$ref": "#/definitions/emptyString" },
          "abc_breach_amount":      { "$ref": "#/definitions/emptyString" },
          "abc_breach_currency":    { "$ref": "#/definitions/emptyString" },
          "abc_breach_date":        { "$ref": "#/definitions/emptyString" }
        }
      }, {
        "title": "Breach Employee",
        "additionalProperties": false,
        "properties": {
          "employee_id":            { "$ref": "#/definitions/emptyString" },
          "training_subject":       { "$ref": "#/definitions/emptyString" },
          "training_assessment":    { "$ref": "#/definitions/emptyString" },
          "training_date":          { "$ref": "#/definitions/emptyString" },
          "abc_breach_employee_id": { "$ref": "#/definitions/NumberOrString" },
          "abc_breach_amount":      { "$ref": "#/definitions/NumberOrString" },
          "abc_breach_currency":    { "$ref": "#/definitions/Currency" },
          "abc_breach_date":        { "$ref": "#/definitions/date" }
        }
      }]
    },
    "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"
    },
    "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"
      ],
      "title": "TrainingSubject"
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [{
        "$ref": "#/definitions/nonEmptyString"
      }, {
        "type": "number"
      }]
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "emptyString": {
      "const": ""
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    }
  }
}

version 1.1
@totalColumns 8
@separator ','
// @efi_version 0.9
employee_id: if($abc_breach_employee_id/empty, notEmpty, 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" ), empty)
training_assessment:  if($employee_id/notEmpty ,any("pass", "fail"), empty)
training_date: if($employee_id/notEmpty , xDate, empty)
abc_breach_employee_id: if($employee_id/empty, notEmpty, empty)
//            Amount rounded to the smallest currency unit
abc_breach_amount: if($abc_breach_employee_id/notEmpty, positiveInteger, empty)
//            ISO 4217
abc_breach_currency: if($abc_breach_employee_id/notEmpty, 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)$"), empty)
abc_breach_date: if($abc_breach_employee_id/notEmpty, xDate, empty)

File Name

The file regarding employee training data should have the prefix employee_training and the date for which it represents.

employee_training_YYYYMM.csv

For example, a file with all the data from January 2019 should be:

employee_training_201901.csv

Frequency

After initial submission, submitted monthly only with the previous month's trainings. If no new trainings occurred, submit the file only with the header.

Sample Package

Download sample package here

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": {
        "internal_product_name":                             { "$ref": "#/definitions/nonEmptyString" },
        "inherent_product_risk_level":                       { "$ref": "#/definitions/RiskLevels" },
        "product_mapped_to_elucidate_standard_product_list": { "$ref": "#/definitions/MappedProductName" },
        "percentage_of_bank_revenue":                        { "$ref": "#/definitions/NumberOrString" }
      },
      "required": [
        "inherent_product_risk_level",
        "internal_product_name",
        "percentage_of_bank_revenue",
        "product_mapped_to_elucidate_standard_product_list"
      ],
      "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_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",
        "privatbank_cryptocurrencies",
        "privatebank_money_market_accounts",
        "privatebank_retirement_savings",
        "privatebank_prepaid_cards",
        "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_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_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"
      }]
    }
  }
}

version 1.1
@totalColumns 4
@separator ','
// @efi_version 0.9
internal_product_name: notEmpty
inherent_product_risk_level: any("low", "medium", "high")
product_mapped_to_elucidate_standard_product_list: 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_sweep_accoounts","retail_money_market_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_money_market_accounts","privatebank_retirement_savings","privatebank_prepaid_cards","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_other","commercial_deposit_accounts","commercial_overdraft_loans","commercial_cash_management","commercial_treasury_management","commercial_private_equity_financing","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_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

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

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_currency",
        "alert_hit_name",
        "alert_hit_country",
        "alert_list_entry_addition_date",
        "alert_list_name"
      ],
      "properties": {
        "sanctions_screening_datetime":        { "$ref": "#/definitions/DateTime" },
        "alert_input_source":                  { "$ref": "#/definitions/AlertInputSource" },
        "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/DateTime" },
        "alert_escalation_to_level3_datetime": { "$ref": "#/definitions/DateTime" },
        "alert_entity_fullname":               { "$ref": "#/definitions/nonEmptyString" },
        "alert_entity_country":                { "$ref": "#/definitions/Country" },
        "alert_entity_date_of_birth_incorp":   { "$ref": "#/definitions/date" },
        "alert_entity_citizenship_country":    { "$ref": "#/definitions/Country" },
        "alert_transaction_amount":            { "$ref": "#/definitions/NumberOrString" },
        "alert_transaction_currency":          { "$ref": "#/definitions/Currency" },
        "alert_hit_name":                      { "$ref": "#/definitions/nonEmptyString" },
        "alert_hit_country":                   { "$ref": "#/definitions/Country" },
        "alert_list_entry_addition_date":      { "$ref": "#/definitions/DateTime" },
        "alert_list_name":                     { "$ref": "#/definitions/nonEmptyString" }
      }
    },
    "AlertInputSource": {
      "type": "string",
      "enum": ["kyc_data", "transaction_data"]
    },
    "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)$"
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [{
        "$ref": "#/definitions/nonEmptyString"
      }, {
        "type": "number"
      }]
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    },
    "DateTime": {
      "title": "date",
      "type": "string",
      "format": "date-time"
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    }
  }
}

version 1.2
@totalColumns 21
@separator ','
// @efi_version 0.9
sanctions_screening_datetime: xDateTimeTz
alert_input_source: any("kyc_data", "transaction_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
alert_escalation_to_level3_datetime: xDateTimeTz
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: xDateTimeTz
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_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

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

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_type",
        "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_escalation_to_level2_datetime",
        "alert_escalation_to_level3_datetime",
        "alert_escalation_to_level3_reviewer_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"
      ],
      "properties": {
        "alert_type":                              { "$ref": "#/definitions/AlertType" },
        "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/AlertEntityType" },
        "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/DateTime" },
        "alert_closure_reason":                    { "$ref": "#/definitions/AlertClosureReason" },
        "alert_closure_employee_id":               { "$ref": "#/definitions/NumberOrString" },
        "alert_escalation_to_level2_datetime":     { "$ref": "#/definitions/DateTime" },
        "alert_escalation_to_level3_datetime":     { "$ref": "#/definitions/DateTime" },
        "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/DateTime" },
        "alert_external_rfi_account_number":       { "$ref": "#/definitions/NumberOrString" },
        "alert_external_rfi_channel":              { "$ref": "#/definitions/AlertChannel" },
        "alert_external_rfi_response_datetime":    { "$ref": "#/definitions/DateTime" },
        "alert_external_rfi_response_channel":     { "$ref": "#/definitions/AlertChannel" },
        "alert_external_rfi_response_reviewer_id": { "$ref": "#/definitions/NumberOrString" },
        "alert_ctr_create_datetime":               { "$ref": "#/definitions/DateTime" },
        "alert_ctr_account_number":                { "$ref": "#/definitions/NumberOrString" },
        "alert_ctr_filing_datetime":               { "$ref": "#/definitions/DateTime" },
        "alert_ctr_reference_number":              { "$ref": "#/definitions/nonEmptyString" },
        "alert_ctr_filedwith":                     { "$ref": "#/definitions/nonEmptyString" },
        "alert_ctr_threshold_amount":              { "$ref": "#/definitions/NumberOrString" },
        "alert_ctr_currency_code":                 { "$ref": "#/definitions/Currency" }
      }
    },
    "AlertType": {
      "type": "string",
      "enum": ["automated", "manual", "external_rfi", "ctr", "other"]
    },
    "AlertScenario": {
      "type": "string",
      "enum": ["monitoring_rule", "list_screening", "manual_suspect_behavior", "other"]
    },
    "AlertListEntryType": {
      "type": "string",
      "enum": ["internal_watchlist", "external_watchlist"]
    },
    "AlertEntryType": {
      "type": "string",
      "enum": ["individual", "entity"]
    },
    "AlertClosureReason": {
      "type": "string",
      "enum": ["true_positive", "false_positive", "other"]
    },
    "AlertChannel": {
      "type": "string",
      "enum": ["swift", "email", "post", "other"]
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [{
        "$ref": "#/definitions/nonEmptyString"
      }, {
        "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"
    }
  }
}

version 1.2
@totalColumns 34
@separator ','
// @efi_version 0.9
alert_type: any("automated", "manual", "external_rfi", "ctr", "other")
alert_id: notEmpty
alert_scenario: any("monitoring_rule", "list_screening", "manual_suspect_behavior", "other")
alert_scenario_rule_id: notEmpty
alert_list_entry_type: any("internal_watchlist", "external_watchlist")
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")
alert_closure_employee_id: notEmpty
alert_escalation_to_level2_datetime: xDateTimeTz
alert_escalation_to_level3_datetime: xDateTimeTz
alert_escalation_to_level3_reviewer_id: notEmpty
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
alert_external_rfi_account_number: notEmpty
alert_external_rfi_channel: any("swift", "email", "post", "other")
alert_external_rfi_response_datetime: xDateTimeTz
alert_external_rfi_response_channel: any("swift", "email", "post", "other")
alert_external_rfi_response_reviewer_id: notEmpty
alert_ctr_create_datetime: xDateTimeTz
alert_ctr_account_number: notEmpty
alert_ctr_filing_datetime: xDateTimeTz
alert_ctr_reference_number: notEmpty
alert_ctr_filedwith: notEmpty
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)$")

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

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.5",
  "definitions": {
    "AffiliateElement": {
      "title": "AffiliateElement",
      "type": "object",
      "required": [
        "affiliate_type",
        "branch_address",
        "branch_country",
        "branch_id",
        "branch_internal_risk_level",
        "branch_name",
        "rep_office_address",
        "rep_office_country",
        "rep_office_internal_risk_level",
        "rep_office_name",
        "subsidiary_address",
        "subsidiary_bic",
        "subsidiary_country",
        "subsidiary_internal_risk_level",
        "subsidiary_name",
        "affiliate_isic_code",
        "affiliate_id"
      ],
      "oneOf": [{
        "additionalProperties": false,
        "properties": {
          "affiliate_type":                 { "const": "branch", "description": "Branch" },

          "branch_name":                    { "$ref": "#/definitions/nonEmptyString" },
          "branch_address":                 { "$ref": "#/definitions/nonEmptyString" },
          "branch_country":                 { "$ref": "#/definitions/Country" },
          "branch_id":                      { "$ref": "#/definitions/NumberOrString" },
          "branch_internal_risk_level":     { "$ref": "#/definitions/RiskLevel" },

          "subsidiary_name":                { "$ref": "#/definitions/emptyString" },
          "subsidiary_bic":                 { "$ref": "#/definitions/emptyString" },
          "subsidiary_address":             { "$ref": "#/definitions/emptyString" },
          "subsidiary_country":             { "$ref": "#/definitions/emptyString" },
          "subsidiary_internal_risk_level": { "$ref": "#/definitions/emptyString" },

          "rep_office_name":                { "$ref": "#/definitions/emptyString" },
          "rep_office_address":             { "$ref": "#/definitions/emptyString" },
          "rep_office_country":             { "$ref": "#/definitions/emptyString" },
          "rep_office_internal_risk_level": { "$ref": "#/definitions/emptyString" },

          "affiliate_isic_code":            { "$ref": "#/definitions/InternationalStandardIndustrialClassificationCode"},
          "affiliate_id":                   { "$ref": "#/definitions/nonEmptyString" }
        }
      }, {
        "additionalProperties": false,
        "properties": {
          "affiliate_type":                 { "const": "subsidiary", "description": "Subsidiary" },

          "branch_name":                    { "$ref": "#/definitions/emptyString" },
          "branch_address":                 { "$ref": "#/definitions/emptyString" },
          "branch_country":                 { "$ref": "#/definitions/emptyString" },
          "branch_id":                      { "$ref": "#/definitions/emptyString" },
          "branch_internal_risk_level":     { "$ref": "#/definitions/emptyString" },

          "subsidiary_name":                { "$ref": "#/definitions/nonEmptyString" },
          "subsidiary_bic":                 { "$ref": "#/definitions/BIC" },
          "subsidiary_address":             { "$ref": "#/definitions/nonEmptyString" },
          "subsidiary_country":             { "$ref": "#/definitions/Country" },
          "subsidiary_internal_risk_level": { "$ref": "#/definitions/RiskLevel" },

          "rep_office_name":                { "$ref": "#/definitions/emptyString" },
          "rep_office_address":             { "$ref": "#/definitions/emptyString" },
          "rep_office_country":             { "$ref": "#/definitions/emptyString" },
          "rep_office_internal_risk_level": { "$ref": "#/definitions/emptyString" }
        }
      }, {
        "additionalProperties": false,
        "properties": {
          "affiliate_type":                 { "const": "rep", "description": "Representative offices" },

          "branch_name":                    { "$ref": "#/definitions/emptyString" },
          "branch_address":                 { "$ref": "#/definitions/emptyString" },
          "branch_country":                 { "$ref": "#/definitions/emptyString" },
          "branch_id":                      { "$ref": "#/definitions/emptyString" },
          "branch_internal_risk_level":     { "$ref": "#/definitions/emptyString" },

          "subsidiary_name":                { "$ref": "#/definitions/emptyString" },
          "subsidiary_bic":                 { "$ref": "#/definitions/emptyString" },
          "subsidiary_address":             { "$ref": "#/definitions/emptyString" },
          "subsidiary_country":             { "$ref": "#/definitions/emptyString" },
          "subsidiary_internal_risk_level": { "$ref": "#/definitions/emptyString" },

          "rep_office_name":                { "$ref": "#/definitions/nonEmptyString" },
          "rep_office_address":             { "$ref": "#/definitions/nonEmptyString" },
          "rep_office_country":             { "$ref": "#/definitions/Country" },
          "rep_office_internal_risk_level": { "$ref": "#/definitions/RiskLevel" }
        }
      }]
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "emptyString": {
      "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)$"
    },
    "RiskLevel": {
      "title": "RiskLevel",
      "type": "string",
      "enum": ["none", "low", "medium", "high"]
    },
    "SubsidiaryInternalRiskLevel": {
      "type": "string",
      "enum": ["", "low", "medium"],
      "title": "SubsidiaryInternalRiskLevel"
    },
    "BIC": {
      "type": "string",
      "pattern": "([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)?"
    },
    "InternationalStandardIndustrialClassificationCode": {
      "title": "InternationalStandardIndustrialClassificationCode",
      "description": "https://unstats.un.org/unsd/classifications/Econ/ISIC.cshtml",
      "oneOf": [
        {
          "type": "string",
          "pattern": "[0-9A-Z]{1,4}"
        },
        {
          "type": "number",
          "minimum": 0,
          "maximum": 9999
        }
      ]
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [{
        "$ref": "#/definitions/nonEmptyString"
      }, {
        "type": "number"
      }]
    }
  }
}

version 1.1
@totalColumns 15
@separator ','
// @efi_version 0.9
affiliate_type: any("branch", "subsidiary", "rep")
//
//        Branch
//
branch_name: if($affiliate_type/is("branch"),notEmpty, empty)
branch_address: if($affiliate_type/is("branch"),notEmpty, empty)
//            ISO 3166-1 alpha-2
branch_country: if($affiliate_type/is("branch"),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)$"), empty)
//            if value is present it should be BIC code ISO 9362
branch_id: if($affiliate_type/is("branch"),notEmpty, empty)
branch_internal_risk_level: if($affiliate_type/is("branch"),any("none","low", "medium", "high"), empty)
//
//        Subsidiary
//
subsidiary_name: if($affiliate_type/is("subsidiary"),notEmpty, empty)
subsidiary_bic: if($affiliate_type/is("subsidiary"),regex("([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)"), empty)
subsidiary_address: if($affiliate_type/is("subsidiary"),notEmpty, empty)
subsidiary_country: if($affiliate_type/is("subsidiary"),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)$"), empty)
subsidiary_internal_risk_level: if($affiliate_type/is("subsidiary"),any("none","low", "medium", "high"), empty)
//
//        Representative offices
//
rep_office_name: if($affiliate_type/is("rep"),notEmpty, empty)
rep_office_address: if($affiliate_type/is("rep"),notEmpty, empty)
//            ISO 3166-1 alpha-2
rep_office_country: if($affiliate_type/is("rep"), 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)$") , empty)
rep_office_internal_risk_level:  if($affiliate_type/is("rep"),any("none","low", "medium", "high"), empty)

affiliate_isic_code: regex("^[A-Z0-0]{1,4}$")
affiliate_id: notEmpty

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

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": {
        "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/date" },
        "contract_end_date":                                    { "$ref": "#/definitions/MaybeDate" }
      },
      "required": [
        "contract_end_date",
        "contract_start_date",
        "fincrime_responsibility",
        "service_provided",
        "third_party_vendor_name",
        "vendor_address",
        "vendor_subject_to_audit",
        "vendor_subject_to_fincrime_training",
        "vendor_website"
      ],
      "title": "VendorElement"
    },
    "ServiceProvided": {
      "title": "ServiceProvided",
      "type": "string",
      "enum": [
        "card_acquiring_and_management",
        "consulting",
        "due_diligence_services",
        "hr_and_recruiting",
        "financial_intermediary",
        "legal_advisory_services",
        "notarial_services",
        "fund_service_providers",
        "technology_provider",
        "sub_contractor",
        "other_third_parties_with_critical_activities_payments_clearing_settlements_custody_etc"
      ]
    },
    "YesNoOption": {
      "type": "string",
      "enum": ["no", "yes"],
      "title": "YesNoOption"
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    },
    "MaybeDate": {
      "title": "MaybeDate",
      "oneOf": [{
        "$ref": "#/definitions/date"
      }, {
        "const": ""
      }]
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "emptyString": {
      "const": ""
    }
  }
}

version 1.1
@totalColumns 9
@separator ','
// @efi_version 0.9
third_party_vendor_name: notEmpty
fincrime_responsibility: any("yes", "no")
service_provided: any("card_acquiring_and_management","consulting","due_diligence_services","hr_and_recruiting","financial_intermediary","legal_advisory_services","notarial_services","fund_service_providers","technology_provider","sub_contractor","other_third_parties_with_critical_activities_payments_clearing_settlements_custody_etc")
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

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.

Common Types

BIC

"BIC": {
  "type": "string",
  "pattern": "([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)?"
}
"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_extrasmall",
    "corporate_small",
    "corporate_medium",
    "corporate_large",
    "corporate_extralarge",
    "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 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

"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_accoounts",
    "retail_money_market_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",
    "privatbank_cryptocurrencies",
    "privatebank_money_market_accounts",
    "privatebank_retirement_savings",
    "privatebank_prepaid_cards",
    "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_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_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"
  ],
  "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
│   ├── 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
│   ├── prepaid_cards
│   └── other
├── Transactional Banking
│   ├── nostro
│   ├── vostro
│   ├── loro
│   ├── letters_of_credit
│   ├── invoice_financing
│   ├── asset_financing
│   ├── lockbox
│   ├── remote_deposit_capture
│   ├── cash_management
│   ├── cash_remittances
│   └── transactional_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
│   ├── 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

"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

"SourceOfWealth": {
  "title": "SourceOfWealth",
  "anyOf": [
    {
      "type": "string",
      "enum": [
        "sow_inheritance_wealth",
        "sow_investment_wealth",
        "sow_realestate_wealth",
        "sow_sale_of_business_wealth",
        "sow_sale_of_asset_wealth",
        "sow_business_wealth"
      ]
    }, {
      "type": "string",
      "minLength": 1
    }
  ]
}
sow_inheritance_wealth
sow_investment_wealth
sow_realestate_wealth
sow_sale_of_business_wealth
sow_sale_of_asset_wealth
sow_business_wealth

System Risk Rating

"SystemRiskRating": {
  "title": "SystemRiskRating",
  "type": "string",
  "enum": ["none", "low", "medium", "high"],
  "description": "If you do not rate your customers values should be: 'none', otherwise one of 'low', 'medium' or 'high'"
}

ISIC Code

Please populate the isic_code with the id as specified at https://unstats.un.org/unsd/classifications/Econ/ISIC.cshtml

"InternationalStandardIndustrialClassificationCode": {
  "title": "InternationalStandardIndustrialClassificationCode",
  "description": "https://unstats.un.org/unsd/classifications/Econ/ISIC.cshtml",
  "oneOf": [
    { "type": "string", "pattern": "[0-9A-Z]{1,4}" },
    { "type": "number", "minimum": 0, "maximum": 9999 }
  ]
}

Account closure reasons

"AccountClosureReason": {
  "title": "AccountClosureReason",
  "type": "string",
  "enum": [
    "customer_decision",
    "financial_crime_risk_event",
    "credit_default",
    "litigation",
    "commercial_strategic_decision",
    "product_contract_expiration",
    "other"
  ]
}

Training Subject

"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"
  ]
}
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

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",
  "anyOf": [
    {
      "type": "string",
      "pattern": "^[A-Z0-9]{4}$"
    },
    {
      "type": "string",
      "const": ""
    }
  ]
}

Employee ID, Numeric values

"NumberOrString": {
  "title": "NumberOrString",
  "oneOf": [{
    "type": "string",
    "pattern": "\\d+"
  }, {
    "type": "number",
    "multipleOf": 1,
    "minimum": 0
  }]
}

Country

"Country": {
  "title": "Country",
  "description": "ISO 3166-1 alpha-2 country code",
  "type": "string",
  "pattern": "^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$"
}

Currency

"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 or empty string

"MaybeDate": {
  "title": "MaybeDate",
  "oneOf": [{
    "type": "string",
    "format": "ISO 8601",
    "example": "2020-02-18T12:43:46Z"
  }, {
    "const": ""
  }]
}

Date-time

"DateTime": {
  "title": "date",
  "type": "string",
  "format": "ISO 8601",
  "example": "2020-02-18T12:43:46Z"
}

Address

"Address": {
  "type": "string",
  "minLength": 1,
  "faker": "address.streetAddress"
}

Non empty string

"nonEmptyString": {
  "type": "string",
  "minLength": 1
}

Empty string

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

Anonymization

$ 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 anonymize data before submission to us, we request that you:

  1. Choose from the following available algorithms (listed in order of preference)
  2. Using the chosen algorithm, generate hashes for the following sample names:
    • ahmed, abubakar
    • поддръжници на исляма в кюрдистан
    • anwar nasser abdulla al-aulaqi
    • taha yassin ramadan al-jizrawi
    • عبد العالي ابو ذر
  3. Provide us with the hashes generated, indicate which attributes in the dataset have been hashed in this manner and the name of the chosen algorithm

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

Normalization

Before applying the desired algorithm, we request that you apply the following normalizations:

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

Security

You can use our platform https://efi.elucidate.co to securely upload files.

Alternatively we can provide you with a sFTP access at additional cost, please contact us to request it clients@elucidate.co

If you wish to encrypt the data on your side you can use our private 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