Submit KYC
This API allows you to submit the necessary KYC documents for a specific contact. The KYC documents include the contact’s identity proof (e.g., ID card, passport), a selfie, and relevant document images. You must provide the correct contact email.
curl --request POST \
--url https://api.cleverhub.co/api/v2/contacts/submit_kyc \
--header 'Content-Type: multipart/form-data' \
--header 'app-id: <api-key>' \
--header 'secret-key: <api-key>' \
--form email=test@example.com \
--form document_type=passport \
--form document_number=12345678 \
--form 'document_username=Luyx Tran' \
--form issue_date=2024-04-16 \
--form expiry_date=2024-04-16 \
--form issue_country=AU \
--form nationality=AU \
--form selfie='@example-file' \
--form id_doc_front_side='@example-file' \
--form id_doc_back_side='@example-file' \
--form 'webhook_notification={
"endpoint_url": "https://yourserver.co/notifications",
"authorization_header": "****"
}'import requests
url = "https://api.cleverhub.co/api/v2/contacts/submit_kyc"
files = {
"selfie": ("example-file", open("example-file", "rb")),
"id_doc_front_side": ("example-file", open("example-file", "rb")),
"id_doc_back_side": ("example-file", open("example-file", "rb"))
}
payload = {
"email": "test@example.com",
"document_type": "passport",
"document_number": "12345678",
"document_username": "Luyx Tran",
"issue_date": "2024-04-16",
"expiry_date": "2024-04-16",
"issue_country": "AU",
"nationality": "AU",
"webhook_notification": "{
\"endpoint_url\": \"https://yourserver.co/notifications\",
\"authorization_header\": \"****\"
}"
}
headers = {
"app-id": "<api-key>",
"secret-key": "<api-key>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('email', 'test@example.com');
form.append('document_type', 'passport');
form.append('document_number', '12345678');
form.append('document_username', 'Luyx Tran');
form.append('issue_date', '2024-04-16');
form.append('expiry_date', '2024-04-16');
form.append('issue_country', 'AU');
form.append('nationality', 'AU');
form.append('selfie', 'photo.jpeg');
form.append('id_doc_front_side', 'front_side.png');
form.append('id_doc_back_side', 'back_side.png');
form.append('webhook_notification', '{
"endpoint_url": "https://yourserver.co/notifications",
"authorization_header": "****"
}');
const options = {method: 'POST', headers: {'app-id': '<api-key>', 'secret-key': '<api-key>'}};
options.body = form;
fetch('https://api.cleverhub.co/api/v2/contacts/submit_kyc', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cleverhub.co/api/v2/contacts/submit_kyc",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ntest@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_type\"\r\n\r\npassport\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_number\"\r\n\r\n12345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_username\"\r\n\r\nLuyx Tran\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expiry_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_country\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"nationality\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nphoto.jpeg\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_front_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nfront_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_back_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nback_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_notification\"\r\n\r\n{\r\n \"endpoint_url\": \"https://yourserver.co/notifications\",\r\n \"authorization_header\": \"****\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data",
"app-id: <api-key>",
"secret-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.cleverhub.co/api/v2/contacts/submit_kyc"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ntest@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_type\"\r\n\r\npassport\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_number\"\r\n\r\n12345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_username\"\r\n\r\nLuyx Tran\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expiry_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_country\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"nationality\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nphoto.jpeg\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_front_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nfront_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_back_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nback_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_notification\"\r\n\r\n{\r\n \"endpoint_url\": \"https://yourserver.co/notifications\",\r\n \"authorization_header\": \"****\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("app-id", "<api-key>")
req.Header.Add("secret-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.cleverhub.co/api/v2/contacts/submit_kyc")
.header("app-id", "<api-key>")
.header("secret-key", "<api-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ntest@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_type\"\r\n\r\npassport\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_number\"\r\n\r\n12345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_username\"\r\n\r\nLuyx Tran\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expiry_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_country\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"nationality\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nphoto.jpeg\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_front_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nfront_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_back_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nback_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_notification\"\r\n\r\n{\r\n \"endpoint_url\": \"https://yourserver.co/notifications\",\r\n \"authorization_header\": \"****\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cleverhub.co/api/v2/contacts/submit_kyc")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["app-id"] = '<api-key>'
request["secret-key"] = '<api-key>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ntest@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_type\"\r\n\r\npassport\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_number\"\r\n\r\n12345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_username\"\r\n\r\nLuyx Tran\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expiry_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_country\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"nationality\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nphoto.jpeg\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_front_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nfront_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_back_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nback_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_notification\"\r\n\r\n{\r\n \"endpoint_url\": \"https://yourserver.co/notifications\",\r\n \"authorization_header\": \"****\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"status": "Ok"
}{
"errors": {
"code": "REQUIRE_LOGIN",
"message": "Not Authorised"
}
}{
"errors": {
"message": "Email can't be blank"
}
}Authorizations
A unique identifier assigned to each application.
A secure token associated with the app-id.
Body
The contact's email used for verification.
The type of identification document (e.g., passport, id_card).
passport, id_card, driving_license The identification number on the document.
The name as shown on the identification document.
The expiry date of the identification document in format 'yyyy-mm-dd'.
The country that issued the identification document (ISO 3166-1 alpha-2).
The country of nationality of the contact (ISO 3166-1 alpha-2 code).
A selfie image of the contact for identity verification should be in JPEG format.
The front side image of the identification document should be in JPEG or PNG format.
The back side image of the identification document should be in JPEG or PNG format.
Merchant Callback Details
Show child attributes
Show child attributes
The issue date of the identification document in format 'yyyy-mm-dd'.
Callbacks
POST{$request.body#/endpoint_url}KYCStatusChanged
Body
Contact's email
Contact's first name
Contact's last name
The type of contact (e.g., individual or organization)
individual, organization "individual"
Contact date of birth format 'yyyy-mm-dd'
Contact's phone
"+61-412345678"
Contact registration number.
Contact's gender
male, female "male"
The primary name of an address's street.
Name of an address's city or town.
The address's postcode
The address's state / province / county.
ISO 3166-1 alpha-2 country code.
Contains the most recent KYC submission details for the contact.
Show child attributes
Show child attributes
An array of KYC statuses for the contact, containing multiple KYC instances with status and message.
Show child attributes
Show child attributes
Response
The merchant's server should return this code
Response
KYC submission successful
curl --request POST \
--url https://api.cleverhub.co/api/v2/contacts/submit_kyc \
--header 'Content-Type: multipart/form-data' \
--header 'app-id: <api-key>' \
--header 'secret-key: <api-key>' \
--form email=test@example.com \
--form document_type=passport \
--form document_number=12345678 \
--form 'document_username=Luyx Tran' \
--form issue_date=2024-04-16 \
--form expiry_date=2024-04-16 \
--form issue_country=AU \
--form nationality=AU \
--form selfie='@example-file' \
--form id_doc_front_side='@example-file' \
--form id_doc_back_side='@example-file' \
--form 'webhook_notification={
"endpoint_url": "https://yourserver.co/notifications",
"authorization_header": "****"
}'import requests
url = "https://api.cleverhub.co/api/v2/contacts/submit_kyc"
files = {
"selfie": ("example-file", open("example-file", "rb")),
"id_doc_front_side": ("example-file", open("example-file", "rb")),
"id_doc_back_side": ("example-file", open("example-file", "rb"))
}
payload = {
"email": "test@example.com",
"document_type": "passport",
"document_number": "12345678",
"document_username": "Luyx Tran",
"issue_date": "2024-04-16",
"expiry_date": "2024-04-16",
"issue_country": "AU",
"nationality": "AU",
"webhook_notification": "{
\"endpoint_url\": \"https://yourserver.co/notifications\",
\"authorization_header\": \"****\"
}"
}
headers = {
"app-id": "<api-key>",
"secret-key": "<api-key>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('email', 'test@example.com');
form.append('document_type', 'passport');
form.append('document_number', '12345678');
form.append('document_username', 'Luyx Tran');
form.append('issue_date', '2024-04-16');
form.append('expiry_date', '2024-04-16');
form.append('issue_country', 'AU');
form.append('nationality', 'AU');
form.append('selfie', 'photo.jpeg');
form.append('id_doc_front_side', 'front_side.png');
form.append('id_doc_back_side', 'back_side.png');
form.append('webhook_notification', '{
"endpoint_url": "https://yourserver.co/notifications",
"authorization_header": "****"
}');
const options = {method: 'POST', headers: {'app-id': '<api-key>', 'secret-key': '<api-key>'}};
options.body = form;
fetch('https://api.cleverhub.co/api/v2/contacts/submit_kyc', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cleverhub.co/api/v2/contacts/submit_kyc",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ntest@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_type\"\r\n\r\npassport\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_number\"\r\n\r\n12345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_username\"\r\n\r\nLuyx Tran\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expiry_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_country\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"nationality\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nphoto.jpeg\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_front_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nfront_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_back_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nback_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_notification\"\r\n\r\n{\r\n \"endpoint_url\": \"https://yourserver.co/notifications\",\r\n \"authorization_header\": \"****\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data",
"app-id: <api-key>",
"secret-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.cleverhub.co/api/v2/contacts/submit_kyc"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ntest@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_type\"\r\n\r\npassport\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_number\"\r\n\r\n12345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_username\"\r\n\r\nLuyx Tran\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expiry_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_country\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"nationality\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nphoto.jpeg\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_front_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nfront_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_back_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nback_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_notification\"\r\n\r\n{\r\n \"endpoint_url\": \"https://yourserver.co/notifications\",\r\n \"authorization_header\": \"****\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("app-id", "<api-key>")
req.Header.Add("secret-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.cleverhub.co/api/v2/contacts/submit_kyc")
.header("app-id", "<api-key>")
.header("secret-key", "<api-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ntest@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_type\"\r\n\r\npassport\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_number\"\r\n\r\n12345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_username\"\r\n\r\nLuyx Tran\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expiry_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_country\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"nationality\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nphoto.jpeg\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_front_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nfront_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_back_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nback_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_notification\"\r\n\r\n{\r\n \"endpoint_url\": \"https://yourserver.co/notifications\",\r\n \"authorization_header\": \"****\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cleverhub.co/api/v2/contacts/submit_kyc")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["app-id"] = '<api-key>'
request["secret-key"] = '<api-key>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ntest@example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_type\"\r\n\r\npassport\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_number\"\r\n\r\n12345678\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"document_username\"\r\n\r\nLuyx Tran\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expiry_date\"\r\n\r\n2024-04-16\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"issue_country\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"nationality\"\r\n\r\nAU\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"selfie\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nphoto.jpeg\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_front_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nfront_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"id_doc_back_side\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\nback_side.png\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_notification\"\r\n\r\n{\r\n \"endpoint_url\": \"https://yourserver.co/notifications\",\r\n \"authorization_header\": \"****\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"status": "Ok"
}{
"errors": {
"code": "REQUIRE_LOGIN",
"message": "Not Authorised"
}
}{
"errors": {
"message": "Email can't be blank"
}
}