NAV Navbar
JSON schema CSV schema

EFI Respondent Data Protocols

For Respondent Banks, it is critical to maintain and increase correspondent banking relationships, as well as to manage financial crime risk effectively.

The EFI provides a number of enterprise solutions to enable more targeted and effective FinCrime risk management.

Critically, we enable Banks to understand and evidence FinCrime risk profiles, and to control the narrative around FinCrime risk with Correspondents, Regulators and other counterparties.

In this page you will find all necessary data protocols you will need to extract from your system in order for Elucidate to perform the Elucidate FinCrime Index assessment.

download all sample package here

Change Log

Version Date Change
0.1 01.11.2018 Initial private version
0.2 15.11.2018 Added anonymization mechanism
0.5 13.12.2018 Link samples to EFI version
0.6 01.10.2019 Improved transaction file

Timeline

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

Formats

Reports are accepted in CSV, xlsx, json or Swift

For CSV file descriptions, the CSV Schema can be referenced for additional detail CSV Schema

For Json file descriptions, the Json Schema can be referenced for additional detail JSON Schema

You can submit the files individually or zip, rar or tar.gz

If you want to encrypt the files please check our security section

Institution Data

Wolfsberg CBDDQ

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

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

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

File Name

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

wolfsberg_cbddq_YYYYMMDD.xlsx

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

wolfsberg_cbddq_20181231.xlsx

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

Sample Package

Download sample package here

Customer Data

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/CustomerDatum"
  },
  "efiVersion": "0.6",
  "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"},
        "legal_entity_identifier":          { "$ref": "#/definitions/nonEmptyString" },
        "legal_entity_type":                { "$ref": "#/definitions/LegalEntityType" },
        "sic_code":                         { "$ref": "#/definitions/StandardIndustrialClassificationCode" },
        "industry":                         { "$ref": "#/definitions/Industry" },
        "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/SourceOfIncome" },
        "source_of_funds":                  { "$ref": "#/definitions/SourceOfIncome" },
        "cash_balance_amount":              { "$ref": "#/definitions/NumberOrString" },
        "cash_balance_currency":            { "$ref": "#/definitions/Currency" },
        "account_open_date":                { "$ref": "#/definitions/date" },
        "account_closed_date":              { "$ref": "#/definitions/MaybeDate" },
        "account_closed_reason":            { "$ref": "#/definitions/emptyString" },
        "initial_cdd_completion_date":      { "$ref": "#/definitions/date" },
        "last_cdd_review_date":             { "$ref": "#/definitions/date" },
        "system_risk_rating":               { "$ref": "#/definitions/SystemRiskRating" },
        "pep_status":                       { "$ref": "#/definitions/YesNoOption" },
        "associated_pep_status":            { "$ref": "#/definitions/YesNoOption" },
        "edd_triggered":                    { "$ref": "#/definitions/YesNoOption" },
        "relationship_manager_employee_id": { "$ref": "#/definitions/nonEmptyString" },
        "branch_id":                        { "$ref": "#/definitions/nonEmptyString" }
      },
      "required": [
        "account_closed_date",
        "account_closure_reason",
        "account_number",
        "account_open_date",
        "address_country",
        "address",
        "adverse_information_search_date",
        "adverse_information_search",
        "associated_pep_status",
        "branch_id",
        "cash_balance_amount",
        "cash_balance_currency",
        "client_number",
        "country_citizenship",
        "date_of_birth",
        "edd_triggered",
        "first_name",
        "full_name",
        "identification_document_present",
        "industry",
        "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",
        "sic_code",
        "source_of_funds",
        "source_of_wealth",
        "system_risk_rating"
      ],
      "title": "CustomerDatum",
      "allOf": [{
        "if": {
          "properties": {
            "adverse_information_search": { "const": "yes" }
          }
        },
        "then": {
          "properties": {
            "adverse_information_search_date": { "$ref": "#/definitions/date" }
          }
        }
      }, {
        "if": {
          "properties": {
            "sic_code": { "$ref": "#/definitions/nonEmptyString" }
          }
        },
        "then": {
          "properties": {
            "industry": { "$ref": "#/definitions/emptyString" }
          }
        }
      }, {
        "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": [
        "ceis",
        "central_bank",
        "central_govt",
        "ciu",
        "corporate",
        "credit_institution",
        "credit_union",
        "deposit_broker",
        "embassy",
        "financial_holding",
        "financial",
        "individual",
        "insurer",
        "intl_org",
        "investment_firm",
        "local_authority",
        "mdb",
        "money_transfer_operator",
        "national_development_agency",
        "natural_person",
        "non-profit_or_charity",
        "other_financial",
        "other_pse",
        "other",
        "partnership",
        "payment_services_provider",
        "pic",
        "private_corporation",
        "promotional_lender",
        "pse",
        "public_corporation",
        "regional_govt",
        "sme",
        "sovereign",
        "sspe",
        "trust_or_foundation"
      ]
    },
    "Industry": {
      "title": "Industry",
      "type": "string",
      "enum": [
        "adult_entertainment",
        "agriculture_forestry_and_fishing",
        "arms_defense",
        "atomic_energy",
        "construction",
        "finance_insurance_and_real_estate",
        "gambling",
        "manufacturing",
        "marijuana_stores_medical_recreational",
        "military",
        "mining",
        "non_gov_org",
        "nonclassifiable",
        "payment_service_providers",
        "precious_metals",
        "public_administration",
        "regulated_charities",
        "retail_trade",
        "services",
        "transportation_communications_electric_gas_and_sanitary_service",
        "unregulated_charities",
        "virtual_currency_exchange_services",
        "wholesale_trade"
      ]
    },
    "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": [
        "anonymous_prepaid_cards_with_limits_in_excess_of_usd100",
        "brokerage_services",
        "cash_clearing",
        "commercial_banking_cards",
        "commercial_banking_chequing",
        "commercial_banking_credit",
        "commercial_banking_lending",
        "commercial_banking_savings",
        "cross-border_remittances",
        "crypto/virtual_assets",
        "downstream_clearing",
        "financial_markets_trading",
        "hold_mail",
        "ijara",
        "international_cash_letter",
        "low_price_securities",
        "m&a",
        "murabaha",
        "other_prepaid_cards",
        "payable_through_accounts",
        "physical_banknotes",
        "pouch_services",
        "precious_metals(physical_delivery)",
        "private_banking",
        "remote_deposit_capture",
        "retail_cards",
        "retail_chequing",
        "retail_credit",
        "retail_lending",
        "retail_savings",
        "safe_deposit_services",
        "security_services/custody",
        "service_to_walk-in_customers(non-account_holders)",
        "sponsoring_private_atms",
        "sukuk",
        "syndicated_loans",
        "trade_finance",
        "virtual/digital_currencies",
        "wadiah"
      ],
      "title": "ProductUsage"
    },
    "SourceOfIncome": {
      "title": "SourceOfIncome",
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "company_profits_and_dividends",
            "company_sale",
            "employment_income",
            "gift",
            "inheritance",
            "loans_(only_corporates)",
            "maturity/surrender_life_insurance_policy",
            "other",
            "property_sale",
            "sale_of_investments",
            "savings"
          ]
        }, {
          "type": "string",
          "minLength": 1
        }
      ]
    },
    "SystemRiskRating": {
      "title": "SystemRiskRating",
      "type": "string",
      "enum": ["none", "low", "medium", "high"],
      "description": "If you do not rate your customers values should be: 'none', otherwise one of 'low', 'medium' or 'high'"
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [{
        "$ref": "#/definitions/nonEmptyString"
      }, {
        "type": "number"
      }]
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    },
    "MaybeDate": {
      "title": "MaybeDate",
      "oneOf": [{
        "$ref": "#/definitions/date"
      }, {
        "const": ""
      }]
    },
    "Address": {
      "type": "string",
      "minLength": 1,
      "faker": "address.streetAddress"
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "emptyString": {
      "const": ""
    },
    "WarnIfEmpty": {
      "type": "string",
      "title": "Warning if empty",
      "description": "Recommended to have"
    },
    "StandardIndustrialClassificationCode": {
      "title": "StandardIndustrialClassificationCode",
      "description": "https://en.wikipedia.org/wiki/Standard_Industrial_Classification",
      "oneOf": [
        { "type": "string", "pattern": "[0-9]{4}" },
        { "type": "number", "minimum": 0, "maximum": 9999 }
      ]
    },
    "AccountClosureReason": {
      "title": "AccountClosureReason",
      "type": "string",
      "enum": [
        "customer_decision",
        "financial_crime_risk_event",
        "credit_default",
        "litigation",
        "commercial_strategic_decision",
        "product_contract_expiration",
        "other"
      ]
    }
  }
}

version 1.1
@totalColumns 37
@separator ','
// @efi_version 0.6
// 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)$")
//            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","natural_person","partnership","corporate","sme","private_corporation","public_corporation","financial","credit_institution","promotional_lender","investment_firm","sspe","ciu","ceis","pic","insurer","financial_holding","credit_union","deposit_broker","money_transfer_operator","payment_services_provider","other_financial","central_bank","mdb","pse","local_authority","regional_govt","central_govt","embassy","national_development_agency","other_pse","sovereign","intl_org","trust_or_foundation","non-profit_or_charity","other")
//            Standard Industrial Classification code
sic_code: notEmpty @warning
//             based in Standard Industrial Classification (SIC) Range
industry: if($sic_code/notEmpty, empty , empty or any("agriculture_forestry_and_fishing","mining","construction","atomic_energy","manufacturing","arms_defense","precious_metals","transportation_communications_electric_gas_and_sanitary_service","wholesale_trade","retail_trade","marijuana_stores_medical_recreational" ,"finance_insurance_and_real_estate","virtual_currency_exchange_services","payment_service_providers","services","unregulated_charities","regulated_charities","non_gov_org","adult_entertainment","gambling","public_administration","military","nonclassifiable"))
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_chequing","retail_savings","retail_lending","retail_credit","retail_cards","private_banking","hold_mail","safe_deposit_services","commercial_banking_chequing","commercial_banking_savings","commercial_banking_lending","commercial_banking_credit","commercial_banking_cards","trade_finance","cash_clearing","downstream_clearing","physical_banknotes","remote_deposit_capture","payable_through_accounts","pouch_services","precious_metals(physical_delivery)","syndicated_loans","brokerage_services","m&a","financial_markets_trading","security_services/custody","anonymous_prepaid_cards_with_limits_in_excess_of_usd100","other_prepaid_cards","international_cash_letter","remote_deposit_capture","virtual/digital_currencies","low_price_securities","hold_mail","cross-border_remittances","service_to_walk-in_customers(non-account_holders)","sponsoring_private_atms","crypto/virtual_assets","sukuk","ijara","wadiah","murabaha") 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("employment_income","savings","property_sale","sale_of_investments","loans_(only_corporates)","company_profits_and_dividends","company_sale","inheritance","gift","maturity/surrender_life_insurance_policy","other") or notEmpty
source_of_funds: any("employment_income","savings","property_sale","sale_of_investments","loans_(only_corporates)","company_profits_and_dividends","company_sale","inheritance","gift","maturity/surrender_life_insurance_policy","other") or notEmpty
//            Total amount of all accounts held by this Customer number,
//            If other accounts are in other currencies convert to the most common one.
//            Amount rounded to the smallest currency unit
cash_balance_amount: notEmpty
//            ISO 4217
cash_balance_currency: regex("^(AED|AFN|ALL|AMD|ANG|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BGN|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYR|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HRK|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LTL|LVL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRO|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLL|SOS|SRD|SSP|STD|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|USS|UYI|UYU|UZS|VEF|VND|VUV|WST|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XDR|XFU|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWL)$")
//            source of funds should always be mapped to Elucidate internal table
//            if only free text is availbale then include free text.
//            if multiple sources add "employment_income; savings; company_sale "//
//            ISO 8601
account_open_date: xDate
//            ISO 8601
account_closed_date: xDate or empty
account_closed_reason: if($account_closed_date/notEmpty, any("customer_decision","financial_crime_risk_event","credit_default","litigation","commercial_strategic_decision","product_contract_expiration","other"), empty)
//            ISO 8601
initial_cdd_completion_date: xDate
//            ISO 8601
last_cdd_review_date: xDate
//            if you do not rate your customers values should be: none
//            if you rate your customers, value should be: one of "low", "medium" or "high"
system_risk_rating: any("none","low", "medium", "high")
pep_status: any("yes","no")
associated_pep_status: any("yes","no")
edd_triggered: any("yes","no")
// internal employee ID
relationship_manager_employee_id: notEmpty
branch_id: notEmpty

File Name

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

customer_data_YYYYMM.csv

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

customer_data_201901.csv

Data Types

See more information about the data types:

Frequency

After initial submission, submitted monthly with all customer population.

Sample Package

Download sample package here

Customer Associated Parties

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

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

File Name

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

customer_associated_parties_YYYYMM.csv

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

customer_associated_parties_201901.csv

Frequency

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

Sample Package

Download sample package here

Transactions

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/NonSwiftTransactionElement"
  },
  "efiVersion": "0.6",
  "definitions": {
    "NonSwiftTransactionElement": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "original_transaction_message":       { "$ref": "#/definitions/MaybeString" },
        "transaction_date":                   { "$ref": "#/definitions/MaybeDate" },
        "transaction_id":                     { "$ref": "#/definitions/NumberOrString" },
        "transaction_message":                { "$ref": "#/definitions/nonEmptyString" },
        "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" },
        "originator_old_balance":             { "$ref": "#/definitions/MaybeString" },
        "originator_new_balance":             { "$ref": "#/definitions/MaybeString" },
        "intermediary_fi_bic":                { "$ref": "#/definitions/BICList" },
        "beneficiary_old_balance":            { "$ref": "#/definitions/MaybeString" },
        "beneficiary_new_balance":            { "$ref": "#/definitions/MaybeString" },
        "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" },
        "transaction_amount":                 { "$ref": "#/definitions/NumberOrString" },
        "currency":                           { "$ref": "#/definitions/Currency" },
        "instrument_type":                    { "$ref": "#/definitions/InstrumentType" },
        "direction":                          { "$ref": "#/definitions/Direction" },
        "is_downstream":                      { "$ref": "#/definitions/YesNoOption" },
        "is_domestic":                        { "$ref": "#/definitions/YesNoOption" },
        "is_foreign":                         { "$ref": "#/definitions/YesNoOption" }
      },
      "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",
        "currency",
        "instrument_type",
        "original_transaction_message",
        "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",
        "originator_old_balance",
        "originator_new_balance",
        "beneficiary_new_balance",
        "beneficiary_old_balance",
        "transaction_message",
        "transaction_amount",
        "transaction_date",
        "transaction_id",
        "direction",
        "is_downstream",
        "is_domestic",
        "is_foreign"
      ],
      "title": "NonSwiftTransactionElement",
      "if": {
        "properties": {
          "originator_branch_id": { "const": "" }
        }
      },
      "then": {
        "properties": {
          "beneficiary_branch_id": { "$ref": "#/definitions/nonEmptyString" },
          "beneficiary_old_balance": { "$ref": "#/definitions/NumberOrString" },
          "beneficiary_new_balance": { "$ref": "#/definitions/NumberOrString" }
        }
      },
      "else": {
        "if": {
          "properties": {
            "beneficiary_branch_id": { "const": "" }
          }
        },
        "then": {
          "properties": {
            "originator_branch_id": { "$ref": "#/definitions/nonEmptyString" },
            "originator_old_balance": { "$ref": "#/definitions/NumberOrString" },
            "originator_new_balance": { "$ref": "#/definitions/NumberOrString" }
          }
        }
      }
    },
    "Country": {
      "title": "Country",
      "description": "ISO 3166-1 alpha-2 country code",
      "type": "string",
      "pattern": "^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$"
    },
    "Currency": {
      "type": "string",
      "pattern": "^(AED|AFN|ALL|AMD|ANG|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BGN|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYR|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HRK|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LTL|LVL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRO|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLL|SOS|SRD|SSP|STD|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|USS|UYI|UYU|UZS|VEF|VND|VUV|WST|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XDR|XFU|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWL)$",
      "title": "Currency"
    },
    "InstrumentType": {
      "title": "InstrumentType",
      "oneOf": [{
        "type": "string",
        "enum": ["cash","check","ach/lcy_tranfers","wire","securities","e-money/mobile_money","travellers_cheques","prepaid_cards","certified_cheques","vouchers","cashier_cheques/money_order","precious_metal","crypto/virtual_assets","interest/dividend","other"]
      }, {
        "const": ""
      }]
    },
    "Direction": {
      "title": "Direction",
      "type": "string",
      "enum": ["in","out"]
    },
    "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 38
@separator ','
// @efi_version 0.6
// if the message is converted from another type, you can keep the original message here
original_transaction_message: notEmpty or empty
transaction_date: xDateTime
transaction_id: notEmpty
transaction_message: notEmpty
originator_full_name: notEmpty
originator_first_name: notEmpty
originator_middle_names_patronymic: notEmpty @warning
originator_last_name: notEmpty
originator_address: notEmpty
//            ISO 3166-1 alpha-2
originator_country: regex("^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$")
//            Internal customer account number
originator_account_number: notEmpty
originator_branch_id: if($beneficiary_branch_id/empty, notEmpty, empty or notEmpty)
originator_bic:notEmpty
originator_fi_name:notEmpty
originator_fi_country:notEmpty
originator_old_balance: if($beneficiary_branch_id/empty, notEmpty, empty or notEmpty)
originator_new_balance: if($beneficiary_branch_id/empty, notEmpty, empty or notEmpty)
// intermediary_fi_bic can be a one or a list of BIC codes separated by `#`
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
beneficiary_middle_names_patronymic: notEmpty @warning
beneficiary_last_name: notEmpty
beneficiary_address: notEmpty
//            ISO 3166-1 alpha-2
beneficiary_country: regex("^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)$")
beneficiary_account_number: notEmpty
beneficiary_branch_id: if($originator_branch_id/empty, notEmpty, empty or notEmpty)
beneficiary_bic: notEmpty
beneficiary_fi_name: notEmpty
beneficiary_fi_country: notEmpty
beneficiary_old_balance: if($originator_branch_id/empty, notEmpty, empty or notEmpty)
beneficiary_new_balance: if($originator_branch_id/empty, notEmpty, empty or notEmpty)
//            Amount rounded to the smallest currency unit
transaction_amount: notEmpty
//            ISO 4217
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)$")
instrument_type: any("cash","check","ach/lcy_tranfers","wire","securities","e-money/mobile_money","travellers_cheques","prepaid_cards","certified_cheques","vouchers","cashier_cheques/money_order","precious_metal","crypto/virtual_assets","interest/dividend","other")  or empty
direction: any("in", "out")  or empty
// if available this should reflect services provided to other financial institutions without a direct correspondent account.
is_downstream: any("yes","no")  or empty
// If available this should reflect transactios that are not cross border
is_domestic: any("yes","no")  or empty
// If available this should reflect transactios that are cross border
is_foreign: any("yes","no")  or empty

File Name

The file regarding transaction data should have the prefix transactions and the date for witch it represents.

transactions_YYYYMM.csv

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

transactions_201901.csv

Frequency

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

Sample Package

Download sample package here

Employee Data

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/EmployeeElement"
  },
  "efiVersion": "0.6",
  "definitions": {
    "EmployeeElement": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "employee_full_name":                       { "$ref": "#/definitions/nonEmptyString" },
        "employee_first_name":                      { "$ref": "#/definitions/nonEmptyString" },
        "employee_middle_names_patronymic":         { "$ref": "#/definitions/nonEmptyString" },
        "employee_last_name":                       { "$ref": "#/definitions/nonEmptyString" },
        "employee_id":                              { "$ref": "#/definitions/NumberOrString" },
        "employee_department":                      { "$ref": "#/definitions/nonEmptyString" },
        "employee_fincrime_primary_responsibility": { "$ref": "#/definitions/YesNoOption" },
        "employee_birthdate":                        { "$ref": "#/definitions/date" },
        "employee_email_address":                   { "$ref": "#/definitions/nonEmptyString" },
        "employee_title":                           { "type": "string" },
        "employee_manager_id":                      { "type": "string" },
        "employee_seniority":                       { "$ref": "#/definitions/EmployeeSeniority" },
        "joined_date":                              { "$ref": "#/definitions/date" },
        "exited_date":                              { "$ref": "#/definitions/MaybeDate" },
        "pep_status":                               { "$ref": "#/definitions/YesNoOption" },
        "employee_associated_pep":                  { "$ref": "#/definitions/YesNoOption" },
        "employee_outside_business_interest":       { "$ref": "#/definitions/YesNoOption" },
        "employee_outside_business_organisation":   { "type": "string" },
        "mlr_officer":                              { "$ref": "#/definitions/YesNoOption" },
        "abc_officer":                              { "$ref": "#/definitions/YesNoOption" },
        "board_member":                             { "$ref": "#/definitions/YesNoOption" },
        "entity_ubo":                               { "$ref": "#/definitions/YesNoOption" },
        "branch_id":                                { "$ref": "#/definitions/NumberOrString" }
      },
      "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",
        "entity_ubo",
        "exited_date",
        "joined_date",
        "mlr_officer",
        "pep_status"
      ],
      "title": "EmployeeElement"
    },
    "YesNoOption": {
      "type": "string",
      "enum": ["yes", "no"],
      "title": "YesNoOption"
    },
    "EmployeeSeniority": {
      "type": "string",
      "enum": ["intern", "analyst", "associate", "vice_president", "director", "managing_director"],
      "title": "EmployeeSeniority"
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [{
        "$ref": "#/definitions/nonEmptyString"
      }, {
        "type": "number"
      }]
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    },
    "MaybeDate": {
      "title": "MaybeDate",
      "oneOf": [{
        "type": "string",
        "format": "date"
      }, {
        "const": ""
      }]
    }
  }
}

version 1.1
@totalColumns 23
@separator ','
// @efi_version 0.6
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("intern","analyst","associate","vice_president","director","managing_director")
joined_date: xDate
exited_date: xDate or empty
pep_status: any("yes", "no")
employee_associated_pep: any("yes", "no")
employee_outside_business_interest: any("yes", "no")
//            if multiple add "Company 1 ; Company 2 ; Company 3"
employee_outside_business_organisation: empty or notEmpty
mlr_officer: any("yes", "no")
abc_officer: any("yes", "no")
board_member: any("yes", "no")
entity_ubo: any("yes", "no")
branch_id: notEmpty

File Name

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

employee_data_YYYYMM.csv

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

employee_data_201901.csv

Frequency

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

Sample Package

Download sample package here

SWIFT Data

You can extract data from your watch report or directly from your core bank system

If your bank has a different implementation or interpretation from the Swift standard please inform us in advance.

Employee Training & Conduct

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/EmployeeTrainingElement"
  },
  "efiVersion": "0.6",
  "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",
        "finantial_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.6
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","finantial_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 witch it represents.

employee_training_YYYYMM.csv

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

employee_training_201901.csv

Frequency

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

Sample Package

Download sample package here

Product Report

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/ProductReportElement"
  },
  "efiVersion": "0.6",
  "definitions": {
    "ProductReportElement": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "internal_product_name":                             { "$ref": "#/definitions/nonEmptyString" },
        "inherent_product_risk_level":                       { "$ref": "#/definitions/RiskLevels" },
        "product_mapped_to_elucidate_standard_product_list": { "$ref": "#/definitions/MappedProductName" },
        "percentage_of_bank_revenue":                        { "$ref": "#/definitions/NumberOrString" }
      },
      "required": [
        "inherent_product_risk_level",
        "internal_product_name",
        "percentage_of_bank_revenue",
        "product_mapped_to_elucidate_standard_product_list"
      ],
      "title": "ProductReportElement"
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "RiskLevels": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high"
      ]
    },
    "MappedProductName": {
      "type": "string",
      "enum": [
        "anonymous_prepaid_cards_with_limits_in_excess_of_usd100",
        "brokerage_services",
        "cash_clearing",
        "commercial_banking_cards",
        "commercial_banking_chequing",
        "commercial_banking_credit",
        "commercial_banking_lending",
        "commercial_banking_savings",
        "digital/virtual_assets",
        "downstream_clearing",
        "financial_markets_trading",
        "hold_mail",
        "ijara",
        "m&a",
        "murabaha",
        "other_prepaid_cards",
        "payable_through_accounts",
        "physical_banknotes",
        "pouch_services",
        "precious_metals(physical_delivery)",
        "private_banking",
        "remote_deposit_capture",
        "retail_cards",
        "retail_chequing",
        "retail_credit",
        "retail_lending",
        "retail_savings",
        "safe_deposit_services",
        "security_services/custody",
        "sukuk",
        "syndicated_loans",
        "trade_finance",
        "wadiah"
      ]
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [{
        "$ref": "#/definitions/nonEmptyString"
      }, {
        "type": "number"
      }]
    }
  }
}

version 1.1
@totalColumns 4
@separator ','
// @efi_version 0.6
internal_product_name: notEmpty
inherent_product_risk_level: any("low", "medium", "high")
product_mapped_to_elucidate_standard_product_list: any("retail_chequing","retail_savings","retail_lending","retail_credit","retail_cards","private_banking","hold_mail","safe_deposit_services","commercial_banking_chequing","commercial_banking_savings","commercial_banking_lending","commercial_banking_credit","commercial_banking_cards","trade_finance","cash_clearing","downstream_clearing","physical_banknotes","remote_deposit_capture","payable_through_accounts","pouch_services","precious_metals(physical_delivery)","syndicated_loans","brokerage_services","m&a","financial_markets_trading","security_services/custody","anonymous_prepaid_cards_with_limits_in_excess_of_usd100","other_prepaid_cards","international_cash_letter","remote_deposit_capture","virtual/digital_currencies","low_price_securities","hold_mail","cross-border_remittances","service_to_walk-in_customers(non-account_holders)","sponsoring_private_atms","crypto/virtual_assets","sukuk","ijara","wadiah","murabaha")
percentage_of_bank_revenue: notEmpty

File Name

The file regarding product report data should have the prefix product_report and the date for witch it represents.

product_report_YYYYMM.csv

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

product_report_201901.csv

Frequency

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

Sample Package

Download sample package here

Sanctions Screening

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/SanctionsScreeningElement"
  },
  "efiVersion": "0.6",
  "definitions": {
    "SanctionsScreeningElement": {
      "title": "SanctionsScreeningElement",
      "type": "object",
      "required": [
        "internal_watchlist_date_of_birth",
        "internal_watchlist_first_name",
        "internal_watchlist_full_name",
        "internal_watchlist_justification",
        "internal_watchlist_last_name",
        "internal_watchlist_middle_names_patronymic",
        "name_screening_exception_client_number",
        "name_screening_exception_closure_datetime",
        "name_screening_exception_closure_justification",
        "name_screening_exception_country_citizenship",
        "name_screening_exception_creation_datetime",
        "name_screening_exception_creation_list",
        "name_screening_exception_date_of_birth",
        "name_screening_exception_date_of_list_addition",
        "name_screening_exception_disclosed",
        "name_screening_exception_escalation_to_level_2_datetime",
        "name_screening_exception_escalation_to_level_2",
        "name_screening_exception_escalation_to_level_3_datetime",
        "name_screening_exception_escalation_to_level_3",
        "name_screening_exception_first_name",
        "name_screening_exception_full_name",
        "name_screening_exception_id",
        "name_screening_exception_last_name",
        "name_screening_exception_middle_names_patronymic",
        "name_screening_exception_place_of_birth_city",
        "name_screening_exception_place_of_birth_country",
        "name_screening_exception_rejection",
        "sanction_type",
        "transaction_screening_exception_account_number",
        "transaction_screening_exception_closure_datetime",
        "transaction_screening_exception_closure_justification",
        "transaction_screening_exception_creation_datetime",
        "transaction_screening_exception_creation_list",
        "transaction_screening_exception_currency",
        "transaction_screening_exception_disclosed",
        "transaction_screening_exception_escalation_to_level_2_datetime",
        "transaction_screening_exception_escalation_to_level_2",
        "transaction_screening_exception_escalation_to_level_3_datetime",
        "transaction_screening_exception_escalation_to_level_3",
        "transaction_screening_exception_id",
        "transaction_screening_exception_list_addition_datetime",
        "transaction_screening_exception_rejection",
        "transaction_screening_exception_transaction_id"
      ],
      "oneOf": [{
        "additionalProperties": false,
        "properties": {
          "sanction_type":                                         { "const": "transaction", "description": "Transactions" },

          "transaction_screening_exception_id":                    { "$ref": "#/definitions/NumberOrString" },
          "transaction_screening_exception_transaction_id":        { "$ref": "#/definitions/NumberOrString" },
          "transaction_screening_exception_account_number":        { "$ref": "#/definitions/NumberOrString" },
          "transaction_screening_exception_currency":              { "$ref": "#/definitions/Currency" },
          "transaction_screening_exception_creation_datetime":     { "$ref": "#/definitions/DateTime" },
          "transaction_screening_exception_creation_list":         { "$ref": "#/definitions/nonEmptyString" },
          "transaction_screening_exception_closure_datetime":      { "$ref": "#/definitions/MaybeDate" },
          "transaction_screening_exception_closure_justification": { "$ref": "#/definitions/WarnIfEmpty" },
          "transaction_screening_exception_escalation_to_level_2": { "$ref": "#/definitions/MaybeYesNo" },
          "transaction_screening_exception_escalation_to_level_2_datetime": { "$ref": "#/definitions/MaybeDate" },
          "transaction_screening_exception_escalation_to_level_3": { "$ref": "#/definitions/MaybeYesNo" },
          "transaction_screening_exception_escalation_to_level_3_datetime": { "$ref": "#/definitions/MaybeDate" },
          "transaction_screening_exception_disclosed":             { "$ref": "#/definitions/MaybeYesNo" },
          "transaction_screening_exception_rejection":             { "$ref": "#/definitions/MaybeYesNo" },
          "transaction_screening_exception_list_addition_datetime":{ "$ref": "#/definitions/DateTime" },

          "name_screening_exception_id":                           { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_client_number":                { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_full_name":                    { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_first_name":                   { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_middle_names_patronymic":      { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_last_name":                    { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_date_of_birth":                { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_place_of_birth_city":          { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_place_of_birth_country":       { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_country_citizenship":          { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_creation_datetime":            { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_creation_list":                { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_closure_datetime":             { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_closure_justification":        { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_escalation_to_level_2":        { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_escalation_to_level_2_datetime": { "$ref": "#/definitions/MaybeDate" },
          "name_screening_exception_escalation_to_level_3":        { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_escalation_to_level_3_datetime": { "$ref": "#/definitions/MaybeDate" },
          "name_screening_exception_disclosed":                    { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_rejection":                    { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_date_of_list_addition":        { "$ref": "#/definitions/emptyString" },

          "internal_watchlist_full_name":                          { "$ref": "#/definitions/emptyString" },
          "internal_watchlist_first_name":                         { "$ref": "#/definitions/emptyString" },
          "internal_watchlist_middle_names_patronymic":            { "$ref": "#/definitions/emptyString" },
          "internal_watchlist_last_name":                          { "$ref": "#/definitions/emptyString" },
          "internal_watchlist_date_of_birth":                      { "$ref": "#/definitions/emptyString" },
          "internal_watchlist_justification":                      { "$ref": "#/definitions/emptyString" }
        },
        "if": {
          "properties": {
            "transaction_screening_exception_closure_datetime":    { "$ref": "#/definitions/DateTime" }
          }
        },
        "then": {
          "properties": {
            "transaction_screening_exception_escalation_to_level_2": { "$ref": "#/definitions/YesNoOption" },
            "transaction_screening_exception_escalation_to_level_3": { "$ref": "#/definitions/YesNoOption" },
            "transaction_screening_exception_disclosed":             { "$ref": "#/definitions/YesNoOption" },
            "transaction_screening_exception_rejection":             { "$ref": "#/definitions/YesNoOption" }
          }
        }
      }, {
        "additionalProperties": false,
        "properties": {
          "sanction_type":                                         { "const": "name", "description": "Name" },

          "transaction_screening_exception_id":                    { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_transaction_id":        { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_account_number":        { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_currency":              { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_creation_datetime":         { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_creation_list":         { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_closure_datetime":      { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_closure_justification": { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_escalation_to_level_2": { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_escalation_to_level_2_datetime": { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_escalation_to_level_3": { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_escalation_to_level_3_datetime": { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_disclosed":             { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_rejection":             { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_list_addition_datetime":    { "$ref": "#/definitions/emptyString" },

          "name_screening_exception_id":                           { "$ref": "#/definitions/NumberOrString"},
          "name_screening_exception_client_number":                { "type": "string" },
          "name_screening_exception_full_name":                    { "type": "string" },
          "name_screening_exception_first_name":                   { "type": "string" },
          "name_screening_exception_middle_names_patronymic":      { "type": "string" },
          "name_screening_exception_last_name":                    { "type": "string" },
          "name_screening_exception_date_of_birth":                { "type": "string" },
          "name_screening_exception_place_of_birth_city":          { "type": "string" },
          "name_screening_exception_place_of_birth_country":       { "type": "string" },
          "name_screening_exception_country_citizenship":          { "type": "string" },
          "name_screening_exception_creation_datetime":            { "$ref": "#/definitions/DateTime" },
          "name_screening_exception_creation_list":                { "$ref": "#/definitions/nonEmptyString" },
          "name_screening_exception_closure_datetime":             { "$ref": "#/definitions/MaybeDate" },
          "name_screening_exception_closure_justification":        { "$ref": "#/definitions/WarnIfEmpty" },
          "name_screening_exception_escalation_to_level_2":        { "$ref": "#/definitions/MaybeYesNo" },
          "name_screening_exception_escalation_to_level_2_datetime": { "$ref": "#/definitions/MaybeDate" },
          "name_screening_exception_escalation_to_level_3":        { "$ref": "#/definitions/MaybeYesNo" },
          "name_screening_exception_escalation_to_level_3_datetime": { "$ref": "#/definitions/MaybeDate" },
          "name_screening_exception_disclosed":                    { "$ref": "#/definitions/MaybeYesNo" },
          "name_screening_exception_rejection":                    { "$ref": "#/definitions/MaybeYesNo" },
          "name_screening_exception_date_of_list_addition":        { "$ref": "#/definitions/date" },

          "internal_watchlist_full_name":                          { "$ref": "#/definitions/emptyString" },
          "internal_watchlist_first_name":                         { "$ref": "#/definitions/emptyString" },
          "internal_watchlist_middle_names_patronymic":            { "$ref": "#/definitions/emptyString" },
          "internal_watchlist_last_name":                          { "$ref": "#/definitions/emptyString" },
          "internal_watchlist_date_of_birth":                      { "$ref": "#/definitions/emptyString" },
          "internal_watchlist_justification":                      { "$ref": "#/definitions/emptyString" }
        },
        "allOf": [{
          "if": {
            "properties": {
              "name_screening_exception_closure_datetime":           { "$ref": "#/definitions/DateTime" }
            }
          },
          "then": {
            "properties": {
              "name_screening_exception_escalation_to_level_2":     { "$ref": "#/definitions/YesNoOption" },
              "name_screening_exception_escalation_to_level_3":     { "$ref": "#/definitions/YesNoOption" },
              "name_screening_exception_disclosed":                 { "$ref": "#/definitions/YesNoOption" },
              "name_screening_exception_rejection":                 { "$ref": "#/definitions/YesNoOption" }
            }
          }
        }, {
          "if": {
            "properties": {
              "name_screening_exception_client_number":             { "$ref": "#/definitions/emptyString" }
            }
          },
          "then": {
            "properties": {
              "name_screening_exception_full_name":                 { "$ref": "#/definitions/nonEmptyString" },
              "name_screening_exception_first_name":                { "$ref": "#/definitions/nonEmptyString" },
              "name_screening_exception_middle_names_patronymic":   { "type": "string" },
              "name_screening_exception_last_name":                 { "$ref": "#/definitions/nonEmptyString" },
              "name_screening_exception_date_of_birth":             { "$ref": "#/definitions/date" },
              "name_screening_exception_place_of_birth_city":       { "$ref": "#/definitions/nonEmptyString" },
              "name_screening_exception_place_of_birth_country":    { "$ref": "#/definitions/Country" },
              "name_screening_exception_country_citizenship":       { "$ref": "#/definitions/Country" }
            }
          }
        }, {
          "if": {
            "properties": {
              "name_screening_exception_full_name":             { "$ref": "#/definitions/emptyString" }
            }
          },
          "then": {
            "properties": {
              "name_screening_exception_client_number":             { "$ref": "#/definitions/nonEmptyString" }
            }
          }
        }]
      }, {
        "additionalProperties": false,
        "properties": {
          "sanction_type":                                         { "const": "internal", "description": "Internal watchlist" },

          "transaction_screening_exception_id":                    { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_transaction_id":        { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_account_number":        { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_currency":              { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_creation_datetime":     { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_creation_list":         { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_closure_datetime":      { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_closure_justification": { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_escalation_to_level_2": { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_escalation_to_level_2_datetime": { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_escalation_to_level_3": { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_escalation_to_level_3_datetime": { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_disclosed":             { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_rejection":             { "$ref": "#/definitions/emptyString" },
          "transaction_screening_exception_list_addition_datetime":{ "$ref": "#/definitions/emptyString" },

          "name_screening_exception_id":                           { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_client_number":                { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_full_name":                    { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_first_name":                   { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_middle_names_patronymic":      { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_last_name":                    { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_date_of_birth":                { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_place_of_birth_city":          { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_place_of_birth_country":       { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_country_citizenship":          { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_creation_datetime":            { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_creation_list":                { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_closure_datetime":             { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_closure_justification":        { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_escalation_to_level_2":        { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_escalation_to_level_2_datetime": { "$ref": "#/definitions/MaybeDate" },
          "name_screening_exception_escalation_to_level_3":        { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_escalation_to_level_3_datetime": { "$ref": "#/definitions/MaybeDate" },
          "name_screening_exception_disclosed":                    { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_rejection":                    { "$ref": "#/definitions/emptyString" },
          "name_screening_exception_date_of_list_addition":        { "$ref": "#/definitions/emptyString" },

          "internal_watchlist_full_name":                          { "$ref": "#/definitions/nonEmptyString" },
          "internal_watchlist_first_name":                         { "$ref": "#/definitions/nonEmptyString" },
          "internal_watchlist_middle_names_patronymic":            { "type": "string" },
          "internal_watchlist_last_name":                          { "$ref": "#/definitions/nonEmptyString" },
          "internal_watchlist_date_of_birth":                      { "$ref": "#/definitions/date" },
          "internal_watchlist_justification":                      { "$ref": "#/definitions/WarnIfEmpty" }
        }
      }]
    },
    "YesNoOption": {
      "type": "string",
      "enum": ["no", "yes"],
      "title": "YesNoOption"
    },
    "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": [{
        "$ref": "#/definitions/date"
      }, {
        "$ref": "#/definitions/DateTime"
      }, {
        "const": ""
      }]
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "emptyString": {
      "const": ""
    },
    "WarnIfEmpty": {
      "type": "string",
      "title": "Warning if empty",
      "description": "Recommended to have"
    }
  }
}

version 1.1
@totalColumns 43
@separator ','
// @efi_version 0.6
sanction_type: any("internal", "transaction", "name")
transaction_screening_exception_id: if($sanction_type/is("transaction"),notEmpty, empty)
transaction_screening_exception_transaction_id: if($sanction_type/is("transaction"),notEmpty, empty)
transaction_screening_exception_account_number: if($sanction_type/is("transaction"),notEmpty, empty)
//            ISO 4217
transaction_screening_exception_currency: if($sanction_type/is("transaction"),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)
transaction_screening_exception_creation_datetime: if($sanction_type/is("transaction"), xDateTimeTz, empty)
//            if multiple add "internal_list; OFAC; EU"
transaction_screening_exception_creation_list: if($sanction_type/is("transaction"),notEmpty, empty)
transaction_screening_exception_closure_datetime: if($sanction_type/is("transaction"),xDateTimeTz or empty, empty)
transaction_screening_exception_closure_justification: if($transaction_screening_exception_closure_datetime/notEmpty,notEmpty, empty) @warning
//            Level 2: Investigation
transaction_screening_exception_escalation_to_level_2: if($sanction_type/is("transaction"), if($transaction_screening_exception_closure_datetime/notEmpty , any("yes","no"), any("yes","no", "")), empty)
transaction_screening_exception_escalation_to_level_2_datetime: if($sanction_type/is("transaction"), if($transaction_screening_exception_closure_datetime/notEmpty , xDateTimeTz or empty, xDateTimeTz or empty), empty)
//            Level 3: Recommend disclosure
transaction_screening_exception_escalation_to_level_3: if($sanction_type/is("transaction"), if($transaction_screening_exception_closure_datetime/notEmpty , any("yes","no"), any("yes","no", "")), empty)
transaction_screening_exception_escalation_to_level_3_datetime: if($sanction_type/is("transaction"), if($transaction_screening_exception_closure_datetime/notEmpty , xDateTimeTz or empty, xDateTimeTz or empty), empty)
transaction_screening_exception_disclosed: if($sanction_type/is("transaction"), if($transaction_screening_exception_closure_datetime/notEmpty , any("yes","no"), any("yes","no", "")), empty)
transaction_screening_exception_rejection: if($sanction_type/is("transaction"), if($transaction_screening_exception_closure_datetime/notEmpty , any("yes","no"), any("yes","no", "")), empty)
transaction_screening_exception_list_addition_datetime: if($sanction_type/is("transaction"),xDateTimeTz, empty)
//             name screaning
name_screening_exception_id: if($sanction_type/is("name"),notEmpty, empty)
//            Client number from customer_data file
name_screening_exception_client_number: if($sanction_type/is("name") and $name_screening_exception_full_name/empty,notEmpty, empty)
//            If no client number available, add client details
name_screening_exception_full_name: if($sanction_type/is("name") and $name_screening_exception_client_number/empty,notEmpty,empty)
name_screening_exception_first_name: if($sanction_type/is("name") and $name_screening_exception_client_number/empty,notEmpty,empty)
name_screening_exception_middle_names_patronymic: if($sanction_type/is("name") and $name_screening_exception_client_number/empty,notEmpty or empty,empty)
name_screening_exception_last_name: if($sanction_type/is("name") and $name_screening_exception_client_number/empty,notEmpty,empty)
name_screening_exception_date_of_birth : if($sanction_type/is("name") and $name_screening_exception_client_number/empty,xDate,empty)
name_screening_exception_place_of_birth_city : if($sanction_type/is("name") and $name_screening_exception_client_number/empty,notEmpty,empty)
name_screening_exception_place_of_birth_country : if($sanction_type/is("name") and $name_screening_exception_client_number/empty, 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)
name_screening_exception_country_citizenship: if($sanction_type/is("name") and $name_screening_exception_client_number/empty,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)
name_screening_exception_creation_datetime: if($sanction_type/is("name") and $sanction_type/is("name"),xDateTimeTz, empty)
//            if multiple add "internal_list; OFAC; EU"
name_screening_exception_creation_list: if($sanction_type/is("name"),notEmpty, empty)
name_screening_exception_closure_datetime: if($sanction_type/is("name"),xDateTimeTz or empty, empty)
name_screening_exception_closure_justification: if($name_screening_exception_closure_datetime/notEmpty,notEmpty, empty) @warning
//            Level 2: Investigation
name_screening_exception_escalation_to_level_2: if($sanction_type/is("name"), if($name_screening_exception_closure_datetime/notEmpty , any("yes","no"), any("yes","no", "")), empty)
name_screening_exception_escalation_to_level_2_datetime: if($sanction_type/is("name"), if($name_screening_exception_closure_datetime/notEmpty , xDateTimeTz or empty, xDateTimeTz or empty), empty)
//            Level 3: Recommend Disclosure
name_screening_exception_escalation_to_level_3: if($sanction_type/is("name"), if($name_screening_exception_closure_datetime/notEmpty , any("yes","no"), any("yes","no", "")), empty)
name_screening_exception_escalation_to_level_3_datetime: if($sanction_type/is("name"), if($name_screening_exception_closure_datetime/notEmpty , xDateTimeTz or empty, xDateTimeTz or empty), empty)
name_screening_exception_disclosed: if($sanction_type/is("name"), if($name_screening_exception_closure_datetime/notEmpty , any("yes","no"), any("yes","no", "")), empty)
name_screening_exception_rejection: if($sanction_type/is("name"), if($name_screening_exception_closure_datetime/notEmpty , any("yes","no"), any("yes","no", "")), empty)
name_screening_exception_date_of_list_addition: if($sanction_type/is("name"),xDate, empty)
//                    internal watchlist
internal_watchlist_full_name: if($sanction_type/is("internal"),notEmpty, empty)
internal_watchlist_first_name: if($sanction_type/is("internal"),notEmpty, empty)
internal_watchlist_middle_names_patronymic: if($sanction_type/is("internal"),notEmpty or empty, empty)
internal_watchlist_last_name: if($sanction_type/is("internal"),notEmpty, empty)
internal_watchlist_date_of_birth: if($sanction_type/is("internal"),xDate, empty)
internal_watchlist_justification: if($sanction_type/is("internal"),notEmpty, empty) @warning

File Name

The file regarding sanctions screening data should have the prefix sanctions_screening and the date for witch it represents.

sanctions_screening_YYYYMM.csv

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

sanctions_screening_201901.csv

Frequency

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

Sample Package

Download sample package here

Transaction Monitoring

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/TransactionsMonitoringElement"
  },
  "efiVersion": "0.6",
  "definitions": {
    "TransactionsMonitoringElement": {
      "type": "object",
      "title": "TransactionsMonitoringElement",
      "required": [
        "automated_exception_id",
        "automated_exception_closure_datetime",
        "automated_exception_closure_justification",
        "automated_exception_creation_datetime",
        "automated_exception_escalation_to_level_3",
        "automated_exception_escalation_to_level_3_datetime",
        "automated_exception_escalation_to_level_2",
        "automated_exception_escalation_to_level_2_datetime",
        "automated_exception_originator_account_number",
        "automated_exception_reviewer_employee_id",
        "automated_exception_scenario",
        "automated_exception_transaction_id",
        "ctr_account_number",
        "ctr_datetime",
        "ctr_transaction_id",
        "incoming_rfi_id",
        "incoming_rfi_channel",
        "incoming_rfi_datetime_of_receipt",
        "incoming_rfi_response_channel",
        "incoming_rfi_response_justification",
        "incoming_rfi_response_datetime",
        "incoming_rfi_reviewer_employee_id",
        "incoming_rfi_subject_account_number",
        "incoming_rfi_submitting_institution_bic",
        "incoming_rfi_transaction_id",
        "manual_exception_id",
        "manual_exception_closure_datetime",
        "manual_exception_closure_justification",
        "manual_exception_creation_datetime",
        "manual_exception_reviewer_employee_id",
        "manual_exception_submitter_employee_id",
        "manual_exception_escalation_to_level_2",
        "manual_exception_escalation_to_level_2_datetime",
        "manual_exception_escalation_to_level_3",
        "manual_exception_escalation_to_level_3_datetime",
        "manual_exception_transaction_id",
        "type_of_exception"
      ],
      "oneOf": [{
        "additionalProperties": false,
        "properties": {
          "type_of_exception":                             { "const": "automated", "description": "Automated" },
          "automated_exception_id":                        { "$ref": "#/definitions/NumberOrString" },
          "automated_exception_transaction_id":            { "$ref": "#/definitions/NumberOrString" },
          "automated_exception_scenario":                  { "$ref": "#/definitions/nonEmptyString" },
          "automated_exception_originator_account_number": { "$ref": "#/definitions/NumberOrString" },
          "automated_exception_creation_datetime":             { "$ref": "#/definitions/date" },
          "automated_exception_closure_datetime":              { "$ref": "#/definitions/MaybeDate" },
          "automated_exception_closure_justification":     { "$ref": "#/definitions/WarnIfEmpty" },
          "automated_exception_escalation_to_level_2":     { "$ref": "#/definitions/MaybeYesNo" },
          "automated_exception_escalation_to_level_2_datetime":     { "$ref": "#/definitions/MaybeDate" },
          "automated_exception_escalation_to_level_3":     { "$ref": "#/definitions/MaybeYesNo" },
          "automated_exception_escalation_to_level_3_datetime":     { "$ref": "#/definitions/MaybeDate" },
          "automated_exception_reviewer_employee_id":      { "$ref": "#/definitions/WarnIfEmpty" },

          "manual_exception_id":                           { "$ref": "#/definitions/emptyString" },
          "manual_exception_submitter_employee_id":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_transaction_id":               { "$ref": "#/definitions/emptyString" },
          "manual_exception_creation_datetime":                         { "$ref": "#/definitions/emptyString" },
          "manual_exception_closure_datetime":                 { "$ref": "#/definitions/emptyString" },
          "manual_exception_closure_justification":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_escalation_to_level_2":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_escalation_to_level_2_datetime":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_escalation_to_level_3":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_escalation_to_level_3_datetime":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_reviewer_employee_id":         { "$ref": "#/definitions/emptyString" },

          "incoming_rfi_id":                               { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_submitting_institution_bic":       { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_datetime_of_receipt":                  { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_subject_account_number":           { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_channel":                          { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_transaction_id":                   { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_response_datetime":                    { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_response_channel":                 { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_response_justification":           { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_reviewer_employee_id":             { "$ref": "#/definitions/emptyString" },

          "ctr_datetime":                                      { "$ref": "#/definitions/emptyString" },
          "ctr_transaction_id":                            { "$ref": "#/definitions/emptyString" },
          "ctr_account_number":                            { "$ref": "#/definitions/emptyString" }
        },
        "if": {
          "properties": {
            "automated_exception_closure_datetime":            { "$ref": "#/definitions/date" }
          }
        },
        "then": {
          "properties": {
            "automated_exception_closure_justification":   { "$ref": "#/definitions/WarnIfEmpty" },
            "automated_exception_escalation_to_level_2":   { "$ref": "#/definitions/YesNoOption" },
            "automated_exception_escalation_to_level_3":   { "$ref": "#/definitions/YesNoOption" },
            "automated_exception_reviewer_employee_id":    { "$ref": "#/definitions/WarnIfEmpty" }
          }
        }
      }, {
        "additionalProperties": false,
        "properties": {
          "type_of_exception":                             { "const": "manual", "description": "Manually triggered" },
          "automated_exception_id":                        { "$ref": "#/definitions/emptyString" },
          "automated_exception_transaction_id":            { "$ref": "#/definitions/emptyString" },
          "automated_exception_scenario":                  { "$ref": "#/definitions/emptyString" },
          "automated_exception_originator_account_number": { "$ref": "#/definitions/emptyString" },
          "automated_exception_creation_datetime":             { "$ref": "#/definitions/emptyString" },
          "automated_exception_closure_datetime":              { "$ref": "#/definitions/emptyString" },
          "automated_exception_closure_justification":     { "$ref": "#/definitions/emptyString" },
          "automated_exception_escalation_to_level_2":     { "$ref": "#/definitions/emptyString" },
          "automated_exception_escalation_to_level_2_datetime":{ "$ref": "#/definitions/date" },
          "automated_exception_escalation_to_level_3":     { "$ref": "#/definitions/emptyString" },
          "automated_exception_escalation_to_level_3_datetime":{ "$ref": "#/definitions/date" },
          "automated_exception_reviewer_employee_id":      { "$ref": "#/definitions/emptyString" },

          "manual_exception_id":                           { "$ref": "#/definitions/NumberOrString" },
          "manual_exception_submitter_employee_id":        { "$ref": "#/definitions/NumberOrString" },
          "manual_exception_transaction_id":               { "$ref": "#/definitions/NumberOrString" },
          "manual_exception_creation_datetime":                         { "$ref": "#/definitions/date" },
          "manual_exception_closure_datetime":                 { "$ref": "#/definitions/MaybeDate" },
          "manual_exception_closure_justification":        { "$ref": "#/definitions/WarnIfEmpty" },
          "manual_exception_escalation_to_level_2":        { "$ref": "#/definitions/MaybeYesNo" },
          "manual_exception_escalation_to_level_2_datetime":   { "$ref": "#/definitions/date" },
          "manual_exception_escalation_to_level_3":        { "$ref": "#/definitions/MaybeYesNo" },
          "manual_exception_escalation_to_level_3_datetime":   { "$ref": "#/definitions/date" },
          "manual_exception_reviewer_employee_id":         { "$ref": "#/definitions/WarnIfEmpty" },

          "incoming_rfi_id":                               { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_submitting_institution_bic":       { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_datetime_of_receipt":                  { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_subject_account_number":           { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_channel":                          { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_transaction_id":                   { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_response_datetime":                    { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_response_channel":                 { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_response_justification":           { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_reviewer_employee_id":             { "$ref": "#/definitions/emptyString" },

          "ctr_datetime":                                      { "$ref": "#/definitions/emptyString" },
          "ctr_transaction_id":                            { "$ref": "#/definitions/emptyString" },
          "ctr_account_number":                            { "$ref": "#/definitions/emptyString" }
        },
        "if": {
          "properties": {
            "automated_exception_closure_datetime":            { "$ref": "#/definitions/date" }
          }
        },
        "then": {
          "properties": {
            "manual_exception_escalation_to_level_2":      { "$ref": "#/definitions/YesNoOption" },
            "manual_exception_escalation_to_level_3":      { "$ref": "#/definitions/YesNoOption" }
          }
        }
      }, {
        "additionalProperties": false,
        "properties": {
          "type_of_exception":                             { "const": "rfi", "description": "Request for information" },
          "automated_exception_id":                        { "$ref": "#/definitions/emptyString" },
          "automated_exception_transaction_id":            { "$ref": "#/definitions/emptyString" },
          "automated_exception_scenario":                  { "$ref": "#/definitions/emptyString" },
          "automated_exception_originator_account_number": { "$ref": "#/definitions/emptyString" },
          "automated_exception_creation_datetime":             { "$ref": "#/definitions/emptyString" },
          "automated_exception_closure_datetime":              { "$ref": "#/definitions/emptyString" },
          "automated_exception_closure_justification":     { "$ref": "#/definitions/emptyString" },
          "automated_exception_escalation_to_level_2":     { "$ref": "#/definitions/emptyString" },
          "automated_exception_escalation_to_level_2_datetime":     { "$ref": "#/definitions/emptyString" },
          "automated_exception_escalation_to_level_3":     { "$ref": "#/definitions/emptyString" },
          "automated_exception_escalation_to_level_3_datetime":     { "$ref": "#/definitions/emptyString" },
          "automated_exception_reviewer_employee_id":      { "$ref": "#/definitions/emptyString" },

          "manual_exception_id":                           { "$ref": "#/definitions/emptyString" },
          "manual_exception_submitter_employee_id":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_transaction_id":               { "$ref": "#/definitions/emptyString" },
          "manual_exception_creation_datetime":                         { "$ref": "#/definitions/emptyString" },
          "manual_exception_closure_datetime":                 { "$ref": "#/definitions/emptyString" },
          "manual_exception_closure_justification":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_escalation_to_level_2":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_escalation_to_level_2_datetime":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_escalation_to_level_3":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_escalation_to_level_3_datetime":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_reviewer_employee_id":         { "$ref": "#/definitions/emptyString" },

          "incoming_rfi_id":                               { "$ref": "#/definitions/NumberOrString" },
          "incoming_rfi_submitting_institution_bic":       { "$ref": "#/definitions/BIC" },
          "incoming_rfi_datetime_of_receipt":                  { "$ref": "#/definitions/date" },
          "incoming_rfi_subject_account_number":           { "$ref": "#/definitions/NumberOrString" },
          "incoming_rfi_channel":                          { "$ref": "#/definitions/RfiChannel" },
          "incoming_rfi_transaction_id":                   { "$ref": "#/definitions/NumberOrString" },
          "incoming_rfi_response_datetime":                    { "$ref": "#/definitions/MaybeDate" },
          "incoming_rfi_response_channel":                 { "$ref": "#/definitions/WarnIfEmpty" },
          "incoming_rfi_response_justification":           { "$ref": "#/definitions/WarnIfEmpty" },
          "incoming_rfi_reviewer_employee_id":             { "$ref": "#/definitions/WarnIfEmpty" },

          "ctr_datetime":                                      { "$ref": "#/definitions/emptyString" },
          "ctr_transaction_id":                            { "$ref": "#/definitions/emptyString" },
          "ctr_account_number":                            { "$ref": "#/definitions/emptyString" }
        }
      }, {
        "additionalProperties": false,
        "properties": {
          "type_of_exception":                             { "const": "ctr", "description": "Currency Transaction Report" },
          "automated_exception_id":                        { "$ref": "#/definitions/emptyString" },
          "automated_exception_transaction_id":            { "$ref": "#/definitions/emptyString" },
          "automated_exception_scenario":                  { "$ref": "#/definitions/emptyString" },
          "automated_exception_originator_account_number": { "$ref": "#/definitions/emptyString" },
          "automated_exception_creation_datetime":             { "$ref": "#/definitions/emptyString" },
          "automated_exception_closure_datetime":              { "$ref": "#/definitions/emptyString" },
          "automated_exception_closure_justification":     { "$ref": "#/definitions/emptyString" },
          "automated_exception_escalation_to_level_2":     { "$ref": "#/definitions/emptyString" },
          "automated_exception_escalation_to_level_2_datetime":     { "$ref": "#/definitions/emptyString" },
          "automated_exception_escalation_to_level_3":     { "$ref": "#/definitions/emptyString" },
          "automated_exception_escalation_to_level_3_datetime":     { "$ref": "#/definitions/emptyString" },
          "automated_exception_reviewer_employee_id":      { "$ref": "#/definitions/emptyString" },

          "manual_exception_id":                           { "$ref": "#/definitions/emptyString" },
          "manual_exception_submitter_employee_id":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_transaction_id":               { "$ref": "#/definitions/emptyString" },
          "manual_exception_creation_datetime":                         { "$ref": "#/definitions/emptyString" },
          "manual_exception_closure_datetime":                 { "$ref": "#/definitions/emptyString" },
          "manual_exception_closure_justification":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_escalation_to_level_2":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_escalation_to_level_2_datetime":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_escalation_to_level_3":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_escalation_to_level_3_datetime":        { "$ref": "#/definitions/emptyString" },
          "manual_exception_reviewer_employee_id":         { "$ref": "#/definitions/emptyString" },

          "incoming_rfi_id":                               { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_submitting_institution_bic":       { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_datetime_of_receipt":                  { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_subject_account_number":           { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_channel":                          { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_transaction_id":                   { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_response_datetime":                    { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_response_channel":                 { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_response_justification":           { "$ref": "#/definitions/emptyString" },
          "incoming_rfi_reviewer_employee_id":             { "$ref": "#/definitions/emptyString" },

          "ctr_datetime":                                      { "$ref": "#/definitions/date" },
          "ctr_transaction_id":                            { "$ref": "#/definitions/nonEmptyString" },
          "ctr_account_number":                            { "$ref": "#/definitions/nonEmptyString" }
        }
      }]
    },
    "RfiChannel": {
      "type": "string",
      "enum": ["swift", "e-mail", "mail"],
      "title": "RfiChannel"
    },
    "YesNoOption": {
      "type": "string",
      "enum": ["no", "yes"],
      "title": "YesNoOption"
    },
    "MaybeYesNo": {
      "anyOf": [{
        "$ref": "#/definitions/YesNoOption"
      }, {
        "$ref": "#/definitions/emptyString"
      }]
    },
    "NumberOrString": {
      "title": "NumberOrString",
      "oneOf": [{
        "$ref": "#/definitions/nonEmptyString"
      }, {
        "type": "number"
      }]
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    },
    "MaybeDate": {
      "title": "MaybeDate",
      "oneOf": [{
        "$ref": "#/definitions/date"
      }, {
        "const": ""
      }]
    },
    "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})?)?"
    }
  }
}

version 1.1
@totalColumns 37
@separator ','
// @efi_version 0.6
//            When exception is trigered automatically
//
//            internal identifier
type_of_exception: any("automated", "manual", "rfi", "ctr")
automated_exception_id: if($type_of_exception/is("automated"), notEmpty ,empty)
automated_exception_transaction_id: if($type_of_exception/is("automated"), notEmpty ,empty)
automated_exception_scenario: if($type_of_exception/is("automated"), notEmpty ,empty)
automated_exception_originator_account_number: if($type_of_exception/is("automated"), notEmpty ,empty)
automated_exception_creation_datetime: if($type_of_exception/is("automated"), xDateTimeTz ,empty)
automated_exception_closure_datetime: if($type_of_exception/is("automated"), xDateTimeTz or empty ,empty)
automated_exception_closure_justification: if($type_of_exception/is("automated")and $automated_exception_closure_datetime/notEmpty, notEmpty ,empty) @warning
//            investigation
automated_exception_escalation_to_level_2: if($type_of_exception/is("automated"),if($automated_exception_closure_datetime/notEmpty ,any("yes","no"), any("yes","no", "")),empty)
automated_exception_escalation_to_level_2_datetime: if($type_of_exception/is("automated"),if($automated_exception_closure_datetime/notEmpty , xDateTimeTz, xDateTimeTz or empty),empty) @warning
//            recommend disclosure
automated_exception_escalation_to_level_3: if($type_of_exception/is("automated"),if($automated_exception_closure_datetime/notEmpty ,any("yes","no"), any("yes","no", "")),empty) @warning
automated_exception_escalation_to_level_3_datetime: if($type_of_exception/is("automated"),if($automated_exception_closure_datetime/notEmpty,xDateTimeTz, xDateTimeTz or empty),empty) @warning
//            Employee id of the reviewer or reviewers
//            if multiple reviewrs add "id1 ; id2 ; id3"
automated_exception_reviewer_employee_id: if($type_of_exception/is("automated") and $automated_exception_closure_datetime/notEmpty, notEmpty,empty) @warning
//
//            When exception is manually trigered
manual_exception_id: if($type_of_exception/is("manual"), notEmpty ,empty)
manual_exception_submitter_employee_id: if($type_of_exception/is("manual"), notEmpty ,empty)
manual_exception_transaction_id: if($type_of_exception/is("manual"), notEmpty ,empty)
manual_exception_creation_datetime: if($type_of_exception/is("manual"), xDateTimeTz ,empty)
manual_exception_closure_datetime: if($type_of_exception/is("manual"), xDateTimeTz or empty ,empty)
manual_exception_closure_justification: if($type_of_exception/is("manual") and $manual_exception_closure_datetime/notEmpty, notEmpty ,empty) @warning
//            Level 2: investigation
manual_exception_escalation_to_level_2: if($type_of_exception/is("manual"), if( $manual_exception_closure_datetime/notEmpty, any("yes","no"), any("yes","no", "")),empty) @warning
manual_exception_escalation_to_level_2_datetime: if($type_of_exception/is("manual"), if( $manual_exception_closure_datetime/notEmpty, xDateTimeTz , xDateTimeTz or empty),empty) @warning
//            Level 3: recommend disclosure
manual_exception_escalation_to_level_3: if($type_of_exception/is("manual"), if( $manual_exception_closure_datetime/notEmpty, any("yes","no"), any("yes","no", "")),empty) @warning
manual_exception_escalation_to_level_3_datetime: if($type_of_exception/is("manual"), if( $manual_exception_closure_datetime/notEmpty,xDateTimeTz, xDateTimeTz or empty),empty) @warning
//            Employee id of the reviewer or reviewers
//            if multiple reviewrs add "id1 ; id2 ; id3"
manual_exception_reviewer_employee_id: if($type_of_exception/is("manual") and $manual_exception_closure_datetime/notEmpty, notEmpty ,empty)
//            Request for Information
incoming_rfi_id: if($type_of_exception/is("rfi"), notEmpty ,empty)
//            BIC code ISO 9362
incoming_rfi_submitting_institution_bic: if($type_of_exception/is("rfi"), regex("([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)") ,empty)
incoming_rfi_datetime_of_receipt: if($type_of_exception/is("rfi"), xDateTimeTz ,empty)
incoming_rfi_subject_account_number: if($type_of_exception/is("rfi"), notEmpty ,empty)
incoming_rfi_channel: if($type_of_exception/is("rfi"), any("swift", "e-mail", "mail") ,empty)
incoming_rfi_transaction_id: if($type_of_exception/is("rfi"), notEmpty ,empty)
incoming_rfi_response_datetime: if($type_of_exception/is("rfi"), xDateTimeTz or empty,empty)
incoming_rfi_response_channel: if($type_of_exception/is("rfi") and $incoming_rfi_channel/notEmpty, any("swift", "e-mail", "mail") ,empty) @warning
incoming_rfi_response_justification: if($type_of_exception/is("rfi") and $incoming_rfi_channel/notEmpty, notEmpty ,empty) @warning
//            Employee id of the reviewer or reviewers
//            if multiple reviewrs add "id1 ; id2 ; id3"
incoming_rfi_reviewer_employee_id: if($type_of_exception/is("rfi") and $incoming_rfi_channel/notEmpty, notEmpty ,empty) @warning
//            Currency Transaction Report
ctr_datetime: if($type_of_exception/is("ctr"), xDateTimeTz ,empty)
ctr_transaction_id: if($type_of_exception/is("ctr"), notEmpty ,empty)
ctr_account_number: if($type_of_exception/is("ctr"), notEmpty ,empty)

File Name

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

transactions_monitoring_YYYYMMDD.csv

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

transactions_monitoring_20180131.csv

Frequency

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

Sample Package

Download sample package here

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"
      ],
      "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" }
        }
      }, {
        "additionalProperties": false,
        "properties": {
          "affiliate_type":                 { "const": "subsidiary", "description": "Subsidiary" },

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

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

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

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

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

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

version 1.1
@totalColumns 15
@separator ','
// @efi_version 0.6
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)

File Name

The file regarding affiliates report data should have the prefix affiliates_report and the date for witch it represents.

affiliates_report_YYYYMM.csv

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

affiliates_report_201901.csv

Frequency

After initial submission, submitted monthly with all affiliate relations.

Sample Package

Download sample package here

Vendors

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/VendorElement"
  },
  "efiVersion": "0.6",
  "definitions": {
    "VendorElement": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "third_party_vendor_name":                              { "$ref": "#/definitions/nonEmptyString" },
        "fincrime_responsibility":                              { "$ref": "#/definitions/YesNoOption" },
        "service_provided":                                     { "$ref": "#/definitions/ServiceProvided" },
        "vendor_website":                                       { "$ref": "#/definitions/nonEmptyString" },
        "vendor_address":                                       { "$ref": "#/definitions/nonEmptyString" },
        "vendor_subject_to_audit":                              { "$ref": "#/definitions/YesNoOption" },
        "vendor_subject_to_fincrime_training":                  { "$ref": "#/definitions/YesNoOption" },
        "contract_start_date":                                  { "$ref": "#/definitions/date" },
        "contract_end_date":                                    { "$ref": "#/definitions/MaybeDate" }
      },
      "required": [
        "contract_end_date",
        "contract_start_date",
        "fincrime_responsibility",
        "service_provided",
        "third_party_vendor_name",
        "vendor_address",
        "vendor_subject_to_audit",
        "vendor_subject_to_fincrime_training",
        "vendor_website"
      ],
      "title": "VendorElement"
    },
    "ServiceProvided": {
      "title": "ServiceProvided",
      "type": "string",
      "enum": [
        "card_acquiring_and_management",
        "consulting",
        "due_diligence_services",
        "hr_and_recruiting",
        "financial_intermediary",
        "legal_advisory_services",
        "notarial_services",
        "fund_service_providers",
        "technology_provider",
        "sub_contractor",
        "other_third_parties_with_critical_activities_payments_clearing_settlements_custody_etc"
      ]
    },
    "YesNoOption": {
      "type": "string",
      "enum": ["no", "yes"],
      "title": "YesNoOption"
    },
    "date": {
      "title": "date",
      "type": "string",
      "format": "date"
    },
    "MaybeDate": {
      "title": "MaybeDate",
      "oneOf": [{
        "$ref": "#/definitions/date"
      }, {
        "const": ""
      }]
    },
    "nonEmptyString": {
      "type": "string",
      "minLength": 1
    },
    "emptyString": {
      "const": ""
    }
  }
}

version 1.1
@totalColumns 9
@separator ','
// @efi_version 0.6
third_party_vendor_name: notEmpty
fincrime_responsibility: any("yes", "no")
service_provided: any("card_acquiring_and_management","consulting","due_diligence_services","hr_and_recruiting","financial_intermediary","legal_advisory_services","notarial_services","fund_service_providers","technology_provider","sub_contractor","other_third_parties_with_critical_activities_payments_clearing_settlements_custody_etc")
vendor_website: notEmpty
vendor_address: notEmpty
vendor_subject_to_audit: any("yes", "no")
vendor_subject_to_fincrime_training: any("yes", "no")
contract_start_date: xDate
contract_end_date: xDate or empty

File Name

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

vendors_YYYYMM.csv

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

vendors_201901.csv

Frequency

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

Sample Package

Download sample package here.

Common Types

Employee ID, Numeric values

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

Country

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

Currency

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

Date or empty string

"MaybeDate": {
  "title": "MaybeDate",
  "oneOf": [{
    "type": "string",
    "format": "date"
  }, {
    "const": ""
  }]
}

Date-time

"DateTime": {
  "title": "date",
  "type": "string",
  "format": "date-time"
}

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

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": [
    "ceis",
    "central_bank",
    "central_govt",
    "ciu",
    "corporate",
    "credit_institution",
    "credit_union",
    "deposit_broker",
    "embassy",
    "financial_holding",
    "financial",
    "individual",
    "insurer",
    "intl_org",
    "investment_firm",
    "local_authority",
    "mdb",
    "money_transfer_operator",
    "national_development_agency",
    "natural_person",
    "non-profit_or_charity",
    "other_financial",
    "other_pse",
    "other",
    "partnership",
    "payment_services_provider",
    "pic",
    "private_corporation",
    "promotional_lender",
    "pse",
    "public_corporation",
    "regional_govt",
    "sme",
    "sovereign",
    "sspe",
    "trust_or_foundation"
  ]
}
Legal entities
├── individual
│   ├── natural_person
│   └── partnership
├── corporate
│   ├── sme (under 50m turnover or 250 employees)
│   ├── private corporation (over 50m turnover or 250 employees)
│   └── public corporation
├── financial
│   ├── credit_institution
│   │   └── promotional_lender
│   ├── investment_firm
│   ├── sspe
│   ├── ciu
│   ├── ceis
│   ├── pic (private investment company)
│   ├── insurer
│   ├── financial_holding
│   ├── credit_union
│   ├── deposit_broker
│   ├── money transfer operator
│   ├── payment services provider
│   └── other_financial
├── central_bank
├── mdb
├── credit_union
├── pse (public sector enterprise)
│   ├── local_authority
│   ├── regional_govt
│   ├── central_govt
│   ├── embassy
│   ├── national development agency
│   └── other_pse
├── sovereign
├── intl_org
├── trust or foundation
├── non-profit or charity
└── other

Industry

In the customer data report we request Industry information.

For this report you can include if available the SIC code and/or one of the following categories.

The categories are ordered hierarchically and they are a subset of the SIC code. They represent the most relevant one for the EFI creation.

"Industry": {
  "title": "Industry",
  "type": "string",
  "enum": [
    "adult_entertainment",
    "agriculture_forestry_and_fishing",
    "arms_defense",
    "atomic_energy",
    "construction",
    "finance_insurance_and_real_estate",
    "gambling",
    "manufacturing",
    "marijuana_stores_medical_recreational",
    "military",
    "mining",
    "non_gov_org",
    "nonclassifiable",
    "payment_service_providers",
    "precious_metals",
    "public_administration",
    "regulated_charities",
    "retail_trade",
    "services",
    "transportation_communications_electric_gas_and_sanitary_service",
    "unregulated_charities",
    "virtual_currency_exchange_services",
    "wholesale_trade"
  ]
}
Industry
├── agriculture_forestry_and_fishing
├── mining
├── construction
│     └── atomic_power
├── manufacturing
│     ├── arms_defense
│     └── precious_metals
├── transportation_communications_electric_gas_and_sanitary_service
├── wholesale_trade
├── retail_trade
│     └── marijuana_stores_medical_recreational"
├── finance_insurance_and_real_estate
│     ├── virtual_currency_exchange_services
│     └── payment_service_providers
├── services
│     ├── unregulated_charities
│     ├── regulated_charities
│     ├── non_gov_org
│     ├── adult_entertainment
│     └── gambling
├── public_administration
│     └── military
└── nonclassifiable

Product Usage

"ProductUsage": {
  "type": "string",
  "enum": [
    "anonymous_prepaid_cards_with_limits_in_excess_of_usd100",
    "brokerage_services",
    "cash_clearing",
    "commercial_banking_cards",
    "commercial_banking_chequing",
    "commercial_banking_credit",
    "commercial_banking_lending",
    "commercial_banking_savings",
    "cross-border_remittances",
    "crypto/virtual_assets",
    "downstream_clearing",
    "financial_markets_trading",
    "hold_mail",
    "ijara",
    "international_cash_letter",
    "low_price_securities",
    "m&a",
    "murabaha",
    "other_prepaid_cards",
    "payable_through_accounts",
    "physical_banknotes",
    "pouch_services",
    "precious_metals(physical_delivery)",
    "private_banking",
    "remote_deposit_capture",
    "retail_cards",
    "retail_chequing",
    "retail_credit",
    "retail_lending",
    "retail_savings",
    "safe_deposit_services",
    "security_services/custody",
    "service_to_walk-in_customers(non-account_holders)",
    "sponsoring_private_atms",
    "sukuk",
    "syndicated_loans",
    "trade_finance",
    "virtual/digital_currencies",
    "wadiah"
  ],
  "title": "ProductUsage"
}
Products
├── Commercial
│   ├── commercial_banking_cards
│   ├── commercial_banking_chequing
│   ├── commercial_banking_credit
│   ├── commercial_banking_lending
│   └── commercial_banking_savings
├── Retail
│   ├── anonymous_prepaid_cards_with_limits_in_excess_of_usd100
│   ├── retail_cards
│   ├── retail_chequing
│   ├── retail_credit
│   ├── retail_lending
│   ├── retail_savings
│   ├── sponsoring_private_atms
│   ├── service_to_walk-in_customers(non-account_holders)
│   └── other_prepaid_cards
├── Private Banking
│   ├── hold_mail
│   ├── private_banking
│   └── safe_deposit_services
├── Institutional
│   ├── international_cash_letter
│   ├── low_price_securities
│   ├── brokerage_services
│   ├── cash_clearing
│   ├── cross-border_remittances
│   ├── downstream_clearing
│   ├── financial_markets_trading
│   ├── m&a
│   ├── payable_through_accounts
│   ├── physical_banknotes
│   ├── pouch_services
│   ├── precious_metals(physical_delivery)
│   ├── remote_deposit_capture
│   ├── security_services/custody
│   ├── syndicated_loans
│   └── trade_finance
├── digital virtual assets
│   ├── crypto/virtual_assets
│   └── virtual/digital_currencies
└── Sharia Compliant
    ├── ijara
    ├── murabaha
    ├── sukuk
    └── wadiah

Source of Income

"SourceOfIncome": {
  "title": "SourceOfIncome",
  "anyOf": [
    {
      "type": "string",
      "enum": [
        "company_profits_and_dividends",
        "company_sale",
        "employment_income",
        "gift",
        "inheritance",
        "loans_(only_corporates)",
        "maturity/surrender_life_insurance_policy",
        "other",
        "property_sale",
        "sale_of_investments",
        "savings"
      ]
    }, {
      "type": "string",
      "minLength": 1
    }
  ]
}
employment_income
savings
property_sale
sale_of_investments
loans_(only_corporates)
company_profits_and_dividends
company_sale
inheritance
gift
maturity/surrender_life_insurance_policy
other

System Risk Rating

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

Standard Industrial Classification Code

"StandardIndustrialClassificationCode": {
  "title": "StandardIndustrialClassificationCode",
  "description": "https://en.wikipedia.org/wiki/Standard_Industrial_Classification",
  "oneOf": [
    { "type": "string", "pattern": "[0-9]{4}" },
    { "type": "number", "minimum": 0, "maximum": 9999 }
  ]
}

Account closure reasons

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

Training Subject

"TrainingSubject": {
      "title": "TrainingSubject"
      "type": "string",
      "enum": [
        "anti_bribery_and_corruption",
        "anti_money_laundering",
        "anti_terrorist_financing",
        "client_due_diligence",
        "conduct_and_culture",
        "cyber_security",
        "external_compliance_certification",
        "finantial_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
finantial_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

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 would like to request you to provide us with a schema indicating the attributes anonymized and the cypher used.

SHA-3

$ hash('sha3-512' , 'String you want to hash')

:"c6b2874e7bd6f7caa5d2502c3877d8fe9147f6eaed2022fb99163793761085b0b94ef98e9f3e7b432d56fd675734beba1ef898aca4e1aa1b0aab7b9bfbec5d11"

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

sample

you can find a sample of the algorithm's application here

bcrypt

$ hash('bcrypt' , 'String you want to hash')

: "$2y$10$q3PFMlvbeCc12ksmRShuK.BetcQcGO6r70q.K3LdM4lMc/it12hFC"

bcrypt is a password hashing function designed by Niels Provos and David Mazières, based on the Blowfish cipher, and presented at USENIX in 1999. Besides incorporating a salt to protect against rainbow table attacks, bcrypt is an adaptive function: over time, the iteration count can be increased to make it slower, so it remains resistant to brute-force search attacks even with increasing computation power.

wikipedia article

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

Security

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

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

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

Errors

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











© Elucidate GmbH imprint