> ## 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.

# submit_kyc_document

> Submit the user's ID photo for identity verification.

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

## What it does

Submit the user's ID photo for identity verification. Ways in: (a) image data you hold programmatically (e.g. the user sent the photo in this chat and your platform exposes its bytes) — pass front\_base64 (and back\_base64 for a license back; its barcode reads most accurately); (b) local (stdio) mode — pass file\_path/back\_file\_path and the file is read from disk; (c) neither — you get a secure upload link to hand the user. Do NOT ask the user what kind of document it is or where it was issued — the type and country are detected automatically from the photo; only relay a question if the result says the type could not be determined. Returns the fields read off the document — SHOW THEM TO THE USER for confirmation before continuing — plus whatever is still missing. If the result says NO identity details could be read, the image did not read as an ID at all: never insist to the user that it was their ID. Supported: JPEG/PNG/WebP up to 12MB (convert iPhone HEIC first).

## Inputs

| Field | Type | Description |
| - | - | - |
| `front_base64` | string | Base64 image bytes of the ID front (or passport photo page). ONLY pass base64 you received programmatically from your platform (e.g. an injected chat attachment) — never type or reconstruct image bytes yourself. |
| `back_base64` | string | Base64 image bytes of the license back (optional, recommended — the barcode reads most accurately). Same rule: programmatically sourced only. |
| `front_mime_type` | string | MIME type of front\_base64 (image/jpeg, image/png, image/webp). Defaults to image/jpeg. |
| `back_mime_type` | string | MIME type of back\_base64. Defaults to image/jpeg. |
| `file_path` | string | Local path to the ID photo (front of license, or passport photo page). Local/stdio connections only — remote connections without image data receive an upload link instead. |
| `back_file_path` | string | Local path to the back of the license (optional, recommended). Local/stdio connections only. |
| `document_type` | string: `drivers_license` · `state_id` · `passport` | ONLY pass this when the user themselves said what the document is ("here's my license") — otherwise omit it; the type is detected from the photo. Never ask up front. |
| `issuing_country` | string | 2-letter ISO country that issued the document (e.g. US, AR). ONLY when the user volunteered it — otherwise omit; it is detected from the photo. Never ask up front. |

## Returns

| Field | Type | Description |
| - | - | - |
| `message` *(required)* | string | |
| `status` | string | processed \| document\_expired \| upload\_failed \| upload\_link\_provided |
| `extracted` | object | Fields read from the document (confirm with the user). |
| `unreadable` | boolean | True when the image was received but NO identity fields could be read from it — it did not read as an ID; never assert to the user that it was one. |
| `missingFields` | array | |
| `nextStep` | string/null | |
| `uploadUrl` | string | |
| `verificationUrl` | string | |

## Example call

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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.