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