Start a KYB agent job
curl --request POST \
--url https://api.parcha.ai/api/v1/startKYBAgentJob \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"agent_key": "<string>",
"check_ids": [
"<string>"
]
}
'import requests
url = "https://api.parcha.ai/api/v1/startKYBAgentJob"
payload = {
"agent_key": "<string>",
"check_ids": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({agent_key: '<string>', check_ids: ['<string>']})
};
fetch('https://api.parcha.ai/api/v1/startKYBAgentJob', 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.parcha.ai/api/v1/startKYBAgentJob",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'agent_key' => '<string>',
'check_ids' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.parcha.ai/api/v1/startKYBAgentJob"
payload := strings.NewReader("{\n \"agent_key\": \"<string>\",\n \"check_ids\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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.parcha.ai/api/v1/startKYBAgentJob")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"agent_key\": \"<string>\",\n \"check_ids\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parcha.ai/api/v1/startKYBAgentJob")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"agent_key\": \"<string>\",\n \"check_ids\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"job_id": "<string>",
"message": "<string>",
"job": {}
}Getting Started
Start KYB Agent Job
Initiate a Know Your Business (KYB) agent job
POST
/
startKYBAgentJob
Start a KYB agent job
curl --request POST \
--url https://api.parcha.ai/api/v1/startKYBAgentJob \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"agent_key": "<string>",
"check_ids": [
"<string>"
]
}
'import requests
url = "https://api.parcha.ai/api/v1/startKYBAgentJob"
payload = {
"agent_key": "<string>",
"check_ids": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({agent_key: '<string>', check_ids: ['<string>']})
};
fetch('https://api.parcha.ai/api/v1/startKYBAgentJob', 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.parcha.ai/api/v1/startKYBAgentJob",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'agent_key' => '<string>',
'check_ids' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.parcha.ai/api/v1/startKYBAgentJob"
payload := strings.NewReader("{\n \"agent_key\": \"<string>\",\n \"check_ids\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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.parcha.ai/api/v1/startKYBAgentJob")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"agent_key\": \"<string>\",\n \"check_ids\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parcha.ai/api/v1/startKYBAgentJob")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"agent_key\": \"<string>\",\n \"check_ids\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"job_id": "<string>",
"message": "<string>",
"job": {}
}This endpoint starts a KYB (Know Your Business) agent job with the specified parameters.
Conflict (409 Conflict) if
This endpoint initiates a KYB agent job with the provided parameters. The response includes a job ID that can be used to track the progress and retrieve results of the KYB process.
API Endpoint
POST https://api.parcha.ai/api/v1/startKYBAgentJob
Request Body
Your KYB agent key from the Parcha dashboard. This is unique to your organization and agent configuration.
Important: You must use your own agent key, not a default or public agent key. Your agent key can be found in the Parcha dashboard under your agent’s settings, or in the “Test API Integration” dialog.
The KYB schema containing the business information.
Show KYB Schema Properties
Show KYB Schema Properties
A unique identifier for this KYB case.
Self-attested information about the business.
Show Common Object Types
Show Common Object Types
Standard address format used throughout the schema.
Show Address Properties
Show Address Properties
Standard document format used throughout the schema.
Show Document Properties
Show Document Properties
URL to access the document. Required if b64_document is not provided.
Name of the file including extension
Type of document source. Currently supported: “file_url”
Base64 encoded document content. Required if url is not provided.
Show Self Attested Data Properties
Show Self Attested Data Properties
The name of the business. Required if website is not provided.
The registered name of the business. Required if website is not provided and business_name is not set.
The business’s operational address.
Uses the Address Object format defined above.
The business’s incorporation address.
Uses the Address Object format defined above.
The website of the business. Required if business_name or registered_business_name is not provided.
The primary purpose or activity of the business.
A brief description of the business. Maximum 512 characters.
The industry sector the business operates in.
Tax Identification Number or Employer Identification Number (EIN).
Date of incorporation in YYYY-MM-DD format.
Array of business partner names.
Array of customer names.
Array of funding sources (e.g., [“Investment”, “Revenue”]).
Array of incorporation document objects.
Each item uses the Document Object format defined above.
Array of ownership document objects.
Each item uses the Document Object format defined above.
Array of promotional/marketing document objects.
Each item uses the Document Object format defined above.
Array of address proof document objects.
Each item uses the Document Object format defined above.
Array of EIN document objects.
Each item uses the Document Object format defined above.
Array of funding source document objects.
Each item uses the Document Object format defined above.
Array of individuals associated with the business.
Show Associated Individual Properties
Show Associated Individual Properties
Unique identifier for the individual.
Show Individual Data Properties
Show Individual Data Properties
Individual’s first name
Individual’s middle name
Individual’s last name
Date of birth in YYYY-MM-DD format
Individual’s address.
Uses the Address Object format defined above.
Two-letter ISO country code of nationality
Two-letter ISO country code of residence
Place of birth (city, country)
Individual’s sex
Email address
Phone number
Job title or position
Whether this individual is the applicant
Whether this individual is a business owner
Percentage of business ownership
Array of address proof document objects.
Each item uses the Document Object format defined above.
Array of entities associated with the business.
Show Associated Entity Properties
Show Associated Entity Properties
Unique identifier for the entity
Show Entity Data Properties
Show Entity Data Properties
Name of the associated business
Whether the entity is a trust
Entity’s address.
Uses the Address Object format defined above.
Industry sector
Tax Identification Number
Percentage of business ownership
Two-letter ISO country code
Entity’s website
Description of the entity
Optional. A unique identifier (UUID) that you can provide for this job.
If provided, this ID will be used as an idempotency key.
If a job with this ID already exists, the API will return a
409 Conflict error, and you can then use this job_id to retrieve the existing job’s status and results using /getJobById.
If not provided, a new unique ID will be automatically generated for the job.An optional URL to receive webhook notifications about the job status.
An optional Slack webhook URL to receive notifications about the job status.
An optional array of specific check IDs to run. If not provided, all checks will be run.
Response
The status of the job creation request. Will be “ok” if successful.
The unique identifier for the created job.
A message indicating the result of the job creation request.
Details about the created job.
Show Job Properties
Show Job Properties
The unique identifier of the job.
The current status of the job (e.g., “PENDING”, “RUNNING”, “COMPLETE”, “FAILED”, “RETRIED”).
The timestamp when the job was created.
The timestamp when the job was last updated.
The ID of the agent used for this job.
The input payload provided for the job.
Example Request
curl -X POST 'https://api.parcha.ai/api/v1/startKYBAgentJob' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"agent_key": "your-kyb-agent-key",
"job_id": "your-custom-job-id-123e4567-e89b-12d3-a456-426614174001",
"kyb_schema": {
"id": "parcha-demo-case-001",
"self_attested_data": {
"business_name": "Acme Corp",
"website": "https://www.acmecorp.com"
}
}
}'
import requests
api_key = 'YOUR_API_KEY'
url = 'https://api.parcha.ai/api/v1/startKYBAgentJob'
headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
}
data = {
'agent_key': 'your-kyb-agent-key', # Replace with your actual agent key
'job_id': 'your-custom-job-id-123e4567-e89b-12d3-a456-426614174001',
'kyb_schema': {
'id': 'parcha-demo-case-001',
'self_attested_data': {
'business_name': 'Acme Corp',
'website': 'https://www.acmecorp.com'
}
}
}
response = requests.post(url, json=data, headers=headers)
if response.status_code == 409:
print(f"Job with ID {data.get('job_id')} already exists. Fetching existing job details...")
# existing_job_response = requests.get(f'https://api.parcha.ai/api/v1/getJobById?job_id={data.get("job_id")}', headers=headers)
# print(existing_job_response.json())
elif response.status_code == 200:
print(response.json())
else:
print(f"Error: {response.status_code} - {response.text}")
import axios from 'axios';
const apiKey = 'YOUR_API_KEY';
const url = 'https://api.parcha.ai/api/v1/startKYBAgentJob';
const data = {
agent_key: 'your-kyb-agent-key', // Replace with your actual agent key
job_id: 'your-custom-job-id-123e4567-e89b-12d3-a456-426614174001',
kyb_schema: {
id: 'parcha-demo-case-001',
self_attested_data: {
business_name: 'Acme Corp',
website: 'https://www.acmecorp.com'
}
}
};
axios.post(url, data, {
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
}
})
.then(response => console.log(response.data))
.catch(error => {
if (error.response && error.response.status === 409) {
console.log(`Job with ID ${data.job_id} already exists. Fetching existing job details...`);
// axios.get(`https://api.parcha.ai/api/v1/getJobById?job_id=${data.job_id}`, { headers: { 'Authorization': `Bearer ${apiKey}` } })
// .then(existingJobResponse => console.log(existingJobResponse.data))
// .catch(getJobError => console.error('Error fetching existing job:', getJobError));
} else {
console.error('Error starting job:', error.response ? error.response.data : error.message);
}
});
Example Response
Successful creation (200 OK):{
"status": "ok",
"job_id": "job-12345-abcde",
"message": "The job was successfully added to the queue.",
"job": {
"id": "job-12345-abcde",
"status": "PENDING",
"created_at": "2023-06-15T10:30:00Z",
"updated_at": "2023-06-15T10:30:00Z",
"agent_id": "your-kyb-agent-key",
"input_payload": {
"agent_key": "your-kyb-agent-key",
"kyb_schema": {
"id": "parcha-demo-case-001",
"self_attested_data": {
"business_name": "Acme Corp",
"website": "https://www.acmecorp.com"
}
}
}
}
}
job_id already exists:
{
"error": "Job with the provided ID already exists.",
"job_id": "your-custom-job-id-123e4567-e89b-12d3-a456-426614174001"
}
Authorizations
API key obtained from your Parcha account settings. Include as Bearer token in the Authorization header.
Body
application/json
⌘I