Onboarding
Get User Details
This API fetches complete profile details of a user.
- Endpoint
GET {{baseUrl}}/zoqq/api/v1/user
Description
This API retrieves complete user profile information, including business or individual entity details, contact information, account registration data, terms-of-service acceptance, and agreement status.
Request Headers
| Parameter | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Shared X-API key provided by Zoqq |
| x-product-id | string | Yes | Shared ProductID By Zoqq |
| x-request-id | string | Yes | Idempotency key |
| x-user-id | string | Yes | User identification key |
| Content-Type | string | Yes | Must be application/json |
| Authorization | string | Yes | Bearer token |
Request Example
- cURL
- Python
- Java
- php
- C#
curl --location --request GET \
--url '{{baseUrl}}/zoqq/api/v1/user' \
--header 'x-api-key: {{Shared X-API key By Zoqq}}' \
--header 'x-product-id: {{Shared ProductID By Zoqq}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}'
import requests
url = "{{baseUrl}}/zoqq/api/v1/user"
payload = {}
headers = {
'x-api-key': '{{Shared X-API key By Zoqq}}',
'x-product-id': '{{Shared ProductID By Zoqq}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("{{baseUrl}}/zoqq/api/v1/user")
.method("GET", body)
.addHeader("x-api-key", "{{Shared X-API key By Zoqq}}")
.addHeader("x-product-id", "{{Shared ProductID By Zoqq}}")
.addHeader("x-request-id", "{{IdempotencyKey}}")
.addHeader("x-user-id", "{{UserID}}")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{AccessToken}}")
.build();
Response response = client.newCall(request).execute();
<?php
$client = new Client();
$headers = [
'x-api-key' => '{{Shared X-API key By Zoqq}}',
'x-product-id' => '{{Shared ProductID By Zoqq}}',
'x-request-id' => '{{IdempotencyKey}}',
'x-user-id' => '{{UserID}}',
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {{AccessToken}}'
];
$request = new Request('GET', '{{baseUrl}}/zoqq/api/v1/user', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "{{baseUrl}}/zoqq/api/v1/user");
request.Headers.Add("x-api-key", "{{Shared X-API key By Zoqq}}");
request.Headers.Add("x-product-id", "{{Shared ProductID By Zoqq}}");
request.Headers.Add("x-request-id", "{{IdempotencyKey}}");
request.Headers.Add("x-user-id", "{{UserID}}");
request.Headers.Add("Content-Type", "application/json");
request.Headers.Add("Authorization", "Bearer {{AccessToken}}");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Response Example
- 200: Success
- 400: Error
{
"status": "Success",
"message": "User details fetched successfully.",
"code": 200,
"data": [
{
"tos_acceptance": {
"date": "2025-04-11T06:51:23+0000",
"ip": "",
"user_agent": ""
},
"entity_type": "BUSINESS",
"account_details": {
"industry_category_code": "ICCV3_0002XX",
"business_name": "AWX Test One",
"operating_country": [
"IN"
],
"business_address": {
"country_code": "IN",
"address_line1": "04 Street Number 372",
"postcode": "700156",
"suburb": "Kolkata",
"state": "WB"
},
"registration_number": "AWXTESTBUSINESS01",
"description_of_goods_or_services": "test business description",
"trade_name": null,
"monthly_estimated_revenue": {
"amount": "50000.0",
"currency": "USD"
},
"account_usage": {
"account_purpose": [],
"product_reference": []
},
"business_structure": "SOLE_PROPRIETOR",
"website_url": null,
"registration_address": {
"country": "IN",
"city": "Kolkata",
"state": "WB",
"postal_code": "700156",
"line2": null,
"line1": "04 Street Number 372"
},
"incorporation_date": "2017-05-08"
},
"agreements": {
"agreed_to_terms_and_conditions": true
},
"contact_details": {
"phone": null,
"email": "awx.test01@yopmail.com"
},
"id": "user-id",
"representatives": [],
"status": "ACTIVE"
}
]
}
{
"code": 400,
"status": "error",
"message": "Something went wrong"
}
Retrieve RFI
Fetches a complete list of compliance RFIs associated with an account, including pending information requests and previously completed submissions.
- Endpoint
GET {{baseUrl}}/zoqq/api/v1/user/rfi
Description
This API retrieves all active and historical RFI (Request for Information) records raised on a user or business account for compliance purposes. It returns details of each RFI request including request category (KYC, Cardholder, Transaction Monitoring, etc.), current status, submitted responses, and all pending questions that require additional documents or information.
Request Headers
| Parameter | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Shared X-API key provided by Zoqq |
| x-product-id | string | Yes | Shared ProductID By Zoqq |
| x-request-id | string | Yes | Idempotency key |
| x-user-id | string | Yes | User identification key |
| Content-Type | string | Yes | Must be application/json |
| Authorization | string | Yes | Bearer token |
Request Example
- cURL
- Python
- Java
- php
- C#
curl --location --request GET \
--url '{{baseUrl}}/zoqq/api/v1/user/rfi' \
--header 'x-api-key: {{Shared X-API key By Zoqq}}' \
--header 'x-product-id: {{Shared ProductID By Zoqq}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}'
import requests
url = "{{baseUrl}}/zoqq/api/v1/user/rfi"
payload = {}
headers = {
'x-api-key': '{{Shared X-API key By Zoqq}}',
'x-product-id': '{{Shared ProductID By Zoqq}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("{{baseUrl}}/zoqq/api/v1/user/rfi")
.method("GET", body)
.addHeader("x-api-key", "{{Shared X-API key By Zoqq}}")
.addHeader("x-product-id", "{{Shared ProductID By Zoqq}}")
.addHeader("x-request-id", "{{IdempotencyKey}}")
.addHeader("x-user-id", "{{UserID}}")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{AccessToken}}")
.build();
Response response = client.newCall(request).execute();
<?php
$client = new Client();
$headers = [
'x-api-key' => '{{Shared X-API key By Zoqq}}',
'x-product-id' => '{{Shared ProductID By Zoqq}}',
'x-request-id' => '{{IdempotencyKey}}',
'x-user-id' => '{{UserID}}',
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {{AccessToken}}'
];
$request = new Request('GET', '{{baseUrl}}/zoqq/api/v1/user/rfi', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "{{baseUrl}}/zoqq/api/v1/user/rfi");
request.Headers.Add("x-api-key", "{{Shared X-API key By Zoqq}}");
request.Headers.Add("x-product-id", "{{Shared ProductID By Zoqq}}");
request.Headers.Add("x-request-id", "{{IdempotencyKey}}");
request.Headers.Add("x-user-id", "{{UserID}}");
request.Headers.Add("Content-Type", "application/json");
request.Headers.Add("Authorization", "Bearer {{AccessToken}}");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Response Example
- 200: Success
- 400: Error
{
"status": "Success",
"message": "RFI details fetched successfully.",
"code": 200,
"data": [
{
"items": [
{
"account_id": "id",
"updated_at": "2025-10-12T17:21:15+0000",
"answered_requests": [],
"created_at": "2025-10-12T17:21:15+0000",
"id": "9a947123-2cc2-4c76-8e99-2abe87df5c1a",
"type": "KYC",
"active_request": {
"updated_at": "2025-10-12T17:21:15+0000",
"questions": [
{
"attachments": [],
"answer": {
"type": "TEXT"
},
"sources": [],
"description": {
"en": "What are the countries of operations? Do you provide services in conflict zones?",
"zh": "运营国家/地区有哪些?您是否在冲突地区提供服务?"
},
"id": "df070a31-caab-4e0e-a4b9-a4b771a9d31f",
"trigger": "OTHERS",
"title": {
"en": "[Simulation] Countries of Operation",
"zh": "[Simulation] 运营国家/地区"
},
"uploaded_orders": []
},
{
"attachments": [],
"answer": {
"type": "ATTACHMENT"
},
"sources": [],
"description": {
"en": "Your company has published a business license voiding statement. Please provide the replacement business license.",
"zh": "您的公司已发布了一份作废的营业执照声明。请提供替换的营业执照。"
},
"id": "acc46b16-e5e4-40a5-9e89-df6fd2b11bee",
"trigger": "OTHERS",
"title": {
"en": "[Simulation] Business License",
"zh": "[Simulation] 营业执照"
},
"uploaded_orders": []
},
{
"attachments": [],
"answer": {
"type": "IDENTITY_DOCUMENT"
},
"sources": [
{
"person": {
"last_name": "Smith",
"first_name": "John"
},
"id": "SIMULATION_28b058b7-e62f-4950-869a-d65fabcf6700",
"type": "PERSON"
}
],
"description": {
"en": "Please provide a copy of valid government-issued ID to verify the identity of John Smith.",
"zh": "请提供有效的政府签发的身份证明副本,以验证John Smith的身份。"
},
"id": "ebe5d695-5e4e-4400-af66-a1d96a6ba630",
"trigger": "OTHERS",
"title": {
"en": "[Simulation] Identification Document",
"zh": "[Simulation] 身份证明文件"
},
"uploaded_orders": []
},
{
"attachments": [],
"answer": {
"type": "LIVENESS"
},
"sources": [
{
"person": {
"last_name": "Smith",
"first_name": "John"
},
"id": "SIMULATION_28b058b7-e62f-4950-869a-d65fabcf6700",
"type": "PERSON"
}
],
"liveness": {
"url": "https://demo.airidentitycheck.com/liveness/rfi?id=22a44211-bf83-430c-8e20-1b7743e346b1&itemId=5fb4d369-b55b-43af-90ef-e03cad9f8550&accountId=9fa9fb08-aa9b-45fa-83a6-32356f052fb0&locale=en&dc=hk",
"status": "NOT_STARTED"
},
"description": {
"en": "The individual listed below must personally scan the QR code or open the shared link to complete the liveness verification. They will need to provide a photo of their valid ID or passport and perform a live selfie verification.",
"zh": "下列人员必须亲自使用手机扫描二维码或在电脑端打开分享链接完成活体认证。他们需要提供有效身份证或护照照片,并完成实时自拍验证。"
},
"id": "Y2M0M2IyNTktOTdlNy00NDgxLWIzYzMtN2FkYmEwNzg4MWExI0xJVkVORVNTLkxJVkVORVNT",
"trigger": "OTHERS",
"title": {
"en": "Personal ID Verification",
"zh": "人脸识别核验"
},
"uploaded_orders": [],
"key": "LIVENESS"
},
{
"attachments": [],
"answer": {
"type": "ADDRESS"
},
"sources": [
{
"person": {
"last_name": "Smith",
"first_name": "John"
},
"id": "SIMULATION_28b058b7-e62f-4950-869a-d65fabcf6700",
"type": "PERSON"
}
],
"description": {
"en": "Please provide the residential address of John Smith.",
"zh": "请提供 John Smith 的居住地址。"
},
"id": "ZWM3YTY1NDctMGRlZS00YTFiLWExMWEtZjgxMWViM2E3Y2M2I1JFU0lERU5USUFMX0FERFJFU1M=",
"trigger": "OTHERS",
"title": {
"en": "Address",
"zh": "地址"
},
"uploaded_orders": [],
"key": "RESIDENTIAL_ADDRESS"
}
],
"created_at": "2025-10-12T17:21:15+0000"
},
"status": "ACTION_REQUIRED"
},
]
}
]
}
{
"code": 400,
"status": "error",
"message": "Something went wrong"
}