Сантьяго

Формат експорту документів

Відкрита схема архіву, який формує Сантьяго. Версія схеми: 1.0. Її можна використовувати, щоб завантажувати архів в облікові, архівні та інші системи.

Структура архіву

manifest.json
manifest.csv
readme.txt
company_<код>/
  doc_<id>/
    original.pdf
    signatures/
      1.p7s
      2.p7s
  • Шляхи містять лише латиницю, цифри та підкреслення — архів коректно розпаковується в будь-якій системі. Найменування, номери й типи документів є лише в маніфесті.
  • original.pdf — оригінал документа байт у байт. Сервіс ніколи не змінює файл документа: розпізнавання працює з копією, а друкований примірник зі штампом підпису — окремий файл, який до архіву не входить.
  • Кожен підпис — окремий файл .p7s (CAdES, відокремлений підпис над original.pdf), пронумерований у порядку підписання.
  • Якщо документ стосується двох ваших компаній, він є в папці кожної з них, з напрямом з погляду цієї компанії.
  • Великий експорт ділиться на частини; кожна частина — самодостатній архів зі своїм маніфестом (поле part).

manifest.json

  • schema_version — версія схеми. Сумісні зміни (нові поля) збільшують другу цифру, несумісні — першу.
  • direction: outgoing (вихідний) або incoming (вхідний) з погляду компанії в полі company.
  • date — РРРР-ММ-ДД. Час підпису signed_at — ISO 8601 з часовим поясом (UTC, «Z»).
  • amount, vat_amount — числа з крапкою як десятковим роздільником або null, якщо невідомо. Валюта — UAH.
  • status: draft, await_sender, await_recipient, signed, rejected, cancelled.
  • document_type.code: act, invoice, waybill, contract, addendum, reconciliation, other або null, якщо тип не визначено.
  • original_sha256 — відбиток оригіналу, зафіксований сервісом при завантаженні; matches_archive показує, що файл в архіві збігся з ним під час формування.
  • signatures[].verification: server_verified (сервіс перевірив підпис, сертифікат і його статус), test (тестовий режим, без юридичної сили).
  • recognition — результати розпізнавання й систематизації, якщо вони є; інакше null. Їх можна використовувати замість повторного розпізнавання.
{
  "schema_version": "1.0",
  "generator": "Сантьяго",
  "export_id": "3f2c8a1e-…",
  "part": 1,
  "generated_at": "2026-10-24T18:30:00.000Z",
  "filters": { "date_from": "2026-09-01", "date_to": "2026-09-30" },
  "documents": [
    {
      "id": "d1b6…",
      "company": { "name": "ТОВ «Альфа»", "code": "41234567" },
      "direction": "outgoing",
      "counterparty": { "name": "ТОВ «Ромашка»", "code": "22222222" },
      "document_type": { "code": "act", "name": "Акт надання послуг" },
      "number": "42",
      "date": "2026-09-30",
      "amount": 14200.00,
      "vat_amount": null,
      "currency": "UAH",
      "status": "signed",
      "files": {
        "original": "company_41234567/doc_d1b6…/original.pdf",
        "signatures": ["company_41234567/doc_d1b6…/signatures/1.p7s",
                       "company_41234567/doc_d1b6…/signatures/2.p7s"]
      },
      "original_sha256": { "algorithm": "SHA-256", "value": "9f2c…", "matches_archive": true },
      "signatures": [
        {
          "side": "sender",
          "signer_name": "Коваленко Олена Петрівна",
          "signer_tax_id": "3012345678",
          "organization_code": "41234567",
          "organization_name": "ТОВ «Альфа»",
          "signed_at": "2026-10-01T09:15:00.000Z",
          "time_stamped": true,
          "certificate_serial": "5E98…",
          "provider": "КНЕДП ДПС",
          "level": "Кваліфікований електронний підпис",
          "verification": "server_verified",
          "file": "company_41234567/doc_d1b6…/signatures/1.p7s"
        }
      ],
      "recognition": {
        "document_kind": "act",
        "contract_number": "15/2026",
        "contract_date": "2026-01-12",
        "period_start": "2026-09-01",
        "period_end": "2026-09-30",
        "parties": [{ "name": "ТОВ «Альфа»", "code": "41234567", "role": "seller" }],
        "topics": ["it-послуги"],
        "summary": "Акт за вересень: супровід 1С",
        "model": "google/gemini-3-flash-preview",
        "source_sha256": "9f2c…"
      },
      "tags": ["квартал3"]
    }
  ]
}

manifest.csv

Та сама інформація таблицею: UTF-8 з BOM (коректно відкривається в Excel), роздільник — кома, рядок на документ. Дати й суми — у тому самому форматі, що й у JSON. Колонки: id, company_name, company_code, direction, counterparty_name, counterparty_code, document_type_code, document_type_name, number, date, amount, vat_amount, currency, status, original_path, original_sha256, signatures_count, signature_paths, signers, contract_number, period_start, period_end, tags. Кілька значень в одній клітинці розділено « | ».

Перевірка підписів

Відкрийте czo.gov.ua/verify, завантажте файл signatures/N.p7s і, коли сервіс попросить, — original.pdf з тієї самої папки. Цілісність файлу можна перевірити, порахувавши SHA-256 і порівнявши з original_sha256.value.