CLI First
Tools
| Tool | Type | Description | Cost |
|---|---|---|---|
start_verification | Core | Start KYC for a set of members with ownership percentages | Free |
get_verification | Info | Get verification status + all member statuses | Free |
list_verifications | Info | List all verifications for the company | Free |
complete_member_verification | Core | Submit validation token after in-browser KYC | Free |
resend_verification_link | Core | Resend/regenerate a member’s KYC link | Free |
How It Works
- Start verification — provide members with names, emails, ownership percentages, and responsible party designation
- Primary member gets their hosted KYC link returned immediately in the response
- Secondary members are emailed their KYC links automatically
- Each member completes KYC in their browser (ID scan, selfie, SSN, address)
- Status updates arrive via verification webhooks or the validation token endpoint
- When all members pass,
ready_for_formationbecomestrue
Starting Verification
Member Parameters
| Param | Type | Required | Description |
|---|---|---|---|
first_name | string | Yes | Legal first name |
last_name | string | Yes | Legal last name |
email | string | Yes | Email address (used for KYC link delivery) |
phone_number | string | No | Phone number in E.164 format |
ownership_percentage | integer | Yes | 0-100, must sum to 100 across all members |
role | string | Yes | "primary" (exactly one) or "secondary" |
is_responsible_party | boolean | Yes | IRS-facing person for formation (exactly one must be true) |
Validation Rules
- At least one member is required
- Exactly one member must have
role: "primary" - Exactly one member must have
is_responsible_party: true - Ownership percentages must sum to exactly 100
Checking Status
ready_for_formation is true only when every member has status: "pass". This is the gate signal for downstream formation.Completing Verification (Validation Token)
After a member finishes KYC in the hosted flow, the embedded SDK provides avalidationToken. Submit it to get immediate status confirmation without waiting for the webhook:
Resending Links
If a member’s link expires or they lost the email:Member Statuses
| Status | Meaning |
|---|---|
pending | KYC session not yet created (usually a transient error) |
link_ready | KYC link generated but not emailed (primary member — link in API response) |
link_sent | KYC link emailed to the member |
in_progress | Member started but hasn’t finished KYC |
pass | Identity verified successfully |
fail | Identity verification failed |
incomplete | Member abandoned the KYC flow |
pending_review | Flagged for manual review in the KYC dashboard |
Verification Statuses
| Status | Meaning |
|---|---|
pending | Just created, sessions being generated |
in_progress | At least one member hasn’t completed KYC |
completed | All members passed |
failed | At least one member failed |
Error Handling
| Error | Cause | Recovery |
|---|---|---|
feature_not_configured | KYC_SECRET_KEY or KYC_PLAYBOOK_KEY not set | Configure env vars |
invalid_input | Validation failed (percentages, roles, emails) | Fix input per validation rules |
resource_not_found | Verification or member UUID not found | Check UUIDs |
provider_error | Verification provider error | Retry or check the KYC dashboard |