is_sanctioned
Checks if the input profile info matches a sanctioned entity. The arguments are the same as those of get_sanctioned_info.
It returns 1 if a match is found, otherwise 0.
_match_other_fields
Matches fields possibly available in addition to name and date of birth.
Returns a a hash-ref reporting the matched fields if it succeeeds; otherwise returns false (undef).
get_sanctioned_info
Tries to find a match a sanction entry matching the input profile args. It takes arguments in two forms. In the new API, it takes a hashref containing the following named arguments:
first_name: first name
last_name: last name
date_of_birth: (optional) date of birth as a string or epoch
place_of_birth: (optional) place of birth as a country name or code
residence: (optional) name or code of the country of residence
nationality: (optional) name or code of the country of nationality
citizen: (optional) name or code of the country of citizenship
postal_code: (optional) postal/zip code
national_id: (optional) national ID number
passport_no: (oiptonal) passort number
For backward compatibility it also supports the old API, taking the following args:
first_name: first name
last_name: last name
date_of_birth: (optional) date of birth as a string or epoch
It returns a hash-ref containg the following data:
- - matched: 1 if a match was found; 0 otherwise
- - list: the source for the matched entry,
- - matched_args: a name-value hash-ref of the similar arguments,
- - comment: additional comments if necessary,
_index_data
Indexes data by name. Each name may have multiple matching entries.
NAME
Data::Validate::Sanctions - Validate a name against sanctions lists
SYNOPSIS
# as exported function
set_sanction_file(
'/var/storage/sanction.csv'
);
my
(
$first_name
,
$last_name
) = (
"First"
,
"Last Name"
);
'BAD'
if
is_sanctioned(
$first_name
,
$last_name
);
# as OO
#You can also set sanction_file in the new method.
my
$validator
= Data::Validate::Sanctions->new(
sanction_file
=>
'/var/storage/sanction.csv'
);
'BAD'
if
$validator
->is_sanctioned(
"$last_name $first_name"
);
DESCRIPTION
Data::Validate::Sanctions is a simple validitor to validate a name against sanctions lists.
The list is from: - https://www.treasury.gov/ofac/downloads/sdn.csv, - https://www.treasury.gov/ofac/downloads/consolidated/cons_prim.csv - https://ofsistorage.blob.core.windows.net/publishlive/ConList.csv - https://webgate.ec.europa.eu/fsd/fsf/public/files/xmlFullSanctionsList_1_1/content?token=$eu_token
run update_sanctions_csv to update the bundled csv.
The path of list can be set by function "set_sanction_file" or by method "new". If not set, then environment variable $ENV{SANCTION_FILE} will be checked, at last the default file in this package will be used.
METHODS
is_sanctioned
is_sanctioned(
$last_name
,
$first_name
);
is_sanctioned(
$first_name
,
$last_name
);
is_sanctioned(
"$last_name $first_name"
);
when one string is passed, please be sure last_name is before first_name.
or you can pass first_name, last_name (last_name, first_name), we'll check both "$last_name $first_name" and "$first_name $last_name".
retrun 1 if match is found and 0 if match is not found.
It will remove all non-alpha chars and compare with the list we have.
get_sanctioned_info
my
$result
=get_sanctioned_info(
$last_name
,
$first_name
,
$date_of_birth
);
'match: '
,
$result
->{matched_args}->{name},
' on list '
,
$result
->{list}
if
$result
->{matched};
return hashref with keys: matched 1 or 0, depends if name has matched list name of list matched (present only if matched) matched_args The list of arguments matched (name, date of birth, residence, etc.)
It will remove all non-alpha chars and compare with the list we have.
update_data
Fetches latest versions of sanction lists, and updates corresponding sections of stored file, if needed
last_updated
Returns timestamp of when the latest list was updated. If argument is provided - return timestamp of when that list was updated.
new
Create the object, and set sanction_file
my
$validator
= Data::Validate::Sanctions->new(
sanction_file
=>
'/var/storage/sanction.csv'
);
get_sanction_file
get sanction_file which is used by "is_sanctioned" (procedure-oriented)
set_sanction_file
set sanction_file which is used by "is_sanctioned" (procedure-oriented)
_name_matches
Pass in the client's name and sanctioned individual's name to see if they are similar or not
export_data
Exports the sanction lists to a local file in YAML format.
data
Gets the sanction list content with lazy loading.
AUTHOR
Binary.com <fayland@binary.com>
COPYRIGHT
Copyright 2014- Binary.com
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.