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

# Upload a new supporting document file to a workflow

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

Uploads a new supporting document file to the credentialing workflow identified by `workflowId` using a multipart/form-data request. This appends the document without affecting existing supporting documents; use `PUT /credentialing-workflows/{workflowId}/supporting-documents` to replace the full list. The uploaded file is stored in cloud storage and its metadata is associated with the workflow.

## Path parameters

- `workflowId` string, required

## Headers

- `tenant-id` string, required

## Response `201`

Supporting document uploaded successfully

- object

## Other responses

- `400` — Bad request - Invalid input, e.g., file is missing
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Insufficient permissions
- `404` — Credentialing workflow not found
- `500` — Internal server error

## Changes

- **2026-08-19** `563848e0ecc0` — 1 breaking, 22 warning
  - the `errorDetails` response's property type/format changed from `array`/`` to `object`/`` for status `400`
  - removed the optional property `errorDetails/array` from the response with the `400` status
  - removed the optional property `errorDetails/bigDecimal` from the response with the `400` status
  - removed the optional property `errorDetails/bigInteger` from the response with the `400` status
  - …19 more

[Change history](https://skmtc.dev/certifyos/apis/certify-api-layer/changes/credentialing-workflows/:workflowId/supporting-documents/post.md)

---

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