KYC Ownership Verification
curl --request GET \
--url https://api.joinworth.com/integration/api/v1/verification/businesses/{businessId}/owners \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.joinworth.com/integration/api/v1/verification/businesses/{businessId}/owners"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.joinworth.com/integration/api/v1/verification/businesses/{businessId}/owners', 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.joinworth.com/integration/api/v1/verification/businesses/{businessId}/owners",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.joinworth.com/integration/api/v1/verification/businesses/{businessId}/owners"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.joinworth.com/integration/api/v1/verification/businesses/{businessId}/owners")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.joinworth.com/integration/api/v1/verification/businesses/{businessId}/owners")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "KYC Ownership Verification fetched successfully",
"data": [
{
"id": "47797fcf-09ff-46d7-b500-39141135c52f",
"external_id": "abc-123",
"title": "Director",
"first_name": "Leslie",
"last_name": "Knope",
"email": "admin@joinworth.com",
"mobile": "+12345678909",
"date_of_birth": "1989-07-22",
"address_apartment": null,
"address_line_1": "123 Main St.",
"address_line_2": null,
"address_city": "Pawnee",
"address_state": "IN",
"address_postal_code": "46001",
"address_country": "USA",
"created_at": "2024-05-16T11:34:14.545Z",
"created_by": "19ac7412-6c06-4742-8c52-38787c4e889a",
"updated_at": "2024-05-16T11:34:14.545Z",
"updated_by": "19ac7412-6c06-4742-8c52-38787c4e889a",
"business_id": "df3998ab-7111-4c01-9f4f-d9bd6467c3b6",
"owner_type": "CONTROL",
"ownership_percentage": "100.00",
"kyc_check": {
"name": {
"summary": "match"
},
"status": "success",
"address": {
"type": "no_data",
"po_box": "no_data",
"summary": "match"
},
"id_number": {
"summary": "match"
},
"phone_number": {
"summary": "match",
"area_code": "match"
},
"date_of_birth": {
"summary": "match"
}
},
"risk_check_result": {
"name": "match",
"address": {
"type": "no_data",
"po_box": "no_data",
"summary": "match"
},
"dob": "match",
"ssn": "match",
"phone": {
"summary": "match",
"area_code": "match",
"linked_services": [
"facebook",
"google",
"twitter",
"instagram",
"yahoo",
"whatsapp",
"telegram",
"viber",
"ok"
]
},
"email": {
"breach_count": 1,
"is_deliverable": "yes",
"linked_services": [
"facebook",
"google",
"twitter",
"instagram",
"yahoo",
"whatsapp",
"telegram",
"viber",
"ok"
],
"domain_is_custom": "no",
"last_breached_at": "2020-12-25",
"first_breached_at": "2020-12-25",
"domain_is_disposable": "no",
"domain_registered_at": "2010-12-25",
"domain_is_free_provider": "no",
"top_level_domain_is_suspicious": "no"
},
"user_interactions": null,
"fraud_ring_detected": null,
"bot_detected": null,
"synthetic_identity_risk_score": null,
"stolen_identity_risk_score": null,
"steps": {
"kyc_check": "success",
"accept_tos": "success",
"risk_check": "success",
"verify_sms": "not_applicable",
"selfie_check": "not_applicable",
"watchlist_screening": "not_applicable",
"documentary_verification": "success"
},
"ip_spam_list_count": 0,
"documents_verification": "success"
},
"identity_verification_attempted": true,
"idv": {
"document_integrity_results": [
{
"attempt": 1,
"plaid_document_status": "success",
"document_integrity_status": "clear",
"details": {
"authenticity": "match",
"image_quality": "high",
"aamva_is_verified": null
}
}
]
}
}
]
}{
"status": "fail",
"message": "No owners found!",
"errorCode": "NOT_FOUND",
"data": {
"errorName": "VerificationApiError"
}
}Business Details
KYC Ownership Verification
Know Your Customer: returns a list of individuals with ownership or control, including their submitted personal details and verification results.
Prior to utilizing this service, one must first obtain a businessID by creating a business via the Add business service. For more details on using these endpoints, please reference the Getting Started guide.
GET
/
verification
/
businesses
/
{businessId}
/
owners
KYC Ownership Verification
curl --request GET \
--url https://api.joinworth.com/integration/api/v1/verification/businesses/{businessId}/owners \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.joinworth.com/integration/api/v1/verification/businesses/{businessId}/owners"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.joinworth.com/integration/api/v1/verification/businesses/{businessId}/owners', 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.joinworth.com/integration/api/v1/verification/businesses/{businessId}/owners",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.joinworth.com/integration/api/v1/verification/businesses/{businessId}/owners"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.joinworth.com/integration/api/v1/verification/businesses/{businessId}/owners")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.joinworth.com/integration/api/v1/verification/businesses/{businessId}/owners")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "KYC Ownership Verification fetched successfully",
"data": [
{
"id": "47797fcf-09ff-46d7-b500-39141135c52f",
"external_id": "abc-123",
"title": "Director",
"first_name": "Leslie",
"last_name": "Knope",
"email": "admin@joinworth.com",
"mobile": "+12345678909",
"date_of_birth": "1989-07-22",
"address_apartment": null,
"address_line_1": "123 Main St.",
"address_line_2": null,
"address_city": "Pawnee",
"address_state": "IN",
"address_postal_code": "46001",
"address_country": "USA",
"created_at": "2024-05-16T11:34:14.545Z",
"created_by": "19ac7412-6c06-4742-8c52-38787c4e889a",
"updated_at": "2024-05-16T11:34:14.545Z",
"updated_by": "19ac7412-6c06-4742-8c52-38787c4e889a",
"business_id": "df3998ab-7111-4c01-9f4f-d9bd6467c3b6",
"owner_type": "CONTROL",
"ownership_percentage": "100.00",
"kyc_check": {
"name": {
"summary": "match"
},
"status": "success",
"address": {
"type": "no_data",
"po_box": "no_data",
"summary": "match"
},
"id_number": {
"summary": "match"
},
"phone_number": {
"summary": "match",
"area_code": "match"
},
"date_of_birth": {
"summary": "match"
}
},
"risk_check_result": {
"name": "match",
"address": {
"type": "no_data",
"po_box": "no_data",
"summary": "match"
},
"dob": "match",
"ssn": "match",
"phone": {
"summary": "match",
"area_code": "match",
"linked_services": [
"facebook",
"google",
"twitter",
"instagram",
"yahoo",
"whatsapp",
"telegram",
"viber",
"ok"
]
},
"email": {
"breach_count": 1,
"is_deliverable": "yes",
"linked_services": [
"facebook",
"google",
"twitter",
"instagram",
"yahoo",
"whatsapp",
"telegram",
"viber",
"ok"
],
"domain_is_custom": "no",
"last_breached_at": "2020-12-25",
"first_breached_at": "2020-12-25",
"domain_is_disposable": "no",
"domain_registered_at": "2010-12-25",
"domain_is_free_provider": "no",
"top_level_domain_is_suspicious": "no"
},
"user_interactions": null,
"fraud_ring_detected": null,
"bot_detected": null,
"synthetic_identity_risk_score": null,
"stolen_identity_risk_score": null,
"steps": {
"kyc_check": "success",
"accept_tos": "success",
"risk_check": "success",
"verify_sms": "not_applicable",
"selfie_check": "not_applicable",
"watchlist_screening": "not_applicable",
"documentary_verification": "success"
},
"ip_spam_list_count": 0,
"documents_verification": "success"
},
"identity_verification_attempted": true,
"idv": {
"document_integrity_results": [
{
"attempt": 1,
"plaid_document_status": "success",
"document_integrity_status": "clear",
"details": {
"authenticity": "match",
"image_quality": "high",
"aamva_is_verified": null
}
}
]
}
}
]
}{
"status": "fail",
"message": "No owners found!",
"errorCode": "NOT_FOUND",
"data": {
"errorName": "VerificationApiError"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The unique universal identifier string for the business.
Response
OK
Indicates whether the request succeeded or failed.
Available options:
success, fail Example:
"success"
Descriptive message about the result of the operation.
Example:
"KYC Ownership Verification fetched successfully"
List of ownership verification records.
Show child attributes
Show child attributes
Was this page helpful?
⌘I