---
title: "Update KYB Document Status"
method: PATCH
path: "/api/document-service/v1/documents/{documentId}/files/{fileId}"
tags: ["Know Your Business (KYB)"]
---

# Update KYB Document Status

`PATCH /api/document-service/v1/documents/{documentId}/files/{fileId}`

Update the status of a file after it has been uploaded to the presigned URL. This endpoint is called by the client after successful upload.

## Path parameters

- `documentId` string, uuid, required
- `fileId` string, required

## Request body

- UpdateFileStatusRequest — Request body for updating file status
  - `status` 'uploaded' | 'requiresManualReview', required — File upload status. Use `requiresManualReview` when the user chooses to submit a previously-rejected file.
  - `triggerLiveScreeningAsync` boolean — When true, triggers async AI live screening on this upload. Defaults to false.

## Response `200`

200

- UpdateFileStatusResponse — Response after updating file status
  - `id` string, required — Unique identifier for the file
  - `view` 'front' | 'back' | 'full' — View or side of the document file
  - `uploadUrl` string, uri, required — Presigned URL for file upload (legacy; may be stale post-upload)
  - `status` 'awaitingUpload' | 'uploaded' | 'accepted' | 'rejected' | 'requiresManualReview', required — Current status of the file upload. `requiresManualReview` is a terminal state set after 2 failed AI screening attempts; the file is locked and Trust ops resolves it manually.
  - `fileName` string — Original filename of the uploaded file
  - `rejectionReason` string — Human-readable reason populated when status is rejected (e.g. illegible scan, wrong document type)

## Other responses

- `400` — 400
- `401` — 401
- `403` — 403
- `404` — 404
- `500` — 500

---

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