Reports
Create KYC Summary Report
Create a report containing KYC flagged workers by company.
POST
/
reports
/
kyc-summary
cURL
curl --request POST \
--url https://api.zeal.com/reports/kyc-summary \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"companyID": "<string>",
"media_type": "csv"
}
'import requests
url = "https://api.zeal.com/reports/kyc-summary"
payload = {
"companyID": "<string>",
"media_type": "csv"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({companyID: '<string>', media_type: 'csv'})
};
fetch('https://api.zeal.com/reports/kyc-summary', 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.zeal.com/reports/kyc-summary",
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([
'companyID' => '<string>',
'media_type' => 'csv'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.zeal.com/reports/kyc-summary"
payload := strings.NewReader("{\n \"companyID\": \"<string>\",\n \"media_type\": \"csv\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.zeal.com/reports/kyc-summary")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyID\": \"<string>\",\n \"media_type\": \"csv\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeal.com/reports/kyc-summary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"companyID\": \"<string>\",\n \"media_type\": \"csv\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {}
}{
"success": false,
"errors": [
{
"message": "<string>",
"code": 123
}
]
}This endpoint is subject to frequent changes.
job_id instead of the raw data itself. Because the data returned can be large, Zeal uses a job queue to process the report instead of returning it synchronously. Once the job status is marked as complete, the report can be downloaded using the Get Report Download endpoint.
Example Response - 200
{
"success": true,
"data": {
"job_id": "707ce36e-2267-2088-9fc4-c34d57c69c72",
"status": "pending",
"request_body": {
"companyID": "fe93448eueowej923474124eeze9",
"employment_status": "live",
"kyc_status": "all",
"media_type": "csv"
},
"created_at": "2024-02-29T18:21:28.951Z"
}
}
Example Response - 400
{
"success": false,
"errors": [
{
"message": "Must provide a valid companyID",
"code": 50
}
]
}
Authorizations
Body
application/json
ID of the Company
Filters the report by workers' employment status
Available options:
live, leave, terminated The media type of the report
Filters the report by KYC status
Available options:
all, failed, approved ⌘I
cURL
curl --request POST \
--url https://api.zeal.com/reports/kyc-summary \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"companyID": "<string>",
"media_type": "csv"
}
'import requests
url = "https://api.zeal.com/reports/kyc-summary"
payload = {
"companyID": "<string>",
"media_type": "csv"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({companyID: '<string>', media_type: 'csv'})
};
fetch('https://api.zeal.com/reports/kyc-summary', 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.zeal.com/reports/kyc-summary",
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([
'companyID' => '<string>',
'media_type' => 'csv'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.zeal.com/reports/kyc-summary"
payload := strings.NewReader("{\n \"companyID\": \"<string>\",\n \"media_type\": \"csv\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.zeal.com/reports/kyc-summary")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyID\": \"<string>\",\n \"media_type\": \"csv\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeal.com/reports/kyc-summary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"companyID\": \"<string>\",\n \"media_type\": \"csv\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {}
}{
"success": false,
"errors": [
{
"message": "<string>",
"code": 123
}
]
}