API VERIDOC
Встройте подписание в свою программу. Оценщик нажимает «Подписать отчёт» у себя в системе, подписывает ЭЦП, и подписанный отчёт с доказательной базой возвращается обратно.
Как это устроено
- Ваша программа отправляет файл отчёта в
POST /v1/documentsи получаетsign_url. - Открываете
sign_urlв браузере — оценщик подписывает своей ЭЦП через NCALayer. Закрытый ключ никуда не передаётся. - Опрашиваете
GET /v1/documents/{id}, покаstatusне станетsigned. - Забираете отсоединённую подпись через
/v1/documents/{id}/signatureи кладёте её рядом с отчётом. - Ссылку
verify_urlпечатаете в отчёте — по ней банк, суд или палата проверят подлинность.
Руководитель организации подписывает тот же документ вторым — просто открывает ту же ссылку. Подписей может быть сколько угодно, порядок сохраняется.
Пробный ключ API — Без регистрации
Получите ключ прямо сейчас, без входа и без ЭЦП. Лимит как на бесплатном тарифе.
curl -X POST https://veridoc.kz/v1/keys/trial
{
"key": "qk_trial_…",
"plan": "free",
"documents_limit": 10,
"documents_left": 10,
"max_file_mb": 25
}
Ни входа, ни ЭЦП, ни формы. Ключ работает сразу, лимиты — как на бесплатном тарифе. С одного адреса выдаётся до трёх ключей в сутки. Постоянный ключ без ограничений — после входа по ЭЦП.
Ключ доступа
Войдите по ЭЦП и создайте ключ в кабинете — он подставится сюда автоматически.
Ключ передаётся заголовком Authorization: Bearer <ключ>.
Остаток по ключу
curl https://veridoc.kz/v1/me \ -H "Authorization: Bearer qk_ВАШ_КЛЮЧ"
{
"plan": "business",
"plan_title": "Бизнес",
"documents_limit": 200,
"documents_used": 47,
"documents_left": 153,
"max_file_mb": 100,
"resets_at": "01.10.2026"
}
Считаются загруженные документы, а не подписи: подписантов под одним
документом может быть сколько угодно и они бесплатны. При исчерпании
лимита загрузка отвечает кодом 402 с понятным текстом —
обрабатывайте его и показывайте пользователю, а не «ошибку сервера».
Загрузить отчёт на подпись
curl -X POST https://veridoc.kz/v1/documents \ -H "Authorization: Bearer qk_ВАШ_КЛЮЧ" \ -F "file=@otchet-ob-ocenke-1042.pdf"
{
"id": "8f2Kd1PqWm",
"code": "A0911E",
"sha256": "9c1f…",
"sign_url": "https://veridoc.kz/d/8f2Kd1PqWm",
"verify_url": "https://veridoc.kz/v/A0911E"
}
Узнать статус и кто подписал
curl https://veridoc.kz/v1/documents/8f2Kd1PqWm \ -H "Authorization: Bearer qk_ВАШ_КЛЮЧ"
{
"status": "signed",
"signatures": [
{
"signed_at": 1788988000,
"verdict": "valid",
"signer": {
"full_name": "ИВАНОВ ИВАН",
"iin": "800101300123",
"bin": "230140042917",
"org": "ТОО \"Оценка и право\"",
"issuer": "ҰЛТТЫҚ КУӘЛАНДЫРУШЫ ОРТАЛЫҚ",
"not_after": "2027-09-10T12:00:00"
}
}
]
}
verdict принимает три значения: valid —
подпись действительна, invalid — недействительна,
unknown — проверить не удалось. Третий случай не означает
подделку: так бывает, когда служба проверки отзыва временно недоступна.
Никогда не показывайте unknown пользователю как ошибку.
Забрать подпись для приложения к делу
curl https://veridoc.kz/v1/documents/8f2Kd1PqWm/signature \ -H "Authorization: Bearer qk_ВАШ_КЛЮЧ"
{ "format": "CMS", "encoding": "base64", "cms": "MIIG1wYJKoZ…" }
Раскодируйте base64 и сохраните как отчёт.cms рядом с PDF.
Эти два файла вместе и есть юридически значимый комплект.
Подписание на вашей стороне, хранение — у нас
Если подписание уже реализовано в вашей программе, присылайте готовую CMS. Мы добавим метку времени, проверим и сохраним доказательную базу.
curl -X POST https://veridoc.kz/v1/documents/8f2Kd1PqWm/signatures \ -H "Authorization: Bearer qk_ВАШ_КЛЮЧ" \ -F "cms=$(base64 -w0 otchet.cms)"
{
"ok": true,
"verdict": "valid",
"ades_level": "T",
"best_signature_time": "2026-09-10T16:14:57Z",
"signer": {
"full_name": "ЧУЯСОВ АНДРЕЙ ВЛАДИМИРОВИЧ",
"iin": "810329050451",
"bin": "230140042917",
"org": "ТОО \"Мой арбитр\"",
"issuer": "ҰЛТТЫҚ КУӘЛАНДЫРУШЫ ОРТАЛЫҚ (GOST) 2022",
"not_after": "2026-10-02T13:23:42"
}
}
Обратно вы всегда можете забрать и файл, и подпись, и краткую карточку
подписанта: GET /v1/documents/{id} отдаёт статус и данные
подписантов, /signature — саму CMS в base64. Этого
достаточно, чтобы хранить комплект у себя и не зависеть от нас.
Проверить чужую подпись
curl -X POST https://veridoc.kz/v1/verify \ -H "Authorization: Bearer qk_ВАШ_КЛЮЧ" \ -F "document=@otchet.pdf" \ -F "signature=@otchet.cms"
Работает с подписями из Documentolog, SIGEX, idocs, 1С и госсистем. Файлы не сохраняются — проверка идёт в памяти.
Пример на Python
import time, requests
API = "https://veridoc.kz"
H = {"Authorization": "Bearer qk_ВАШ_КЛЮЧ"}
with open("otchet.pdf", "rb") as f:
doc = requests.post(f"{API}/v1/documents", headers=H,
files={"file": f}).json()
print("Отправьте оценщику:", doc["sign_url"])
while True:
st = requests.get(f"{API}/v1/documents/{doc['id']}", headers=H).json()
if st["status"] == "signed":
break
time.sleep(5)
sig = requests.get(f"{API}/v1/documents/{doc['id']}/signature",
headers=H).json()
open("otchet.cms", "wb").write(__import__("base64").b64decode(sig["cms"]))
print("Подписал:", st["signatures"][0]["signer"]["full_name"])
print("Проверка:", doc["verify_url"])
Что учесть оценщикам
Отчёт об оценке подписывается оценщиком и, если оценка велась в организации, утверждается её руководителем. Это две подписи под одним файлом — отправьте одну и ту же ссылку обоим.
Если оценку по разным объектам вели несколько оценщиков, каждый
подписывает отдельно. Все подписи лягут под один документ, порядок и
время фиксируются. Ссылку verify_url имеет смысл печатать
в самом отчёте вместе с кодом — тогда проверяющему не нужен доступ к
вашей системе.