---
title: "Get a presigned download URL for the workflow's latest PSV PDF"
method: GET
path: "/credentialing-workflows/{id}/latest-psv-pdf-signed-url"
tags: ["CredentialingWorkflow"]
---

# Get a presigned download URL for the workflow's latest PSV PDF

`GET /credentialing-workflows/{id}/latest-psv-pdf-signed-url`

Returns a tenant-scoped, server-resolved presigned download URL (valid for 1 hour) for the most recently generated Provider Summary Verification (PSV) PDF for the credentialing workflow identified by `id`. The storage path is always resolved server-side from the workflow's timeline events and never accepted from the client (no query parameters are supported). Returns 200 with a `PsvPdfDownloadResponse` when a completed PSV PDF is available. Returns 202 with `{workflowId, status: "GENERATING"}` when a PSV generation is currently in progress — poll this endpoint again after a delay. Returns 404 when no PSV PDF has ever been generated for this workflow, or when the workflow does not belong to the requesting tenant.

## Path parameters

- `id` string, required

## Headers

- `tenant-id` string, required

## Response `200`

Successfully generated a presigned download URL for the latest PSV PDF

- PsvPdfDownloadResponse
  - `workflowId` string
  - `downloadUrl` string
  - `expiryHours` integer
  - `expiresAtEpochMs` integer

## Other responses

- `202` — PSV PDF is being generated for the latest status transition
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - User does not have required permissions
- `404` — No PSV PDF found for this workflow, or the workflow does not belong to this tenant
- `500` — Internal Server Error - An unexpected error occurred

---

[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)
