# Download a report document

Download a single document collected for the report, in the format it
was uploaded — read `Content-Type` rather than assuming PDF. Returns
`404` if the document does not exist on this report, or is of a kind
not retrievable for its order.

Endpoint: GET /reports/{id}/documents/{document_id}/download
Version: 1.0
Security: bearer-token

## Path parameters:

  - `id` (string, required)
    Id of the report.

  - `document_id` (string, required)
    Id of the document, as it appears in `income_verification.documents[].id`.

## Header parameters:

  - `Checkr-Tenant-Version` (string)
    CalVer-dated API version to pin behavior to (e.g. `2026-04-29`). When omitted,
the request is served by the newest supported version. Unknown values return 422.

## Response 401 fields (application/json):

  - `errors` (array)
    One or more errors describing why the request failed.

  - `errors.code` (string)
    Machine-readable error type. Stable across releases; safe to branch on. Possible values:
* `authorization_error` (401)
* `forbidden` (403)
* `not_found_error` (404)
* `validation_error` (422)
* `internal_error` (500)
* `no_payment_method` (402) — no card on file for the organization. Add a card in Settings → Billing, then retry the request.
* `card_declined` (402) — the saved card was declined. Update the card on file or use a different one, then retry the request with a new `Idempotency-Key`.
* `authentication_required` (402) — the saved card requires interactive authentication and cannot be charged. Replace the saved card with one that supports off-session payments.

  - `errors.detail` (string)
    Human-readable explanation of this specific occurrence.

  - `errors.source` (object)
    Pointer to the input that caused the error. Returned for validation errors to identify the offending field; absent otherwise.

  - `errors.source.pointer` (string)
    JSON Pointer path to the offending attribute.
    Example: /email

## Response 403 fields (application/json):

  - `errors` (array)
    One or more errors describing why the request failed.

  - `errors.code` (string)
    Machine-readable error type. Stable across releases; safe to branch on. Possible values:
* `authorization_error` (401)
* `forbidden` (403)
* `not_found_error` (404)
* `validation_error` (422)
* `internal_error` (500)
* `no_payment_method` (402) — no card on file for the organization. Add a card in Settings → Billing, then retry the request.
* `card_declined` (402) — the saved card was declined. Update the card on file or use a different one, then retry the request with a new `Idempotency-Key`.
* `authentication_required` (402) — the saved card requires interactive authentication and cannot be charged. Replace the saved card with one that supports off-session payments.

  - `errors.detail` (string)
    Human-readable explanation of this specific occurrence.

  - `errors.source` (object)
    Pointer to the input that caused the error. Returned for validation errors to identify the offending field; absent otherwise.

  - `errors.source.pointer` (string)
    JSON Pointer path to the offending attribute.
    Example: /email

## Response 404 fields (application/json):

  - `errors` (array)
    One or more errors describing why the request failed.

  - `errors.code` (string)
    Machine-readable error type. Stable across releases; safe to branch on. Possible values:
* `authorization_error` (401)
* `forbidden` (403)
* `not_found_error` (404)
* `validation_error` (422)
* `internal_error` (500)
* `no_payment_method` (402) — no card on file for the organization. Add a card in Settings → Billing, then retry the request.
* `card_declined` (402) — the saved card was declined. Update the card on file or use a different one, then retry the request with a new `Idempotency-Key`.
* `authentication_required` (402) — the saved card requires interactive authentication and cannot be charged. Replace the saved card with one that supports off-session payments.

  - `errors.detail` (string)
    Human-readable explanation of this specific occurrence.

  - `errors.source` (object)
    Pointer to the input that caused the error. Returned for validation errors to identify the offending field; absent otherwise.

  - `errors.source.pointer` (string)
    JSON Pointer path to the offending attribute.
    Example: /email

