---
title: "Check KYC data completeness"
method: POST
path: "/api/fma/v1/kyc/check"
tags: ["Managed Custody KYC"]
---

# Check KYC data completeness

`POST /api/fma/v1/kyc/check`

Pure read of the last handoff attempt's verdict on the shared-token path; use it as a fallback to the fma.kyc.reuse_check.result webhook. Poll every 30 seconds to 2 minutes and stop after submit succeeds. An incomplete session returns code 20004 with missingFields.

## Headers

- `X-Ur-Id` string
- `X-External-User-Id` string
- `X-Api-Signature` string, required
- `X-Api-Deadline` string, required
- `X-Api-PublicKey` string, required

## Request body

- KycCheckRequest
  - `sessionId` string, required — The onboarding session UUID returned by create-account.

## Response `200`

Business result envelope. code 0 means success; business rejections return HTTP 200 with a non-zero code.

- KycCheckResponse
  - `code` integer — Business result code. 0 means success; business rejections return HTTP 200 with a non-zero code.
  - `message` string — Human-readable diagnostic for non-zero codes.
  - `data` object
    - `state` string — Current session state.
    - `complete` boolean — True when the staged KYC data is complete and the session can proceed.
    - `missingFields` string[] — Machine paths of the fields the completeness check found missing. Empty or omitted when the session is complete.

---

[API](https://skmtc.net/ur/apis/ur-api.md) · [All operations](https://skmtc.net/ur/apis/ur-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ur/ur-api/revisions/087dcf516ce2/schema)
