# Підтвердження завершення завантаження

Підтверджує вивантажений файл хмарного сховища.
- **Передумови**: запис файлу має належати вашій команді, а обʼєкт уже має бути у сховищі — служба читає його ETag і довжину для перевірки. Розмір має бути більшим за 0 і меншим за 2 ГБ.
- **Ефект**: атомарно списує квоту сховища команди, потім позначає запис вивантаженим і зберігає реальний розмір. Поки це не вдалося, файл **не зʼявляється у `/cloudstorage/file/page`** і продовжує займати один зі 100 непідтверджених слотів.
- **У разі помилки вивантажений обʼєкт видаляється.** Надто ранній виклик, перевищення межі розміру або нестача місця видаляють байти зі сховища й залишають запис непідтвердженим. Відновлення — це новий `/cloudstorage/upload/init` і повторне вивантаження, а не повтор цього виклику.
- **Завершення**: синхронне й ідемпотентне після успіху — другий виклик поверне той самий файл, не списуючи квоту повторно.
- **Примітка**: запис, який так і не підтвердили, автоматично прибирається через 24 години.

Задокументовані бізнес-помилки: `39001`, `39011`, `39014`, `39041`, `39046`, `39047`. Значення кодів див. у [Error Codes](../Getting%20Started/error-codes.md). Будь-яка операція може додатково повернути загальні коди.

Endpoint: POST /api/cloudstorage/upload/complete
Version: 2026-09-05

## Request fields (application/json):

  - `id` (string, required)
    ID файлу Cloud Storage, повернений API передпідписаного URL для вивантаження.
    Example: 1800000000000001

## Response 200 fields (application/json):

  - `code` (integer, required)
    Код результату. `0` означає успіх; інші коди вказують на помилку.
    Example: 0

  - `msg` (string | null, required)
    Повідомлення про помилку.
    Example: null

  - `requestId` (string)
    ID запиту операції. Це поле може бути присутнім, якщо запит пройшов через API-шлюз.
    Example: 1d4f3ea968664593860b94b35d4ebf5e

  - `data` (object, required)

  - `data.id` (string)
    Ідентифікатор файла у хмарному сховищі.
    Example: 1800000000001001

  - `data.fileName` (string)
    Ім'я файлу (без розширення).
    Example: example

  - `data.fileExt` (string)
    Розширення файлу.
    Example: jpg

  - `data.fileSize` (string)
    Розмір файлу в байтах.
    Example: 204800

  - `data.fileType` (integer)
    Тип файлу: 0 = зображення, 1 = відео, 2 = застосунок, 3 = аудіо, 4 = документ, 5 = інше.
    Example: 0

  - `data.tagInfo` (array)
    Подробиці міток, прив'язаних до файлу.

  - `data.tagInfo.id` (string)
    Ідентифікатор тегу.
    Example: 1800000000000101

  - `data.tagInfo.tagSource` (string)
    Джерело мітки, наприклад ENV, PROXY.
    Example: ENV

  - `data.tagInfo.tagName` (string)
    Назва тегу.
    Example: Invoice

  - `data.tagInfo.tagType` (string)
    Тип мітки: TAG або GROUP.
    Example: TAG

  - `data.tagInfo.tagIcon` (string)
    Іконка мітки.

  - `data.createDate` (string)
    Дата вивантаження.

  - `data.updateDate` (string)
    Дата оновлення.

