Разработчикам
Интеграция по контракту, а не по догадкам
Все операции описаны в контракте OpenAPI 3.1: схемы запросов, ответов и ошибок, области доступа ключей, идемпотентность и пагинация. Неподдержанная операция отвечает явной ошибкой с причиной, а не тишиной.
Каналы для заявителя
Ссылка на проверку
Страница проверки на домене сервиса с вашим цветом и логотипом. Ссылка создается одним запросом и имеет срок действия.
Веб-виджет
Загрузчик с SRI около 3 КиБ встраивает проверку во фрейм на вашей странице; сторонние cookie не нужны.
SDK для iOS
iOS 15 и выше, чтение NFC-чипа на iPhone 7 и новее, аттестация App Attest, ключ в Secure Enclave.
SDK для Android
Android 8.0 и выше, камера CameraX, NFC IsoDep, Play Integrity, интерфейс на русском и английском.
Ссылка на проверку одним запросом
Создайте заявителя и дело, затем ссылку. Повтор запроса с тем же Idempotency-Key вернет тот же результат.
curl https://api.verkyc.com/v1/cases/$CASE_ID/hosted-links \
-H "Authorization: Bearer $VERKYC_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"locale": "ru", "return_url": "https://example.com/onboarding/done"}'Устройство API
- Ключи для тестовой и рабочей среды с областями доступа; ротация без простоя.
- Idempotency-Key для всех операций создания и изменения: безопасный повтор после сбоя сети.
- Курсорная пагинация, привязанная к фильтру списка; ETag и If-Match для изменения версионных объектов.
- Ошибки в формате application/problem+json с машинным кодом, признаком повтора и указателями полей.
- Предел частоты запросов с ответом 429 и заголовком Retry-After.
Вебхуки с подписью
События дела, проверок, отчетов, мониторинга, удаления и выгрузок. Каждая попытка подписана HMAC-SHA256 над временем, идентификатором события и телом; повторы идут по расписанию до суток, затем событие можно переотправить из консоли. При ротации ключа прежний действует еще 24 часа.
import { createHmac, timingSafeEqual } from 'node:crypto';
// rawBody - тело запроса байтами, как оно пришло, до разбора JSON.
export function verifyWebhook(secret, headers, rawBody) {
const timestamp = headers['x-webhook-timestamp'];
const eventId = headers['x-webhook-id'];
const expected = createHmac('sha256', secret)
.update(`${timestamp}.${eventId}.`)
.update(rawBody)
.digest('hex');
const signature = Buffer.from(headers['x-webhook-signature'] ?? '', 'utf8');
const fresh = Math.abs(Date.now() / 1000 - Number(timestamp)) <= 300;
return fresh && signature.length === expected.length && timingSafeEqual(signature, Buffer.from(expected, 'utf8'));
}Проверка отчета
Отчет подписан ES256 (JWS над канонической записью JSON). Открытые ключи опубликованы по адресу /.well-known/report-signing-jwks.json, а подлинность отчета проверяется по ссылке без передачи персональных данных.
curl https://api.verkyc.com/public/reports/verify \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"verification_reference": "<ссылка из отчета>", "report_sha256": "<SHA-256 файла отчета>"}'Тестовая среда
Тестовая среда работает на синтетических данных: движки и источники возвращают заданные исходы, чтобы вы проверили все ветки интеграции, включая отказы и ручной разбор. Реальные документы и лица в тестовой среде не нужны.
Частые вопросы
Есть ли ограничения на частоту запросов?
Да. При превышении предела API отвечает 429 с заголовком Retry-After; повтор с тем же Idempotency-Key безопасен.
Как получить тестовый ключ?
Оставьте заявку на странице контактов. После подключения ключи создаются в консоли в разделе для разработчиков.
Где посмотреть все операции?
В справочнике API на этом сайте: операции сгруппированы по разделам, для каждой указаны метод, путь, параметры, тело запроса и ответы.
Покажем на ваших сценариях
Расскажите, кого и где нужно проверять. Подготовим демонстрацию, тестовый доступ к API и расчет стоимости.