# Загрузка PDF

Базовый URL `https://api.accessful.de/api/v1/upload-service`. Каждому запросу нужен заголовок `X-API-Key` — см. [Аутентификация](https://docs.accessful.de/ru/authentication/).

```http
POST /pdf/upload
Content-Type: multipart/form-data
```

| Поле | Тип | Обязательно | Примечания |
| --- | --- | --- | --- |
| `files` | file | **да** | Один или несколько PDF (`application/pdf`). |
| `webhookUrl` | string | нет | URL обратного вызова для событий [вебхука](https://docs.accessful.de/ru/webhooks/). |
| `secret` | string | нет | Ваш секрет для подписи HMAC (обязателен для вебхуков). |
| `folder-name` | string | нет | Необязательная папка для группировки кейса. |

**`200 OK`**

```json
{
  "successfulUploads": ["7c2f1e4a-9b0d-4a1e-8f3c-2d6b5a9e1c40"],
  "duplicateFiles": [{ "fileName": "document.pdf", "fileHash": "ab12cd34…" }],
  "message": "Upload completed successfully. Uploaded 1 files. 1 duplicates found.",
  "callbackUrl": "https://your-app.example.com/hooks/accessful"
}
```

- `successfulUploads` — по одному **`caseId`** на каждый принятый файл. Отслеживайте и скачивайте по этому ID.
- `duplicateFiles` — файлы, пропущенные потому, что то же содержимое уже было загружено с вашим ключом.

Ошибки: `400` (файл не в формате PDF или недопустимый URL вебхука), `413` ([слишком большой](https://docs.accessful.de/ru/limits/)).
Квота проверяется **после** загрузки — исчерпанная квота не приводит к сбою этого вызова;
вместо этого задача завершается в [статусе](https://docs.accessful.de/ru/reference/job-status/) `quota_exceeded`. См.
[Лимиты](https://docs.accessful.de/ru/limits/).