---
title: "Open a document collection"
method: POST
path: "/api/v1/rest/raccolta/collections"
tags: ["Document collection"]
---

# Open a document collection

`POST /api/v1/rest/raccolta/collections`

## Request

- Base URL: `https://api.custodo.ai`
- URL: `https://api.custodo.ai/api/v1/rest/raccolta/collections`
- Auth: HTTP bearer

Creates a DRAFT raccolta: which archive document types to ask for (call documents_list_types for ids and names), how the requests go out — by EMAIL from an active mailbox of the mail module (`account_id` + `account_address`), or on WHATSAPP from one of the organisation’s numbers (`channel: "whatsapp"`, optional `whatsapp_account_id` from whatsapp_list_accounts; the customer answers in the chat with a photo or the PDF) — an optional due date and reminder cadence, and optionally the recipients (an `email`, a `whatsapp` number, or both: the channel decides which one is needed). Nothing is sent until raccolta_send_collection. The subject and body accept {{nome}}, {{azienda}}, {{documenti}}, {{scadenza}}, {{codice}}, {{mittente}}.

## Headers

- `X-Tenant-Id` string, uuid

## Request body

- object
  - `name` string, required
  - `channel` 'email' | 'whatsapp': `email` (the default) or `whatsapp`.
  - `account_id` string, uuid: The mailbox id, from email_list_accounts. Required by email.
  - `account_address` string, email: That mailbox’s address. Required by email.
  - `whatsapp_account_id` string, uuid: The WhatsApp number the requests leave from (whatsapp_list_accounts).
  - `document_types` object[], required
    - `id` string, uuid, required
    - `label` string, required
  - `subject_template` string
  - `body_template` string
  - `reminder_every_days` integer
  - `reminder_max` integer
  - `due_on` string, date: YYYY-MM-DD
  - `recipients` object[]
    - `name` string, required
    - `email` string, email
    - `whatsapp` string: The WhatsApp number as written: «+39 333 123 4567», «333 1234567».
    - `party_id` string, uuid: The recipient’s anagrafica in the register (Anagrafiche module), e.g. from anagrafiche_search_parties. Optional: an id that is not a live anagrafica you may see is ignored, and an address that is the email or PEC of exactly one anagrafica is linked to it anyway.

## 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.
- `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)
