Documentation/API/KYB API
KYB Service
The Know Your Business (KYB) API enables you to conduct business verification and due diligence processes through the Vertex platform.
VERTEX ENGINE
00
Table of Contents
1. Get KYB
Retrieves the Know Your Business (KYB) information for a specific organisation.
Subject: svc.kyb.<partner_id>.get
Request
{
"entity_id": "string" // Required
}
Required Fields
entity_id
Response
{
"entity_id": "string",
"documents": [
{
"key": "string",
"doc_type": "string",
"rejection_reason": "string",
"approved": boolean
}
],
"directors": [
{
"id": "string",
"name": "string",
"approved": boolean,
"verified": boolean,
"documents": [
{
"key": "string",
"doc_type": "string",
"rejection_reason": "string",
"approved": boolean
}
],
"verification_sent": boolean,
"id_type": "string",
"metadata": {
"key": "value"
}
}
],
"metadata": {},
"state": "string",
"rejection_reason": "string"
}
Possible Errors
400 Bad Request
: If the request validation fails404 Not Found
: If the KYB process for the given organisation is not found500 Internal Server Error
: For any unexpected errors during processing
2. Uploading Documents
Documents are uploaded to the KYB dropbox using NATS object storage. You can upload multiple documents at once using the command line as shown below:
Command Line Upload Method
Command Line Upload(bash)
xargs -I {} nats obj put --name={} kyb_dropbox_<entity_id> ./document.pdf << EOF
business_registration_<timestamp>
proof_of_address_<timestamp>
tax_verification_<timestamp>
director_proof_of_address_<director_id>_<timestamp>
director_selfie_<director_id>_<timestamp>
director_id_back_<director_id>_<timestamp>
director_id_front_<director_id>_<timestamp>
EOF
Document Naming Convention
Documents must follow these naming patterns:
- Business documents:
business_registration_<timestamp>
proof_of_address_<timestamp>
tax_verification_<timestamp>
- Director documents:
director_proof_of_address_<director_id>_<timestamp>
director_selfie_<director_id>_<timestamp>
director_id_back_<director_id>_<timestamp>
director_id_front_<director_id>_<timestamp>
Example
Example Upload Command(bash)
xargs -I {} nats obj put --name={} kyb_dropbox_58f0b1b0-ffac-4e0c-805c-40dc141913f9 ./dummy.pdf << EOF
business_registration_1726220326
proof_of_address_1726220276
tax_verification_1726220240
director_proof_of_address_7aa53a6d5869c8145cee2af0f5d92aa5_1726220179
director_selfie_7aa53a6d5869c8145cee2af0f5d92aa5_1726220125
director_id_back_7aa53a6d5869c8145cee2af0f5d92aa5_1726220059
director_id_front_7aa53a6d5869c8145cee2af0f5d92aa5_1726220044
EOF
Programmatic Access (JavaScript)
For programmatic access, you can use the NATS client libraries:
Retrieve Bucket
Retrieve Bucket(javascript)
const os = await natsConn?.jetstream().views.os(`kyb_dropbox_${entityId}`);
Upload file
Upload File(javascript)
import { MsgHdrsImpl } from "nats.ws"; const headers = new MsgHdrsImpl(); headers.set("original_filename", file.name); try{ await os?.put( { name: `${name}_${moment().unix()}`, headers, }, this.fileToReadableStream(file) ); } catch (err) { // handle error }
3. Submit KYB Documents
Submit KYB documents for verification.
Subject: svc.kyb.<partner_id>.submit
Request
{
"entity_id": "string", // Required
"documents": [ // Required
"string"
],
"directors": { // Required
"<director_id>": [
"string"
]
}
}
Required Fields
entity_id
documents
directors
Response
{
// Empty response indicates success
}
Possible Errors
400 Bad Request
: Invalid or incomplete data404 Not Found
: Entity not found500 Internal Server Error
: Error processing KYB submission