---
title: "Convert a document’s current file to PDF"
method: POST
path: "/api/v1/rest/documents/{id}/pdf"
tags: ["Documents"]
---

# Convert a document’s current file to PDF

`POST /api/v1/rest/documents/{id}/pdf`

## Request

- Base URL: `https://api.custodo.ai`
- URL: `https://api.custodo.ai/api/v1/rest/documents/{id}/pdf`
- Auth: HTTP bearer

Files the CURRENT file of an office document — Word (.docx, .doc), Excel (.xlsx, .xls), PowerPoint (.pptx, .ppt), OpenDocument, RTF or HTML — or of a JPEG, PNG or TIFF image (every page of a scan) again as a PDF, as the document’s NEXT version: the old file stays in the version history, the new one is named like it with `.pdf` for its extension, and a title that ended in the old extension ends in `.pdf` too. An office file’s PDF is the one the Archivio shows as its preview. REFUSED for a document that is a PDF already; for text, mail and ZIP files; for an e-invoice (.xml) or a signed .p7m, whose original is the record itself; and for a class that does not accept PDFs. `status: "converted"` means the PDF is the current version now; `status: "pending"` means it is being printed first and becomes the current version by itself in a few seconds — call documents_get and read `file.filename`. Like any new version, the PDF is then read again: conversion, extraction and indexing.

**Examples**

- Turn this Word contract into a PDF
  `POST /api/v1/rest/documents/11111111-2222-4333-8444-555555555555/pdf`

## Path parameters

- `id` string, uuid, required

## Headers

- `X-Tenant-Id` string, uuid

## Response `200`

Done. `data` is the tool’s own answer.

- RestResult
  - `ok` true, required
  - `data` unknown, required

## Other responses

- `400`: The arguments did not validate: `error.message` names the field, what it expects and what arrived.
- `401`: No API key, or one that is malformed, unknown, revoked or expired.
- `403`: The call never ran: the module is off for this organisation, the credential lacks the permission or the module, the tier does not cover it, or the tool is destructive and the key was not minted for that.
- `404`: Nothing with that id in this organisation.
- `409`: The record is in a state that does not allow it — under legal hold, already sent, already closed. `error.code` says which.
- `422`: The tool ran and refused, in a sentence of its own (`TOOL_REFUSED`): the message says what to change. Retrying the same call will not help.
- `429`: The API key has spent its minute, or its day. Every request a key makes counts. See `Retry-After`.

---

[API](https://skmtc.dev/custodo/apis/custodo-integrazioni.md) · [All operations](https://skmtc.dev/custodo/apis/custodo-integrazioni/llms.txt) · [OpenAPI document](https://skmtc.dev/custodo/apis/custodo-integrazioni/revisions/16d336d3ec2a?raw)
