smile-identity-core 2.1.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/release.yml +1 -1
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +1 -1
- data/examples/aml_check.rb +25 -0
- data/lib/smile-identity-core/aml_check.rb +91 -0
- data/lib/smile-identity-core/business_verification.rb +3 -4
- data/lib/smile-identity-core/constants/job_type.rb +3 -0
- data/lib/smile-identity-core/version.rb +1 -1
- data/lib/smile-identity-core.rb +10 -9
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1cd1f7ec1f9a1c9418ce0e3d5501eb8e32fcfaf029da9b9188145a16dbbdf70b
|
4
|
+
data.tar.gz: 4bb53eafd0b561c05599a33fda6450099ab7208d1800a7ed19f5f304745e9985
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd09fe7c7e6117497dada79d8132eae2b08e58fd36def75626cd8883f151138d54868c16eb3b5ad5f45977c5d0fe6c1e01e9184350d8147bde3dee6513da0ea2
|
7
|
+
data.tar.gz: b442ba3c424a3d0eaf5f2fedba6596825da09053bf4d4a9221d8999c5e18c7359dde3c8abc2db6f23154d0e306cf220aa654a4ad3e4c1d9afe5fcb34f5e1038e
|
@@ -14,7 +14,7 @@ jobs:
|
|
14
14
|
with:
|
15
15
|
set-safe-directory: false
|
16
16
|
- name: Release Gem
|
17
|
-
uses:
|
17
|
+
uses: cadwallion/publish-rubygems-action@master
|
18
18
|
env:
|
19
19
|
RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
|
20
20
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [2.2.0] - 2023-04-05
|
10
|
+
### Added
|
11
|
+
- Adds support for AML check
|
12
|
+
### Changed
|
13
|
+
- Fix business verification docstrings
|
14
|
+
|
9
15
|
## [2.1.2] - 2023-03-09
|
10
16
|
### Changed
|
11
17
|
- Fix `get_web_token` by ensuring signature merges to request_params
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'smile-identity-core'
|
4
|
+
require 'securerandom'
|
5
|
+
# See https://docs.smileidentity.com/products/for-individuals-kyc/aml-check for
|
6
|
+
# more information on business verification
|
7
|
+
|
8
|
+
# Initialize
|
9
|
+
partner_id = '' # login to the Smile Identity portal to view your partner id
|
10
|
+
api_key = '' # copy your API key from the Smile Identity portal
|
11
|
+
sid_server = '0' # Use 0 for the sandbox server, use 1 for production server
|
12
|
+
|
13
|
+
connection = SmileIdentityCore::AmlCheck.new(partner_id, api_key, sid_server)
|
14
|
+
|
15
|
+
request_params = {
|
16
|
+
job_id: "job-#{SecureRandom.uuid}",
|
17
|
+
user_id: "user-#{SecureRandom.uuid}",
|
18
|
+
full_name: 'John Leo Doe',
|
19
|
+
countries: ['US'],
|
20
|
+
birth_year: '1984', # yyyy
|
21
|
+
search_existing_user: false
|
22
|
+
}
|
23
|
+
|
24
|
+
# Submit the job
|
25
|
+
pp connection.submit_job(request_params)
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'json'
|
4
|
+
require 'typhoeus'
|
5
|
+
require_relative 'validations'
|
6
|
+
|
7
|
+
module SmileIdentityCore
|
8
|
+
##
|
9
|
+
# The AML Check product allows you to perform due diligence on your customers by screening them against
|
10
|
+
# global watchlists, politically exposed persons lists, and adverse media publications.
|
11
|
+
# For more info visit https://docs.smileidentity.com/products/for-individuals-kyc/aml-check
|
12
|
+
class AmlCheck
|
13
|
+
include Validations
|
14
|
+
|
15
|
+
###
|
16
|
+
# Submit AML
|
17
|
+
# @param [String] :partner_id A unique number assigned by Smile ID to your account. Can be found in the portal
|
18
|
+
# @param [String] :api_key your API key from the Smile Identity portal
|
19
|
+
# @param [String] :sid_server Use 0 for the sandbox server, use 1 for production server
|
20
|
+
def initialize(partner_id, api_key, sid_server)
|
21
|
+
@partner_id = partner_id.to_s
|
22
|
+
@api_key = api_key
|
23
|
+
@sid_server = sid_server
|
24
|
+
@url = if sid_server !~ URI::DEFAULT_PARSER.make_regexp
|
25
|
+
SmileIdentityCore::ENV::SID_SERVER_MAPPING[sid_server.to_s]
|
26
|
+
else
|
27
|
+
sid_server
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# Submit AML
|
32
|
+
# @param [Hash] params the options to create a job with.
|
33
|
+
# @option opts [String] :job_id A unique value generated by you to track jobs on your end.
|
34
|
+
# @option opts [String] :user_id A unique value generated by you.
|
35
|
+
# @option opts [String] :full_name The full name of the customer.
|
36
|
+
# @option opts [String] :birth_year The customer’s year of birth, in the format yyyy
|
37
|
+
# @option opts [Array] :countries An array that takes the customer’s known nationalities in 2-character
|
38
|
+
# (ISO 3166-1 alpha-2) format e.g. Nigeria is NG, Kenya is KE, etc
|
39
|
+
# @option opts [boolean] :search_existing_user If you intend to re-use the name and year of birth
|
40
|
+
# of a user’s previous KYC job
|
41
|
+
# @option opts [Hash] :optional_info Any optional data, this will be returned
|
42
|
+
# in partner_params.
|
43
|
+
def submit_job(params)
|
44
|
+
@params = symbolize_keys(params)
|
45
|
+
@optional_info = @params[:optional_info]
|
46
|
+
submit_requests
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def symbolize_keys(params)
|
52
|
+
params.is_a?(Hash) ? params.transform_keys(&:to_sym) : params
|
53
|
+
end
|
54
|
+
|
55
|
+
def build_payload
|
56
|
+
@payload = generate_signature
|
57
|
+
@payload.merge!(@params)
|
58
|
+
add_partner_info
|
59
|
+
add_sdk_info
|
60
|
+
@payload
|
61
|
+
end
|
62
|
+
|
63
|
+
def add_partner_info
|
64
|
+
@payload[:partner_id] = @partner_id
|
65
|
+
@payload[:job_type] = SmileIdentityCore::JobType::AML
|
66
|
+
@payload[:partner_params] = @optional_info if @optional_info
|
67
|
+
end
|
68
|
+
|
69
|
+
def add_sdk_info
|
70
|
+
@payload[:source_sdk] = SmileIdentityCore::SOURCE_SDK
|
71
|
+
@payload[:source_sdk_version] = SmileIdentityCore::VERSION
|
72
|
+
end
|
73
|
+
|
74
|
+
def generate_signature
|
75
|
+
SmileIdentityCore::Signature.new(@partner_id, @api_key).generate_signature
|
76
|
+
end
|
77
|
+
|
78
|
+
def submit_requests
|
79
|
+
request = Typhoeus::Request.new("#{@url}/aml", method: 'POST',
|
80
|
+
headers: { 'Content-Type' => 'application/json' },
|
81
|
+
body: build_payload.to_json)
|
82
|
+
|
83
|
+
request.on_complete do |response|
|
84
|
+
return response.body if response.success?
|
85
|
+
|
86
|
+
raise "#{response.code}: #{response.body}"
|
87
|
+
end
|
88
|
+
request.run
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -20,10 +20,9 @@ module SmileIdentityCore
|
|
20
20
|
|
21
21
|
###
|
22
22
|
# Submit business verification
|
23
|
-
# @param [
|
24
|
-
# @
|
25
|
-
# @
|
26
|
-
# @option opts [String] :user_id A unique value generated by you.
|
23
|
+
# @param [String] :partner_id A unique number assigned by Smile ID to your account. Can be found in the portal
|
24
|
+
# @param [String] :api_key your API key from the Smile Identity portal
|
25
|
+
# @param [String] :sid_server Use 0 for the sandbox server, use 1 for production server
|
27
26
|
def initialize(partner_id, api_key, sid_server)
|
28
27
|
@partner_id = partner_id.to_s
|
29
28
|
@api_key = api_key
|
@@ -22,5 +22,8 @@ module SmileIdentityCore
|
|
22
22
|
UPDATE_PHOTO = 8
|
23
23
|
# Compares document verification to an id check
|
24
24
|
COMPARE_USER_INFO = 9
|
25
|
+
# Performs due diligence by screening against global watchlists,
|
26
|
+
# politically exposed persons lists, and adverse media publications
|
27
|
+
AML = 10
|
25
28
|
end
|
26
29
|
end
|
data/lib/smile-identity-core.rb
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
3
|
+
require_relative 'smile-identity-core/version'
|
4
|
+
require_relative 'smile-identity-core/web_api'
|
5
|
+
require_relative 'smile-identity-core/id_api'
|
6
|
+
require_relative 'smile-identity-core/aml_check'
|
7
|
+
require_relative 'smile-identity-core/signature'
|
8
|
+
require_relative 'smile-identity-core/utilities'
|
9
|
+
require_relative 'smile-identity-core/business_verification'
|
10
|
+
require_relative 'smile-identity-core/constants/env'
|
11
|
+
require_relative 'smile-identity-core/constants/image_type'
|
12
|
+
require_relative 'smile-identity-core/constants/job_type'
|
12
13
|
|
13
14
|
module SmileIdentityCore
|
14
15
|
class Error < StandardError; end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smile-identity-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Smile Identity
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -168,6 +168,7 @@ files:
|
|
168
168
|
- Rakefile
|
169
169
|
- bin/console
|
170
170
|
- bin/setup
|
171
|
+
- examples/aml_check.rb
|
171
172
|
- examples/biometric_kyc.rb
|
172
173
|
- examples/business_verification.rb
|
173
174
|
- examples/document_verification.rb
|
@@ -180,6 +181,7 @@ files:
|
|
180
181
|
- examples/get_web_token.rb
|
181
182
|
- examples/smart_selfie_authentication.rb
|
182
183
|
- lib/smile-identity-core.rb
|
184
|
+
- lib/smile-identity-core/aml_check.rb
|
183
185
|
- lib/smile-identity-core/business_verification.rb
|
184
186
|
- lib/smile-identity-core/constants/env.rb
|
185
187
|
- lib/smile-identity-core/constants/image_type.rb
|
@@ -214,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
216
|
- !ruby/object:Gem::Version
|
215
217
|
version: '0'
|
216
218
|
requirements: []
|
217
|
-
rubygems_version: 3.4.
|
219
|
+
rubygems_version: 3.4.10
|
218
220
|
signing_key:
|
219
221
|
specification_version: 4
|
220
222
|
summary: The Smile Identity Web API allows the user to access\ most of the features
|