kvitera

Метаданные PDF

Получите свойства PDF и признаки его обработки без параметров платежа.

Отправьте PDF в POST /v1/pdf/metadata, чтобы получить даты, программу создания, свойства файла и признаки обработки. Банк, сумма и реквизиты не требуются. Для проверки чека с параметрами заявки используйте проверку чеков.

Отправьте файл

Используйте действующий API-ключ своей компании и ровно одно поле file:

curl https://api.kvitera.tech/v1/pdf/metadata \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -F 'file=@document.pdf;type=application/pdf'

Замените YOUR_API_KEY своим ключом, а document.pdf — локальным PDF. Результат приходит в том же ответе. Изображения, архивы и PDF с паролем не поддерживаются. Типы и полный ответ смотрите в справочнике метода.

Прочитайте результат

status описывает полноту анализа, а assessment — обнаруженные признаки:

Поле и значениеЧто делать
status: completeЗаявленные проверки выполнены; прочитайте свойства и ограничения
status: partialПроверьте coverage и limitations: часть сведений недоступна
assessment: signals_detectedПрочитайте findings и оцените причины обработки документа
assessment: no_signals_detectedВ выполненных проверках признаки не найдены; неизменность не доказана
assessment: inconclusiveДанных недостаточно; запросите исходный файл или проверьте документ вручную

Признаки обработки могут появиться при обычном сохранении, подписании или заполнении документа. Ни одно значение assessment не подтверждает подлинность или поступление денег.

Фрагмент ответа:

{
  "request_id": "pdf_example",
  "analysis_version": 1,
  "status": "complete",
  "assessment": "signals_detected",
  "findings": [
    {
      "code": "incremental_updates_detected",
      "severity": "info",
      "message": "В файле обнаружены сохранённые обновления."
    }
  ]
}

Для обработки используйте стабильные code и значения enum. Текст message предназначен для человека. analysis_version позволяет различать версии анализа.

Посмотрите свойства и источники

В metadata доступны автор, заголовок, программа создания (creator), генератор PDF (producer), даты и другие поддерживаемые свойства. metadata.properties содержит их исходные значения с техническим именем и источником info или xmp.

Даты содержат raw, value, status, precision и timezone_known. Если часовой пояс не указан, не считайте значение временем UTC. missing означает отсутствие даты, invalid — невозможность её интерпретировать. Сокращённые длинные значения имеют truncated: true; получить полный исходный текст через этот метод нельзя.

history.saved_versions описывает сохранившиеся версии. Одна версия не доказывает, что файл не менялся. signatures.presence сообщает об обнаружении объекта подписи; signatures.validation: not_performed означает, что её действительность не проверялась.

В coverage указано, какие разделы доступны и сколько страниц удалось проанализировать. Отсутствие текста или метаданных само по себе не означает подделку. Проверка не оценивает правки внутри изображений и не сверяет содержание платежа.

Размер, частота и повторные запросы

  • Стандартный лимит — 15 МиБ и 50 страниц; сложный PDF может быть отклонён и при меньшем размере.
  • Стандартное ограничение — 30 запросов в минуту на компанию, общее для её ключей, кабинета и метаданных изображений.
  • На загрузку отводится до 15 секунд, на анализ — до 10 секунд. Используйте клиентский таймаут с запасом, например 35 секунд.
  • Квота проверок чеков не расходуется. Самостоятельный анализ не создаёт запись в истории чеков и не влияет на повторное предъявление.
  • Повторный запрос выполняет новый анализ и учитывается в ограничении частоты. Idempotency-Key этого поведения не меняет.

Исходный PDF не сохраняется: временные файлы удаляются после обработки. Отчёт и имя файла сохраняются на 30 дней и доступны участникам вашей компании в истории метаданных личного кабинета. request_id — идентификатор отчёта; его можно использовать при обращении в поддержку. Для более длительного хранения сохраните JSON-ответ в своей системе. История заполняется новыми проверками; ранее выполненные отчёты не восстанавливаются. Бесплатная форма на лендинге не сохраняет отчёты в историю компании.

Обработайте ошибки

HTTPКодЧто делать
401 / 403unauthorized, tenant_disabledПроверить ключ и доступ компании
408upload_timeoutПроверить соединение и повторить загрузку
413upload_too_largeВыбрать файл меньшего размера
415unsupported_media_typeОтправить PDF через multipart/form-data
422validationПередать ровно один file без дополнительных полей и query-параметров
422invalid_pdf, encrypted_pdfЗапросить исходный читаемый PDF без пароля
422pdf_complexity_limit, pdf_analysis_timeoutИспользовать менее сложный документ; не повторять один файл бесконечно
429rate_limitПодождать число секунд из Retry-After
503overloaded, pdf_analysis_unavailable, database_unavailableПовторить позже, учитывая Retry-After, если он присутствует
503feature_unavailableМетод временно выключен; попробовать позже

Формат ошибки описан в общем руководстве.

На этой странице