Verify business
Executes a configurable business verification workflow which utilizes authoritative sources (Secretary of State, IRS TIN matching, business registries), optionally verifies associated people, and returns risk assessment with field-level match results. The required fields are determined by the selected verification workflow.
Response status
The HTTP response is always 201; the verification outcome is carried by status in the body, so check it first.
completed— Resolved immediately.riskandmatchare populated: a confident match returns the agreeing fields and a risk level, while a no-match returns an emptymatchwithrisk.level: critical.in_progress— Could not be resolved immediately and is continuing asynchronously;riskandmatchare not yet set. Wait for thebusiness.verification.completedwebhook, which delivers the final result in this same shape.failed— A system error occurred (rare); safe to retry.
risk and match are only meaningful once status is completed.
Authorizations
Enter your API key in the format: sk_test_xxxxx or sk_live_xxxxx
Body
Workflow key to use for verification (determines required fields)
^[a-z0-9_]+$"business_verification_default"
Legal business name
"The Coca-Cola Company"
Region (state/province/county)
"GA"
Your reference ID for tracking
"biz_12345"
Employer Identification Number
"58-0628465"
Entity type
llc, corporation, lp, llp, nonprofit, other "corporation"
Registration jurisdiction in ISO 3166-2 format (e.g., US-CA, US-NY, US-TX)
"US-FL"
Formation jurisdiction in ISO 3166-2 format (e.g., US-DE, US-CA, US-WY)
"US-DE"
Formation date (YYYY-MM-DD)
"1961-01-03"
Street address line 1
"One Coca-Cola Plaza NW"
Street address line 2
"Suite 100"
City
"Atlanta"
Postal code
"30313"
Country (2-letter ISO code)
"US"
Business phone number
"+15551234567"
Business email address
"contact@coca-cola.com"
Business website URL
"https://www.coca-cola.com"
Associated people to verify
Custom metadata.
In test mode (sk_test_ key), business verification is always simulated — it never queries live registry, IRS, or any authoritative source, so no-directive test requests return a deterministic clean pass rather than real registry data. The reserved key _simulate selects the outcome. Value is <outcome>[:sync]:
- Risk levels:
low(default),medium,high,critical - Scenarios:
inactive,sanctions,lien,tin_mismatch,no_match fail→ terminalstatus: failed- Append
:sync(e.g.low:sync) to complete synchronously; otherwise the result is delivered asynchronously via thebusiness.verification.completedwebhook after a short delay.
Ignored in live mode.
Response
Verification accepted. Carries either a terminal outcome (status: completed — confident match OR "no match" with risk.level: critical + empty match) or an async-pending outcome (status: in_progress — final result delivered via the business.verification.completed webhook).
Unique verification ID
"550e8400-e29b-41d4-a716-446655440000"
ID of the business entity created or verified
"bus_abc123"
Current status of the verification. Branch on this before reading risk or match:
completed— Terminal. Either a confident match (populatedmatch, evaluatedrisk.level) OR a "no match" verdict (emptymatch: {},risk.level: criticalwith"Business not found"reason).in_progress— Not yet resolved.risk.levelisnull,matchis{}. Final outcome delivered viabusiness.verification.completedwebhook. Causes include async LLM disambiguation, status acquisition from live Secretary-of-State, or routing to manual review.failed— System error. Safe to retry.pending— Created but not yet started (rare; transient).
pending, in_progress, completed, failed "completed"
Test/live partition the verification was created under. Determined by the API key used.
test, live "live"
Business risk assessment. Only meaningful when status: completed. See BusinessVerificationRisk.level for the three response shapes (matched / no-match / pending).
Field-level match results against the matched authoritative record. Empty object {} in two cases: (1) terminal "no match" outcome (status: completed, risk.level: critical) where no record was identified; (2) async-pending outcome (status: in_progress) where verification hasn't resolved yet — wait for the webhook. When populated, only includes fields the partner submitted in the request.
ISO 8601 timestamp of when the verification was created
"2025-10-24T10:30:00Z"
Your reference ID (if provided in request)
"biz_12345"
Associated people verification results (full KYC results for each associate)
ISO 8601 timestamp of when the verification was last updated
"2025-10-24T10:35:00Z"

