> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agentcard.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# start_kyc

> Begin (or resume) identity verification.

Connect to `https://mcp.agentcard.sh/mcp` with the **user's connection token** (or a `buy_token` for org-owned accounts).

**Behavior:** idempotent.

## What it does

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.

## Inputs

| Field                 | Type    | Description                                                                                                                                                                                                                                                                                           |
| --------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `terms_accepted`      | boolean | DEPRECATED — use agreements\_accepted. Pass true once the user has explicitly agreed to the card issuer's cardholder terms in the conversation.                                                                                                                                                       |
| `agreements_accepted` | array   | 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. |

## Returns

| Field                  | Type        | Description                                                                                                            |
| ---------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------- |
| `message` *(required)* | string      | Human-readable summary / next step.                                                                                    |
| `status`               | string      | "started", "verified", "rejected", or "unknown".                                                                       |
| `nextStep`             | string/null | Conversational step: id\_document \| fields \| terms \| face\_verification \| review\_pending \| verified \| rejected. |
| `missingFields`        | array       | Fields still needed from the user.                                                                                     |
| `uploadUrl`            | string      | Browser upload page for the ID photo (1h validity).                                                                    |
| `verificationUrl`      | string      | Face-scan page (conversational flow) or hosted verification URL (legacy flow), 48h validity.                           |
| `reason`               | string/null | Provider reason on rejection.                                                                                          |

## Example call

```json theme={null}
{
  "tool": "start_kyc",
  "arguments": {}
}
```
