curl --request GET \
--url https://api.example.com/api/v4/kyb/widget/{publicId}import requests
url = "https://api.example.com/api/v4/kyb/widget/{publicId}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v4/kyb/widget/{publicId}', 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.example.com/api/v4/kyb/widget/{publicId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/api/v4/kyb/widget/{publicId}"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/api/v4/kyb/widget/{publicId}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v4/kyb/widget/{publicId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"code": "case_not_found",
"message": "Case not found"
}{
"id": "019f179b-0fa7-72c8-818e-819652540477",
"sections": [
{
"fields": [
{
"editable": true,
"key": "legal_name",
"label": "Legal Business Name",
"required": true,
"type": "text",
"validation": {
"min_len": 1,
"max_len": 200
},
"value": null
},
{
"editable": true,
"key": "dba",
"label": "DBA (Doing Business As)",
"required": false,
"type": "text",
"value": null
},
{
"editable": true,
"key": "entity_type",
"label": "Entity Type",
"options": [
"Sole Proprietorship",
"Limited Liability Company (LLC)",
"Corporation",
"Limited Partnership (LP)",
"Limited Liability Partnership (LLP)",
"S - Corp",
"C - Corp"
],
"required": true,
"type": "select",
"value": null
}
],
"key": "business",
"kind": "fields",
"title": "Business details"
},
{
"fields": [
{
"editable": true,
"key": "registration_type",
"label": "Business Registration Type",
"options": [
"EIN",
"CRN",
"SSN",
"ITIN",
"NPWP",
"LEI",
"Other"
],
"required": true,
"type": "select",
"value": null
},
{
"editable": true,
"key": "registration_type_other",
"label": "Specify registration type",
"required": false,
"required_if": {
"field": "registration_type",
"value": "Other"
},
"type": "text",
"value": null
},
{
"editable": true,
"key": "industry_type",
"label": "Industry Type",
"options": [
"Electronics",
"General Retail",
"Other"
],
"required": true,
"type": "select",
"value": null
},
{
"editable": true,
"key": "industry_type_other",
"label": "Specify industry",
"required": false,
"required_if": {
"field": "industry_type",
"value": "Other"
},
"type": "text",
"value": null
},
{
"editable": true,
"key": "mcc",
"label": "Merchant Category Code (MCC)",
"options": [
"5732 - ELECTRONIC SALES",
"5999 - MISCELLANEOUS AND SPECIALTY RETAIL STORES"
],
"required": true,
"type": "select",
"value": null
}
],
"key": "registration",
"kind": "fields",
"title": "Business registration"
},
{
"fields": [
{
"editable": true,
"key": "rep_full_name",
"label": "Full Name",
"required": true,
"type": "text",
"validation": {
"min_len": 1,
"max_len": 200
},
"value": null
},
{
"editable": true,
"key": "rep_dob",
"label": "Date of Birth",
"required": true,
"type": "date",
"value": null
},
{
"editable": true,
"key": "rep_mobile",
"label": "Mobile Number",
"required": true,
"type": "phone",
"value": null
},
{
"editable": true,
"key": "rep_citizenship",
"label": "Citizenship / Residency",
"options": [
"U.S. citizen",
"U.S. permanent resident",
"Non-U.S. citizen / resident"
],
"required": true,
"type": "select",
"value": null
},
{
"editable": true,
"key": "rep_ssn",
"label": "SSN / Tax ID",
"required": true,
"type": "text",
"value": null
}
],
"key": "representative",
"kind": "fields",
"title": "Authorized representative"
},
{
"documents": [
{
"documents": [],
"editable": true,
"key": "owner_id_doc",
"label": "Government ID",
"multiple": true,
"options": [
"Passport",
"Drivers License",
"State ID",
"Permanent Resident Card (Green Card)"
],
"required": true
}
],
"fields": [
{
"editable": true,
"key": "full_name",
"label": "Full Name",
"required": true,
"type": "text",
"validation": {
"min_len": 1,
"max_len": 200
},
"value": null
},
{
"editable": true,
"key": "dob",
"label": "Date of Birth",
"required": true,
"type": "date",
"value": null
},
{
"editable": true,
"key": "ssn",
"label": "SSN / Tax ID",
"required": true,
"type": "text",
"value": null
},
{
"editable": true,
"key": "ownership_pct",
"label": "% Ownership",
"required": true,
"type": "number",
"value": null
}
],
"key": "people",
"kind": "parties",
"owners": [
{
"applicant_id": "019f1383-8f38-7d31-b921-39310a19b444",
"citizenship": "U.S. citizen",
"dob": "1990-01-01",
"documents": [
{
"created_at": "2026-06-30T08:15:00Z",
"editable": true,
"filename": "john_passport.pdf",
"id": "019f18a1-0000-7000-8000-0123456789ab",
"type": "Passport"
}
],
"editable": true,
"email": "john@acme.com",
"full_name": "John Doe",
"id": "019f18a0-0000-7000-8000-0123456789ab",
"ownership_pct": 40,
"role": "Beneficial Owner (≥25%)",
"ssn": "123-45-6789"
}
],
"title": "Beneficial owners"
},
{
"documents": [
{
"documents": [],
"editable": true,
"key": "tax",
"label": "Tax identification",
"multiple": false,
"note": "Upload one of the following documents",
"options": [
"IRS EIN Confirmation Letter",
"W-9 Form",
"ITIN Assignment Letter",
"Federal Tax Return"
],
"required": true
},
{
"documents": [],
"editable": true,
"key": "bank",
"label": "Bank account / payout",
"multiple": false,
"options": [
"Bank Statement",
"ACH / Direct Deposit Authorization"
],
"required": true
},
{
"documents": [],
"editable": true,
"key": "registration",
"label": "Certificate of Registration / Incorporation",
"multiple": false,
"options": [
"Certificate of Registration / Incorporation"
],
"required": true
},
{
"documents": [],
"editable": true,
"key": "operating_agreement",
"label": "Operating Agreement",
"multiple": false,
"note": "Required for LLCs and partnerships",
"options": [
"Operating Agreement"
],
"required": false
},
{
"documents": [],
"editable": true,
"key": "pci",
"label": "PCI SAQ",
"multiple": false,
"options": [
"SAQ A",
"SAQ A-EP",
"SAQ D"
],
"required": true
},
{
"documents": [],
"editable": true,
"key": "additional",
"label": "Additional documents",
"multiple": true,
"options": [
"Other"
],
"required": false
}
],
"key": "documents",
"kind": "documents",
"title": "Documents"
}
],
"status": "draft"
}Get the widget state
Returns the full widget state for a case: the server-authoritative section catalog merged with stored draft values, owners, documents and any open remediation notes. Authenticated solely by the public_id in the path. Documents render as slots (documents[] on a section): each slot lists its accepted types (options), required flag and uploaded files; person government IDs appear on the representative section slot and inside each owner entry. The parties section carries the per-owner form template in fields (values live in owners). Documents are uploaded via POST /api/v4/upload/kyb//documents (multipart, served by docver-upload).
sections and remediation are TWO FORMS; branch on status. While an information request is open (the case is in_remediation) remediation[] carries the round in catalog order, every entry writable and holding the whole catalog definition of its target (field or documents, per target_kind) plus the officer’s message and the target’s previous_value; the whole of sections is editable: false for the duration. Outside a round remediation is absent and sections is the form as before.
curl --request GET \
--url https://api.example.com/api/v4/kyb/widget/{publicId}import requests
url = "https://api.example.com/api/v4/kyb/widget/{publicId}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v4/kyb/widget/{publicId}', 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.example.com/api/v4/kyb/widget/{publicId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/api/v4/kyb/widget/{publicId}"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/api/v4/kyb/widget/{publicId}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v4/kyb/widget/{publicId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"code": "case_not_found",
"message": "Case not found"
}{
"id": "019f179b-0fa7-72c8-818e-819652540477",
"sections": [
{
"fields": [
{
"editable": true,
"key": "legal_name",
"label": "Legal Business Name",
"required": true,
"type": "text",
"validation": {
"min_len": 1,
"max_len": 200
},
"value": null
},
{
"editable": true,
"key": "dba",
"label": "DBA (Doing Business As)",
"required": false,
"type": "text",
"value": null
},
{
"editable": true,
"key": "entity_type",
"label": "Entity Type",
"options": [
"Sole Proprietorship",
"Limited Liability Company (LLC)",
"Corporation",
"Limited Partnership (LP)",
"Limited Liability Partnership (LLP)",
"S - Corp",
"C - Corp"
],
"required": true,
"type": "select",
"value": null
}
],
"key": "business",
"kind": "fields",
"title": "Business details"
},
{
"fields": [
{
"editable": true,
"key": "registration_type",
"label": "Business Registration Type",
"options": [
"EIN",
"CRN",
"SSN",
"ITIN",
"NPWP",
"LEI",
"Other"
],
"required": true,
"type": "select",
"value": null
},
{
"editable": true,
"key": "registration_type_other",
"label": "Specify registration type",
"required": false,
"required_if": {
"field": "registration_type",
"value": "Other"
},
"type": "text",
"value": null
},
{
"editable": true,
"key": "industry_type",
"label": "Industry Type",
"options": [
"Electronics",
"General Retail",
"Other"
],
"required": true,
"type": "select",
"value": null
},
{
"editable": true,
"key": "industry_type_other",
"label": "Specify industry",
"required": false,
"required_if": {
"field": "industry_type",
"value": "Other"
},
"type": "text",
"value": null
},
{
"editable": true,
"key": "mcc",
"label": "Merchant Category Code (MCC)",
"options": [
"5732 - ELECTRONIC SALES",
"5999 - MISCELLANEOUS AND SPECIALTY RETAIL STORES"
],
"required": true,
"type": "select",
"value": null
}
],
"key": "registration",
"kind": "fields",
"title": "Business registration"
},
{
"fields": [
{
"editable": true,
"key": "rep_full_name",
"label": "Full Name",
"required": true,
"type": "text",
"validation": {
"min_len": 1,
"max_len": 200
},
"value": null
},
{
"editable": true,
"key": "rep_dob",
"label": "Date of Birth",
"required": true,
"type": "date",
"value": null
},
{
"editable": true,
"key": "rep_mobile",
"label": "Mobile Number",
"required": true,
"type": "phone",
"value": null
},
{
"editable": true,
"key": "rep_citizenship",
"label": "Citizenship / Residency",
"options": [
"U.S. citizen",
"U.S. permanent resident",
"Non-U.S. citizen / resident"
],
"required": true,
"type": "select",
"value": null
},
{
"editable": true,
"key": "rep_ssn",
"label": "SSN / Tax ID",
"required": true,
"type": "text",
"value": null
}
],
"key": "representative",
"kind": "fields",
"title": "Authorized representative"
},
{
"documents": [
{
"documents": [],
"editable": true,
"key": "owner_id_doc",
"label": "Government ID",
"multiple": true,
"options": [
"Passport",
"Drivers License",
"State ID",
"Permanent Resident Card (Green Card)"
],
"required": true
}
],
"fields": [
{
"editable": true,
"key": "full_name",
"label": "Full Name",
"required": true,
"type": "text",
"validation": {
"min_len": 1,
"max_len": 200
},
"value": null
},
{
"editable": true,
"key": "dob",
"label": "Date of Birth",
"required": true,
"type": "date",
"value": null
},
{
"editable": true,
"key": "ssn",
"label": "SSN / Tax ID",
"required": true,
"type": "text",
"value": null
},
{
"editable": true,
"key": "ownership_pct",
"label": "% Ownership",
"required": true,
"type": "number",
"value": null
}
],
"key": "people",
"kind": "parties",
"owners": [
{
"applicant_id": "019f1383-8f38-7d31-b921-39310a19b444",
"citizenship": "U.S. citizen",
"dob": "1990-01-01",
"documents": [
{
"created_at": "2026-06-30T08:15:00Z",
"editable": true,
"filename": "john_passport.pdf",
"id": "019f18a1-0000-7000-8000-0123456789ab",
"type": "Passport"
}
],
"editable": true,
"email": "john@acme.com",
"full_name": "John Doe",
"id": "019f18a0-0000-7000-8000-0123456789ab",
"ownership_pct": 40,
"role": "Beneficial Owner (≥25%)",
"ssn": "123-45-6789"
}
],
"title": "Beneficial owners"
},
{
"documents": [
{
"documents": [],
"editable": true,
"key": "tax",
"label": "Tax identification",
"multiple": false,
"note": "Upload one of the following documents",
"options": [
"IRS EIN Confirmation Letter",
"W-9 Form",
"ITIN Assignment Letter",
"Federal Tax Return"
],
"required": true
},
{
"documents": [],
"editable": true,
"key": "bank",
"label": "Bank account / payout",
"multiple": false,
"options": [
"Bank Statement",
"ACH / Direct Deposit Authorization"
],
"required": true
},
{
"documents": [],
"editable": true,
"key": "registration",
"label": "Certificate of Registration / Incorporation",
"multiple": false,
"options": [
"Certificate of Registration / Incorporation"
],
"required": true
},
{
"documents": [],
"editable": true,
"key": "operating_agreement",
"label": "Operating Agreement",
"multiple": false,
"note": "Required for LLCs and partnerships",
"options": [
"Operating Agreement"
],
"required": false
},
{
"documents": [],
"editable": true,
"key": "pci",
"label": "PCI SAQ",
"multiple": false,
"options": [
"SAQ A",
"SAQ A-EP",
"SAQ D"
],
"required": true
},
{
"documents": [],
"editable": true,
"key": "additional",
"label": "Additional documents",
"multiple": true,
"options": [
"Other"
],
"required": false
}
],
"key": "documents",
"kind": "documents",
"title": "Documents"
}
],
"status": "draft"
}Path Parameters
KYB case public id.
Response
OK