POST /kyc/process
Описание
Метод определяет, выбирает и распознаёт документы и селфи из массива изображений. Позволяет загружать несколько файлов, выполнять OCR и сохранять результаты в сессии. Для доступа необходим JWT-токен в заголовке или в теле запроса.
Формат запроса
- HTTP метод:
POST - URL:
/kyc/process - Тип контента:
multipart/form-data - Авторизация: требуется
Параметры запроса
| Параметр | Тип | Где передаётся | Обязательный | Описание |
|---|---|---|---|---|
| token | string | Header, form-data | ✅* | Перманентный токен пользователя. Если временный токен не указан в заголовке «token», то этот параметр обязателен в теле запроса |
| images | array | form-data | ✅ | Массив изображений (файлы) |
| sessionId | string | form-data | ❌ | Привязка к существующей сессии. Новая сессия будет создана, если не указано |
| schemaId | string | form-data | ❌ | Идентификатор схемы процесса KYC |
| captcha | string | form-data | ❌ | Капча, если требуется |
| mode | string | form-data | ❌ | Режим выполнения: ‘async’ или ‘sync’ (по умолчанию ‘sync’) |
| clientKey | string | form-data | ❌ | Ключ для поиска сессии |
| ocr | boolean | form-data | ❌ | Выполнять OCR документов (по умолчанию true) |
* Один из вариантов передачи токена обязателен.
Пример запроса (cURL)
curl -X POST "https://api.neuro-vision.ru/v1/kyc/process"
-H "Authorization: Bearer jwt.temporary.token"
-F "images=@/path/to/passport.jpg"
-F "images=@/path/to/selfie.jpg"
-F "sessionId=00000000-0000-0000-0000-000000000000"
-F "schemaId=schema-001"
-F "ocr=true"
-F "mode=sync" Примеры ответов
Успех (200 OK)
{
"sessionId": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"status": "success",
"spent": 136.945,
"results": [
{
"spent": 8.779,
"status": "success",
"type": "document",
"docName": "GBR — Passport(2006)",
"image": "url",
"imageFull": "url",
"checks": [
{
"caption": "fraud",
"items": [
{
"caption": "isEdited",
"status": "success"
}
]
}
],
"ocr": {
"fields": [
{
"conf": "high",
"title": "Surname",
"value": "DOE"
}
],
"status": "success"
},
"errors": [
"[document] text fields not visible"
]
}
],
"createdAt": "2025-05-21T08:15:46.972Z",
"isClientNew": false
}
## **Успех (selfie & doc):**
{
"sessionId": "10000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"status": "success",
"spent": 36.11,
"results": [
{
"status": "success",
"type": "passport",
"spent": 4.453,
"errors": [],
"docName": "GBR — Passport (2006)",
"checks": [
{
"caption": "fraud",
"items": [
{
"status": "success",
"caption": "isEdited"
},
{
"status": "success",
"caption": "isDisplay"
},
{
"status": "success",
"caption": "isPrinted"
}
]
}
],
"ocr": {
"status": "success",
"fields": [
{
"title": "Surname",
"value": "DOE",
"conf": "high"
}
]
},
"image": "url_to_passport_image",
"imageFull": "url_to_full_passport_image"
},
{
"status": "success",
"type": "selfie",
"spent": 4.664,
"errors": [],
"docName": "GBR — Passport (2006)",
"checks": [
{
"caption": "fraud",
"items": [
{
"status": "success",
"caption": "isEdited"
}
]
}
],
"faceSelfie": "url_to_selfie_image",
"faceDoc": "url_to_face_document_image",
"withDoc": "passport",
"image": "url_to_selfie_image",
"imageFull": "url_to_full_selfie_image"
},
{
"status": "success",
"type": "faces",
"spent": 0.004,
"errors": [],
"checks": [
{
"caption": "Face matching",
"items": [
{
"status": "success",
"caption": "selfie with passport & passport",
"value": "92%",
"images": [
"url_to_selfie_with_passport_image",
"url_to_passport_image"
]
},
{
"status": "success",
"caption": "selfie & passport",
"value": "83%",
"images": [
"url_to_selfie_image",
"url_to_passport_image_for_selfie_comparison"
]
}
]
}
]
}
],
"createdAt": "2025-05-21T08:15:46.975Z",
"isClientNew": false
} Ошибка (400 Invalid schema / No image attached)
{
"message": "invalid schema",
"status": "error"
} Ошибка (failed)
{
"sessionId": "00000000-0000-0000-0000-000000000000",
"clientId": "null",
"status": "failed",
"spent": 261.569,
"results": [
{
"status": "failed",
"type": "document",
"spent": 0,
"errors": [
"[system] exception"
],
"ocr": {
"status": "idle",
"fields": []
}
}
],
"createdAt": "2025-05-21T08:15:46.980Z",
"isClientNew": true
}