NAV

EFI 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
0.10 11.09.2020 New fields and types added
0.11 29.10.2020 Attribute details tables for all files and new fields and types and added

Timeline

Data from the previous calendar month needs to be made available by the 10th 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 file type is based on the number of tests conducted on the data contained in each.

File name Priority Dependence If dependence indicated, name of file(s)
Wolfsberg CBDDQ 1
Customer Data 1
Customer Associated Parties 1 x Customer Data
Transactions 1
Employee Data 1 x Affiliates Report
Employee Training & Conduct 2 x Employee Data
Product Report 2
Sanctions Screening 2 x Customer Data, SWIFT Data, Non-SWIFT Transactions
Transaction Monitoring 2 x Customer Data, SWIFT Data, Non-SWIFT Transactions
Affiliates Report 2 x Employee Data
Vendors 2

In general, there are two modes of assessment:

  • Portfolio assessment - where your institution is assessing your counterparties
  • Self assessment - where you are performing an assessment of your institution

The following table provides details on which files should be provided, based on the mode of assessment and how the files should be loaded:

File name Load type Self assessment Portfolio assessment
Wolfsberg CBDDQ** A x x
Customer Data* A x x
Customer Associated Parties A x
Transactions* B x x
Employee Data A x
Employee Training & Conduct B x
Product Report B x
Sanctions Screening* B x x
Transaction Monitoring* B x x
Affiliates Report A x
Vendors A x

* These files should contain the relevant FI portfolio data

** A completed Wolfsberg CBDDQ should be provided initially (A) and a new fully completed version anytime there are changes

There are two types of file loading. The appropriate loading type is specified in the table below:

  • Load type A Initially a full load and thereafter, the full load incorporating any changes for the prior month
  • Load type B Initially 12 months worth of data and thereafter, only data for the immediate prior month. If no data is recorded for the prior month, then an empty file with the headers should be provided

Institution Data

Wolfsberg CBDDQ

In 2020 the Wolfsberg Group published the updated Correspondent Banking Due Diligence Questionnaire (CBDDQ v1.3) and related guidance material (Completion Guidance, Frequently Asked Questions (FAQs) and Glossary).

The CBDDQ aims to set an enhanced and reasonable standard for cross-border and/or other higher risk Correspondent Banking Due Diligence, reducing to a minimum any additional data requirements, as per the Wolfsberg definition and current FATF Guidance.

It is also the Group’s expectation that the Group members will begin to use the CBDDQ, in a phased approach, with all of their respondents. For more information about Wolfsberg CBDDQ go here.

Please note that CBDDQ versions 1.2 or 1.3 are acceptable for submission

File Name

Files regarding the Wolfsberg CBDDQ should have the prefix wolfsberg_cbddq and the date for which it represents.

wolfsberg_cbddq_YYYYMMDD.xlsx

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

wolfsberg_cbddq_20181231.xlsx

If you plan to attach more documents referred in the Wolfsberg CBDDQ please do so using the same prefix.

Sample Package

Download sample package here

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":              { "type": "string"},
        "address_city":                     { "type": "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":            { "type": "string" },
        "account_suspended":                { "$ref": "#/definitions/YesNoOption" },
        "account_suspended_date":           { "$ref": "#/definitions/MaybeDate" },
        "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_closed_reason",
        "account_suspended",
        "account_suspended_date",
        "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_cryptocurrencies",
        "retail_sweep_accoounts",
        "retail_money_market_accounts",
        "retail_brokerage_accounts",
        "retail_retirement_savings",
        "retail_prepaid_cards",
        "retail_other",
        "privatebank_txn_account",
        "privatebank_current_account",
        "privatebank_savings_account",
        "privatebank_debit_cards",
        "privatebank_atm_cards",
        "privatebank_credit_cards",
        "privatebank_travelers_cheque",
        "privatebank_mortgage",
        "privatebank_homeequity_loans",
        "privatebank_personal_loans",
        "privatebank_term_deposit",
        "privatebank_cryptocurrencies",
        "privatebank_money_market_accounts",
        "privatebank_retirement_savings",
        "privatebank_trust_services",
        "privatebank_prepaid_cards",
        "privatebank_brokerage_accounts",
        "privatebank_other",
        "transactional_cb_nostro",
        "transactional_cb_vostro",
        "transactional_cb_loro",
        "transactional_lettersofcredit",
        "transactional_invoice_financing",
        "transactional_asset_financing",
        "transactional_lockbox",
        "transactional_remote_deposit_capture",
        "transactional_cashmanagement",
        "transactional_cashremittances",
        "transactional_currencydelivery",
        "transactional_other",
        "commercial_current_account",
        "commercial_cryptocurrencies",
        "commercial_deposit_account",
        "commercial_overdraft_loans",
        "commercial_cash_management",
        "commercial_treasury_management",
        "commercial_private_equity_financing",
        "commercial_other",
        "commercial_bank_drafts",
        "investment_equity_capital",
        "investment_debt_capital",
        "investment_mergers_acquisitions",
        "investment_private_equity",
        "investment_private_placements",
        "investment_syndicated_finance",
        "investment_leveraged_finance",
        "investment_leasing",
        "investment_restructuring",
        "investment_omnibus_accounts",
        "investment_trust_services",
        "investment_other",
        "investment_project_finance",
        "islamic_hawala",
        "islamic_mudharabah",
        "islamic_musharakah",
        "islamic_murabahah",
        "islamic_iljarah",
        "islamic_sukuk",
        "islamic_wadiah",
        "islamic_takaful",
        "islamic_credit_cards",
        "islamic_funds",
        "islamic_microfinance",
        "capital_markets",
        "securityservices_custody",
        "broker_dealer"
      ],
      "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": ["low", "medium", "high"]
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [{
        "$ref": "#/definitions/nonEmptyString"
      }, {
        "type": "number"
      }]
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    },
    "MaybeDate": {
      "title": "MaybeDate",
      "oneOf": [{
        "type": "string",
        "format": "date"
      }, {
        "type": "string",
        "format": "date-time"
      }, {
        "const": ""
      }]
    },
    "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-9]{1,4})" },
        { "type": "number", "minimum": 0, "maximum": 9999 },
        { "const": "" }
      ]
    },
    "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",
      "type": "string",
      "pattern": "^[A-Z0-9]{4}$"
    }
  }
}

version 1.1
@totalColumns 41
@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 or empty
address_city: notEmpty or empty
//            Legal Entity Identifier (LEI)
//            if Individual without a LEI number, value should be : -1
//            if not Individual without a LEI number, values should be : 0
//            if LEI is present, value should be: ISO 17442
legal_entity_identifier: notEmpty
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("^[0-9]{1,4}$") or empty
adverse_information_search: any("yes","no")
//            ISO 8601
adverse_information_search_date:  if($adverse_information_search/is("yes"),xDate,empty or xDate)
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_brokerage_accounts","retail_retirement_savings","retail_prepaid_cards","retail_other","privatebank_txn_account","privatebank_current_account","privatebank_savings_account","privatebank_debit_cards","privatebank_atm_cards","privatebank_credit_cards","privatebank_travelers_cheque","privatebank_mortgage","privatebank_homeequity_loans","privatebank_personal_loans","privatebank_term_deposit","privatebank_cryptocurrencies","privatebank_money_market_accounts","privatebank_retirement_savings","privatebank_trust_services","privatebank_prepaid_cards","privatebank_brokerage_accounts","privatebank_other","transactional_cb_nostro","transactional_cb_vostro","transactional_cb_loro","transactional_lettersofcredit","transactional_invoice_financing","transactional_asset_financing","transactional_lockbox","transactional_remote_deposit_capture","transactional_cashmanagement","transactional_cashremittances","transactional_currencydelivery","transactional_other","commercial_current_account","commercial_cryptocurrencies","commercial_deposit_account","commercial_overdraft_loans","commercial_cash_management","commercial_treasury_management","commercial_private_equity_financing","commercial_other","commercial_bank_drafts","investment_equity_capital","investment_debt_capital","investment_mergers_acquisitions","investment_private_equity","investment_private_placements","investment_syndicated_finance","investment_leveraged_finance","investment_leasing","investment_restructuring","investment_omnibus_accounts","investment_trust_services","investment_other","investment_project_finance","islamic_hawala","islamic_mudharabah","islamic_musharakah","islamic_murabahah","islamic_iljarah","islamic_sukuk","islamic_wadiah","islamic_takaful","islamic_credit_cards","islamic_funds","islamic_microfinance","capital_markets","securityservices_custody","broker_dealer") 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
account_suspended: any("yes","no") or empty
account_suspended_date: xDateTimeTz or 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("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 or empty
branch_id: notEmpty or empty
// 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

Initially a full load and thereafter, the full load incorporating any changes for the prior month.

Sample Package

Download sample package here

Attribute Details

Attribute name Type, format and values Description Anon. Req.
account_number Number or string
This is the account number of the customer, which will be used together with the bank sort code/NSC to form the IBAN. This should consistently link with the transactions file originator/beneficiary account number, where a transaction is performed for an institution's customer Yes Yes
client_number String
This is usually an internal reference for the customer, which is specific to each institution. This should consistently link with the transactions file client id, where a transaction is performed for an institution's customer No Yes
full_name String
This should be the full name of the customer, as it appears on the account Yes Yes
first_name String
This applies to individuals only - it should be populated with the customer first name Yes Yes
middle_names_patronymic String
This applies to individuals only and may be culturally specific. If the names are not used, populate with not applicable Yes No
last_name String
This applies to individuals only - it should be populated with the customer last/family name Yes Yes
date_of_birth Date
YYYY-MM-DD
For individuals, provides the date of birth. For companies/legal entities, it should be the date of incorporation. Both should be in ISO 8601 format Yes Yes
identification_document_present nullable Boolean
"yes", "no"
Indicate whether an identification document is recorded for this customer. If this information is not gathered/available, then populate with nan No Yes
place_of_birth_city String
The city in which the customer was born. For legal entities, this would be the city of incorporation Yes Yes
place_of_birth_country String
ISO Country code 3166-1 alpha-2
The country in which the customer was born. For legal entities, this would be the country of incorporation No Yes
country_citizenship String
ISO Country code 3166-1 alpha-2
Customer's country of citizenship - applies to individuals only No Yes
address String
Customer's residential address, in the case of individuals. For companies/legal entities, this would be the operational address of the entity Yes Yes
address_postal_code String
Provide the postal code for the address, if available. If it is not available, populate with not applicable No No
address_city String
Provide the city name for the address Yes No
address_country String
ISO Country code 3166-1 alpha-2
The country associated with the residential/operational address of the customer No Yes
legal_entity_identifier String
ISO 17442 format [gleif]
Provide the LEI code for the legal entity, if an LEI is available. If no LEI is available, then blank - the legal entity type should be populated to indicate if it is an individual No Yes
legal_entity_type String
Legal type
Provide the legal entity type from the available allowed values on the legal type list No Yes
isic_code String
ISIC codes have the pattern regex("^[0-9]{1,4}$")
Provide the isic_code of the industry of the customer according to the UN ISIC code list. View the full list of ISIC and conversions. Multiple codes may be loaded from Dec 2020 which ";" as a separator No No
adverse_information_search String
Indicator whether this customer was screened against adverse media/negative news No Yes
adverse_information_search_date Date
YYYY-MM-DD
Provide the adverse media screening date, if conducted No No
product_usage String
Product Usage
Provide the set of products used by the customer, where these have been mapped to Elucidate's product usage list. Multiple codes may be loaded from Dec 2020 which ";" as a separator No Yes
net_worth_amount Int
Provide the net worth amount, rounded to the nearest unit No Yes
net_worth_currency String
ISO 4217 alpha-3 currency code
Provide the net worth currency in the required ISO 4217 format No Yes
source_of_wealth String
"sow_inheritance_wealth", "sow_investment_wealth", "sow_realestate_wealth", "sow_sale_of_business_wealth", "sow_sale_of_asset_wealth", "sow_business_wealth"
Provide the source of wealth, as gathered during KYC. Multiple codes may be loaded from Dec 2020 which ";" as a separator No No
source_of_funds String
"sof_employment_income", "sof_statutory_income", "sof_investment_income", "sof_business_income, "sof_realestate_income", "sof_other"
Provide the source of funds, as gathered during KYC. Multiple codes may be loaded from Dec 2020 which ";" as a separator No No
cash_balance_amount Int
Provide the approximate cash balance amount, rounded to the nearest unit, of the customer account No Yes
cash_balance_currency String
ISO 4217 alpha-3 currency code
Provide the cash balance currency in required ISO 4217 format No Yes
account_open_date Date
YYYY-MM-DD
Provide the opening date of the account No Yes
account_closed_date Date
YYYY-MM-DD
Provide the date of account closure. If the account remains open, leave blank No Yes
account_closed_reason String
"customer_decision", "financial_crime_risk_event", "credit_default", "litigation", "commercial_strategic_decision", "product_contract_expiration", "other"
Provide a mapped reason for account closure No No
account_suspended nullable Boolean
"yes", "no"
Indicate if the account has been suspened (no transactional activity allowed) but has not yet been closed. This attribute can be provided as part of data loads from Dec 2020 onwards No Yes
account_suspended_date DateTime
YYYY-MM-DDThh:mm:ssTZD
If the account has been suspended but not closed, please provide the timestamp of suspension. This attribute can be provided as part of data loads from Dec 2020 onwards No No
initial_cdd_completion_date Date
YYYY-MM-DD
Provide the date on which initial CDD was completed No Yes
last_cdd_review_date Date
YYYY-MM-DD
Provide the last CDD review date (periodic review) No Yes
system_risk_rating String
"low", "medium", "high"
Provide the risk rating assigned to this customer - map the internal values to these generic groupings. If there is no risk rating of customers, populate with none No Yes
pep_status nullable Boolean
"yes", "no"
Indicate whether the customer is a known pep. If this information is not gathered/available, then populate with nan No Yes
associated_pep_status nullable Boolean
"yes", "no"
Indicate whether the customer has association to a pep. This may also be known as an RCA (relative or close associate). If this information is not gathered/available, then populate with nan No Yes
edd_triggered nullable Boolean
"yes", "no"
Indicate whether EDD was triggered for this customer. If this information is not gathered/available, then populate with nan No Yes
relationship_manager_employee_id String
Provide the relationship manager employee id associated with this customer No No
branch_id String
Provide the branch ID associated with this customer No No
legal_form String
ISO 20275 entity legal forms code
Legal form
Provide the mapped legal form of this customer according to this list No No

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",
        "entity_type",
        "ultimate_beneficial_owner"
      ],
      "properties": {
        "account_number":                      { "$ref": "#/definitions/nonEmptyString" },
        "date_of_birth":                       { "$ref": "#/definitions/date" },
        "entity_type":                         { "$ref": "#/definitions/entityType" },
        "ultimate_beneficial_owner":           { "$ref": "#/definitions/nonEmptyString" }
      },
      "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" },
          "account_number":                    { "type": "string" },
          "date_of_birth":                     { "type": "string" },
          "entity_type":                       { "$ref": "#/definitions/entityType" },
          "ultimate_beneficial_owner":         { "$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" },
          "account_number":                    { "type": "string" },
          "date_of_birth":                     { "type": "string" },
          "entity_type":                       { "$ref": "#/definitions/entityType" },
          "ultimate_beneficial_owner":         { "$ref": "#/definitions/nonEmptyString" }
        }
      }, {
        "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" },
          "account_number":                    { "type": "string" },
          "date_of_birth":                     { "type": "string" },
          "entity_type":                       { "$ref": "#/definitions/entityType" },
          "ultimate_beneficial_owner":         { "$ref": "#/definitions/nonEmptyString" }
        }
      }]
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "emptyString": {
      "const": ""
    },
    "entityType": {
      "type": "string",
      "enum": ["entity", "individual"],
      "title": "entityType"
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    }
  }
}

version 1.1
@totalColumns 8
@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
entity_type: any("individual", "entity")
ultimate_beneficial_owner: notEmpty

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

Attribute Details

Attribute name Type, format and values Description Anon. Req.
account_number String
This account number must link to the Customer Data file account_number attribute Yes Yes
entity_type String
"individual", "entity"
Indicator whether the associated party is an individual or an entity (of any type) - see the Common types: Legal Form list for further information. No No
beneficial_owner_name String
Provide the name of the beneficial owner, which is defined as an individual or group of individuals (such as a trust) who have ownership of an asset (account), eventhough the asset is not held in their name Yes Yes
beneficial_owner_share_percentage Number or string
The percentage ownership which the beneficial owner holds over this account No Yes
director_name String
The name(s) of the director(s) of the account Yes No
signatory_name String
The name(s) of the signatory of the account, which may be one or multiple people and may be different to the account holder Yes No
date_of_birth Date
YYYY-MM-DD
Provide the date of birth of the associated party to the customer account in the format YYYY-MM-DD Yes Yes
associated_countries String
ISO Country code 3166-1 alpha-2
Provide the ISO 2 digit country code/codes of the associated party. This is a new attribute which can be loaded as part of this file from Dec 2020 onwards No Yes
ultimate_beneficial_owner String
Provide the name of the ultimate beneficial owner, which is defined as an individual who has ownership or control in excess of 25% of an account. This is a new attribute which can be loaded as part of this file from Dec 2020 onwards No Yes

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",
      "type": "string",
      "enum": ["cash","check","ach/lcy_transfers","wire","securities","e-money/mobile_money","travellers_cheques","prepaid_cards","certified_cheques","vouchers","cashier_cheques/money_order","precious_metal","crypto/virtual_assets","interest/dividend","other"]
    },
    "TransactionType": {
      "title": "TransactionType",
      "type": "string",
      "description": "Populate as follows: SWIFT messages: MTXXX where XXX is sourced from 'message type' field as per https://www2.swift.com/knowledgecentre/products/Standards%20MT\nISO format messages: According to xsd for the 'message id' e.g. pain.008.001.09 https://www.iso20022.org/iso-20022-message-definitions\nFedwire/ACH/CHIPs messages: 'Business function code' as per Fedwire (3600) proprietary message format specification\n For other transaction types, please contact us before submission"
    },
    "TransactionStatus": {
      "title": "TransactionStatus",
      "type": "string",
      "enum": ["accepted", "rejected"]
    },
    "Direction": {
      "title": "Direction",
      "type": "string",
      "enum": ["i","o","io"]
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [{
        "$ref": "#/definitions/nonEmptyString"
      }, {
        "type": "number"
      }]
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    },
    "date-time": {
      "title": "date-time",
      "type": "string",
      "format": "date-time"
    },
    "YesNoOption": {
      "title": "YesNoOption",
      "type": "string",
      "anyOf": [{
        "enum": ["yes", "no"]
      }, {
        "const": ""
      }]
    },
    "MaybeDate": {
      "title": "MaybeDate",
      "anyOf": [{
        "$ref": "#/definitions/date"
      }, {
        "$ref": "#/definitions/date-time"
      }, {
        "const": ""
      }]
    },
    "MaybeString": {
      "title": "MaybeString",
      "anyOf": [{
        "type": "string"
      }, {
        "const": ""
      }]
    },
    "BICList": {
      "oneOf": [{
        "type": "string",
        "pattern": "([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?;?)+"
      }, {
        "const": ""
      }]
    },
    "WarnIfEmpty": {
      "type": "string",
      "title": "Warning if empty",
      "description": "Recommended to have"
    }
  }
}

version 1.1
@totalColumns 33
@separator ','
// @efi_version 0.9
transaction_date: xDateTimeTz
transaction_id: notEmpty
transaction_message: notEmpty
// ISO 4217
transaction_currency: regex("^(AED|AFN|ALL|AMD|ANG|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BGN|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYR|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HRK|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LTL|LVL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRO|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLL|SOS|SRD|SSP|STD|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|USS|UYI|UYU|UZS|VEF|VND|VUV|WST|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XDR|XFU|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWL)$")
// Amount rounded to the smallest currency unit
transaction_amount: notEmpty
// Populate as follows:
// SWIFT messages: MTXXX where XXX is sourced from "message type" field as per https://www2.swift.com/knowledgecentre/products/Standards%20MT
// ISO format messages: According to xsd for the "message id" e.g. pain.008.001.09 https://www.iso20022.org/iso-20022-message-definitions
// Fedwire/ACH/CHIPs messages: "Business function code" as per Fedwire (3600) proprietary message format specification
// For other transaction types, please contact us before submission
transaction_type: notEmpty
transaction_direction: any("i", "o", "io")
transaction_status: any("accepted", "rejected")
instrument_type: any("cash","check","ach/lcy_transfers","wire","securities","e-money/mobile_money","travellers_cheques","prepaid_cards","certified_cheques","vouchers","cashier_cheques/money_order","precious_metal","crypto/virtual_assets","interest/dividend","other")
originator_full_name: notEmpty
originator_first_name: notEmpty or empty
originator_middle_names_patronymic: notEmpty or empty
originator_last_name: notEmpty or empty
originator_address: notEmpty
// ISO 3166-1 alpha-2
originator_country: regex("^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$")
// Internal customer account number
originator_account_number: notEmpty
originator_branch_id: if($beneficiary_branch_id/empty, notEmpty, empty or notEmpty)
originator_bic: notEmpty
originator_fi_name: notEmpty
originator_fi_country: notEmpty
// incoming_intermediary_fi_bic can be one or a list of BIC codes separated by `;` they should contain all intermediaries before the processor institution
incoming_intermediary_fi_bic: regex("/([a-z]{4}[a-z]{2}[a-z0-9]{2}([a-z0-9]{3})?;?)+/gmi") or empty
// 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

Attribute Details

Attribute name Type, format and values Description Anon. Req.
transaction_date DateTime
YYYY-MM-DDThh:mm:ssTZD
Provide the UTC time stamp of the transaction in the prescribed ISO 8601 format, converted to UTC No Yes
transaction_id String
A unique identifier for the transaction. This attribute can be provided as part of data loads in Dec 2020 No Yes
transaction_message String
If a transaction message was included, for example SWIFT field 70, then it should be included here No Yes
transaction_currency String
ISO 4217 alpha-3 currency code
The transaction currency inthe required ISO 4217 format No Yes
transaction_amount Int
The transaction amount rounded to the smallest currency unit No Yes
transaction_type String
Populate as follows:
- SWIFT messages: MTXXX where XXX is sourced from "message type" field as per Standards MT
- ISO messages: According to xsd for the message type e.g. pain.008.001.09 View ISO 20022 Message Definitions
- Fedwire/ACH/CHIPs messages: Business function code as per Fedwire (3600) proprietary message format specification
No Yes
transaction_direction String
"i", "o", "io"
Provide the direction of the transaction where i is incoming, o is outgoing and if both the inbound and outbound directions are integrated into the same transaction, then io No No
instrument_type String
"cash", "check", "ach/lcy_tranfers", "wire", "securities", "e-money/mobile_money", "travellers_cheques", "prepaid_cards", "certified_cheques", "vouchers", "cashier_cheques/money_order", "precious_metal", "crypto/virtual_assets", "interest/dividend", "other"
Provide the mapped instrument type for the transaction No No
originator_full_name String
Provide the originator full name Yes Yes
originator_first_name String
Provide the originator first name Yes No
originator_middle_names_patronymic String
Provide the originator middle and/or patronymic names, if available Yes No
originator_last_name String
Provide the originator last name Yes No
originator_address String
Provide the originator address as per the transaction Yes Yes
originator_country String
ISO Country code 3166-1 alpha-2
Provide the ISO 3166-1 alpha-2 country code No Yes
originator_account_number String
Provide the customer account number - extract from IBAN if the originator is a customer of another financial institution, else if the originator is a customer of the institution, this should link with the customer data file account number Yes Yes
originator_branch_id String
If available, provide the branch id of the originating transaction No No
originator_bic String
A BIC has the following pattern ([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)?
Provide the BIC of the originator's FI according to ISO 9362 No Yes
originator_fi_name String
Provide the name of the originator's FI No Yes
originator_fi_country String
ISO Country code 3166-1 alpha-2
Provide the ISO 3166-1 alpha-2 country code No Yes
incoming_intermediary_fi_bic String
A BIC has the following pattern ([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)?
Provide the intermediary's FI BIC according to ISO 9362 - Multiple BIC codes may be loaded from Dec 2020 which ";" as a separator No No
outgoing_intermediary_fi_bic String
A BIC has the following pattern ([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)?
Provide the intermediary's FI BIC according to ISO 9362 - Multiple BIC codes may be loaded from Dec 2020 which ";" as a separator No No
beneficiary_full_name String
Provide the beneficiary full name Yes Yes
beneficiary_first_name String
Provide the beneficiary first name Yes No
beneficiary_middle_names_patronymic String
Provide the middle and/or patronymic names of the beneficiary, if available Yes No
beneficiary_last_name String
Provide the last name of the beneficiary Yes No
beneficiary_address String
Provide the address of the beneficiary as per the transaction Yes Yes
beneficiary_country String
ISO Country code 3166-1 alpha-2
Provide the ISO 3166-1 alpha-2 country code No Yes
beneficiary_account_number String
Provide the account number of the beneficiary - extract from IBAN if the beneficiary is a customer of another financial institution, else if the beneficiary is a customer of the institution, this should link with the customer data file account number Yes Yes
beneficiary_branch_id String
Provide the benficiary branch id of the transaction No No
beneficiary_bic String
A BIC has the following pattern ([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)?
Provide the BIC of the beneficiary according to ISO 9362 No Yes
beneficiary_fi_name String
Provide the name of the beneficiary financial institution No Yes
beneficiary_fi_country String
ISO Country code 3166-1 alpha-2
Proivde the ISO 3166-1 alpha-2 country code No Yes
transaction_status String
"accepted", "rejected"
Provide the status of the transaction. According to ISO 20022, the available transaction status is either accepted or rejected. If this attribute is not populated, then it will be assumed that all transactions are accepted No Yes

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

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

File Name

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

employee_data_YYYYMM.csv

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

employee_data_201901.csv

Frequency

After initial submission, submitted monthly with all the employee's population.

Sample Package

Download sample package here

Attribute Details

Attribute name Type, format and values Description Anon. Req.
employee_full_name String
Provide the employee's full name Yes Yes
employee_first_name String
Provide the first name of the employee Yes Yes
employee_middle_names_patronymic String
Provide any middle names or patronymic names, if used Yes No
employee_last_name String
Provide the employee's last name/family name Yes Yes
employee_id Number or string
The employee id No Yes
employee_department String
The department assigned to the employee No Yes
employee_fincrime_primary_responsibility nullable Boolean
"yes", "no"
Indicate whether the employee has FinCrime responsibility. If this information is not gathered/available, then populate with nan No Yes
employee_birthdate Date
YYYY-MM-DD
The employee's date of birth Yes Yes
employee_email_address String
The email address of the employee Yes Yes
employee_title String
The employee's official job title No Yes
contract_consultant nullable Boolean
"yes", "no"
Indicate whether the employee is a contractor or a consultant. No Yes
employee_in_position_date Date
YYYY-MM-DD
Provide the date at which the employee started in their current position - this may not be the same as the date on which they joined the organisation No Yes
employee_manager_id Number or string
The employee id of the employee's manager No Yes
employee_seniority String
"intern", "analyst_officer", "manager", "associate_partner", "director", "department head", "regional director", "vice_president", "senior_vice_president", "assistant_vice_president", "director", "executive_director", "managing_director", "c_level_management", "other"
Provide the seniority level of the employee from the available values No Yes
joined_date Date
YYYY-MM-DD
The date the employee joined in the format YYYY-MM-DD No Yes
exited_date Date
YYYY-MM-DD
The date of departure of the employee, if applicable No No
pep_status nullable Boolean
"yes", "no"
Indicate whether the employee is a confirmed PEP. If this information is not gathered/available, then populate with nan No Yes
employee_associated_pep nullable Boolean
"yes", "no"
Indicate whether the employee is a confirmed RCA. If this information is not gathered/available, then populate with nan No Yes
employee_outside_business_interest nullable Boolean
"yes", "no"
Indicate if the employee is involved in other business interests. If this information is not gathered/available, then populate with nan No Yes
employee_outside_business_organisation String
If the employee is involved in other business interests, provide the name(s) of those organisation(s). Multiple names may be loaded from Dec 2020 which ";" as a separator No No
mlro_officer nullable Boolean
"yes", "no"
Indicate if the employee is an MLRO. If this information is not gathered/available, then populate with nan No Yes
employee_mlro_external_certification nullable Boolean
"yes", "no"
Indicate if the MLRO officer has been externally certified. If this information is not gathered/available, then populate with nan No Yes
abc_officer nullable Boolean
"yes", "no"
Indicate if the employee is an Anti-Bribery and Corruption officer. If this information is not gathered/available, then populate with nan No Yes
board_member nullable Boolean
"yes", "no"
Indicate if the employee is a board member. If this information is not gathered/available, then populate with nan No Yes
entity_ubo nullable Boolean
"yes", "no"
Indicate if the employee is an Ultimate Beneficial Owner of the financial institution. If this information is not gathered/available, then populate with nan No Yes
employee_country_location String
ISO Country code 3166-1 alpha-2
Provide the ISO country code of the employee's location No Yes
employee_affiliate_id String
Provide the affiliate identifier in which the employee is employed. This should link to the Affiliate report/affiliate_id, where an affiliate report has been provided. If an affiliate report is not provided, use the employee_affiliate_name No No
employee_affiliate_name String
Provide the name of the affiliate in which the employee is employed No No
branch_id String
Provide the branch id associated with the employee, if applicable No Yes

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

Attribute Details

Attribute name Type, format and values Description Anon. Req.
employee_id Number or string
Provide the employee id - this should link to the employee id in the Employee data file No No
training_subject String
"anti_bribery_and_corruption", "anti_money_laundering", "anti_terrorist_financing", "client_due_diligence", "conduct_and_culture", "cyber_security", "external_compliance_certification", "financial_crime_typologies_and_risk", "fraud", "internal_escalation_process", "other_product_specific_fincrime_training", "politically_exposed_persons", "sanctions", "source_of_wealth/funds", "trade_based_money_laundering", "transaction_monitoring/investigation_techniques", "other_corporate_training"
Provide the training course name undertaken by the employee. If the exact name is not available, please choose the nearest equivalent. Please note that multiple selections for a single employee are not permitted - in cases where an employee has completed multiple, it should be provided in separate entries. Multiple codes may be loaded from Dec 2020 which ";" as a separator No No
training_assessment String
"pass", "fail"
Populate with the outcome status of the course No No
training_date Date
YYYY-MM-DD
Provide the training date in ISO 8601 format. If the day is not available, then it should be provided as YYYY-MM No No
abc_breach_employee_id Number or string
This should be populated with the employee id where an abc_breach was registered against an employee. If no employee has a registered ABC breach, leave all abc_breach fields blank No No
abc_breach_amount Int
If an ABC breach was registered against this employee (and abc_breach_employee_id is populated), then this should be the breach amount rounded to the smallest currency unit No No
abc_breach_currency String
ISO 4217 alpha-3 currency code
Provide the ISO 4217 currency code of the breach amount No Yes
abc_breach_date Date
YYYY-MM-DD
Provide the date of the breach in ISO 8601 format. If the day is not available, then it should be provided as YYYY-MM No No

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" },
        "mapped_product": { "$ref": "#/definitions/MappedProductName" },
        "percentage_of_bank_revenue":                        { "$ref": "#/definitions/NumberOrString" },
        "product_id":                                        { "$ref": "#/definitions/nonEmptyString" }
      },
      "required": [
        "inherent_product_risk_level",
        "internal_product_name",
        "percentage_of_bank_revenue",
        "mapped_product",
        "product_id"
      ],
      "title": "ProductReportElement"
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "RiskLevels": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high"
      ]
    },
    "MappedProductName": {
      "type": "string",
      "enum": [
        "retail_txn_account",
        "retail_current_account",
        "retail_savings_account",
        "retail_debit_cards",
        "retail_atm_cards",
        "retail_credit_cards",
        "retail_travelers_cheques",
        "retail_mortgage",
        "retail_homeequity_loans",
        "retail_personal_loans",
        "retail_term_deposit",
        "retail_cryptocurrencies",
        "retail_sweep_accoounts",
        "retail_money_market_accounts",
        "retail_brokerage_accounts",
        "retail_retirement_savings",
        "retail_prepaid_cards",
        "retail_other",
        "privatebank_txn_account",
        "privatebank_current_account",
        "privatebank_savings_account",
        "privatebank_debit_cards",
        "privatebank_atm_cards",
        "privatebank_credit_cards",
        "privatebank_travelers_cheque",
        "privatebank_mortgage",
        "privatebank_homeequity_loans",
        "privatebank_personal_loans",
        "privatebank_term_deposit",
        "privatebank_cryptocurrencies",
        "privatebank_money_market_accounts",
        "privatebank_retirement_savings",
        "privatebank_trust_services",
        "privatebank_prepaid_cards",
        "privatebank_brokerage_accounts",
        "privatebank_other",
        "transactional_cb_nostro",
        "transactional_cb_vostro",
        "transactional_cb_loro",
        "transactional_lettersofcredit",
        "transactional_invoice_financing",
        "transactional_asset_financing",
        "transactional_lockbox",
        "transactional_remote_deposit_capture",
        "transactional_cashmanagement",
        "transactional_cashremittances",
        "transactional_currencydelivery",
        "transactional_other",
        "commercial_current_account",
        "commercial_cryptocurrencies",
        "commercial_deposit_account",
        "commercial_overdraft_loans",
        "commercial_cash_management",
        "commercial_treasury_management",
        "commercial_private_equity_financing",
        "commercial_other",
        "commercial_bank_drafts",
        "investment_equity_capital",
        "investment_debt_capital",
        "investment_mergers_acquisitions",
        "investment_private_equity",
        "investment_private_placements",
        "investment_syndicated_finance",
        "investment_leveraged_finance",
        "investment_leasing",
        "investment_restructuring",
        "investment_omnibus_accounts",
        "investment_trust_services",
        "investment_other",
        "investment_project_finance",
        "islamic_hawala",
        "islamic_mudharabah",
        "islamic_musharakah",
        "islamic_murabahah",
        "islamic_iljarah",
        "islamic_sukuk",
        "islamic_wadiah",
        "islamic_takaful",
        "islamic_credit_cards",
        "islamic_funds",
        "islamic_microfinance",
        "capital_markets",
        "securityservices_custody",
        "broker_dealer"
      ]
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [{
        "$ref": "#/definitions/nonEmptyString"
      }, {
        "type": "number"
      }]
    }
  }
}

version 1.1
@totalColumns 5
@separator ','
// @efi_version 0.9
internal_product_name: notEmpty
inherent_product_risk_level: any("low", "medium", "high")
mapped_product: any("retail_txn_account","retail_current_account","retail_savings_account","retail_debit_cards","retail_atm_cards","retail_credit_cards","retail_travelers_cheques","retail_mortgage","retail_homeequity_loans","retail_personal_loans","retail_term_deposit","retail_cryptocurrencies","retail_sweep_accoounts","retail_money_market_accounts","retail_brokerage_accounts","retail_retirement_savings","retail_prepaid_cards","retail_other","privatebank_txn_account","privatebank_current_account","privatebank_savings_account","privatebank_debit_cards","privatebank_atm_cards","privatebank_credit_cards","privatebank_travelers_cheque","privatebank_mortgage","privatebank_homeequity_loans","privatebank_personal_loans","privatebank_term_deposit","privatebank_cryptocurrencies","privatebank_money_market_accounts","privatebank_retirement_savings","privatebank_trust_services","privatebank_prepaid_cards","privatebank_brokerage_accounts","privatebank_other","transactional_cb_nostro","transactional_cb_vostro","transactional_cb_loro","transactional_lettersofcredit","transactional_invoice_financing","transactional_asset_financing","transactional_lockbox","transactional_remote_deposit_capture","transactional_cashmanagement","transactional_cashremittances","transactional_currencydelivery","transactional_other","commercial_current_account","commercial_cryptocurrencies","commercial_deposit_account","commercial_overdraft_loans","commercial_cash_management","commercial_treasury_management","commercial_private_equity_financing","commercial_other","commercial_bank_drafts","investment_equity_capital","investment_debt_capital","investment_mergers_acquisitions","investment_private_equity","investment_private_placements","investment_syndicated_finance","investment_leveraged_finance","investment_leasing","investment_restructuring","investment_omnibus_accounts","investment_trust_services","investment_other","investment_project_finance","islamic_hawala","islamic_mudharabah","islamic_musharakah","islamic_murabahah","islamic_iljarah","islamic_sukuk","islamic_wadiah","islamic_takaful","islamic_credit_cards","islamic_funds","islamic_microfinance","capital_markets","securityservices_custody","broker_dealer")
percentage_of_bank_revenue: notEmpty
product_id: 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

Attribute Details

Attribute name Type, format and values Description Anon. Req.
internal_product_name String
Provide the internal name of the product No Yes
inherent_product_risk_level String
"low", "medium", "high"
Provide the risk level this product has been designated No Yes
mapped_product String
Product Usage
Provide the name of the product, mapped to the available Elucidate product list No Yes
percentage_of_bank_revenue Number or string
Provide the approximate percentage of bank revenue which is derived from this product No Yes
product_id String
Unique identifier for the product No Yes

Sanctions Screening

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/SanctionsScreeningElement"
  },
  "efiVersion": "0.9",
  "definitions": {
    "SanctionsScreeningElement": {
      "title": "SanctionsScreeningElement",
      "type": "object",
      "required": [
        "sanctions_screening_datetime",
        "alert_input_source",
        "alert_id",
        "alert_creation_datetime",
        "alert_account_number",
        "alert_entity_type",
        "alert_client_number",
        "alert_closure_datetime",
        "alert_closure_reason",
        "alert_escalation_to_level2_datetime",
        "alert_escalation_to_level3_datetime",
        "alert_entity_fullname",
        "alert_entity_country",
        "alert_entity_date_of_birth_incorp",
        "alert_entity_citizenship_country",
        "alert_transaction_amount",
        "alert_transaction_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"
    },
    "MaybeDate": {
      "title": "MaybeDate",
      "oneOf": [{
        "type": "string",
        "format": "date"
      }, {
        "type": "string",
        "format": "date-time"
      }, {
        "const": ""
      }]
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    }
  }
}

version 1.1
@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: xDate
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: xDateTime
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

Attribute Details

Attribute name Type, format and values Description Anon. Req.
sanctions_screening_datetime DateTime
YYYY-MM-DDThh:mm:ssTZD
The date time the sanctions screening was performed in ISO 8601 format No Yes
alert_input_source String
"kyc_data", "transaction_data"
Specify the source of data used in screening - Customer data/Transaction data No Yes
alert_id Number or string
unique identifier for the alert generated No Yes
alert_creation_datetime DateTime
YYYY-MM-DDThh:mm:ssTZD
Date time of the alert creation in ISO 8601 format, converted to UTC No Yes
alert_account_number String
If the alert was created by a non-customer from transaction data sanctions screening, then the account number provided in the transaction for which a sanctions alert was generated. Else if the account_number alerted is a customer of the financial institution, it should link to the Transaction data originator_account_number or beneficiary_account_number attribute Yes Yes
alert_entity_type String
"individual", "entity"
Provide an indicator as to whether the entity involved in generating an alert was an individual or an entity (of any sort) No Yes
alert_client_number String
If the alert was created by a customer name, then the associated client id - this should link to the customer data file's client_number attribute No Yes
alert_closure_datetime DateTime
YYYY-MM-DDThh:mm:ssTZD
The date time the alert was closed in ISO 8601 format, converted to UTC No Yes
alert_closure_reason String
"confirmed_false_positive", "customer_offboarded", "external_filing", "internal_investigation", "other"
Provide the reason for closing the alert No Yes
alert_escalation_to_level2_datetime DateTime
YYYY-MM-DDThh:mm:ssTZD
The date time the alert was escalated in ISO 8601 format, converted to UTC, from level 1 (front line) to level 2, if escalated. If no escalation was required, leave blank No Yes
alert_escalation_to_level3_datetime Date
YYYY-MM-DDThh:mm:ssTZD
The date time in ISO 8601 format, converted to UTC, the alert was escalated from level 2 to level 3, if escalated. If no escalation was required, leave blank No Yes
alert_entity_fullname String
The full name of the subject of the alert - where it was a customer, then customer full name. Where it was a transaction alert, then the originator/beneficiary full name which generated the sanction alert Yes Yes
alert_entity_country String
ISO Country code 3166-1 alpha-2
The ISO country code of the alert subject's residential/business address - it may be more than one country No Yes
alert_entity_date_of_birth_incorp Date
YYYY-MM-DD
The date of birth for the subject of the alert, where the subject is an individual. In cases where the subject is a legal entity, then the date of incorporation Yes Yes
alert_entity_citizenship_country String
ISO Country code 3166-1 alpha-2
If the subject of the alert was an individual, then the ISO country code of their citizenship No Yes
alert_transaction_amount Int
If the alert was generated from transaction data, then the transaction amount (int) No Yes
alert_transaction_id String
If the sanctions screening alert was generated as a result of a transaction, provide the transaction_id associated and should be linked to a transaction provided in the Transaction file. This is a new attribute which can be loaded as part of this file from Dec 2020 onwards No No
alert_transaction_currency String
ISO 4217 alpha-3 currency code
If the alert was generated from transaction data, then the transaction currency using the required ISO 4217 currency codes No Yes
alert_hit_name String
The name of the entity on the list for which the match was obtained No Yes
alert_hit_country String
ISO Country code 3166-1 alpha-2
The country of the entity on the list which generated/was involved in a match No Yes
alert_list_entry_addition_date DateTime
YYYY-MM-DDThh:mm:ssTZD
The datetime in ISO 8601 format, converted to UTC ,the entity was added to the list and is the subject of the alert No Yes
alert_list_name String
Provide the name of the list against which a sanctions hit was generated e.g. UN/OFAC/EU/HMT. Multiple list names may be loaded from Dec 2020 which ";" as a separator No Yes

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/AlertEntryType" },
        "alert_client_number":                     { "$ref": "#/definitions/NumberOrString" },
        "alert_transaction_id":                    { "$ref": "#/definitions/NumberOrString" },
        "alert_originator_account_number":         { "$ref": "#/definitions/NumberOrString" },
        "alert_beneficiary_account_number":        { "$ref": "#/definitions/NumberOrString" },
        "alert_closure_datetime":                  { "$ref": "#/definitions/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":                     { "type": "string" },
        "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"
      }, {
        "const": ""
      }, {
        "type": "number"
      }]
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    },
    "DateTime": {
      "title": "date",
      "type": "string",
      "format": "date-time"
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "emptyString": {
      "const": ""
    },
    "WarnIfEmpty": {
      "type": "string",
      "title": "Warning if empty",
      "description": "Recommended to have"
    },
    "BIC": {
      "type": "string",
      "pattern": "([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)?"
    },
    "Currency": {
      "type": "string",
      "pattern": "^(AED|AFN|ALL|AMD|ANG|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BGN|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYR|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HRK|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LTL|LVL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRO|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLL|SOS|SRD|SSP|STD|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|USS|UYI|UYU|UZS|VEF|VND|VUV|WST|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XDR|XFU|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWL)$",
      "title": "Currency"
    }
  }
}

version 1.1
@totalColumns 34
@separator ','
// @efi_version 0.9
alert_type: any("automated", "manual", "external_rfi", "ctr", "other")
alert_id: notEmpty or empty
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 or empty
alert_ctr_threshold_amount: notEmpty
alert_ctr_currency_code: regex("^(AED|AFN|ALL|AMD|ANG|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BGN|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYR|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HRK|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LTL|LVL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRO|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLL|SOS|SRD|SSP|STD|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|USS|UYI|UYU|UZS|VEF|VND|VUV|WST|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XDR|XFU|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWL)$")

File Name

The file regarding transaction monitoring data should have the prefix transactions_monitoring and the date of the last day of data

transactions_monitoring_YYYYMMDD.csv

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

transactions_monitoring_20180131.csv

Frequency

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

Sample Package

Download sample package here

Attribute Details

Attribute name Type, format and values Description Anon. Req.
alert_type String
automated, "manual", "external_rfi", "ctr"
Populate with a defined type of alert generated during transaction monitoring, which was NOT a sanctions alert No Yes
alert_id Number or string
Unique identifier generated for this alert during transaction monitoring No Yes
alert_scenario String
monitoring_rule, list_screening, manual_suspect_behavior
Populate with the underlying reason for this alert - if it was generated automatically, is it due to a system rule being triggered or a list screening process or if manual, what was the reason for the manual alert No Yes
alert_scenario_rule_id Number or string
When an alert was triggered due to a monitoring rule, provide the rule id associated with the triggered rule. This should cross reference the rule_id in the Transaction Rules file No No
alert_list_entry_type String
internal_watchlist, external_watchlist
If the alert was generated due to list screening, then provide the type of list involved No No
alert_list_entry_name String
If the alert was generated to list screening, provide the name of the list involved. Multiple list names may be loaded from Dec 2020 which ";" as a separator No No
alert_list_entry_id String
If the alert was generated due to list screening, then provide the unique identifier for the list entry it matched No No
alert_creation_datetime Date
YYYY-MM-DDThh:mm:ssTZD
The date time of the alert creation No No
alert_entity_type String
Individual, entity
Provide an indication of whether the subject of the alert is an individual or entity No Yes
alert_client_number Number or string
If the alert involved transactions associated to a client, populate with the client number. This should link to the Customer data file client_number attribute No No
alert_transaction_id Number or string
Provide the transaction id(s) of the transaction(s) involved in generating this alert. These should should be linked to the transactions file provided No No
alert_originator_account_number Number or string
Populate with the account number(s) of the originator involved in the transaction(s) which are the subject of the alert No Yes
alert_beneficiary_account_number Number or string
Populate with the account number(s) of the beneficiary involved in the transaction(s) which are the subject of the alert No Yes
alert_closure_datetime Date
YYYY-MM-DDThh:mm:ssTZD
The date time of the alert closure No Yes
alert_closure_reason String
true_positive, false_positive
The reason for closing the alert No Yes
alert_closure_employee_id Number or string
The employee id of the investigator closing the alert No Yes
alert_escalation_to_level2_datetime Date
YYYY-MM-DDThh:mm:ssTZD
The date time of escalation to level 2 alert investigation. If this was not escalated, leave blank No No
alert_escalation_to_level3_datetime Date
YYYY-MM-DDThh:mm:ssTZD
The date time of escalation to level 3 alert investigation. If this was not escalated, leave blank No No
alert_escalation_to_level3_reviewer_id String
If the alert was escalated to level 3 alert investigation and required a review prior to closure, the employee id(s) of the reviewer(s) No No
alert_manual_creator_employee_id Number or string
In cases where an alert was created manually, provide the employee id of the alert creator No No
alert_external_rfi_incoming_bic String
In cases where the alert involved an external incoming RFI from another financial institution, provide the BIC of the sending institution No No
alert_external_rfi_datetime Date
YYYY-MM-DDThh:mm:ssTZD
In cases where the alert involved an external incoming RFI from another financial institution, provide the date time of the RFI received No No
alert_external_rfi_account_number Number or string
In cases where the alert involved an external incoming RFI from another financial institution, provide the account number associated to the subject of the RFI No No
alert_external_rfi_channel String
SWIFT, email, post, other
Provide the incoming channel through which the RFI was received No No
alert_external_rfi_response_datetime Date
YYYY-MM-DDThh:mm:ssTZD
Provide the date time of the response to the incoming RFI No No
alert_external_rfi_response_channel String
SWIFT, email, post, other
Provide the response channel used for the RFI No No
alert_external_rfi_response_reviewer_id String
Provide the employee id of the reviewer of the RFI response, if one was required No No
alert_ctr_create_datetime Date
YYYY-MM-DDThh:mm:ssTZD
In cases where a CTR was required, the date time of the creation of the CTR No No
alert_ctr_account_number Number or string
In cases where a CTR was required, the account number of the subject of the CTR No No
alert_ctr_filing_datetime Date
YYYY-MM-DDThh:mm:ssTZD
In cases where a CTR was required, the filing date time of the CTR, which may or may not be the same as the creation date time No No
alert_ctr_reference_number String
Provide the unique CTR reference number which was received when the CTR was filed externally No No
alert_ctr_filedwith String
Provide the name of the institution where the CTR was filed No No
alert_ctr_threshold_amount Number
Provide the threshold amount for reporting the CTR No No
alert_ctr_currency_code String
Provide the ISO 4217 currency code for the amount No No

Affiliates Report

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://elucidate.co/schemas/affiliates_report.json",
  "type": "array",
  "items": {
    "$ref": "#/definitions/AffiliateElement"
  },
  "efi_version": "0.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",
        "affiliate_percent_ownership"
      ],
      "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":                   { "type": "string" },
          "affiliate_percent_ownership":    { "$ref": "#/definitions/NumberOrString" }
        }
      }, {
        "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" },

          "affiliate_isic_code":            { "$ref": "#/definitions/InternationalStandardIndustrialClassificationCode"},
          "affiliate_id":                   { "type": "string" },
          "affiliate_percent_ownership":    { "$ref": "#/definitions/NumberOrString" }
        }
      }, {
        "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" },

          "affiliate_isic_code":            { "$ref": "#/definitions/InternationalStandardIndustrialClassificationCode"},
          "affiliate_id":                   { "type": "string" },
          "affiliate_percent_ownership":    { "$ref": "#/definitions/NumberOrString" }
        }
      }]
    },
    "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-9]{1,4});?"
        },
        {
          "type": "number",
          "minimum": 0,
          "maximum": 9999
        },
        {
          "const": ""
        }
      ]
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [{
        "$ref": "#/definitions/nonEmptyString"
      }, {
        "type": "number"
      }]
    }
  }
}

version 1.1
@totalColumns 18
@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
affiliate_isic_code: regex("\b([0-9A-Z]){1,4}\b;?") or empty
affiliate_id: notEmpty or empty
affiliate_percent_ownership: 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

Attribute Details

Attribute name Type, format and values Description Anon. Req.
affiliate_type String
"branch", "subsidiary", "rep"
Choose one of three: branch, subsidiary, rep No Yes
affiliate_name String
Name of the affiliate No No
affiliate_address String
This should be the local billing address No No
affiliate_country String
ISO Country code 3166-1 alpha-2
Provide the ISO 2 digit country code of the affiliate's local address No Yes
affiliate_BIC String
A BIC has the following pattern ([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)? according to ISO 9362
If the affiliate is an FI with a BIC according to ISO 9362, otherwise blank No No
affiliate_LEI String
ISO 17442 format
According to the codes according to LEI 17442 format No No
affiliate_internal_risk_level String
"low", "medium", "high"
If it is a branch, then branch. Otherwise provide the internal risk rating applied to this affiliate, as rated during internal risk assessment No No
affiliate_percent_ownership Number or string
Provide the ownership percentage of the affiliate in the format XX.XX No No
affiliate_isic_code String
ISIC codes have the pattern regex("^[A-Z0-9]{1,4}$")
Provide the isic_code of the industry of the customer according to the UN ISIC code list. If multiple codes are applicable, then supply each code separated by ";". A full list of ISIC and conversions can be found here No No
affiliate_id String
Unique identifier for the affiliate. This identifier should be used for cross reference in the Employee data file No No

Vendors

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/VendorElement"
  },
  "efiVersion": "0.9",
  "definitions": {
    "VendorElement": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "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" },
        "vendor_id":                                            { "$ref": "#/definitions/NumberOrString" },
        "vendor_address_country":                               { "$ref": "#/definitions/nonEmptyString" }
      },
      "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",
        "vendor_id",
        "vendor_address_country"
      ],
      "title": "VendorElement"
    },
    "ServiceProvided": {
      "title": "ServiceProvided",
      "type": "string",
      "enum": [
        "vendor_svc_infrastructure_outsrc",
        "vendor_svc_compliance_outsrc",
        "vendor_svc_other_banking_technology",
        "vendor_svc_education_training",
        "vendor_svc_financial_accounting_legal_risk",
        "vendor_svc_hr_recruit_mngt",
        "vendor_svc_marketing_customer_pr",
        "vendor_svc_digitial_payment_solutions",
        "vendor_svc_wealth_mngt",
        "vendor_svc_insurance",
        "vendor_svc_other"
      ]
    },
    "YesNoOption": {
      "type": "string",
      "enum": ["no", "yes"],
      "title": "YesNoOption"
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    },
    "MaybeDate": {
      "title": "MaybeDate",
      "oneOf": [{
        "type": "string",
        "format": "date"
      }, {
        "type": "string",
        "format": "date-time"
      }, {
        "const": ""
      }]
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "emptyString": {
      "const": ""
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [
        {
          "type": "string",
          "pattern": "\\d+"
        },
        {
          "type": "number",
          "multipleOf": 1,
          "minimum": 0
        }
      ]
    }
  }
}

version 1.1
@totalColumns 11
@separator ','
// @efi_version 0.9
third_party_vendor_name: notEmpty
fincrime_responsibility: any("yes", "no")
service_provided: any("vendor_svc_infrastructure_outsrc","vendor_svc_compliance_outsrc","vendor_svc_other_banking_technology","vendor_svc_education_training","vendor_svc_financial_accounting_legal_risk","vendor_svc_hr_recruit_mngt","vendor_svc_marketing_customer_pr","vendor_svc_digitial_payment_solutions","vendor_svc_wealth_mngt","vendor_svc_insurance","vendor_svc_other")
vendor_website: notEmpty
vendor_address: notEmpty
vendor_subject_to_audit: any("yes", "no")
vendor_subject_to_fincrime_training: any("yes", "no")
contract_start_date: xDate
contract_end_date: xDate or empty
vendor_id: notEmpty
vendor_address_country: notEmpty

File Name

The file regarding vendors relations data should have the prefix vendors and the date for which it represents.

vendors_YYYYMM.csv

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

vendors_201901.csv

Frequency

After the initial submission, submitted with the all vendor relations.

Sample Package

Download sample package here.

Attribute Details

Attribute name Type, format and values Description Anon. Req.
third_party_vendor_name String
The name of the vendor service provider No Yes
fincrime_responsibility nullable Boolean
"yes", "no"
Indicate if this vendor has responsibility for financial crime investigation - a vendor providing screening lists is a contributor but does not have responsibility for conducting investigations No Yes
service_provided String
"vendor_svc_infrastructure_outsrc", "vendor_svc_compliance_outsrc", "vendor_svc_other_banking_technology", "vendor_svc_education_training", "vendor_svc_financial_accounting_legal_risk", "vendor_svc_hr_recruit_mngt", "vendor_svc_marketing_customer_pr", "vendor_svc_digitial_payment_solutions", "vendor_svc_wealth_mngt", "vendor_svc_insurance", "vendor_svc_other"
Indicate if this vendor has responsibility for financial crime investigation - i.e, a vendor providing screening lists is a contributor but does not have responsibility for conducting investigations. Multiple services may be loaded from Dec 2020 which ";" as a separator No Yes
vendor_id Number or string
A unique identifier for the vendor No Yes
vendor_website String
Provide the website address for the vendor No Yes
vendor_address String
Provide the local legal entity address of the vendor - if this is a multinational vendor, only the local address is required No Yes
vendor_address_country String
ISO Country code 3166-1 alpha-2
Provide the ISO 3166-1 country code for the address of the vendor No Yes
vendor_subject_to_audit nullable Boolean
"yes", "no"
Indicate whether this vendor is subject to your organisation's audit processes. If this information is not gathered/available, then populate with nan No Yes
vendor_subject_to_fincrime_training nullable Boolean
"yes", "no"
Indicate whether this vendor is subject to Financial Crime training programs (online/refresher/onsite) in your organisation. If this information is not gathered/available, then populate with nan No Yes
contract_start_date Date
YYYY-MM-DD
Provide the start date of the current(most recent if there are a series) contract in ISO 8601 format. If the day is not available, then it should be provided as YYYY-MM No Yes
contract_end_date Date
YYYY-MM-DD
Provide the end date (or expected) of the current contract. If the contract is ongoing, populate with not applicable and this will be understood to be an ongoing contract. The date should be provided in ISO 8601 format, converted to UTC. If the day is not available, then it should be provided as YYYY-MM No No

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_brokerage_accounts",
    "retail_retirement_savings",
    "retail_prepaid_cards",
    "retail_other",
    "privatebank_txn_account",
    "privatebank_current_account",
    "privatebank_savings_account",
    "privatebank_debit_cards",
    "privatebank_atm_cards",
    "privatebank_credit_cards",
    "privatebank_travelers_cheque",
    "privatebank_mortgage",
    "privatebank_homeequity_loans",
    "privatebank_personal_loans",
    "privatebank_term_deposit",
    "privatebank_cryptocurrencies",
    "privatebank_money_market_accounts",
    "privatebank_retirement_savings",
    "privatebank_trust_services",
    "privatebank_prepaid_cards",
    "privatebank_brokerage_accounts",
    "privatebank_other",
    "transactional_cb_nostro",
    "transactional_cb_vostro",
    "transactional_cb_loro",
    "transactional_lettersofcredit",
    "transactional_invoice_financing",
    "transactional_asset_financing",
    "transactional_lockbox",
    "transactional_remote_deposit_capture",
    "transactional_cashmanagement",
    "transactional_cashremittances",
    "transactional_currencydelivery",
    "transactional_other",
    "commercial_current_account",
    "commercial_cryptocurrencies",
    "commercial_deposit_account",
    "commercial_overdraft_loans",
    "commercial_cash_management",
    "commercial_treasury_management",
    "commercial_private_equity_financing",
    "commercial_other",
    "commercial_bank_drafts",
    "investment_equity_capital",
    "investment_debt_capital",
    "investment_mergers_acquisitions",
    "investment_private_equity",
    "investment_private_placements",
    "investment_syndicated_finance",
    "investment_leveraged_finance",
    "investment_leasing",
    "investment_restructuring",
    "investment_omnibus_accounts",
    "investment_trust_services",
    "investment_other",
    "investment_project_finance",
    "islamic_hawala",
    "islamic_mudharabah",
    "islamic_musharakah",
    "islamic_murabahah",
    "islamic_iljarah",
    "islamic_sukuk",
    "islamic_wadiah",
    "islamic_takaful",
    "islamic_credit_cards",
    "islamic_funds",
    "islamic_microfinance",
    "capital_markets",
    "securityservices_custody",
    "broker_dealer"
  ],
  "title": "ProductUsage"
}
Products
├── Retail Banking
│   ├── transactional_accounts
│   ├── current_accounts
│   ├── savings_accounts
│   ├── debit_cards
│   ├── atm_cards
│   ├── credit_cards
│   ├── travelers_cheques
│   ├── mortgages
│   ├── home_equity_loans
│   ├── personal_loans
│   ├── term_deposits
│   ├── cryptocurrencies
│   ├── sweep_accounts
│   ├── money_market_accounts
│   ├── brokerage_accounts
│   ├── retirement_savings
│   ├── prepaid_cards
│   └── retail_other
├── Private Banking
│   ├── transactional_accounts
│   ├── current_accounts
│   ├── savings_accounts
│   ├── debit_cards
│   ├── atm_cards
│   ├── credit_cards
│   ├── travelers_cheques
│   ├── mortgages
│   ├── home_equity_loans
│   ├── personal_loans
│   ├── term_deposits
│   ├── cryptocurrencies
│   ├── money_market_accounts
│   ├── retirement_savings
│   ├── trust_services
│   ├── prepaid_cards
│   ├── brokerage_accounts
│   └── other
├── Transactional Banking
│   ├── nostro
│   ├── vostro
│   ├── loro
│   ├── letters_of_credit
│   ├── invoice_financing
│   ├── asset_financing
│   ├── lockbox
│   ├── remote_deposit_capture
│   ├── cash_management
│   ├── cash_remittances
│   ├── currency_delivery
│   └── other
├── Commercial Banking
│   ├── current_accounts
│   ├── cryptocurrencies
│   ├── deposit_accounts
│   ├── overdraft_loan
│   ├── cash_management
│   ├── treasury_management
│   ├── private_equity_financing
│   ├── other
│   └── bank_drafts
├── Investment
│   ├── equity_capital
│   ├── debt_capital
│   ├── mergers_acquisitions
│   ├── private_equity
│   ├── private_placements
│   ├── syndicated_finance
│   ├── leveraged_finance
│   ├── leasing
│   ├── restructuring
│   ├── omnibus_accounts
│   ├── trust_services
│   ├── other
│   └── project_finance
├── Islamic Banking
│   ├── hawala
│   ├── mudharabah
│   ├── musharakah
│   ├── murabahah
│   ├── ijarah
│   ├── sukuk
│   ├── wadiah
│   ├── takaful
│   ├── islamic_credit_cards
│   ├── islamic_funds
│   └── islamic_microfinance
├── Capital Markets
├── Security Services and Custody
└── Broker Dealer

Source of Funds

"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": ["low", "medium", "high"]
}

ISIC Code

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

Field allows multiple values separated by ;

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

Account closure reasons

"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

Service provided

"ServiceProvided": {
  "title": "ServiceProvided",
  "type": "string",
  "enum": [
    "vendor_svc_infrastructure_outsrc",
    "vendor_svc_compliance_outsrc",
    "vendor_svc_other_banking_technology",
    "vendor_svc_education_training",
    "vendor_svc_financial_accounting_legal_risk",
    "vendor_svc_hr_recruit_mngt",
    "vendor_svc_marketing_customer_pr",
    "vendor_svc_digitial_payment_solutions",
    "vendor_svc_wealth_mngt",
    "vendor_svc_insurance",
    "vendor_svc_other"
  ]
},
vendor_svc_infrastructure_outsrc
vendor_svc_compliance_outsrc
vendor_svc_other_banking_technology
vendor_svc_education_training
vendor_svc_financial_accounting_legal_risk
vendor_svc_hr_recruit_mngt
vendor_svc_marketing_customer_pr
vendor_svc_digitial_payment_solutions
vendor_svc_wealth_mngt
vendor_svc_insurance
vendor_svc_other

Please populate the legal form using the code specification provided at GLEIF

"LegalForm": {
  "title": "LegalForm",
  "description": "https://www.gleif.org/en/about-lei/code-lists/iso-20275-entity-legal-forms-code-list",
  "type": "string",
  "pattern": "^[A-Z0-9]{4}$"
}

Employee ID, Numeric values

"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

"Date": {
  "title": "date",
  "type": "string",
  "format": "date",
}

Date or Empty

"MaybeDate": {
  "title": "date",
  "oneOf": [{
    "type": "string",
    "format": "date",
    "example": "2020-02-18"
  }, {
    "const": ""
  }]
}

DateTime Timezone-aware

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

DateTime Timezone-aware or Empty

"MaybeDateTime": {
  "title": "MaybeDateTime",
  "oneOf": [{
    "type": "string",
    "format": "date-time",
    "example": "2020-02-18T12:43:46Z"
  }, {
    "const": ""
  }]
}

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 an anonymisation algorithm from those listed below, in order of preference
  2. Using the chosen algorithm, generate hashes for the following sample names & date:
    • 2020-06-17
    • ahmed, abubakar
    • поддръжници на исляма в кюрдистан
    • anwar nasser abdulla al-aulaqi
    • taha yassin ramadan al-jizrawi
    • عبد العالي ابو ذر
  3. Generate the anonymisation_checksum_YYYYMM file. This file should contain the following headers: |created_month|input_value|anonymisation_algorithm|output|, where
    • created_month corresponds to the month of submission in the format YYYY-MM
    • input_value are the sample names (one row each)
    • anonymisation_algorithm is the algorithm in use SHA-3/BLAKE2B/MD5
    • Output is the anonymised hash value obtained
  4. Provide an anonymisation file each month along with your data submission

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

There are two methods of delivery:

If you wish to encrypt the data on your side you can use our public key from here

Errors

A validation tool will run offline on the server side. If we encounter any error in the files you have provided we will contact you for resubmission.











© Elucidate GmbH imprint