start_kyc
Begin (or resume) identity verification. Verification is CONVERSATIONAL: it starts with a photo of the user's government ID — the backend reads the printed details automatically and the user confirms every value. Only fields the ID does not carry are asked (like the SSN for US documents, or the national ID number for non-US ones); occupation/income questions are never asked. The only browser step is a short face scan at the end. Relay each step to the user as ONE SHORT message (one or two sentences — the current ask only, never the whole flow, never an unrequested link). Returns the next step, ID-photo upload options, and (for legacy hosted-flow accounts) a hosted verification URL instead.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| terms_accepted | No | DEPRECATED — use agreements_accepted. Pass true once the user has explicitly agreed to the card issuer's cardholder terms in the conversation. | |
| agreements_accepted | No | Keys of the User Agreements the user explicitly accepted, one by one (the full required set from the agreements list — e.g. e_sign, account_opening_privacy, card_terms, accuracy, non_solicitation). Only pass after presenting each agreement verbatim and getting a yes covering all of them. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Provider reason on rejection. | |
| status | No | "started", "verified", "rejected", or "unknown". | |
| message | Yes | Human-readable summary / next step. | |
| nextStep | No | Conversational step: id_document | fields | terms | face_verification | review_pending | verified | rejected. | |
| uploadUrl | No | Browser upload page for the ID photo (1h validity). | |
| missingFields | No | Fields still needed from the user. | |
| verificationUrl | No | Face-scan page (conversational flow) or hosted verification URL (legacy flow), 48h validity. |