KYB Tasks & Matched Data
The KYB API response is a JSON object with three top-level fields:
| Field | Description |
|---|---|
response_id | A UUID that uniquely identifies this API response. Include this value when contacting Enigma support or filing a bug report — it allows Enigma to look up the exact request and response. Log it in your system alongside the verification outcome. |
risk_summary | Composed of task results. |
data | Composed of attributes describing the entities that best match the information provided in the request. |
Risk Summary (Task Results)
The risk summary section includes all the information you need to automate the decisioning logic of a business onboarding or review workflow. It is composed of tasks, which are discrete verification steps that are typically conducted in a business onboarding or review process. Tasks help you understand whether the submitted business is valid and meets your KYB requirements, or if additional investigation is needed. Tasks results are the output of these steps. You can incorporate task results into the decisioning logic implemented in your workflows.
Each task compares a value you provided in your KYB API request to the corresponding value in either the Enigma data set or the records of the authoritative Secretary of State (SoS).
All standard tasks included in your package are always present in the response. If you did not submit a value for a task to compare against (e.g. no person submitted), that task will return a failure result rather than being omitted. Add-on tasks (watchlist, tin_verification, ssn_verification) only appear when explicitly requested via the attrs parameter.
| Task | Description |
|---|---|
| Address Verification | Compares all input addresses to the addresses of matching records of any kind |
| SoS Address Verification | Compares all input addresses specifically to the addresses of matching SoS registrations |
| Name Verification | Compares all input business names to the names of any matching records of any kind |
| SoS Name Verification | Compares all input names specifically to the names of matching SoS registrations |
| Person Verification | Compares all input person names to the officer names listed on matching SoS registrations |
| SSN Verification | Compares all input SSN and person last name combinations to current IRS records |
| TIN Verification | Compares input TIN and business name combinations to current IRS records |
| Domestic Registration | Indicates whether a domestic registration was found for the business |
| Watchlist | Indicates whether the business appears on any U.S. government sanctions lists |
Matched Data
The data object returned in the KYB API response is a structured compilation of attributes describing entities in Enigma’s data model that best match the information provided in the request.
The response is structured as lists of:
registered_entities- which can have many
registrations
- which can have many
brands- which can operate in many
industries - which can operate at many
operating locations- which is located at an
address
- which is located at an
- which can operate in many
Together, these attributes offer a holistic perspective of a business and its relationship to people and places. They are the basis on which tasks verify the information you provide about a business.
Making Decisions with Task Results
Each task returns a status of "success" or "failure". Your decisioning logic should combine these results to route applications to one of three outcomes: approve, decline, or manual review.
The right thresholds depend on your risk tolerance and regulatory requirements. The patterns below reflect common practice — adjust them to your specific program.
Approve automatically
Route to automatic approval when key tasks pass and no hard blockers are present:
name_verificationissuccess, and- At least one of
address_verificationorsos_address_verificationissuccess, and watchlistissuccess(if enabled), anddomestic_registrationisdomestic_activeordomestic_unknown(if using the verify package)
Decline automatically
Route to automatic decline for hard failures that indicate an unacceptable risk:
data.registered_entitiesis empty — no matching business was found at allwatchlistiswatchlist_hits— the business or a person appears on a sanctions listtin_verificationistin_not_verified— the submitted EIN does not match the business name in IRS recordsdomestic_registrationisdomestic_inactive— the business's registration has lapsed (required for payment processing, lending, and banking use cases)
Route to manual review
Route to manual review when there is a partial match or ambiguous result:
name_verificationissuccessbutsos_name_verificationisfailure— the name matches brand records but not SoS filingsaddress_verificationisfailure— the submitted address does not appear in any Enigma recordsperson_verificationisfailure— the submitted officer name does not appear on any SoS filingdomestic_registrationisdomestic_not_found— no domestic registration exists (common for sole proprietors; see below)ssn_verificationortin_verificationisnot_completed— the IRS was unavailable; retry or request documents
Sole proprietors and domestic_not_found
Sole proprietors are not required to register with the Secretary of State in most states, so domestic_registration returning domestic_not_found is expected for them — it does not necessarily indicate fraud. If your program serves sole proprietors, check registered_entity_type in the response: if the value is Sole Proprietorship, treat domestic_not_found as a manual review signal rather than a decline.
Example Response
The following is a representative response for a verify package request. Registrations and operating locations are trimmed for brevity.
Example response
{
"response_id": "2a1b3c4d-5e6f-7890-abcd-ef1234567890",
"risk_summary": {
"tasks": [
{
"task_name": "address_verification",
"status": "failure",
"result": "address_not_verified",
"reason": "No input address matches any address in any of Enigma's records",
"sources": []
},
{
"task_name": "sos_address_verification",
"status": "failure",
"result": "address_not_verified",
"reason": "No input address matches any address on a matching SoS registration",
"sources": []
},
{
"task_name": "name_verification",
"status": "success",
"result": "name_exact_match",
"reason": "An input business name exactly matches a business name in any of Enigma's records",
"sources": [
{
"name": "ENIGMA TECHNOLOGIES",
"match_entity_type": "brand"
}
]
},
{
"task_name": "sos_name_verification",
"status": "success",
"result": "name_match",
"reason": "An input business name matches a business name on a matching SoS registration",
"sources": [
{
"name": "Enigma Technologies, Inc.",
"match_entity_type": "registered_entity"
}
]
},
{
"task_name": "domestic_registration",
"status": "success",
"result": "domestic_unknown",
"reason": "A domestic registration was found but no status was provided by the SoS",
"sources": []
},
{
"task_name": "person_verification",
"status": "failure",
"result": "person_not_verified",
"reason": "The person name does not match any person names on a matching SoS registration",
"sources": []
}
]
},
"data": {
"registered_entities": [
{
"id": "4dccd7a5-790c-c4d1-0000-108000000000",
"formation_date": "2011-04-26",
"registered_entity_type": "Corporation",
"names": [
{ "name": "ENIGMA TECHNOLOGIES, INC." }
],
"brand_ids": [
"7be0ec97-0ac8-40e9-a9ee-9a1348fb7950"
],
"registrations": [
{
"registration_state": "DE",
"jurisdiction_type": "domestic",
"home_jurisdiction_state": null,
"registered_name": "ENIGMA TECHNOLOGIES, INC.",
"file_number": "4973743",
"issue_date": "2011-04-26",
"status": "unknown",
"sub_status": null,
"status_detail": null,
"persons": [
{
"name": "CORPORATION SERVICE COMPANY",
"titles": ["registered agent"]
}
],
"addresses": [
{
"street_address1": "251 LITTLE FALLS DR",
"street_address2": null,
"city": "WILMINGTON",
"state": "DE",
"postal_code": "19808",
"type": "registered_agent",
"deliverable": "deliverable",
"virtual": "not_virtual",
"delivery_type": "street",
"rdi": "commercial"
}
]
},
{
"registration_state": "NY",
"jurisdiction_type": "foreign",
"home_jurisdiction_state": "DE",
"registered_name": "ENIGMA TECHNOLOGIES, INC.",
"file_number": "5012345",
"issue_date": "2014-06-15",
"status": "active",
"sub_status": "good_standing",
"status_detail": "Active",
"persons": [
{
"name": "HICHAM OUDGHIRI",
"titles": ["chief executive officer"]
}
],
"addresses": [
{
"street_address1": "245 5TH AVE",
"street_address2": "FL 17",
"city": "NEW YORK",
"state": "NY",
"postal_code": "10016",
"type": "headquarters",
"deliverable": "deliverable",
"virtual": "not_virtual",
"delivery_type": "multi-tenant building",
"rdi": "commercial"
}
]
}
]
}
],
"brands": [
{
"id": "5f53e079-c66a-487e-8a9d-08efc39652ee",
"registered_entity_ids": [
"4dccd7a5-790c-c4d1-0000-108000000000"
],
"names": [
{ "name": "ENIGMA TECHNOLOGIES" }
],
"activities": {
"activities": []
},
"websites": ["https://enigma.com"],
"industries": [
{
"classification_description": "Software Publishers",
"classification_type": "naics_2022_code",
"classification_code": "513210"
}
],
"operating_locations": [
{
"id": "20e8d448-f6c7-4854-9855-f8367b97b097",
"names": [
{ "name": "ENIGMA TECHNOLOGIES" }
],
"addresses": [
{
"street_address1": "245 5TH AVE",
"street_address2": "FL 17",
"city": "NEW YORK",
"state": "NY",
"postal_code": "10016",
"deliverable": "deliverable",
"virtual": "not_virtual",
"delivery_type": "multi-tenant building",
"rdi": "commercial"
}
]
}
]
}
]
}
}