---
title: "Submit fiat KYC document bytes"
method: PATCH
path: "/v1/users/{userId}/fiat/kyc"
tags: ["Fiat"]
---

# Submit fiat KYC document bytes

`PATCH /v1/users/{userId}/fiat/kyc`

Raw document bytes are accepted only as request input, then hashed and discarded by the adapter. Responses and audit metadata expose only the hash and non-secret descriptors.

## Headers

- `X-Steward-Request-Timestamp` string
- `X-Steward-Request-Expires-At` string
- `X-Steward-Signature` string
- `X-Steward-Signing-Key-Id` string
- `Idempotency-Key` string

## Request body

- object
  - `verificationId` string, required
  - `documentType` string, required
  - `contentBase64` string, required — Base64 document bytes. The adapter hashes and discards raw bytes; responses and audits expose only non-secret document descriptors.

## Response `200`

JSON response

- object
  - `ok` true, required
  - `data` object, required
    - `status` string
    - `verification` object
      - `id` string, required
      - `provider` string, required
      - `userId` string, required
      - `level` 'basic' | 'standard' | 'enhanced', required
      - `status` 'not_started' | 'pending' | 'verified' | 'rejected', required
      - `documents` object[]
      - `createdAt` integer
      - `updatedAt` integer

## Other responses

- `400` — JSON response
- `401` — JSON response
- `403` — JSON response
- `404` — JSON response
- `408` — JSON response
- `409` — JSON response

## Changes

- **2026-08-17** `261a7c8070b2` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/steward-fi/apis/steward-api/changes/v1/users/:userId/fiat/kyc/patch.md)

---

[API](https://skmtc.dev/steward-fi/apis/steward-api.md) · [All operations](https://skmtc.dev/steward-fi/apis/steward-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/steward-fi/steward-api/revisions/b88b4b97a664/schema)
