---
title: "Upload a file attachment to a credentialing workflow"
method: POST
path: "/credentialing-workflows/{workflowId}/attachments"
tags: ["CredentialingWorkflow"]
---

# Upload a file attachment to a credentialing workflow

`POST /credentialing-workflows/{workflowId}/attachments`

Uploads a file attachment to the credentialing workflow identified by `workflowId` using a multipart/form-data request. The form must include: `id` (the target record identifier), `file` (the binary file to upload), and `expirationDate` (optional —). The file is stored in cloud storage and the attachment metadata is saved on the workflow record. Requires the `tenant-id` header to scope the operation to the correct tenant.

## Path parameters

- `workflowId` string, required

## Headers

- `tenant-id` string, required

## Response `201`

Attachment uploaded successfully

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — 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)
