anagramik/laravel-swiftdil-api

此包已被废弃,不再维护。没有建议的替代包。
此包的最新版本(dev-master)没有可用的许可证信息。

这是一个SwiftDil API调用的简单PHP包装器

dev-master 2019-02-20 12:34 UTC

This package is not auto-updated.

Last update: 2021-07-10 12:17:06 UTC


README

<?php

use DogeDev\SwiftDil\SwiftDilAPI;

class Example 
{
    //{client-id}
    protected $clientId; 
    //{client-secret}
    protected $clientSecret; 
    // {https://sandbox.swiftdil.com/v1} or {https://api.swiftdil.com/v1}
    protected $url;
    
    public function __construct($clientId, $clientSecret, $url) 
    {
        $this->url          = $url;    
        $this->clientId     = $clientId; 
        $this->clientSecret = $clientSecret; 
    }
    
    public function getItAll()
    {
        return (new SwiftDilAPI($this->clientId, $this->clientSecret, $this->url))->Customer()->getAll();        
    }   
}

实体和方法列表

客户

客户代表正在进行的各种检查的个人或公司。要启动检查,必须首先创建客户。API 允许您创建、检索、更新和删除您的客户。您可以检索特定的客户以及所有客户的列表。

必须首先创建客户以方便所有进一步的检查。一旦创建客户,我们将自动生成一个风险概况。

客户对象

属性

列名 类型 用于 描述
id 字符串 个人和公司 客户的唯一标识符。
created_at 日期时间 个人和公司 客户的唯一标识符。
updated_at 日期时间 个人和公司 客户的唯一标识符。
类型 字符串 个人和公司 客户类型。有效值是 INDIVIDUALCOMPANY
joined_at 日期时间 个人和公司 客户注册的日期和时间。这对于迁移现有客户的用户是相关的。
email 字符串 个人和公司 客户的电子邮件地址。
telephone 字符串 个人和公司 客户的电话号码。
mobile 字符串 个人和公司 客户的移动电话号码。
addresses 地址列表 个人和公司 与客户关联的地址列表。
title 字符串 个人 客户的头衔。有效值是 MR, MRS, MISS 或 MS。
first_name 字符串 个人 客户的名字。
middle_name 字符串 个人 客户的中间名。
last_name 字符串 个人 客户的姓氏。
maiden_name 字符串 个人 客户的婚前名。
alternative_first_name 字符串 个人 客户的替代或新姓氏。
alternative_middle_name 字符串 个人 客户的替代或新中间名。
alternative_last_name 字符串 个人 客户的替代或新姓氏。
dob 日期 个人 客户的出生日期。格式为 YYYY-MM-DD。
gender 字符串 个人 客户的性别。有效值是 MALEFEMALEOTHER
nationality 字符串 个人 客户的国籍。这将是一个三位字母的国家 ISO 代码。
birth_country 字符串 个人 客户的出生国家。这将是一个三位字母的国家 ISO 代码。
special_occupation 字符串 个人 客户的职业。有效值可以是任何我们支持的职业类别。
company_name 字符串 公司 公司名称。
alternative_company_name 字符串 公司 公司的替代或新名称。
incorporation_number 字符串 公司 公司的注册号。
incorporation_type 字符串 公司 公司的注册类型。有效值包括
1.SOLE_TRADER
2.PRIVATE_LIMITED
3.LIMITED_LIABILITY_PARTNERSHIP
4.PUBLIC_LIMITED
incorporation_country 字符串 公司 公司的注册国家。这将是一个三位字母的国家 ISO 代码。
business_purpose 字符串 公司 公司的业务目的。有效值包括:1.REGULATED_ENTITY
2.PRIVATE_ENTITY
3.UNREGULATED_FUND
4.TRUST
5.FOUNDATION
6.RELIGIOUS_BODY
7.GOVERNMENT_ENTITY
8.CHARITY
9.CLUB
10.SOCIETY
primary_contact_name 字符串 公司 公司的主要联系人全名。
primary_contact_email 字符串 公司 公司的主要联系人电子邮件地址。
地址属性
列名 类型 用于 描述
类型 字符串 x 地址类型。有效值包括 PRIMARYALTERNATIVEOTHER
property_number 字符串 x 此地址的房产编号。
property_name 字符串 x 此地址的房产名称。
line 字符串 x 客户的地址的第一行。
extra_line 字符串 x 客户的地址的第二行。
city 字符串 x 客户地址的城市或镇。
state_or_province 字符串 x 客户地址的县、州或省。如果是美国客户,则必须使用 USPS 简称(参考 ISO 3166-2),例如 NY、MI 或 CA。
postal_code 字符串 x 客户地址的邮政或 ZIP 代码。这是一个必填字段。
country 字符串 x 客户地址的国家。这将是一个三位字母的国家 ISO 代码。
from_date 日期 x 客户搬入此地址的日期。格式为 YYYY-MM-DD
to_date 日期 x 客户搬出此地址的日期。格式为 YYYY-MM-DD。如果目前居住在该地址,请留空。

linecitypostal_codecountry 是有效地址的最低 必填 属性。如果地址拆分可用,请确保它们被输入到正确的属性中。例如,如果知道 property_numberproperty_name,请使用它们,而不要将它们存储在 lineextra_line 中。

作为匹配对象的组成部分,只有可用的地址属性才会返回。例如,当邮政编码对于给定的观察名单实体不可用时,不会返回邮政编码。

示例响应

{
    "id": "b19872d0-07ea-4d04-84eb-eb7758869b28",
    "created_at": "2017-01-17T23:46:26Z",
    "updated_at": "2017-01-17T23:46:26Z",
    "type" : "INDIVIDUAL",
    "title" : "MR",
    "first_name" : "John",
    "middle_name": "A.",
    "last_name" : "Doe",
    "email" : "john.doe@example.com",
    "dob" : "1980-01-01",
    "gender": "MALE",
    "addresses" : [
        {
            "type": "PRIMARY",
            "property_name": "Custom House",
            "line": "Main Street",
            "extra_line": "City Square",
            "city": "Aldgate",
            "state_or_province": "London",
            "postal_code": "E99 0ZZ",
            "country": "GBR",
            "from_date": "2010-01-01"
        }
    ]
}

创建客户

创建一个新的客户对象。

属性

  • type 必需的
  • email 必需的
  • first_name 必需的
  • last_nam 必需的
  • company_name 必需的

示例请求

$data = [
    "type" => "INDIVIDUAL",
    "email" => "john.doe@example.com",
    "title" => "MR",
    "first_name" => "John",
    "middle_name"=> "A.",
    "last_name" => "Doe",
    "dob" => "1980-01-01",
    "gender"=> "MALE",
    "addresses" => [
        [
            "type"=> "PRIMARY",
            "property_name"=> "Custom House",
            "line"=> "Main Street",
            "extra_line"=> "City Square",
            "city"=> "Aldgate",
            "state_or_province"=> "London",
            "postal_code"=> "E99 0ZZ",
            "country"=> "GBR",
            "from_date"=> "2010-01-01"
        ]
    ]
]

(new SwiftDilAPI())->Customer()->create($data);

示例响应

{
    "id": "b19872d0-07ea-4d04-84eb-eb7758869b28",
    "created_at": "2017-01-17T23:46:26Z",
    "updated_at": "2017-01-17T23:46:26Z",
    "type" : "INDIVIDUAL",
    "title" : "MR",
    "first_name" : "John",
    "middle_name": "A.",
    "last_name" : "Doe",
    "email" : "john.doe@example.com",
    "dob" : "1980-01-01",
    "gender": "MALE",
    "addresses": [
        {
            "type": "PRIMARY",
            "property_name": "Custom House",
            "line": "Main Street",
            "extra_line": "City Square",
            "city": "Aldgate",
            "state_or_province": "London",
            "postal_code": "E99 0ZZ",
            "country": "GBR",
            "from_date": "2010-01-01"
        }
    ]
}

检索客户

获取现有客户的详细信息。您只需提供在客户创建时返回的唯一客户标识符。

属性

  • customer_id 必须提供客户的唯一标识符。

示例请求

(new SwiftDilAPI())->Customer()->get($customerId);

示例响应

{
    "id": "7e375d53-5265-4cb4-b9bf-19d37ef11a9a",
    "created_at": "2017-01-24T12:30:10Z",
    "updated_at": "2017-01-24T12:30:10Z",
    "type": "COMPANY",
    "company_name": "John Doe's Bakery",
    "incorporation_type": "PRIVATE_LIMITED",
    "incorporation_country": "GBR",
    "business_purpose": "PRIVATE_ENTITY",
    "email": "company@example.com",
    "primary_contact_name": "John Doe",
    "primary_contact_email": "john.doe@example.com",
    "addresses":[
        {
            "type": "PRIMARY",
            "property_number": "10",
            "property_name": "Atrium House",
            "line": "Main Business Park",
            "city": "Knutsford",
            "state_or_province": "Cheshire",
            "postal_code": "W99 6ZZ",
            "country": "GBR",
            "from_date": "2015-01-01"
       }
    ]
}

更新客户

更新现有客户的详细信息。这是一个幂等方法,需要提供客户的所有字段作为请求的一部分。这确保了您系统中的客户详细信息与SwiftDil持有的详细信息一致。

请注意,一旦设置,客户类型将无法编辑。此外,一旦客户经过检查,某些字段将无法编辑。

属性

  • customer_id 必须提供客户的唯一标识符。

示例请求

$data = [
    "type" => "INDIVIDUAL",
    "email" => "john.doe@example.com",
    "title" => "MR",
    "first_name" => "John",
    "middle_name"=> "Smith",
    "last_name" => "Doe",
    "dob" => "1980-01-01",
    "gender"=> "MALE",
    "addresses" => [
        [
            "type"=> "PRIMARY",
            "property_name"=> "Custom House",
            "line"=> "Main Street",
            "extra_line"=> "City Square",
            "city"=> "Aldgate",
            "state_or_province"=> "London",
            "postal_code"=> "E99 0ZZ",
            "country"=> "GBR",
            "from_date"=> "2010-01-01"
        ]
    ],
]

(new SwiftDilAPI())->Customer()->update($customerId, $data);

示例响应

{
    "id": "b19872d0-07ea-4d04-84eb-eb7758869b28",
    "created_at": "2017-01-17T23:46:26Z",
    "updated_at": "2017-02-01T12:10:11Z",
    "type" : "INDIVIDUAL",
    "title" : "MR",
    "first_name" : "John",
    "middle_name": "Smith",
    "last_name" : "Doe",
    "email" : "john.doe@example.com",
    "dob" : "1980-01-01",
    "gender": "MALE",
    "addresses": [
        {
            "type": "PRIMARY",
            "property_name": "Custom House",
            "line": "Main Street",
            "extra_line": "City Square",
            "city": "Aldgate",
            "state_or_province": "London",
            "postal_code": "E99 0ZZ",
            "country": "GBR",
            "from_date": "2010-01-01"
        }
    ]
}

删除客户

删除现有客户。您只需提供在客户创建时返回的唯一客户标识符。还将删除客户的所有文档和笔记。请注意,一旦客户经过任何类型的检查(例如,筛查),则无法再进行删除。

DELETE https://api.swiftdil.com/v1/customers/{customer_id}

示例请求

(new SwiftDilAPI())->Customer()->delete($customerId)

列出所有客户

列出所有现有客户。客户按创建日期排序,最新客户排在首位。除了分页部分列出的属性外,还可以使用以下可选参数来细化响应。

GET https://api.swiftdil.com/v1/customers

    (new SwiftDilAPI())->Customer()->getAll();

风险概要

风险概要旨在为您提供关键客户属性和风险指标的高级快照,以帮助您塑造持续的客户关系。它便于基于风险框架的客户尽职调查(CDD)和加强尽职调查(EDD)。

风险概要的值由SwiftDil的专有风险引擎计算,不能被覆盖。

风险属性是指标性的。因此,我们建议您根据风险方法进行必要的尽职调查和控制。

API允许您检索客户的风险概要。

风险概要对象

列名 类型 描述
profile hash, profile object 表示与客户入职相关的关键属性集。这些属性自动从对客户进行的各种检查和操作中衍生出来。
risk hash, risk object 表示与您的客户相关的关键风险因素集,以帮助您进行入职和尽职调查。
last_trigger 字符串 导致最新更新的触发器。有效值包括
1. CUSTOMER_CREATED
2. PERSONAL_DETAILS_UPDATE
3. CUSTOMER_SCREENING
4. ODD_SCREENING
5. COUNTRY_SCORE_UPDATE
6. OCCUPATION_SCORE_UPDATE
last_updated 日期时间 风险概要最后更新的日期和时间。
概要属性
列名 类型 描述
watchlist_entity 布尔值 如果发现客户在全球制裁和观察名单中,则设置为true,如果没有发现观察名单关系,则设置为false。如果没有进行相关的检查或操作,则默认值为null。
politically_exposed 布尔值 如果发现客户具有政治曝光,则设置为true,如果没有发现政治曝光,则设置为false。如果没有进行相关的检查或操作,则默认值为null。
disqualified_entity 布尔值 如果发现客户是资格不合格的实体,则此值将被设置为 true,如果没有发现任何不合格情况,则设置为 false。如果没有进行相关检查或操作,则默认值为 null。
relative_or_close_associate 布尔值 如果发现客户与政治公开或监控名单实体(公司或个人)有关联,则此值将被设置为 true,如果没有发现任何关联,则设置为 false。如果没有进行相关检查或操作,则默认值为 null。
adverse_media_exposed 布尔值 如果发现客户与负面媒体报道有关联,则此值将被设置为 true,如果没有发现任何关联,则设置为 false。如果没有进行相关检查或操作,则默认值为 null。
风险属性
列名 类型 描述
watchlist 布尔值 这表示监控名单风险级别,SwiftDil 在完成包含监控名单的筛查请求后自动计算。设置时的有效值是 ,未设置时为 null。
political_exposure 布尔值 这表示政治曝光级别,SwiftDil 在完成包含高级政治人物(PEP)的筛查请求后自动计算。设置时的有效值是 ,未设置时为 null。
relationship 布尔值 这表示关系风险级别,SwiftDil 在完成筛查请求后自动计算。设置时的有效值是 ,未设置时为 null。
occupation 字符串 这代表职业风险级别,SwiftDil 在完成包含高级政治人物(PEP)的筛查请求后自动计算。仅适用于具有政治曝光的客户。设置时的有效值是 ,未设置时为 null。
country 字符串 这代表国家风险级别,SwiftDil 根据客户的国家详细信息自动计算,包括 地址国籍注册国家。设置时的有效值是 ,未设置时为 null。

示例响应

{
    "profile": {
        "politically_exposed": false,
        "disqualified_entity": false,
        "watchlist_entity": false,
        "relative_or_close_associate": false,
        "adverse_media_exposed": null
    },
    "risk": {
        "political_exposure": "LOW",
        "occupation": "LOW",
        "country": "LOW",
        "watchlist": null,
        "relationship": null,
        "overall": "LOW"
    },
    "last_trigger": "PERSONAL_DETAILS_UPDATE",
    "last_updated": "2017-06-26T12:09:34Z"
}

检索风险档案

属性

  • customer_id 必须提供客户的唯一标识符。

检索现有客户的风险档案。

示例请求

(new SwiftDilAPI())->RiskProfile()->getCustomerRiskProfile($customerId)

示例响应

{
    "profile": {
        "politically_exposed": false,
        "disqualified_entity": false,
        "watchlist_entity": false,
        "relative_or_close_associate": false,
        "adverse_media_exposed": null
    },
    "risk": {
        "political_exposure": "LOW",
        "occupation": "LOW",
        "country": "LOW",
        "watchlist": null,
        "relationship": null,
        "overall": "LOW"
    },
    "last_trigger": "PERSONAL_DETAILS_UPDATE",
    "last_updated": "2017-06-26T12:09:34Z"
}

文档

可以为特定客户创建以下目的的文档

安全且集中的文档存储。执行某些检查,例如身份证件的真伪和完整性分析,例如护照。文档 API 允许您创建、更新和删除文档。它还提供了将图像验证相关附件上传到我们全球文档交付基础设施的能力。

可以不附加任何附件创建文档,因为这些附件是可选的。这意味着文档对象可以用来捕获客户的文档详情,而无需上传任何附件。这些可以在稍后时间上传。

文档对象

列名 类型 描述
id 字符串 文档的唯一标识符。
created_at 日期时间 创建文档的日期和时间。
updated_at 日期时间 更新文档的日期和时间。
类型 字符串 文档类型。有效值有
1.PASSPORT
2.DRIVING_LICENSE
3.NATIONAL_INSURANCE_NUMBER
4.SOCIAL_SECURITY_NUMBER
5.TAX_ID_NUMBER
6.NATIONAL_ID_CARD
7.VISA
8.POLLING_CARD
9.RESIDENCE_PERMIT
10.OTHER
issuing_country 字符串 签发文档的国家。这是三位字母的国家 ISO 代码。
issuing_authority 字符串 签发文档的机构或组织。
document_number 字符串 与文档相关的唯一编号,例如护照类型的文档的护照号码。
document_name 字符串 文档的名称,例如银行信函。
document_description 字符串 文档的描述示例,例如:确认John Doe地址历史的银行信函。
mrz_line1 字符串 MRZ字符串的第一行。
mrz_line2 字符串 MRZ字符串的第二行。
mrz_line3 字符串 MRZ字符串的第三行。
front_side 散列值,文件附件对象 与文档正面文件附件相关的属性列表。
back_side 散列值,文件附件对象 与文档背面文件附件相关的属性列表。
issue_date 日期 文档的发行日期。格式为YYYY-MM-DD
expiry_date 日期 文档的有效期。格式为YYYY-MM-DD

示例响应

{
    "id": "d78913a9-7dcd-46c8-a8fc-91b4f85329f5",
    "type": "PASSPORT",
    "document_name": "Customer passport",
    "document_description": "Primary ID document",
    "document_number": "N1234567890",
    "issuing_country": "GBR",
    "issue_date": "2010-01-01",
    "expiry_date": "2020-01-01",
    "created_at": "2017-06-28T08:04:32Z",
    "updated_at": "2017-06-28T08:04:32Z",
    "front_side": {
        "id": "cb3673b1-003d-49e4-ac49-3462bf704232",
        "created_at": "2017-06-28T08:04:32Z",
        "updated_at": "2017-06-28T08:04:32Z",
        "filename": "foo.jpg",
        "content_type": "image/jpeg",
        "size": 15,
        "locked" : false
    },
    "back_side": {
        "id": "6aa4d0c6-d7d4-4dbd-8a04-ad2491d0cef6",
        "created_at": "2017-06-28T08:04:32Z",
        "updated_at": "2017-06-28T08:04:32Z",
        "filename": "bar.jpg",
        "content_type": "image/jpeg",
        "size": 15,
        "locked" : false
    },
    "mrz_line1": "IDFRABERTHIER<<<<<<<<<<<<<<<<<<<<<<<",
    "mrz_line2": "N1234567890JOHN<<<<<<<<<<<<6512068F4"
}

创建和上传文档

创建一个新的文档对象。在文档创建过程中,可以上传附件。附件必须作为多部分表单上传,文件大小不得超过5MB。

属性

  • customer_id 必需
  • type 必需的

示例请求

$data = [
    'front_side'           => $data['front_side'],
    'back_side'            => $data['back_side'],
    'type'                 => $data['type'],
    'document_name'        => $data['document_name'],
    'document_description' => $data['document_description'],
    'document_number'      => $data['document_number'],
    'issuing_country'      => $data['issuing_country'],
    'issue_date'           => $data['issue_date'],
    'expiry_date'          => $data['expiry_date'],
    'mrz_line1'            => $data['mrz_line1'],
    'mrz_line2'            => $data['mrz_line2'],
];

(new SwiftDilAPI())->Document()->createAndUpload($customerId, $data)

示例响应

{
    "id":  "d78913a9-7dcd-46c8-a8fc-91b4f85329f5",
    "type": "PASSPORT",
    "document_name": "Customer passport",
    "document_description": "Primary ID document",
    "document_number": "N1234567890",
    "issuing_country": "GBR",
    "issue_date": "2010-01-01",
    "expiry_date": "2020-01-01",
    "created_at": "2017-06-28T08:04:32Z",
    "updated_at": "2017-06-28T08:04:32Z",
    "front_side": {
        "id": "cb3673b1-003d-49e4-ac49-3462bf704232",
        "created_at": "2017-06-28T08:04:32Z",
        "updated_at": "2017-06-28T08:04:32Z",
        "filename": "foo.jpg",
        "content_type": "image/jpeg",
        "size": 15,
        "locked" : false
    },
    "back_side": {
        "id": "6aa4d0c6-d7d4-4dbd-8a04-ad2491d0cef6",
        "created_at": "2017-06-28T08:04:32Z",
        "updated_at": "2017-06-28T08:04:32Z",
        "filename": "bar.jpg",
        "content_type": "image/jpeg",
        "size": 15,
        "locked" : false
    },
    "mrz_line1": "IDGBRDOE<<<<<<<<<<<<<<<<<<<<<<<<<<<<",
    "mrz_line2": "N1234567890JOHN<<<<<<<<<<<<6512068F4"
}

检索文档

检索现有文档的详细信息。您需要提供唯一的客户和文档标识符。

属性

  • customer_id 必需
  • document_id 必需

示例请求

(new SwiftDilAPI())->Document()->get($customerId, $documentId)
{
    "id": "d78913a9-7dcd-46c8-a8fc-91b4f85329f5",
    "type": "PASSPORT",
    "document_name": "Customer passport",
    "document_description": "Primary ID document",
    "document_number": "N1234567890",
    "issuing_country": "GBR",
    "issue_date": "2010-01-01",
    "expiry_date": "2020-01-01",
    "created_at": "2017-06-28T08:04:32Z",
    "updated_at": "2017-06-28T08:04:32Z",
    "front_side": {
        "id": "cb3673b1-003d-49e4-ac49-3462bf704232",
        "created_at": "2017-06-28T08:04:32Z",
        "updated_at": "2017-06-28T08:04:32Z",
        "filename": "foo.jpg",
        "content_type": "image/jpeg",
        "size": 15,
        "locked" : false
    },
    "back_side": {
        "id": "6aa4d0c6-d7d4-4dbd-8a04-ad2491d0cef6",
        "created_at": "2017-06-28T08:04:32Z",
        "updated_at": "2017-06-28T08:04:32Z",
        "filename": "bar.jpg",
        "content_type": "image/jpeg",
        "size": 15,
        "locked" : false
    },
    "mrz_line1": "IDGBRDOE<<<<<<<<<<<<<<<<<<<<<<<<<<<<",
    "mrz_line2": "N1234567890JOHN<<<<<<<<<<<<6512068F4"
}

下载文档

下载之前上传的文档。您需要提供唯一的客户和文档标识符。可选地,您可以通过指定side参数来指定要下载的文档的哪一面,参数值为front或back。当未明确指定side参数时,默认下载正面。

属性

  • customer_id 必需
  • document_id 必需
  • side 可选,frontback

示例请求

(new SwiftDilAPI())->Document()->download($customerId, $documentId)

or with side attribute

(new SwiftDilAPI())->Document()->download($customerId, $documentId, $side)

更新文档

更新现有文档的详细信息。这是一个幂等方法,请求中需要提供所有字段,包括(如适用)附件。这将确保您系统中的文档细节与SwiftDil中保留的细节一致。

请注意,一旦文档经过图像验证检查,文档附件将无法编辑。同样,一旦进行过MRZ验证检查,MRZ行将无法编辑。

属性

  • customer_id 必需
  • document_id 必需
  • type 必需的

示例请求

$data = [
    'front_side'           => $data['front_side'],
    'back_side'            => $data['back_side'],
    'type'                 => $data['type'],
    'document_name'        => $data['document_name'],
    'document_description' => $data['document_description'],
    'document_number'      => $data['document_number'],
    'issuing_country'      => $data['issuing_country'],
    'issue_date'           => $data['issue_date'],
    'expiry_date'          => $data['expiry_date'],
    'mrz_line1'            => $data['mrz_line1'],
    'mrz_line2'            => $data['mrz_line2'],
];

(new SwiftDilAPI())->Document()->update($customerId, $documentId, $data)
{
    "id": "d78913a9-7dcd-46c8-a8fc-91b4f85329f5",
    "type": "DRIVING_LICENSE",
    "document_name": "Customer driving license",
    "document_description": "Primary ID document",
    "document_number": "N1234567890",
    "issuing_country": "GBR",
    "issue_date": "2010-01-01",
    "expiry_date": "2020-01-01",
    "created_at": "2017-06-28T08:04:32Z",
    "updated_at": "2017-06-28T12:01:06Z",
    "front_side": {
        "id": "cb3673b1-003d-49e4-ac49-3462bf704232",
        "created_at": "2017-06-28T08:04:32Z",
        "updated_at": "2017-06-28T08:04:32Z",
        "filename": "foo.jpg",
        "content_type": "image/jpeg",
        "size": 15,
        "locked" : false
    },
    "back_side": {
        "id": "6aa4d0c6-d7d4-4dbd-8a04-ad2491d0cef6",
        "created_at": "2017-06-28T08:04:32Z",
        "updated_at": "2017-06-28T08:04:32Z",
        "filename": "bar.jpg",
        "content_type": "image/jpeg",
        "size": 15,
        "locked" : false
    }
}

列出所有文档

列出与给定客户关联的所有现有文档。文档按创建日期排序,最新文档显示在最前面。除了分页部分列出的属性外,还可以使用以下可选参数来细化响应。

属性

  • customer_id 必需
(new SwiftDilAPI())->Document()->getAll($clientId)

筛查

SwiftDil使您能够通过应用我们专有的评分卡和模糊逻辑来满足您的反洗钱筛查承诺,通过我们的综合数据库对您的客户进行筛查。

API允许您创建和检索筛查请求。根据范围,请求可以包括以下筛查类型:全球观察名单(包括CIA观察名单、政府制裁、反恐和反洗钱观察名单)、政治公众人物(PEPs)、负面媒体和不合格实体。

筛选对象

列名 类型 描述
id 字符串 筛选的唯一标识符。
customer_id 字符串 客户的唯一标识符。
report_id 字符串 报告的唯一标识符。这是在筛选状态为DONE时生成的。
entity_name 字符串 如果是个体,则为客户的first_namelast_name的拼接,如果是公司,则为company_name
created_at 日期时间 创建筛选时的日期和时间。
updated_at 日期时间 更新筛选或相关匹配时的日期和时间。
范围 列出筛选类型 要执行的筛选类型列表。
结果 hash 提供筛选结果的摘要,符合选定的筛选范围。格式将为键值对列表,其中每个键是筛选范围,值是筛选结果
状态 字符串 整个范围的筛选的整体状态。值可以是
1.CREATED - 表示筛选请求已创建。
2.PENDING - 表示范围内的一个或多个筛选处于IN_PROGRESSAWAITING_VALIDATION状态。
3.DONE - 表示SwiftDil已完成范围内的所有筛选,并且已通过匹配API验证了相关匹配(如有适用)。这意味着,范围内的所有筛选都具有CONFIRMEDDISMISSEDCLEAR状态。
筛选类型

以下表格概述了可用的各种筛选类型及其相应的国家覆盖范围。

范围名称 描述 覆盖范围
WATCHLIST 我们将搜索您的客户是否在我们的全球观察名单上。我们还会突出显示您的客户是否为观察名单或受制裁实体的相关人或密切关联人(RCA),无论是个人还是组织。 全球
PEP 我们将搜索您的客户是否在我们的政治公开人士(PEP)数据库中。我们还会突出显示您的客户是否为PEP实体的相关人或密切关联人。 全球
DISQUALIFIED_ENTITIES 我们将搜索您的客户是否在我们的不合格实体数据库中,该数据库包括不合格、禁止和被禁止的个人和公司。 全球
ADVERSE_MEDIA 我们将搜索您的客户是否在我们的不利媒体数据库中,该数据库包含来自受信任新闻机构的精选文章。 全球
筛选结果
筛选结果 描述
IN_PROGRESS 表示筛选仍在由SwiftDil处理。
AWAITING_VALIDATION 表示SwiftDil已找到针对您的客户的一个或多个潜在匹配项。这些匹配项需要使用匹配端点进行手动验证。
CONFIRMED 表示已使用匹配端点确认至少一个匹配项。
DISMISSED 表示您已将所有筛选匹配项弃用,因为它们被认为不是真正的匹配(即假阳性)。
CLEAR 表示SwiftDil未在您指定的范围内找到您的客户或任何潜在匹配项。潜在匹配项由SwiftDil的模糊评分卡逻辑和预定义的敏感性阈值确定。

示例响应

{
    "id": "123456-7890-4cb4-b9bf-12a34bc56d7e",
    "customer_id": "b19872d0-07ea-4d04-84eb-eb7758869b28",
    "entity_name": "Jane Doe",
    "created_at": "2017-01-21T13:00:16Z",
    "updated_at": "2017-01-21T13:00:16Z",
    "scope": ["PEP","WATCHLIST","DISQUALIFIED_ENTITIES"],
    "status": "PENDING",
    "outcome": {
        "PEP": "CLEAR",
        "WATCHLIST": "AWAITING_VALIDATION",
        "DISQUALIFIED_ENTITIES": "CLEAR"
    }
}

创建筛选

创建新的筛选对象。

属性

  • customer_id 必需
  • 范围 必需 - 要执行的筛选列表。

示例请求

$data = [
    "PEP",
    "WATCHLIST",
    "DISQUALIFIED_ENTITIES"
];

(new SwiftDilAPI())->Screening()->create($customerId, $data)

示例响应

{
    "id": "123456-7890-4cb4-b9bf-12a34bc56d7e",
    "customer_id": "b19872d0-07ea-4d04-84eb-eb7758869b28",
    "entity_name": "Jane Doe",
    "created_at": "2017-01-21T13:00:16Z",
    "updated_at": "2017-01-21T13:00:16Z",
    "scope": ["PEP","WATCHLIST","DISQUALIFIED_ENTITIES"],
    "status": "PENDING",
    "outcome": {
        "PEP": "CLEAR",
        "WATCHLIST": "AWAITING_VALIDATION",
        "DISQUALIFIED_ENTITIES": "CLEAR"
    }
}

检索筛选

检索现有筛选的详细信息。您需要提供唯一的客户和筛选标识符。

属性

  • customer_id 必需
  • screening_id 必需

示例请求

(new SwiftDilAPI())->Screening()->get($customerId, $screeningId);

示例响应

{
    "id": "123456-7890-4cb4-b9bf-12a34bc56d7e",
    "customer_id": "b19872d0-07ea-4d04-84eb-eb7758869b28",
    "entity_name": "Jane Doe",
    "created_at": "2017-01-21T13:00:16Z",
    "updated_at": "2017-01-21T13:00:16Z",
    "scope": ["PEP","WATCHLIST","DISQUALIFIED_ENTITIES"],
    "status": "PENDING",
    "outcome": {
        "PEP": "CLEAR",
        "WATCHLIST": "AWAITING_VALIDATION",
        "DISQUALIFIED_ENTITIES": "CLEAR"
    }
}

列出客户的全部筛选

列出给定客户的全部现有筛选。筛选按创建日期排序,最近的筛选排在前面。除了在 分页 部分列出的属性外,还可以使用以下可选参数来细化响应。

属性

  • customer_id 必需

示例请求

(new SwiftDilAPI())->Screening()->getAll($customerId);

搜索筛选

在所有现有客户中搜索筛选。筛选按创建日期排序,最近的筛选排在前面。可以使用以下可选参数来细化响应。

属性

匹配

一个 筛选 请求可能产生一个或多个匹配。匹配对象表示由 SwiftDil 的模糊评分卡逻辑和预定义阈值确定的潜在匹配。

匹配 API 允许您检索和验证与给定筛选请求相关的匹配。潜在匹配的验证是指一旦您审查了相关细节,就确认或拒绝匹配。

匹配对象

匹配对象

示例响应

{
    "id": "123456-7890-4cb4-b9bf-12a34bc56dff",
    "created_at": "2017-01-21T15:00:16Z",
    "updated_at": "2017-01-21T15:00:16Z",
    "entity_type": "INDIVIDUAL",
    "match_type": ["SPECIAL_INTEREST_PERSON"],
    "validation_result": "AWAITING_VALIDATION",
    "names": [
        {
            "name_type": "PRIMARY_NAME",
            "first_name": "John",
            "last_name": "Doe"
        },
        {
            "name_type": "ALSO_KNOWN_AS",
            "first_name": "Jo",
            "last_name": "Doe"
        }
    ],
    "documents": [
        {
            "type": "PASSPORT",
            "number": "A123456789"
        },
        {
            "type": "DRIVING_LICENSE",
            "number": "B987654321",
            "note": "Registered by Customs Office"
        }
    ],
    "addresses": [
        {
            "line": "Middle house",
            "city": "Forest Hill",
            "Country": "GBR"
        },
        {
            "line": "Old house, main street",
            "city": "Aldgate",
            "Country": "GBR"
        }
    ],
    "references": [
        {
            "name": "OFAC Specially Designated National",
            "status": "CURRENT",
            "from_date": {
                "month": "02",
                "year": "2015"
            }
        }
    ],
    "countries_of_reported_allegation": [
        "GBR",
        "DEU"
    ],
    "countries_of_citizenship": [
        "GBR"
    ],
    "dobs": [
        {
            "month": "01",
            "year": "1980"
        }
    ],
    "gender": "MALE",
    "image_uri": [
        "http://example.example/images/sample1.jpg",
        "http://example.example/images/sample2.jpg"
    ],
    "deceased": false,
    "scorecard": {
        "overall_score": 91.85,
        "breakdown": [
            {
                "field_name": "name",
                "field_value": "John Doe",
                "score": 100,
                "risk_weight": 45,
                "risk_weighted_score": 45,
                "normalised_score": 33.33
            },
            {
                "field_name": "dob",
                "field_value": "01/1980",
                "score": 90,
                "risk_weight": 20,
                "risk_weighted_score": 18,
                "normalised_score": 13.33
            },
            {
                "field_name": "gender",
                "field_value": "MALE",
                "score": 100,
                "risk_weight": 10,
                "risk_weighted_score": 10,
                "normalised_score": 7.41
            },
            {
                "field_name": "address",
                "field_value": "Old house st., Aldgate, GBR",
                "score": 85,
                "risk_weight": 60,
                "risk_weighted_score": 51,
                "normalised_score": 37.78,
                "breakdown": [
                    {
                        "field_name": "country",
                        "field_value": "GBR",
                        "score": 100,
                        "risk_weight": 15,
                        "risk_weighted_score": 15,
                        "normalised_score": 25

                    },
                    {
                        "field_name": "city",
                        "field_value": "Aldgate",
                        "score": 100,
                        "risk_weight": 15,
                        "risk_weighted_score": 15,
                        "normalised_score": 25

                    },
                    {
                        "field_name": "line",
                        "field_value": "Old house st.",
                        "score": 70,
                        "risk_weight": 30,
                        "risk_weighted_score": 21,
                        "normalised_score": 35
                    }
                ]}
            ]}
        }
    }
}

检索匹配

检索现有匹配的详细信息。您需要提供唯一的客户、筛选和匹配标识符。

属性

  • customer_id 必需
  • screening_id 必需
  • match_id 必需

示例请求

(new SwiftDilAPI())->Match()-get($customerId, $screeningId, $matchId);

示例响应

{
    "id": "123456-7890-4cb4-b9bf-12a34bc56dff",
    "created_at": "2017-01-21T15:00:16Z",
    "updated_at": "2017-01-21T15:00:16Z",
    "entity_type": "INDIVIDUAL",
    "match_type": ["SPECIAL_INTEREST_PERSON"],
    "validation_result": "AWAITING_VALIDATION",
    "names": [
        {
            "name_type": "PRIMARY_NAME",
            "first_name": "John",
            "last_name": "Doe"
        },
        {
            "name_type": "ALSO_KNOWN_AS",
            "first_name": "Jo",
            "last_name": "Doe"
        }
    ],
    "documents": [
        {
            "type": "PASSPORT",
            "number": "A123456789"
        },
        {
            "type": "DRIVING_LICENSE",
            "number": "B987654321",
            "note": "Registered by Customs Office"
        }
    ],
    "addresses": [
        {
            "line": "Middle house",
            "city": "Forest Hill",
            "Country": "GBR"
        },
        {
            "line": "Old house, main street",
            "city": "Aldgate",
            "Country": "GBR"
        }
    ],
    "references": [
        {
            "name": "OFAC Specially Designated National",
            "status": "CURRENT",
            "from_date": {
                "month": "02",
                "year": "2015"
            }
        }
    ],
    "countries_of_reported_allegation": [
        "GBR",
        "DEU"
    ],
    "countries_of_citizenship": [
        "GBR"
    ],
    "dobs": [
        {
            "month": "01",
            "year": "1980"
        }
    ],
    "gender": "MALE",
    "image_uri": [
        "http://example.example/images/sample1.jpg",
        "http://example.example/images/sample2.jpg"
    ],
    "deceased": false,
    "scorecard": {
        "overall_score": 91.85,
        "breakdown": [
            {
                "field_name": "name",
                "field_value": "John Doe",
                "score": 100,
                "risk_weight": 45,
                "risk_weighted_score": 45,
                "normalised_score": 33.33
            },
            {
                "field_name": "dob",
                "field_value": "01/1980",
                "score": 90,
                "risk_weight": 20,
                "risk_weighted_score": 18,
                "normalised_score": 13.33
            },
            {
                "field_name": "gender",
                "field_value": "MALE",
                "score": 100,
                "risk_weight": 10,
                "risk_weighted_score": 10,
                "normalised_score": 7.41
            },
            {
                "field_name": "address",
                "field_value": "Old house st., Aldgate, GBR",
                "score": 85,
                "risk_weight": 60,
                "risk_weighted_score": 51,
                "normalised_score": 37.78,
                "breakdown": [
                    {
                        "field_name": "country",
                        "field_value": "GBR",
                        "score": 100,
                        "risk_weight": 15,
                        "risk_weighted_score": 15,
                        "normalised_score": 25

                    },
                    {
                        "field_name": "city",
                        "field_value": "Aldgate",
                        "score": 100,
                        "risk_weight": 15,
                        "risk_weighted_score": 15,
                        "normalised_score": 25

                    },
                    {
                        "field_name": "line",
                        "field_value": "Old house st.",
                        "score": 70,
                        "risk_weight": 30,
                        "risk_weighted_score": 21,
                        "normalised_score": 35
                    }
                ]
            }
        ]
    }
}

列出全部匹配

列出所有现有匹配。匹配按总体分数排序,得分最高的匹配排在前面。除了在 分页 部分列出的属性外,还可以使用以下可选参数来细化响应。

属性

  • customer_id 必需
  • screening_id 必需
(new SwiftDilAPI())->Match()-get($customerId, $screeningId);

确认匹配

确认客户匹配。您需要提供唯一的客户、筛选和匹配标识符。

属性

  • customer_id 必需
  • screening_id 必需
  • match_id 必需
(new SwiftDilAPI())->Match()->confirm($customerId, $screeningId, $matchId);

拒绝匹配

拒绝客户匹配。您需要提供唯一的客户、筛选和匹配标识符。

属性

  • customer_id 必需
  • screening_id 必需
  • match_id 必需
(new SwiftDilAPI())->Match()->dismiss($customerId, $screeningId, $matchId);

确认多个匹配

确认多个客户匹配。您需要提供唯一的客户、筛选和匹配标识符。

属性

  • customer_id 必需
  • screening_id 必需
  • matchIds 必需
(new SwiftDilAPI())->Match()->confirmMultiple($customerId, $screeningId, $matchIds);

拒绝多个匹配

拒绝多个客户匹配。您需要提供唯一的客户、筛选和匹配标识符。

属性

  • customer_id 必需
  • screening_id 必需
  • matchIds 必需
(new SwiftDilAPI())->Match()->dismissMultiple($customerId, $screeningId, $matchIds);

关联

API 允许您检索与给定匹配相关的实体。关联的实体可以是其他个人或公司。

关联对象

检索关联

检索现有关联的详细信息。您需要提供唯一的客户、筛选、匹配和关联标识符。

属性

  • customer_id 必需
  • screening_id 必需
  • match_id 必需
  • association_id 必需

示例请求

(new SwiftDilAPI())->Association()->get($customerId, $screeningId, $matchId, $associationId);

示例响应

{
    "id": "123456-7890-4cb4-b9bf-01f11dc85e11",
    "created_at": "2017-01-21T15:00:16Z",
    "updated_at": "2017-01-21T15:00:16Z",
    "entity_type": "INDIVIDUAL",
    "match_type": ["RELATIVE_OR_CLOSE_ASSOCIATE"],
    "association_type": "WIFE",
    "direction": "OUTBOUND",
    "status": "CURRENT",
    "names": [
        {
            "name_type": "PRIMARY_NAME",
            "first_name": "Sue",
            "last_name": "Doe"
        }
    ],
    "addresses": [
        {
            "line": "Middle house",
            "city": "Forest Hill",
            "Country": "GBR"
        },
        {
            "line": "Old house, main street",
            "city": "Aldgate",
            "Country": "GBR"
        }
    ],
    "image_uri": [
        "http://example.example/images/sample3.jpg",
    ]
}

列出所有关联

列出所有现有关联。关联按创建日期排序返回,最新关联排在前面。除了分页部分中列出的属性外,还可以使用以下可选参数来细化响应。

属性

  • customer_id 必需
  • screening_id 必需
  • match_id 必需

示例请求

(new SwiftDilAPI())->Association()->get($customerId, $screeningId, $matchId);

文件验证

SwiftDil 提供一系列开箱即用的文件验证。存在两种验证类型:

  • MRZ 验证对用户指定的机器可读区域 (MRZ) 值进行分析检查。

  • 图像验证对与提供的文件关联的附件进行图像、光学字符识别 (OCR) 和 MRZ 分析。

下表列出了 SwifDil 文件验证引擎根据您选择的验证类型执行的各项分析检查。

分析类型 验证 描述
authenticity_analysis IMAGE, MRZ 断言文档是伪造的、样本或副本。
integrity_analysis IMAGE, MRZ 断言文档是否为有效且可识别的格式。
content_analysis IMAGE 断言从文档的多个地方提取的 OCR 数据是否与 MRZ 中持有的数据一致。
mrz_analysis IMAGE, MRZ 断言 MRZ 数据是否有效且符合国际公认标准。
consistency_analysis IMAGE, MRZ 断言文档上的数据是否与 SwiftDil 保留的客户详细资料一致,例如:断言护照上的姓名是否与客户的姓名相同。
expiration_check IMAGE, MRZ 检查手头文件是否已过期。

根据文件类型和签发国,可能需要文件的正反两面图像。下表指定了需要正反两面图像的文件类型

姓名 国家 类型
国家身份证 欧盟和欧洲自由贸易协会 NATIONAL_ID_CARD
驾照 加拿大 DRIVING_LICENSE
签证 生物特征居留许可 VISA

该 API 允许您创建和检索文件验证请求。

文件验证对象

文档验证对象

示例响应

{
    "created_at": "2017-11-10T22:54:17Z",
    "updated_at": "2017-11-10T22:54:17Z",
    "document_id": "c29ed1c4-59ee-4b8f-ab9c-4829fabaffd5",
    "customer_id": "b19872d0-07ea-4d04-84eb-eb7758869b28",
    "entity_name": "John Doe",
    "type": "IMAGE",
    "outcome": {
        "authenticity_analysis": {
            "status": "ERROR",
            "breakdown": [
                {
                    "type": "MRZ_MATCHING_TYPE",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "MRZ_VISUAL_FORMAT",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "PHOTO_LOCATION",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "DAYLIGHT_COLOUR_ANALYSIS",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "DOCUMENT_SPECIMEN",
                    "status": "ERROR"
                },
                {
                    "type": "VISUAL_SECURITY_ELEMENTS",
                    "status": "NOT_APPLICABLE"
                }
            ]
        },
        "integrity_analysis": {
            "status": "CLEAR",
            "breakdown": [
                {
                    "type": "ISSUE_COUNTRY",
                    "status": "CLEAR"
                },
                {
                    "type": "DOCUMENT_TYPE_EXPIRATION",
                    "status": "CLEAR"
                },
                {
                    "type": "VALIDITY_OUT_OF_COUNTRY",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "NATIONALITY_MATCH",
                    "status": "CLEAR"
                },
                {
                    "type": "DOCUMENT_RECOGNISED",
                    "status": "CLEAR"
                },
                {
                    "type": "ISSUE_DATE",
                    "status": "CLEAR"
                }
            ]
        },
        "content_analysis": {
            "status": "NOT_APPLICABLE",
            "breakdown": [
                {
                    "type": "DOC_NUMBER_RECOGNISED",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "LAST_NAME_RECOGNISED",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "FIRST_NAME_RECOGNISED",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "BIRTH_DATE_RECOGNISED",
                    "status": "NOT_APPLICABLE"
                }
            ]
        },
        "mrz_analysis": {
            "status": "CLEAR",
            "breakdown": [
                {
                    "type": "MRZ_FIELDS_FORMAT",
                    "status": "CLEAR"
                },
                {
                    "type": "MRZ_CHECKSUM",
                    "status": "CLEAR"
                }
            ]
        },
        "consistency_analysis": {
            "status": "ATTENTION",
            "breakdown": [
                {
                    "type": "CUSTOMER_DOB",
                    "status": "ATTENTION"
                },
                {
                    "type": "CUSTOMER_BIRTH_PLACE",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "CUSTOMER_NATIONALITY",
                    "status": "ATTENTION"
                },
                {
                    "type": "CUSTOMER_LAST_NAME",
                    "status": "ATTENTION"
                },
                {
                    "type": "CUSTOMER_GENDER",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "CUSTOMER_FIRST_NAME",
                    "status": "ATTENTION"
                }
            ]
        },
        "expiration_check": {
            "status": "ATTENTION",
            "breakdown": [
                {
                    "type": "DOCUMENT_EXPIRATION",
                    "status": "ATTENTION"
                }
            ]
        }
    },
    "properties": {
        "document_type": "NATIONAL_IDENTITY_CARD",
        "document_data": {
            "document_number": "GZ000030E",
            "mrz_line1": "IDGIBGZ000030E2Q15000174<<<<<<",
            "mrz_line2": "7402061M2501280GBR<<<<<<<<<<<0",
            "mrz_line3": "FREEMAN<<PAUL<JAMES<<<<<<<<<<<",
            "issuing_country": "GIB",
            "expiry_date": {
                "day": 28,
                "month": 1,
                "year": 2025
            }
        },
        "holder_data": {
            "first_name": [
                "PAUL",
                "JAMES"
            ],
            "last_name": [
                "FREEMAN"
            ],
            "dob": {
                "day": 6,
                "month": 2,
                "year": 1974
            },
            "nationality": "GBR",
            "gender": "MALE"
        },
        "extracted_images": []
    },
    "status": "DONE",
    "id": "42583ade-f2b9-4bed-903a-bc46a215040c"
}

创建文件验证

创建新的文件验证对象。

属性

  • customer_id 必需
  • type 必需,IMAGE 或 MRZ
  • document_id 必需

示例请求

$data = [
    'document_id' => 'd78913a9-7dcd-46c8-a8fc-91b4f85329f5',
    'type'        => 'IMAGE',
],

(new SwiftDilAPI())->DocumentVerification()->create($customerId, $data);

检索文件验证

检索现有文件验证的详细信息。您需要提供唯一的客户和文件验证标识符。

属性

  • customer_id 必需
  • verification_id 必需

示例请求

(new SwiftDilAPI())->DocumentVerification()->get($customerId, $verificationId)

示例响应

{
    "created_at": "2017-11-10T22:54:17Z",
    "updated_at": "2017-11-10T22:54:17Z",
    "document_id": "c29ed1c4-59ee-4b8f-ab9c-4829fabaffd5",
    "customer_id": "b19872d0-07ea-4d04-84eb-eb7758869b28",
    "entity_name": "John Doe",
    "type": "IMAGE",
    "outcome": {
        "authenticity_analysis": {
            "status": "ERROR",
            "breakdown": [
                {
                    "type": "MRZ_MATCHING_TYPE",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "MRZ_VISUAL_FORMAT",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "PHOTO_LOCATION",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "DAYLIGHT_COLOUR_ANALYSIS",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "DOCUMENT_SPECIMEN",
                    "status": "ERROR"
                },
                {
                    "type": "VISUAL_SECURITY_ELEMENTS",
                    "status": "NOT_APPLICABLE"
                }
            ]
        },
        "integrity_analysis": {
            "status": "CLEAR",
            "breakdown": [
                {
                    "type": "ISSUE_COUNTRY",
                    "status": "CLEAR"
                },
                {
                    "type": "DOCUMENT_TYPE_EXPIRATION",
                    "status": "CLEAR"
                },
                {
                    "type": "VALIDITY_OUT_OF_COUNTRY",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "NATIONALITY_MATCH",
                    "status": "CLEAR"
                },
                {
                    "type": "DOCUMENT_RECOGNISED",
                    "status": "CLEAR"
                },
                {
                    "type": "ISSUE_DATE",
                    "status": "CLEAR"
                }
            ]
        },
        "content_analysis": {
            "status": "NOT_APPLICABLE",
            "breakdown": [
                {
                    "type": "DOC_NUMBER_RECOGNISED",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "LAST_NAME_RECOGNISED",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "FIRST_NAME_RECOGNISED",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "BIRTH_DATE_RECOGNISED",
                    "status": "NOT_APPLICABLE"
                }
            ]
        },
        "mrz_analysis": {
            "status": "CLEAR",
            "breakdown": [
                {
                    "type": "MRZ_FIELDS_FORMAT",
                    "status": "CLEAR"
                },
                {
                    "type": "MRZ_CHECKSUM",
                    "status": "CLEAR"
                }
            ]
        },
        "consistency_analysis": {
            "status": "ATTENTION",
            "breakdown": [
                {
                    "type": "CUSTOMER_DOB",
                    "status": "ATTENTION"
                },
                {
                    "type": "CUSTOMER_BIRTH_PLACE",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "CUSTOMER_NATIONALITY",
                    "status": "ATTENTION"
                },
                {
                    "type": "CUSTOMER_LAST_NAME",
                    "status": "ATTENTION"
                },
                {
                    "type": "CUSTOMER_GENDER",
                    "status": "NOT_APPLICABLE"
                },
                {
                    "type": "CUSTOMER_FIRST_NAME",
                    "status": "ATTENTION"
                }
            ]
        },
        "expiration_check": {
            "status": "ATTENTION",
            "breakdown": [
                {
                    "type": "DOCUMENT_EXPIRATION",
                    "status": "ATTENTION"
                }
            ]
        }
    },
    "properties": {
        "document_type": "NATIONAL_IDENTITY_CARD",
        "document_data": {
            "document_number": "GZ000030E",
            "mrz_line1": "IDGIBGZ000030E2Q15000174<<<<<<",
            "mrz_line2": "7402061M2501280GBR<<<<<<<<<<<0",
            "mrz_line3": "FREEMAN<<PAUL<JAMES<<<<<<<<<<<",
            "issuing_country": "GIB",
            "expiry_date": {
                "day": 28,
                "month": 1,
                "year": 2025
            }
        },
        "holder_data": {
            "first_name": [
                "PAUL",
                "JAMES"
            ],
            "last_name": [
                "FREEMAN"
            ],
            "dob": {
                "day": 6,
                "month": 2,
                "year": 1974
            },
            "nationality": "GBR",
            "gender": "MALE"
        },
        "extracted_images": []
    },
    "status": "DONE",
    "id": "42583ade-f2b9-4bed-903a-bc46a215040c"
}

列出客户的全部文件验证

列出给定客户的全部现有文件验证。验证按创建日期排序返回,最新验证排在前面。除了分页部分中列出的属性外,还可以使用以下可选参数来细化响应。

属性

  • customer_id 必需
(new SwiftDilAPI())->DocumentVerification()->getAll($customerId);

身份验证

SwiftDil 使用最新的计算机视觉和生物识别算法来计算两个面部属于同一个人的相似度得分。

该API允许您创建和检索身份验证请求。

目前仅支持JPEG、PNG和BMP格式。允许的图像文件大小为1KB到4MB。

身份验证对象

示例响应

{
    "created_at": "2017-11-10T22:54:17Z",
    "updated_at": "2017-11-10T22:54:17Z",
    "document_id": "c29ed1c4-59ee-4b8f-ab9c-4829fabaffd5",
    "customer_id": "b19872d0-07ea-4d04-84eb-eb7758869b28",
    "entity_name": "John Doe",
    "selfie_id": "a7794f29-ed41-4ceb-8fce-9b368d570059",
    "status": "DONE",
    "face_match": true,
    "similarity": 0.9531,
    "face_analysis":{
        "selfie_image":{
            "age": 25,
            "gender": "MALE",
            "exposure_level" : "GOOD_EXPOSURE",
            "noise_level" : "LOW",
            "blur_level" : "LOW"
        },
        "identity_document":{
            "age": 22,
            "gender": "MALE",
            "exposure_level" : "GOOD_EXPOSURE",
            "noise_level" : "LOW",
            "blur_level" : "LOW"
        }
    },
    "id": "6eb21-78cd-4cb4-b9bf-12a31ac44e1e"
}

创建身份验证

创建一个新的身份验证对象。

属性

  • customer_id 必需
  • document_id 必需
  • selfie 必需

示例请求

$data = [
    'document_id' => $data['document_id'],
    'selfie'      => base64_encode($data['image']),
];

(new SwiftDilAPI())->IdentityVerification()->create($customerId, $data);

检索身份验证

检索现有身份验证的详细信息。您需要提供唯一的客户和身份验证标识符。

属性

  • customer_id 必需
  • identification_id 必需

示例请求

(new SwiftDilAPI())->IdentityVerification()->get($customerId, $identificationId);

示例响应

{
    "created_at": "2017-11-10T22:54:17Z",
    "updated_at": "2017-11-10T22:54:17Z",
    "document_id": "c29ed1c4-59ee-4b8f-ab9c-4829fabaffd5",
    "customer_id": "b19872d0-07ea-4d04-84eb-eb7758869b28",
    "entity_name": "John Doe",
    "selfie_id": "a7794f29-ed41-4ceb-8fce-9b368d570059",
    "status": "DONE",
    "face_match": true,
    "similarity": 0.9531,
    "face_analysis":{
        "selfie_image":{
            "age": 25,
            "gender": "MALE",
            "exposure_level" : "GOOD_EXPOSURE",
            "noise_level" : "LOW",
            "blur_level" : "LOW"
        },
        "identity_document":{
            "age": 22,
            "gender": "MALE",
            "exposure_level" : "GOOD_EXPOSURE",
            "noise_level" : "LOW",
            "blur_level" : "LOW"
        }
    },
    "id": "6eb21-78cd-4cb4-b9bf-12a31ac44e1e"
}

列出客户的全部身份验证

列出给定客户的全部现有身份验证。验证结果按创建日期排序,最新的验证结果排在前面。除了分页部分中列出的属性外,以下可选参数可用于精炼响应。

属性

  • customer_id 必需

示例请求

(new SwiftDilAPI())->IdentityVerification()->getAll($customerId);

报告

每种报告类型都与自己的参数集相关联,以键值格式传递

报告类型 参数 描述
SCREENING_REPORT screening_id 字符串 为完成的筛选请求生成报告。

检索报告

检索现有报告的详细信息。您需要提供唯一的报告标识符。

属性

  • report_id 必需

示例请求

(new SwiftDilAPI())->Report()->get($reportId);

示例响应

{
    "id" : "4bf7a508-8de8-467e-9c7c-3244fd71fd98",
    "name" : "My first report",
    "type" : "SCREENING_REPORT",
    "parameters" : {
        "screening_id" : "5d2aa508-8de8-467e-9c7c-6dd4fd71fd98"
    },
    "created_at" : "2018-02-11T12:00:16Z"
}

下载报告

下载报告文档。您需要提供唯一的报告标识符和扩展名。

属性

  • report_id 必需
  • extension 必需 PDF

示例请求

(new SwiftDilAPI())->Report()->download($reportId, $extension);

列出全部报告

列出所有现有报告。报告按创建日期排序,最新的报告排在前面。除了分页部分中列出的属性外,以下可选参数可用于精炼响应。

示例请求

(new SwiftDilAPI())->Report()->getAll();

文件

我们的多个服务,例如文件验证和身份验证,都使用文件附件来执行检查。

文件API允许您检索、更新、上传、下载和删除这些文件。它提供上传和下载文件的方法,作为multipart/form-data或application/json(即Base64编码的内容)。

文件对象

列名 类型 描述
id 字符串 文件的唯一标识符。
created_at 日期时间 文件创建的日期和时间。
updated_at 日期时间 文件更新的日期和时间。
filename 字符串 文件名。
size 字符串 文件大小(字节)。对于application/json请求是必需的。
content_type 字符串 文件的MIME标准内容类型(例如image/jpeg)。
content 字符串 Base64编码的文件内容。对于application/json请求是必需的。
file 表单数据参数 表示要上传的本地文件的路径的属性。对于multipart/form-data请求是必需的。
locked 布尔值 如果文件被锁定且无法再被删除,则此值将设置为true;如果可以删除,则设置为false

示例响应

{
    "id" : "a83c69b3-c945-46d6-af13-08618a1c87a2",
    "created_at" : "2018-02-14T12:00:16Z",
    "updated_at" : "2018-02-14T12:00:16Z",
    "content_type" : "image/jpeg",
    "filename" : "passport",
    "size" : 1234,
    "content" : "<base64-encoded data>",
    "locked" : false
}

检索文件

检索现有文件的详细信息。您需要提供唯一的文件标识符。

属性

  • file_id 必需

示例请求

(new SwiftDilAPI())->File()->get($fileId);

示例响应

{
    "id" : "a83c69b3-c945-46d6-af13-08618a1c87a2",
    "created_at" : "2018-02-14T12:00:16Z",
    "updated_at" : "2018-02-14T12:00:16Z",
    "content_type" : "image/jpeg",
    "filename" : "passport",
    "size" : 1234,
    "content" : "<base64-encoded data>",
    "locked" : false
}

下载文件

下载之前已上传的文件。您需要提供唯一的文件标识符和输出格式。

属性

  • file_id 必需
  • output 必需,STREAMBASE64

示例请求

(new SwiftDilAPI())->File()->download($fileId, $output);

更新文件

更新现有文件的详细信息和内容。这是一个幂等的方法,需要将文件上的所有字段作为请求的一部分提供。这将确保您的系统中的文件详情与SwiftDil保存的详情一致。

请注意,目前此功能仅适用于 application/json 请求(即 BASE64 编码的内容)。

属性

  • file_id 必需
  • size 必需
  • content_type 必需
  • content 必需
  • file 必需
$data = [
    "content_type" => "image/jpeg",
    "filename"     => "passport copy",
    "size"         => 1234,
    "content"      => "<base64-encoded data>",
];

(new SwiftDilAPI())->File()->update($fileId, $data);

示例响应

{
  "id" : "a83c69b3-c945-46d6-af13-08618a1c87a2",
  "created_at" : "2018-02-14T12:00:16Z",
  "updated_at" : "2018-02-14T12:10:42Z",
  "content_type" : "image/jpeg",
  "filename" : "passport copy",
  "size" : 1234,
  "content" : "<base64-encoded data>",
  "locked" : false
}

删除文件

删除现有文件。您只需提供唯一的文件标识符。请注意,一旦文件附件经过任何类型的检查(例如文件验证、身份验证),则无法再被删除。

属性

  • file_id 必需
(new SwiftDilAPI())->File()->delete($fileId);

备注

备注是与客户相关联的注释,可用于支持运营活动。API 允许您创建、检索、更新和删除备注。

备注对象

列名 类型 描述
id 字符串 文件的唯一标识符。
created_at 日期时间 文件创建的日期和时间。
updated_at 日期时间 文件更新的日期和时间。
text 字符串 备注的文本。备注不能超过4000个字符。

创建备注

创建新的备注对象。

属性

  • customer_id 必需
  • text 必需

示例请求

(new SwiftDilAPI())->Note()->create($customerId, "A useful note about John Doe");

示例响应

{
    "id": "91d457aa-b086-42fc-b4f9-c0649b99f689",
    "created_at": "2017-01-17T23:46:26Z",
    "updated_at": "2017-01-17T23:46:26Z",
    "text": "A useful note about John Doe."
}

检索备注

检索现有备注的详细信息。您需要提供唯一的客户和备注标识符。

属性

  • customer_id 必需
  • note_id 必需

示例请求

(new SwiftDilAPI())->Note()->get($customerId, $noteId);

示例响应

{
    "id": "91d457aa-b086-42fc-b4f9-c0649b99f689",
    "created_at": "2017-01-17T23:46:26Z",
    "updated_at": "2017-01-17T23:46:26Z",
    "text": "A useful note about John Doe."
}

更新备注

更新现有备注的详细信息。您需要提供唯一的客户和备注标识符。

属性

  • customer_id 必需
  • note_id 必需
  • text 字符串

示例请求

(new SwiftDilAPI())->Note()->update($customerId, $noteId, $text);

示例响应

{
    "id": "91d457aa-b086-42fc-b4f9-c0649b99f689",
    "created_at": "2017-01-17T23:46:26Z",
    "updated_at": "2017-01-17T23:46:26Z",
    "text": "A useful note about John Doe."
}

删除备注

删除现有备注。您需要提供唯一的客户和备注标识符。

属性

  • customer_id 必需
  • note_id 必需

示例请求

(new SwiftDilAPI())->Note()->delete($customerId, $noteId);

列出所有备注

列出给定客户的全部现有身份验证。验证结果按创建日期排序,最新的验证结果排在前面。除了分页部分中列出的属性外,以下可选参数可用于精炼响应。

属性

  • customer_id 必需

示例请求

(new SwiftDilAPI())->Note()->getAll($customerId);