---
title: "Завершить загрузку файла в карточку"
method: POST
path: "/api/v1/crm/card-upload-sessions/{id}/finish"
tags: ["CRM links"]
---

# Завершить загрузку файла в карточку

`POST /api/v1/crm/card-upload-sessions/{id}/finish`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/crm/card-upload-sessions/{id}/finish`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)

Проверяет, что файл лёг по выданному адресу: размер, контрольную сумму (если заявлена) и антивирус; подменённый после проверки файл отклоняется. Права на запись проверяются ещё раз. Затем файл прикрепляется к записи с номером сессии, а в ленту записи падает факт «файл прикреплён». Повтор возвращает тот же файл. 409 transfer.not_uploaded — байтов ещё нет; 422 transfer.infected — найдена угроза, файл удалён; 503 transfer.scanner_unavailable — антивирус недоступен, повторите позже.

## Response `200`

Прикреплённый файл

- CRMCardFile: Файл, прикреплённый к лиду, сделке или клиенту
  - `id` string, uuid, required
  - `entity_type` 'lead' | 'deal' | 'customer', required
  - `entity_id` string, uuid, required
  - `name` string, required: Имя файла с расширением
  - `mime_type` string, required
  - `size_bytes` integer, required
  - `sha256` string: Контрольная сумма SHA-256, если её заявили при загрузке
  - `scan_status` 'clean' | 'skipped' | 'pending' | 'infected', required: Вердикт антивируса: clean и skipped скачиваются, pending - ещё проверяется, infected - заражён
  - `uploaded_by` integer, required
  - `uploaded_by_name` string
  - `created_at` string, date-time, required

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `404`: Запись не найдена или не видима текущему пользователю
- `409`: Конфликт версии, идемпотентности или бизнес-состояния
- `410`: Сессия передачи файла истекла
- `422`: Запрос разобран, но бизнес-значение недопустимо
- `503`: Внешний банк, справочник или контур подключений временно недоступен

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/a99574d597cc?raw)
