---
title: "Upload a new supporting document to a workflow"
method: POST
path: "/monitoring-workflows/{workflowId}/supporting-documents"
tags: ["MonitoringWorkflow"]
---

# Upload a new supporting document to a workflow

`POST /monitoring-workflows/{workflowId}/supporting-documents`

Uploads a single supporting document file and appends it to the workflow's supporting documents collection. Use this endpoint to add one document without affecting the others; use `PUT /monitoring-workflows/{workflowId}/supporting-documents` to replace the entire collection. The request is a multipart/form-data upload: `file` is required (the binary content); `fileType` is required (e.g. 'Medical License'); `state` is optional; `expirationDate` is optional and must be in `YYYY-MM-DD` format when provided — an invalid format returns 400. Requires `MONITORING_WORKFLOW_DETAILS_CREATE`, `MONITORING_WORKFLOW_DETAILS_UPDATE`, and `MONITORING_WORKFLOW_DETAILS_SUPPORTING_DOCUMENTS_CREATE`. The `tenant-id` header is mandatory.

## Path parameters

- `workflowId` string, required

## Headers

- `tenant-id` string, required

## Response `201`

Supporting document uploaded successfully

- object

## Other responses

- `400` — Bad request - file is missing, fileType is missing, or expirationDate is not in YYYY-MM-DD format
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Insufficient permissions
- `404` — Monitoring workflow not found
- `500` — Internal server error

---

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