์บ๋๋ค ์ด์ ๋ฉดํ ๊ฒ์ฆ
Verifik์ ์ด์ ๋ฉดํ ๊ฒ์ฆ API๋ ์ ๋ถ ๊ณต์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด ์บ๋๋ค ์ด์ ๋ฉดํ์ ์ง์๋ฅผ ํ์ธํ ์ ์๋๋ก ํฉ๋๋ค. KYC(Know Your Customer) ์ ์ฐจ๋ฅผ ์๋ํํ๊ณ , ์ฌ๊ธฐ๋ฅผ ์๋ฐฉํ๋ฉฐ, ๊ท์ ์๊ตฌ์ฌํญ์ ์์ฝ๊ฒ ์ถฉ์กฑํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค.
๋ธ๋ฆฌํฐ์์ปฌ๋ผ๋น์ ๋ฐ ์จํ๋ฆฌ์ค์ฃผ(ๅท)์์ ๋ฐ๊ธ๋ ์ด์ ๋ฉดํ์ ์ ํจ์ฑ์ ๋น ๋ฅด๊ณ ์์ ํ๊ฒ ์๋์ผ๋ก ํ์ธํด์ผ ํ๋ ๋น์ฆ๋์ค๋ฅผ ์ํด ๋ง๋ค์ด์ก์ต๋๋ค.
์ด API๋ ๋ฌด์์ ๊ฒ์ฆํฉ๋๊น?โ
๋น์ฌ์ API๋ ๊ณต์ ๊ธฐ๋ก๊ณผ ์ง์ ์ฐ๊ฒฐ๋์ด ๋ค์์ ๊ฒ์ฆํฉ๋๋ค.
- ์ด์ ๋ฉดํ ๋ฒํธ: ์ด์ ๋ฉดํ ๋ฒํธ์ ์ง์๋ฅผ ํ์ธํฉ๋๋ค.
- ๋ฉดํ ์ํ: ํ์ฌ ๋ฉดํ๊ฐ ์ ํจํ์ง ํ์ธํฉ๋๋ค.
- ์ ์ ์ผ์น ์ฌ๋ถ: ๋ธ๋ฆฌํฐ์์ปฌ๋ผ๋น์์ ๊ฒฝ์ฐ, ๋ฉดํ ๊ธฐ๋ก๊ณผ ์ ๋ ฅ๋ ์ฑ(ๅง)์ด ์ผ์นํ๋์ง ๊ฒ์ฆํฉ๋๋ค.
์ด๋ฌํ ํญ๋ชฉ์ ๊ฒ์ฆํจ์ผ๋ก์จ ์ด์ ๋ฉดํ๊ฐ ์ง๋ณธ์ด๋ฉฐ ์ ํจํจ์ ํ์ ํ ์ ์๊ณ , ์ฌ๊ธฐ ์ํ์ ํฌ๊ฒ ๋ฎ์ถ ์ ์์ต๋๋ค.
์บ๋๋ค ์ ์ ๊ฒ์ฆ ์๋น์ค๋ ๋ธ๋ฆฌํฐ์์ปฌ๋ผ๋น์ ๋ฐ ์จํ๋ฆฌ์ค์ฃผ์ ์ด์ ๋ฉดํ ๊ฒ์ฆ์ ํฌํจํฉ๋๋ค. ๋ณธ ์๋น์ค๋ฅผ ํตํด ๋ ์ฃผ(ๅท)์์ ๋ฐ๊ธ๋ ์ด์ ๋ฉดํ์ ์ง์์ ์ ํจ์ฑ์ ํ์ธํ ์ ์์ต๋๋ค.
์ง์๋๋ ์ฃผโ
| ์ฃผ(ๅท) | ์๋ํฌ์ธํธ | ์ค๋ช |
|---|---|---|
| ๋ธ๋ฆฌํฐ์์ปฌ๋ผ๋น์ | /v2/ca/british-columbia/driver-license | ๋ฌธ์ ๋ฒํธ์ ์ฑ์ผ๋ก BC ์ด์ ๋ฉดํ๋ฅผ ๊ฒ์ฆํฉ๋๋ค. |
| ์จํ๋ฆฌ์ค | /v2/ca/ontario/driver-license | ๋ฌธ์ ๋ฒํธ๋ก ์จํ๋ฆฌ์ค ์ด์ ๋ฉดํ๋ฅผ ๊ฒ์ฆํฉ๋๋ค. |
๋ธ๋ฆฌํฐ์์ปฌ๋ผ๋น์ ์ด์ ๋ฉดํโ
์๋ํฌ์ธํธโ
GET https://api.verifik.co/v2/ca/british-columbia/driver-license
๋ธ๋ฆฌํฐ์์ปฌ๋ผ๋น์ ์ด์ ๋ฉดํ ๊ฒ์ฆ ์๋น์ค๋ ์บ๋๋ค ๋ธ๋ฆฌํฐ์์ปฌ๋ผ๋น์์ฃผ์์ ๋ฐ๊ธ๋ ์ด์ ๋ฉดํ์ ์ง์์ ์ ํจ์ฑ์ ์์ฝ๊ฒ ํ์ธํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ๋ณธ ์๋น์ค๋ฅผ ํ์ฉํ๋ฉด ์ ๋ ฅ๋ ๋ฌธ์ ๋ฒํธ์ ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ด์ ๋ฉดํ๋ฅผ ์ ์ํ ๊ฒ์ฆํ ์ ์์ต๋๋ค.
ํค๋(Headers)โ
| ์ด๋ฆ | ๊ฐ |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
๋งค๊ฐ๋ณ์(Parameters)โ
| ์ด๋ฆ | ํ์ | ํ์ | ์ค๋ช | ์์ |
|---|---|---|---|---|
documentNumber | string | ์ | ์กฐํํ ์ด์ ๋ฉดํ ๋ฒํธ. ๋ชจ๋ ๋ฐ์ดํฐ๋ ๋ฉดํ์ ํ๊ธฐ๋ ๊ทธ๋๋ก ์ ๋ ฅํด์ผ ํฉ๋๋ค. | 1123456 |
lastName | string | ์ | ์ด์ ๋ฉดํ์ ํ๊ธฐ๋ ์ฑ(ๅง). | HELLO |
์์ฒญ(Request)โ
- JavaScript
- Python
- PHP
- Swift
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.verifik.co/v2/ca/british-columbia/driver-license',
params: {
documentNumber: '7793458',
lastName: 'JIWA'
},
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer <tu_token>'
}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
import http.client
conn = http.client.HTTPSConnection("api.verifik.co")
payload = ''
headers = {}
conn.request("GET", "/v2/ca/british-columbia/driver-license?documentNumber=1123456&lastName=HELLO", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.verifik.co/v2/ca/british-columbia/driver-license?documentNumber=1123456&lastName=HELLO');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
?>
var request = URLRequest(url: URL(string: "https://api.verifik.co/v2/ca/british-columbia/driver-license?documentNumber=1123456&lastName=HELLO")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
์จํ๋ฆฌ์ค ์ด์ ๋ฉดํโ
์๋ํฌ์ธํธโ
GET https://api.verifik.co/v2/ca/ontario/driver-license
์จํ๋ฆฌ์ค ์ด์ ๋ฉดํ ์๋น์ค๋ ์บ๋๋ค ์จํ๋ฆฌ์ค์ฃผ์์ ๋ฐ๊ธ๋ ์ด์ ๋ฉดํ์ ๋ํ ํต์ฌ ์ ๋ณด๋ฅผ ์ ์ํ๊ฒ ์กฐํํ ์ ์๋๋ก ํฉ๋๋ค. ๋ฌธ์ ๋ฒํธ๋ฅผ ์ ๊ณตํ๋ฉด ๋ฉดํ ์ํ์ ๊ด๋ จ ๊ฒ์ฆ ๋ฒํธ ๋ฑ ์์ธ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ณธ ์๋น์ค๋ฅผ ํ์ฉํด ์จํ๋ฆฌ์ค ์ด์ ๋ฉดํ์ ์ง์์ ์ ํจ์ฑ์ ํจ์จ์ ์ผ๋ก ๊ฒ์ฆํ ์ ์์ต๋๋ค. ์ ์ ํ์ธ์ด๋ ๊ท์ ๋ชฉ์ ์ ๋ฉดํ ์ ํจ์ฑ ํ์ธ์ ์ ํฉํ ์ ํํ๊ณ ์ต์ ์ ๋ฉดํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํค๋(Headers)โ
| ์ด๋ฆ | ๊ฐ |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
๋งค๊ฐ๋ณ์(Parameters)โ
| ์ด๋ฆ | ํ์ | ํ์ | ์ค๋ช | ์์ |
|---|---|---|---|---|
documentNumber | string | ์ | ์กฐํํ ์ด์ ๋ฉดํ ๋ฒํธ. ๋ชจ๋ ๋ฐ์ดํฐ๋ ๋ฉดํ์ ํ๊ธฐ๋ ๊ทธ๋๋ก ์ ๋ ฅํด์ผ ํฉ๋๋ค. | S123456789123456 |
์์ฒญ(Request)โ
- JavaScript
- Python
- PHP
- Swift
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.verifik.co/v2/ca/ontario/driver-license',
params: {
documentNumber: 'S123456789123456'
},
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer <tu_token>'
}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
import requests
url = "https://api.verifik.co/v2/ca/ontario/driver-license?documentNumber=S123456789123456"
payload = {}
headers = {}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.verifik.co/v2/ca/ontario/driver-license?documentNumber=S123456789123456');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
?>
var request = URLRequest(url: URL(string: "https://api.verifik.co/v2/ca/ontario/driver-license?documentNumber=S123456789123456")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
์๋ต ์์โ
- 200 - ๋ธ๋ฆฌํฐ์์ปฌ๋ผ๋น์
- 200 - ์จํ๋ฆฌ์ค
- 404
- 409
{
"data": {
"documentNumber": "1123456",
"lastName": "HELLO",
"valid": true
},
"signature": {
"dateTime": "August 8, 2023 10:56 PM",
"message": "Certified by Verifik.co"
},
"id": "1234567"
}
{
"data": {
"documentNumber": "S123456789123456",
"licenceStatus": "Valid",
"verificationNumber": "123V5"
},
"signature": {
"dateTime": "March 12, 2024 3:47 PM",
"message": "Certified by Verifik.co"
},
"id": "8X9FD"
}
{
"code": "NotFound",
"message": "Record not found."
}
{
"code": "MissingParameter",
"message": "missing lastName\n missing documentNumber\n"
}
์ผ๋ฐ์ ์ธ ํ์ฉ ์ฌ๋กโ
- ํํ ํฌ ๋ฐ ์ํ: ๊ณ์ข ๊ฐ์ค ๋๋ ๋์ถ ์ ์ฒญ ์ ์ฆ์ ์ด์ ๋ฉดํ๋ฅผ ๊ฒ์ฆํฉ๋๋ค.
- ์น์ฐจ ๊ณต์ ๋ฐ ๋ฐฐ๋ฌ: ํ๋ซํผ์ ํ์ฑํ๋๊ธฐ ์ ์ ์ด์ ์์ ์ ์์ ํ์ธํฉ๋๋ค.
- ์ธ์ฌ ๋ฐ ์ฑ์ฉ: ์ฑ์ฉ ์ ์ฐจ์ ์ผํ์ผ๋ก ์ด์ ์๊ฒฉ์ ๊ฒ์ฆํฉ๋๋ค.
- ๋ณดํ ๋ฐ ์๋์ฐจ: ๋ณดํ ๊ฐ์ ๋๋ ๋ณดํ๊ธ ์ฒ๋ฆฌ ์ ์ ์ด์ ๋ฉดํ ์ ํจ์ฑ์ ํ์ธํฉ๋๋ค.
๊ณต์ ์ถ์ฒ์ ์ ๋ขฐ์ฑโ
์บ๋๋ค ์ฃผ(ๅท) ๊ณต์ ๋ฉดํ ๋ฐ๊ธ ์์คํ (๋ธ๋ฆฌํฐ์์ปฌ๋ผ๋น์ ๋ฐ ์จํ๋ฆฌ์ค)๊ณผ ์ง์ ์ฐ๊ฒฐ๋์ด ๊ฒ์ฆ๋๊ณ ์ต์ ์ํ์ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ชจ๋ ์กฐํ๋ ๋ณด์ ๋ฐ ๊ท์ ํ์ค์ ์๊ฒฉํ ์ค์ํ์ฌ ์ฒ๋ฆฌ๋ฉ๋๋ค.
์ฃผ์ ์ด์ โ
- ์๋ํ๋ ์ปดํ๋ผ์ด์ธ์ค: ์ฌ์ฉ์ ๊ฒฝํ์ ํด์น์ง ์์ผ๋ฉด์ ๊ฒ์ฆ ์ ๊ฒ์ ์๋ํํ๊ณ ์ฌ๊ธฐ๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
- ์ฆ๊ฐ์ ์ธ ๊ฒฐ๊ณผ: ์ ์ด ๋ด์ ๊ฒ์ฆ์ ์ฒ๋ฆฌํ๋ฏ๋ก ์ค์๊ฐ ๋์งํธ ์จ๋ณด๋ฉ์ ์ ํฉํฉ๋๋ค.
- ์ ๋ขฐํ ์ ์๋ ๋ฐ์ดํฐ: ์ฃผ(ๅท) ๊ณต์ ๊ธฐ๋ก์ ์ถ์ฒ๋ก ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ๊ฐํธํ ํตํฉ: REST API ๋๋ ํธํ SDK๋ฅผ ํตํด ์์ฝ๊ฒ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
์ปดํ๋ผ์ด์ธ์ค์ ๋ณด์โ
Verifik์ ๋ฐ์ดํฐ ์์ ์ ์ต์ฐ์ ์ผ๋ก ํฉ๋๋ค. ๊ณ ๊ธ ์ํธํ(HTTPS/TLS 1.3)์ ์๊ฒฉํ ๊ฐ์ธ์ ๋ณด ๊ด๋ฆฌ ํ์ค์ ์ฌ์ฉํด ๊ธฐ๋ฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค. ์๋น์ค๋ 24/7 ๊ฐ์ฉ์ฑ ๋ชจ๋ํฐ๋ง์ ์ ์ฉํ๊ณ , ํ ์ ๊ทผ ์ ์ด๋ฅผ ์ํด ์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
Verifik ์๊ฐโ
Verifik์ ๋ผํด์๋ฉ๋ฆฌ์นด ๋ฐ ๋ถ๋ฏธ ์ง์ญ์์ ์ ์ ํ์ธ, ์ปดํ๋ผ์ด์ธ์ค, ์ฌ๊ธฐ ์๋ฐฉ์ ์ ๊ณตํ๋ ์ ๋์ ์ธ ํ๋ซํผ์ ๋๋ค. ์ ํฌ API๋ KYC, KYB, AML, ์์ฒด ์ธ์ฆ ์ ์ฐจ๋ฅผ ์๋ํํ๋ฉฐ, ์ฝ๋กฌ๋น์, ๋ฉ์์ฝ, ํ๋ฃจ, ์น ๋ , ์ฐ๋ฃจ๊ณผ์ด, ์๋ฅดํจํฐ๋, ๋ธ๋ผ์ง, ์บ๋๋ค ๋ฐ ๊ทธ ์ธ ์ง์ญ์ ๊ณต์ ๋ฐ์ดํฐ ์์ค์ ๋น์ฆ๋์ค๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค.