---
title: "Загрузить файл кодов из «Файлов» кабинета"
method: POST
path: "/api/v1/marking/codes/import/stored-file"
tags: ["Marking codes"]
---

# Загрузить файл кодов из «Файлов» кабинета

`POST /api/v1/marking/codes/import/stored-file`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/marking/codes/import/stored-file`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)

Файл кодов из СУЗ или ЛК «Честного знака», уже лежащий в «Файлах» кабинета (`file_id`): сервер сам читает и разбирает его так же, как загрузку с компьютера (CSV, TXT, XLSX, XLS, ODS, PDF этикеток СУЗ). Содержимое файла и полный код не проходят ни через запрос, ни через ответ: в ответе только итоги — принято, дубли, получили полный код, отказы и первые отказы строк без криптохвоста. Право на файл — как в «Файлах»: только файл, который человек вправе открыть.

## Headers

- `X-Tenant` string, required

## Request body

- MarkingStoredFileImportInput
  - `company_id` string, uuid
  - `group` string: Ключ товарной группы; пусто — по профилю товара
  - `file_id` string, uuid, required
  - `column` integer: Колонка с кодом, с единицы; 0 — найти по содержимому

## Response `200`

Итог загрузки

- MarkingImport
  - `id` string, uuid, required
  - `company_id` string, uuid, required
  - `source` 'paste' | 'file' | 'scan', required
  - `file_name` string, required
  - `group` string, required: Группа загрузки; пусто — у каждого кода своя, по профилю товара
  - `total` integer, required
  - `accepted` integer, required
  - `duplicates` integer, required
  - `rejected` integer, required
  - `upgraded` integer, required: Коды, которые были в реестре без криптохвоста и получили полный код
  - `format` 'text' | 'table' | 'pdf': Вид файла; нет — список строк
  - `column` integer: Колонка файла с кодом; нет — строка целиком
  - `skipped` integer, required: Строки файла без кода: заголовок, пустые ячейки
  - `unreadable` integer, required: Символы PDF, которые не распознались
  - `errors` MarkingImportLineError[], nullable, required
    - `line` integer, required
    - `code` string, required: Код причины отказа
    - `pos` integer, required
    - `input` string, required: Начало строки без криптохвоста
  - `created_at` string, date-time, required

## Other responses

- `400`: Файл не выбран, не читается или в нём нет кодов, юрлицо не выбрано, неизвестная группа
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `404`: Файл или юрлицо не найдены или недоступны
- `413`: Файл больше 32 МБ или в нём больше 100 000 кодов
- `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)
