API проверки контрагентов
На входе ИНН, на выходе — весь отчёт в JSON: реквизиты, финансовая отчётность по годам, арбитраж, ФССП, лицензии, госконтракты, блокировки счетов, банкротные сигналы, связанные лица и компании, риск-балл с разбором и заключение. Оплата по факту с предоплаченного баланса.
- 1. Быстрый старт
- 2. Ключ и аутентификация
- 3. Цены и режимы
- 4. Методы
- 5. Что в ответе
- 6. Блоки: есть данные или не собирали
- 7. Справочник полей
- 8. Ошибки
- 9. Лимиты и хранение
1. Быстрый старт
Проверка асинхронная: заказали — получили идентификатор — забрали результат. Полная проверка идёт минуты, синхронного ответа не бывает.
# 1. заказать
curl -X POST https://xn--d1ac0am9c.xn--80asehdb/v1/checks \
-H "Authorization: Bearer $DOSSIER_KEY" \
-H "Idempotency-Key: order-4471" \
-H "Content-Type: application/json" \
-d '{"inn": "7707083893", "mode": "basic"}'
{"id":"9f1c…","inn":"7707083893","mode":"basic","status":"queued","price_rub":20}
# 2. забрать (поллинг раз в 20 секунд)
curl https://xn--d1ac0am9c.xn--80asehdb/v1/checks/9f1c… \
-H "Authorization: Bearer $DOSSIER_KEY"
2. Ключ и аутентификация
Ключ выпускается в кабинете и показывается один раз — сохраните его сразу, повторно мы его не покажем (в базе лежит только хеш). Активных ключей может быть до 5: чтобы сменить ключ без простоя, выпустите новый, переключите интеграцию и лишь потом отзовите старый.
Authorization: Bearer dsr_live_…
Принимается и заголовок X-Api-Key. Отзыв ключа действует
немедленно, со следующего же запроса.
3. Цены и режимы
| что | режим | цена |
|---|---|---|
| Поиск компании по названию | — | 1 ₽ |
| Проверка: реестры, финансы, суды, ФССП, лицензии, госзаказы, блокировки, банкротство, связи, риск-балл | basic | 20 ₽ |
| То же плюс медиа-скрининг, разбор сайта компании и заключение словами | full | 99 ₽ |
Режим по умолчанию — basic. Статус, баланс и /ping
бесплатны. Упавшая проверка не тарифицируется: деньги возвращаются на баланс.
basic и full может
получить разный балл. Сравнивайте между собой только проверки одного режима —
режим всегда указан в ответе полем mode.4. Методы
| метод | что делает | цена |
|---|---|---|
| GET /v1/ping | ключ жив, остаток на балансе | 0 ₽ |
| GET /v1/balance | остаток, потрачено, прайс | 0 ₽ |
| GET /v1/search?q= | название → кандидаты с ИНН | 1 ₽ |
| POST /v1/checks | заказать проверку | 20 / 99 ₽ |
| GET /v1/checks/{id} | статус, по готовности — отчёт | 0 ₽ |
POST /v1/checks
Тело: {"inn": "…", "mode": "basic|full"}. Заголовок
Idempotency-Key обязателен — он гарантирует, что повтор
запроса (ваш таймаут, сбой прокси, перезапуск воркера) не запустит вторую
проверку и не спишет деньги дважды. Повтор с тем же ключом вернёт ту же проверку
и поле "idempotent_replay": true.
Ответ 202: id, status,
mode, price_rub. Статусы:
queued → running → done либо
error.
GET /v1/checks/{id}
Пока проверка не готова, в ответе только статус и retry_after —
секунды до следующей попытки. Готовая отдаёт отчёт целиком (см. ниже).
Проверка, завершившаяся ошибкой, приходит с блоком error и
пометкой refunded.
5. Что в ответе
{
"id": "9f1c…", "inn": "7707083893", "mode": "basic",
"status": "done", "price_rub": 20,
"created_at": "2026-08-23 09:14:02", "finished_at": "2026-08-23 09:15:40",
"schema_version": "1.0",
"report": {
"inn": "…", "name": "…",
"score": { "score": 42, "level": "средний", "subindices": [ … ] },
"flags": { "red_flags": [ … ], "green_flags": [ … ] },
"target": {
"extras": { "address": "…", "okved": "…", "age_years": 12, … },
"financial_history": { "series": { "revenue": { "2024": … } }, … },
"legal_cases": { "as_defendant": { … }, "dynamics": [ … ] },
"enforcements": { … }, "licenses": [ … ], "contracts": { … },
…
},
"affiliates": [ … ], "persons": [ … ], "coverage": { … }
},
"blocks": { "licenses": "empty", "legal_cases": "ok", "media_coverage": "off" }
}
Размер готового отчёта — 90–130 КБ (20–30 КБ с gzip).
6. Блоки: есть данные или не собирали
Каждый документированный ключ присутствует в ответе всегда — если
данных нет, там пустой список или пустой объект. Что именно означает пустота,
говорит объект blocks:
| значение | что означает |
|---|---|
| ok | собрано, данные есть |
| empty | собрано, данных нет |
| off | не собиралось в этом режиме |
| not_applicable | у этого субъекта не бывает |
| unavailable | источник не ответил |
blocks, а не на пустоту значения: только empty
означает, что мы проверили и не нашли.7. Справочник полей
Ключи ниже входят в контракт: они не переименовываются и не исчезают без
смены schema_version. Новые ключи могут добавляться — это не
ломающее изменение. Всё, что придёт в ответе сверх списка, считайте
нестабильным.
Верхний уровень
| ключ | тип | что это |
|---|---|---|
| inn | value | ИНН проверенного лица |
| name | value | наименование (для ИП — ФИО) |
| is_entrepreneur | value | субъект — индивидуальный предприниматель |
| mode | value | режим проверки, в котором собран отчёт |
| score | dict | риск-балл 0–100, уровень и разбор по факторам |
| flags | dict | красные и зелёные флаги словами |
| exec_summary | dict | резюме: проза, топ-риски, рекомендация |
| coverage | dict | что и насколько полно проверено, чего не хватило |
| sanctions | dict | санкционный и PEP-скрининг субъекта |
| foreign_agent | value | признак иностранного агента |
| affiliates | list | связанные компании с их проверками |
| persons | list | связанные физлица с их проверками |
| target | dict | данные проверенной компании (см. ниже) |
report.target — данные проверенной компании
| ключ | тип | что это |
|---|---|---|
| inn | value | ИНН |
| name | value | наименование |
| status | value | статус в ЕГРЮЛ/ЕГРИП |
| extras | dict | реквизиты: адрес, ОКВЭД, возраст, штат, руководитель |
| flags | dict | реестровые признаки (недостоверность, массовость и пр.) |
| licenses | list | лицензии |
| contracts | dict | госконтракты: суммы, число, годы |
| inspections | dict | проверки контролирующих органов |
| legal_cases | dict | арбитраж: дела, суммы, динамика по годам, банкротные |
| enforcements | dict | исполнительные производства ФССП |
| claims_materiality | dict | материальность требований к капиталу и активам не бывает у ИП |
| prebankruptcy | list | предбанкротные сообщения Федресурса |
| fedresurs_signals | dict | залог, лизинг, факторинг, реорганизация |
| account_blocks | dict | решения ФНС о приостановлении операций по счетам |
| timeline | list | хронология значимых событий |
| financial_history | dict | РСБУ по годам: ряды, коэффициенты, ранние сигналы не бывает у ИП |
| financial_analysis | dict | детерминированный разбор финансов не бывает у ИП |
| peer_relative | dict | позиция среди похожих компаний отрасли не бывает у ИП |
| distress_pd | dict | модельная вероятность остановки деятельности не бывает у ИП |
| shell_score | dict | индекс признаков фирмы-однодневки не бывает у ИП |
| info_completeness | dict | индекс информационной полноты |
| ownership | dict | структура владения и доли не бывает у ИП |
| public_group | dict | публичная группа: эмитент, отчётность МСФО не бывает у ИП |
| beneficiary_screening | dict | проверки бенефициаров по личным реестрам нет в basic |
| sanctions | dict | санкции, PEP, иноагент |
| rosfinmonitoring | dict | перечень Росфинмониторинга |
| rid | dict | товарные знаки, патенты, программы для ЭВМ |
| media_coverage | dict | медиа-скрининг: события, тональность, индекс нет в basic |
| adverse_media | dict | негативные новости (отдельный канал) нет в basic |
| business_profile | dict | профиль деятельности по сайту компании нет в basic |
| industry_context | dict | отраслевой и региональный фон (ЦБ, ФНС) |
8. Ошибки
Формат один: {"code": "…", "detail": "…"}. Ориентируйтесь на
code — текст может меняться.
| код | HTTP | когда |
|---|---|---|
| unauthorized | 401 | нет ключа, ключ отозван или заблокирован клиент |
| idempotency_key_required | 400 | не прислан Idempotency-Key |
| bad_inn | 422 | ИНН не проходит проверку контрольной суммы |
| insufficient_funds | 402 | не хватает средств; в теле — остаток и цена |
| rate_limited | 429 | превышен потолок запросов на ключ |
| too_many_inflight | 429 | слишком много проверок в работе одновременно |
| not_found | 404 | проверка не найдена (или принадлежит другому клиенту) |
| body_expired | 410 | срок хранения отчёта истёк |
| source_unavailable | 502 | реестр-источник не ответил |
| deploying | 503 | идёт обновление сервиса, повторите через минуту |
Повторять запрос имеет смысл на 429, 502 и
503. С тем же Idempotency-Key повтор безопасен всегда.
9. Лимиты и хранение
- до 120 запросов в минуту на ключ;
- до 4 проверок в работе одновременно;
- готовый отчёт хранится 90 дней и всё это время доступен по
идентификатору; дальше остаётся только запись в истории списаний, а запрос
отчёта возвращает
body_expired; - отчёты содержат персональные данные (ФИО руководителей, учредителей и бенефициаров) — обрабатывайте их на своей стороне соответственно.