# Téléverser un PDF

URL de base `https://api.accessful.de/api/v1/upload-service`. Chaque requête nécessite l’en-tête `X-API-Key` — voir [Authentification](https://docs.accessful.de/fr/authentication/).

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

| Champ | Type | Requis | Notes |
| --- | --- | --- | --- |
| `files` | file | **oui** | Un ou plusieurs PDF (`application/pdf`). |
| `webhookUrl` | string | non | URL de callback pour les événements [webhook](https://docs.accessful.de/fr/webhooks/). |
| `secret` | string | non | Votre secret de signature HMAC (requis pour les webhooks). |
| `folder-name` | string | non | Dossier facultatif pour regrouper le cas. |

**`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://votre-app.example.com/hooks/accessful"
}
```

- `successfulUploads` — un **`caseId`** par fichier accepté. Suivez et téléchargez avec cet ID.
- `duplicateFiles` — fichiers ignorés car le même contenu avait déjà été téléversé avec votre clé.

Erreurs : `400` (fichier non-PDF ou URL de webhook non valide), `413` ([trop volumineux](https://docs.accessful.de/fr/limits/)).
Le quota est vérifié **après** le téléversement — un quota épuisé ne fait pas échouer cet
appel ; la tâche se termine plutôt dans le [statut](https://docs.accessful.de/fr/reference/job-status/) `quota_exceeded`.
Voir [Limites](https://docs.accessful.de/fr/limits/).