Перейти к основному содержимому

# Операции с аппликантами

### Создание аппликанта​

Эндпоинт POST /publicapi/publicapi/api/v2/private/Applicants Тело запроса:

    {
      "firstName": "string",
      "lastName": "string",
      "phone": "string",
      "email": "string",
      "metadata": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "callbackUrl": "string",
      "sendSms": true,
      "status": 0,
      "verificationMethod": 0
    }

- firstName - имя аппликанта (необязательное поле)
- lastName - фамилия аппликанта (необязательное поле)
- phone - номер телефона аппликанта. Должен быть указан валидный номер (необязательное поле)
- email - электронная почта аппликанта (необязательное поле)
- metadata - объект с дополнительной информацией об аппликанте. Содержит 3 поля: additionalProp1, additionalProp2 и additionalProp3. (необязательное поле)
- callbackUrl - URL, на который происходит перенаправление при верификации (необязательное поле)
- sendSms - флаг для получения ссылок на верифицацию по SMS. Значение false - выключено, true - включено (необязательное поле)
- status - статус аппликанта. 0 - аппликант не верифицирован, 1 - аппликант успешно верифицирован. 2 - верификация в статусе failed, 3 - верификация отменена (необязательное поле)
- verificationMethod - метод верификации. 0 - верификация через SMS, 1 - ручная верификация. Значение по умолчанию - 1 (необязательное поле) Возможные ошибки:

Код | Сообщение | Описание
400 | Account with id {id} not found | Указанный аккаунт не найден

Пример запроса:

    curl -X 'POST' \
      'https:/baf.ai/publicapi/api/v2/private/Applicants' \
      -H 'accept: text/plain' \
      -H 'Authorization: Bearer sk_3938ab7b-cdbf-4a1a-952b-e3782f061f4b' \
      -H 'Content-Type: application/json' \
      -d '{
      "firstName": "John",
      "lastName": "Dow",
      "phone": "49828585009568",
      "email": "string",
      "referenceId": "string",
      "metadata": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "callbackUrl": "string",
      "sendSms": true,
      "case": [
        {
          "name": 1,
          "value": "string"
        }
      ],
      "status": 0,
      "verificationMethod": 0
    }'

Пример ответа:

Status Code | 200

    {
      "applicantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "validationLink": "https://host/embedded?requestId=c3e5599f-4742-4a60-b511-b65e5707c963",
      "shortValidationLink": "https://host/UA6IB5g"
    }

Возможные ошибки:

Код | Сообщение | Описание | Код
400 | Sms sending error. Please check your phone number | Sms sending failed | 120027

### Получение списка аппликантов​

Список аппликантов можно отфильтровать по времени. Если не задать фильтрацию для списка аппликантов, то будут выведены все созданные запросы, начиная с последнего. Эндпоинт GET /publicapi/publicapi/api​/v2​/private​/Applicants Параметры:

Название поля | Описание | Значение
Page | Номер страницы | От 1 до 2147483647
PageSize | Максимальное количество аппликантов на странице | От 1 до 400

Для поиска и сортировки можно использовать следующие необязательные поля:

Название поля | Описание
CreatedFrom | Нижняя граница даты: дд-мм-гггг
CreatedTo | Верхняя граница даты: дд-мм-гггг
SortField | Поле для сортировки. Можно указать firstName, lastName, phone и т.д.
Order | Порядок сортировки для выбранного поля. Для порядка по убыванию укажите значение: descending. Порядок по возрастанию задан по умолчанию.
TextFilter | Текстовый поиск

Пример запроса:

    curl -X 'GET' \
      'https:/baf.ai/publicapi/api/v2/private/Applicants?Page=2&PageSize=2' \
      -H 'accept: text/plain' \
      -H 'Authorization: Bearer sk_3938ab7b-cdbf-4a1a-952b-e3782f061f4b'

Пример ответа:

Status Code | 200

    {
      "page": 1,
      "pageSize": 3,
      "total": 46,
      "totalPages": 16,
      "items": [
        {
          "applicantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "attemptsCount": 0,
          "lastAttemptId": null,
          "successAttemptId": null,
          "successAttempt": null,
          "firstName": "Test",
          "lastName": "aihv",
          "phone": "+7 982 200-00-00",
          "email": "",
          "referenceId": null,
          "openedLinkTimes": 3,
          "created": "2023-02-06T00:32:22.9260859",
          "accountId": "28608d66-a501-44ec-94db-04a00143ff51",
          "validationRequestSettings": null,
          "completed": false,
          "status": 0,
          "statusName": "Pending",
          "attemptsUsed": 0,
          "documentExpired": null,
          "lastValidationResponse": {
            "validationResponseId": 133,
            "created": "2023-11-17T04:40:31.509932",
            "responseStatus": 0,
            "responseStatusName": "Success"
          },
          "hasRiskEvents": false,
          "metadata": {},
          "callbackUrl": "",
          "verificationMethod": 0,
          "cancelInfo": {
            "reasons": [
              {
                "code": 0,
                "message": "string"
              }
            ]
          },
        },
        {
          "applicantId": "08598c21-abdd-48f6-db05-08db07b6879a",
          "attemptsCount": 1,
          "lastAttemptId": null,
          "successAttemptId": null,
          "successAttempt": null,
          "firstName": "Testit",
          "lastName": "bvaddv",
          "phone": "+7 982 200-00-00",
          "email": "",
          "referenceId": null,
          "openedLinkTimes": 5,
          "created": "2023-02-06T00:32:39.0455118",
          "accountId": "28g08d66-a571-44ec-94db-04a00143ff51",
          "validationRequestSettings": null,
          "completed": true,
          "status": 5,
          "statusName": "FailedAttempt",
          "attemptsUsed": 1,
          "documentExpired": false,
          "lastValidationResponse": {
            "validationResponseId": 134,
            "created": "2023-11-17T04:40:31.509932",
            "responseStatus": 0,
            "responseStatusName": "Success"
          },
          "hasRiskEvents": false,
          "metadata": {},
          "callbackUrl": "https://host/?fromonline",
          "verificationMethod": 0,
          "cancelInfo": null
        },
        {
          "applicantId": "ac5abd84-092f-4107-60f3-08db0a81101e",
          "attemptsCount": 1,
          "lastAttemptId": null,
          "successAttemptId": null,
          "successAttempt": null,
          "firstName": "testeSelf",
          "lastName": "teste",
          "phone": "+7 952 500 00 00",
          "email": null,
          "referenceId": null,
          "openedLinkTimes": 6,
          "created": "2023-02-09T03:36:04.0500599",
          "accountId": "28608d66-a571-44ec-94db-04a00149ff51",
          "validationRequestSettings": null,
          "completed": true,
          "status": 1,
          "statusName": "Success",
          "attemptsUsed": 1,
          "documentExpired": false,
          "lastValidationResponse": {
            "validationResponseId": 135,
            "created": "2023-11-17T04:40:31.509932",
            "responseStatus": 0,
            "responseStatusName": "Success"
          },
          "hasRiskEvents": false,
          "metadata": {},
          "callbackUrl": null,
          "verificationMethod": 0,
          "cancelInfo": null
        }
      ]
    }

Возможные ошибки:

Код | Сообщение | Описание | Код
400 | No sorting by selected property | Wrong sorting field selected | 120026

### Удаление аппликанта​

Операция удаления аппликанта применяется в том случае, когда пользователю требуется повторно пройти верификацию. Эндпоинт DELETE /publicapi/publicapi/api​/v2​/private​/Applicants​/{applicantId} Параметры: applicantId — ID аппликанта Пример запроса:

    curl -X 'DELETE' \
      'https:/baf.ai/publicapi/api/v2/private/Applicants/ac5abd84-092f-4107-60f3-08db0a81101e' \
      -H 'accept: */*' \
      -H 'Authorization: Bearer sk_3938ab7b-cdbf-4a1a-952b-e3782f061f4b'

Пример ответа:

Status Code | 200

Возможные ошибки:

Код | Сообщение | Описание | Код
400 | Graphql error: "error message" | Platform returned errors in response to a graphql query | 120029

### Получение аппликанта по referenceId​

Запрос для получение аппликанта по referenceId. Эндпоинт GET /publicapi/api/v2/private/Applicants/ByReferenceId/{referenceId} Параметры: referenceId — reference ID аппликанта Пример запроса:

    curl -X 'GET' \
      'https:/baf.ai/publicapi/api/v2/private/Applicants/ByReferenceId/9cc82182' \
      -H 'accept: text/plain' \
      -H 'Authorization: Bearer sk_9cc82182-d300-4783-bce4-cbd7794a7f93'

Пример ответа:

HTTP Код | 200

    {
      "applicantId": "70c0d046-606d-47f8-b191-5c95b1d1a3f2",
      "attemptsCount": 1,
      "lastAttemptId": null,
      "successAttemptId": null,
      "successAttempt": null,
      "firstName": null,
      "lastName": null,
      "phone": null,
      "email": "tramp@baf.ru",
      "referenceId": "refref",
      "openedLinkTimes": 0,
      "created": "2024-08-16T11:34:52.244449",
      "accountId": "28608d66-a571-44ec-94db-04a00143ff51",
      "validationRequestSettings": null,
      "completed": false,
      "status": 5,
      "statusName": "FailedAttempt",
      "attemptsUsed": 1,
      "documentExpired": null,
      "lastValidationResponse": {
        "validationResponseId": 24145,
        "created": "2024-08-16T11:35:15.564344",
        "responseStatus": 1,
        "integrationId": null,
        "responseStatusName": "Fail"
      },
      "hasRiskEvents": false,
      "hasBackgroundRiskEvents": true,
      "metadata": {},
      "callbackUrl": null,
      "verificationMethod": 1,
      "cancelInfo": {
        "reasons": [
          {
            "code": 0,
            "message": "string"
          }
        ]
      }
    }

Возможные ошибки:

HTTP Код | Сообщение | Описание | Код
400 | Too many request by reference id: {количество аппликантов с этим id} | Было найдено больше одного аппликанта с запрашиваемым refrenece id | 120049

### Проверка статуса аппликанта​

Эндпоинт GET /publicapi/publicapi/api/v2/public/Applicants/{applicantId}/Completed Параметры: applicantId — ID аппликанта Пример запроса:

    curl -X 'GET' \
      'https:/baf.ai/publicapi/api/v2/public/Applicants/ac5abd84-092f-4107-60f3-08db0a81101e/Completed' \
      -H 'accept: text/plain' \
      -H 'Authorization: Bearer sk_3938ab7b-cdbf-4a1a-952b-e3782f061f4b'

Пример ответа:

HTTP Код | 200

Возможные ошибки:

HTTP Код | Сообщение | Описание | Код
404 | Validation request "applicantId" is not completed yet. | The applicant is not in a completed status. | 120025

### Принудительное закрытие аппликанта​

Запрос для принудительного перевода статуса аппликанта в 3 (Canceled). Эндпоинт POST /publicapi/publicapi/api/v2/public/Applicants/{applicantId}/Complete Параметры: applicantId — ID аппликанта Тело запроса:

    {
      "reasons": [
        {
          "code": 1,
          "message": "Manual block"
        }
      ]
    }

- code - Код блокировки. Необходимо указывать 1. Это означает, что блокировка была сделана вручную.
- message - Сообщение, описывающее причину блокировки.

Тело запроса может быть пустым в случае если не требуется указывать причину блокировки.

Пример запроса:

    curl -X 'POST' \
      'https:/baf.ru/publicapi/api/v2/public/Applicants/3fa85f64-5717-4562-b3fc-2c963f66afa6/Complete' \
      -H 'accept: text/plain' \
      -H 'Content-Type: application/json-patch+json' \
      -d '{
      "reasons": [
        {
          "code": 1,
          "message": "Manual block"
        }
      ]'

Пример ответа:

HTTP Код | 200

    {
      "callbackUrl": null
    }

### Поиск аппликанта по ID​

Эндпоинт GET /publicapi/api​/v2​/private​/Applicants/{applicantId} Параметры: applicantId — ID аппликанта Пример запроса:

    curl -X 'GET' \
      'https:/baf.ai/publicapi/api/v2/private/Applicants/9687***' \
      -H 'accept: text/plain' \
      -H 'Authorization: Bearer sk_3938ab7b-cdbf-4a1a-952b-e3782f061f4b'

Пример ответа:

Status Code | 200

    {
      "applicantId": "0ec2b***",
      "attemptsCount": 2,
      "lastAttemptId": 133,
      "successAttemptId": 133,
      "successAttempt": {
        "document": null,
        "attemptId": 117,
        "created": "2023-11-17T04:38:04.653858",
        "documentType": null,
        "documentTypeInt": 10,
        "hasRiskEvents": false,
        "status": 0,
        "validationStatus": {
          "expired": null,
          "documentIsValid": null,
          "faceIsValid": true,
          "antiSpoofingIsValid": true,
          "profileAlreadyExists": null,
          "qualityIsValid": true,
          "livenessReflectionIsValid": null,
          "hasBeenBlackListed": false
        },
        "validations": {
          "liveness": {
            "verdict": true,
            "details": [
              {
                "name": "FaceLiveness",
                "verdict": true,
                "score": 0.99,
                "additionalInfo": {
                  "attackType": "none",
                  "attackTypeConfidence": 0.9917428
                }
              }
            ]
          },
          "quality": {
            "verdict": true,
            "details": [
              {
                "name": "FaceQuality",
                "verdict": true,
                "score": 0.53,
                "additionalInfo": null
              }
            ]
          },
          "matching": {
            "verdict": true,
            "details": [
              {
                "name": "FaceMatching",
                "verdict": true,
                "score": 0.0,
                "additionalInfo": null
              }
            ]
          },
          "motionControl": {
            "verdict": false,
            "motionControlInfo": [
              {
                  "pattern": "up",
                  "result": true,
                  "photo_link": "vr.ref-images:motion_control_frame-mcf-26-03-12-04_19_14-32cab-08cbb-8a52b.jpeg"
              },
              {
                  "pattern": "left",
                  "result": false,
                  "photo_link": "vr.ref-images:motion_control_frame-mcf-26-03-12-04_19_14-32cab-08cbb-8a52b.jpeg"
              }
            ]
          }
        }
      },
      "firstName": "John",
      "lastName": "Dow",
      "phone": "1542540505-039",
      "email": "string",
      "referenceId": "string",
      "openedLinkTimes": 0,
      "created": "2023-09-19T10:39:00.0307329",
      "accountId": "28608***",
      "validationRequestSettings": {
        "validationRequestId": "ff039***",
        "faceMatchRegistrationThreshold": 90,
        "faceMatchAuthorizationThreshold": 90,
        "documentValidationPercent": 70,
        "qualityScore": 30,
        "livenessReflectionScore": 30,
        "antiSpoofingPercent": 70,
        "verifyFace": true,
        "isLRSCrossMatchEnabled": true,
        "isOCREnabled": true,
        "isAddressCheckEnabled": true,
        "isFaceRequiredOnDocument": true,
        "isCrossMatchRequired": false,
        "isDMVEnabled": false,
        "isDMVPartialEnabled": false,
        "isIdentiFraudEnabled": false,
        "isIdentiFraudFullCaseEnabled": false,
        "isDmvOrIdentiFraudEnabled": false,
        "isDmvAndIdentiFraudEnabled": false,
        "isDmvOrIdentiFraudPartialEnabled": false,
        "isDmvAndIdentiFraudPartialEnabled": false,
        "isGenderCheckEnabled": false,
        "isAgeCheckEnabled": false,
        "ageYearsDifference": 10,
        "showConsentForm": false,
        "manualIsLivenessCheckEnabled": false,
        "manualIsMatchingCheckEnabled": true,
        "manualIsQualityCheckEnabled": false,
        "autoUnblockEnabled": false,
        "autoUnblockPeriod": "00:02:00",
        "autoUnblockCount": 3
      },
      "completed": true,
      "status": 3,
      "statusName": "Canceled",
      "attemptsUsed": 0,
      "documentExpired": null,
      "lastValidationResponse": {
        "validationResponseId": 133,
        "created": "2023-11-17T04:40:31.509932",
        "responseStatus": 0,
        "responseStatusName": "Success"
      },
      "hasRiskEvents": false,
      "metadata": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "callbackUrl": null,
      "verificationMethod": 0,
      "cancelInfo": {
        "reasons": [
          {
            "code": 0,
            "message": "string"
          }
        ]
      },
    }

### Обновление аппликанта​

Обновление данных аппликанта Эндпоинт: PUT /publicapi/api​/v2​/private​/Applicants/{applicantId} Параметры: applicantId - ID аппликанта Тело запроса:

    {
      "firstName": "string",
      "lastName": "string",
      "phone": "string",
      "email": "string",
      "referenceId": "string",
      "callbackUrl": "string",
      "metadata": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      }
    }

- firstName - имя аппликанта (необязательное поле)
- lastName - фамилия аппликанта (необязательное поле)
- phone - номер телефона аппликанта. Должен быть указан валидный номер (необязательное поле)
- email - электронная почта аппликанта (необязательное поле)
- referenceId - (необязательное поле)
- callbackUrl - (необязательное поле)
- metadata - (необязательное поле)
  примечание

  Пустая строка интерпретируется как нулевое значение. А именно, чтобы удалить firstName, отправьте запрос с пустой строкой ("") в поле firstName.

  Пример запроса:

    curl -X 'PUT' \
      'http:/baf.ai/publicapi/api/v2/private/Applicants/a948fb4d-8320-429d-aff1-37925609c22f' \
      -H 'accept: text/plain' \
      -H 'Authorization: Bearer sk_e291909c-687f-43b7-b234-216681350c6c' \
      -H 'Content-Type: application/json-patch+json' \
      -d '{
      "firstName": "string",
      "lastName": "string",
      "phone": "string",
      "email": "string",
      "referenceId": "string",
      "callbackUrl": "string",
      "metadata": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      }
    }'

Пример ответа:

Status Code | 200

Возможные ошибки:

Код | Сообщение | Описание | Код
400 | Wrong Applicant data: SendSms enabled. Phone number cannot be null. | Attempt to null the phone when the applicant has sms sending enabled. | 120028

### Получение списка попыток верификации аппликанта​

Запрос на получение списка всех попыток верификации аппликанта по ID. Эндпоинт GET /publicapi/api​/v2​/private​/Applicants/{applicantId}/Attempts Параметры: applicantId — ID аппликанта Пример запроса:

    curl -X 'GET' \
      'https:/baf.ai/publicapi/api/v2/private/Applicants/9687***/Attempts' \
      -H 'accept: text/plain' \
      -H 'Authorization: Bearer sk_3938ab7b-cdbf-4a1a-952b-e3782f061f4b'

Пример ответа:

Status Code | 200

    {
      "attempts": [
        {
          "attemptId": 188,
          "created": "2023-09-20T07:51:46.5449834",
          "documentType": "ID",
          "documentTypeInt": 1,
          "hasRiskEvents": false,
          "status": 2,
          "validationStatus": {
            "expired": null,
            "documentIsValid": null,
            "faceIsValid": null,
            "antiSpoofingIsValid": null,
            "profileAlreadyExists": null,
            "qualityIsValid": true,
            "livenessReflectionIsValid": true,
            "hasBeenBlackListed": false
          }
        }
      ]
    }

### Получение информации о попытке верификации аппликанта​

Запрос возвращает всю информацию о попытке верификации для определенного аппликанта. Эндпоинт GET /publicapi/api​/v2​/private​/Applicants/{applicantId}/Attempts/{attemptId} Параметры: applicantId — ID аппликанта attemptId — ID попытки Пример запроса:

    curl -X 'GET' \
      'https:/baf.ai/publicapi/api/v2/private/Applicants/3fa85f64-5717-4562-b3fc-2c963f66afa6/Attempts/1' \
      -H 'accept: text/plain' \
      -H 'Authorization: Bearer sk_3938ab7b-cdbf-4a1a-952b-e3782f061f4b'

Пример ответа:

Status Code | 200

    {
      "documentFailStatusReasons": [
        "string"
      ],
      "faceFailStatusReasons": [
        "string"
      ],
      "invalidDataErrors": [
        {
          "code": "120058",
          "message": "No faces found on image",
          "description": "string"
        }
      ],
      "dvsResult": {
        "requestId": "3fa85***",
        "documentType": 1,
        "captureMethod": "string",
        "document": {
          "abbr3Country": "string",
          "abbrCountry": "string",
          "address": "string",
          "city": "string",
          "class": "string",
          "country": "string",
          "dob": "string",
          "expires": "string",
          "eyes": "string",
          "familyName": "string",
          "firstName": "string",
          "fullName": "string",
          "gender": "string",
          "hair": "string",
          "height": "string",
          "id": "string",
          "idType": "string",
          "issued": "string",
          "middleName": "string",
          "postalBox": "string",
          "state": "string",
          "issuedBy": "string",
          "template": "string",
          "weight": "string",
          "zip": "string",
          "privateName": "string"
        },
        "parsedData": {
          "isOcrSuccess": true,
          "isPdf417Success": true,
          "isMrzSuccess": true,
          "isShuftiSuccess": true,
          "isAntiSpoofingSuccess": true
        },
        "documentVerificationResult": {
          "status": 0,
          "totalConfidence": 0,
          "validationTests": [
            {
              "rawResponse": "string",
              "name": "string",
              "displayName": "string",
              "reason": "string",
              "effect": 0,
              "values": [
                {
                  "score": 0,
                  "effect": 0,
                  "fieldName": "string",
                  "effectString": "string"
                }
              ],
              "effectString": "string",
              "status": 0,
              "statusString": "string"
            }
          ],
          "verificationConfidence": {
            "abbr3Country": 0,
            "abbrCountry": 0,
            "address": 0,
            "city": 0,
            "class": 0,
            "country": 0,
            "dob": 0,
            "expires": 0,
            "eyes": 0,
            "familyName": 0,
            "firstName": 0,
            "fullName": 0,
            "gender": 0,
            "hair": 0,
            "height": 0,
            "id": 0,
            "idType": 0,
            "issued": 0,
            "issuedBy": 0,
            "middleName": 0,
            "postalBox": 0,
            "state": 0,
            "template": 0,
            "weight": 0,
            "zip": 0,
            "ssn": 0,
            "privateName": 0
          }
        },
        "faceVerificationResult": {
          "antiSpoofing": 0,
          "quality": 46,
          "confidence": 0,
          "livenessReflectionConfidence": 90
        }
      },
      "validations": {
        "liveness": {
          "verdict": true,
          "details": [
            {
              "name": "FaceLiveness",
              "verdict": true,
              "score": 0.99,
                "additionalInfo": {
                  "attackType": "none",
                  "attackTypeConfidence": 0.9917428
                }
            }
          ]
        },
        "quality": {
          "verdict": true,
          "details": [
            {
              "name": "FaceQuality",
              "verdict": true,
              "score": 0.53,
              "additionalInfo": null
            }
          ]
        },
        "matching": {
          "verdict": true,
          "details": [
            {
              "name": "FaceMatching",
              "verdict": true,
              "score": 0.0,
              "additionalInfo": null
            }
          ]
        },
        "motionControl": {
          "verdict": false,
          "motionControlInfo": [
            {
                "pattern": "up",
                "result": true,
                "photo_link": "vr.ref-images:motion_control_frame-mcf-26-03-12-04_19_14-32cab-08cbb-8a52b.jpeg"
            },
            {
                "pattern": "left",
                "result": false,
                "photo_link": "vr.ref-images:motion_control_frame-mcf-26-03-12-04_19_14-32cab-08cbb-8a52b.jpeg"
            }
          ]
        }
      },
      "similarApplicants": {
        "ids": [
          "be9561bb-3c0b-426d-acac-7d2c11825af5"
        ]
      },
      "mobilePhoneModel": "string",
      "mobilePhoneOS": "string",
      "captureMethod": "string",
      "requestIpAddress": "string",
      "created": "2023-09-20T08:37:41.799Z",
      "documentType": "string",
      "documentTypeInt": 0,
      "hasRiskEvents": true,
      "status": 0,
      "validationStatus": {
        "expired": true,
        "documentIsValid": true,
        "faceIsValid": true,
        "antiSpoofingIsValid": true,
        "profileAlreadyExists": true,
        "qualityIsValid": true,
        "livenessReflectionIsValid": true,
        "hasBeenBlackListed": false
      },
      "content": {
        "livenessReflectionVideoLink": "string",
        "backOrSecondImageBase64": "string",
        "faceImageBase64": "string",
        "frontImageBase64": "string",
        "trackString": "string"
      },
      "riskEvents": [
        {
          "created": "2024-08-14T10:28:56.458Z",
          "riskNumber": 0,
          "riskName": "string",
          "isActive": true
        }
      ],
      "applicantId": "3fa85***",
      "faceSampleId": "4ba75***",
      "attemptId": 0
    }

Возможные ошибки:

Код | Сообщение | Описание | Код
400 | DVS response Error: "ex.Message" | Failed to deserialize json response from DVS | 120030

### Повторная отправка ссылки для верификации аппликанта​

Запрос позволяет повторно отправить аппликанту ссылку на верификацию. Эндпоинт POST /publicapi/api​/v2​/private​/Applicants/{applicantId}/ReNotify Параметры: applicantId — ID аппликанта Пример запроса:

    curl -X 'POST' \
      'https:/baf.ai/publicapi/api/v2/private/Applicants/9687***/ReNotify' \
      -H 'accept: */*' \
      -H 'Authorization: Bearer sk_3938ab7b-cdbf-4a1a-952b-e3782f061f4b' \
      -d ''

Пример ответа:

Status Code | 200

Возможные ошибки:

Код | Сообщение | Описание | Код
400 | SMS sending disabled for applicant | Sending sms is turned off for applicant | 120027

### Получение изображений из попытки верификации аппликанта​

Запрос возвращает изображения из попытки верификации для определенного аппликанта. Эндпоинт GET /publicapi/api​/v2​/private​/Applicants/{applicantId}/Attempts/{attemptId}/Images Параметры: applicantId — ID аппликанта attemptId — ID попытки Пример запроса:

    curl -X 'GET' \
      'https:/baf.ai/publicapi/api/v2/private/Applicants/9687***/Attempts/1/Images' \
      -H 'accept: text/plain' \
      -H 'Authorization: Bearer sk_3938ab7b-cdbf-4a1a-952b-e3782f061f4b'

Пример ответа:

Status Code | 200

    {
      "livenessReflectionVideoLink": "string",
      "faceSampleObjectData": {
        "bbox": [
          0.35859375,
          0.2708333333333333,
          0.67109375,
          0.8444444444444444
        ]
      },
      "backOrSecondImageBase64": "string",
      "faceImageBase64": "string",
      "frontImageBase64": "string",
      "trackString": "string"
    }

Возможные ошибки:

Код | Сообщение | Описание | Код
413 | You do not have a permission to review images. | Photo is not available for viewing. | 120032
413 | Allowed time to review these images is expired. | Photo availability time limit is exceeded. | 120032

### Скачивание оригинала изображения попытки​

Запрос возвращает оригинальное фото попытки, которое использовалось для авторизации/регистрации в системе. Эндпоинт: GET /publicapi/api​/v2​/private​/Applicants/{applicantId}/Attempts/{attemptId}/RawImage

Параметры: applicantId attemptId

Пример запроса:

    curl -X 'GET' \
      'http:/baf.ai/publicapi/api/v2/private/Applicants/a948fb4d-8320-429d-aff1-37925609c22f/Attempts/6562/RawImage' \
      -H 'accept: text/plain' \
      -H 'Authorization: Bearer sk_e291909c-687f-43b7-b234-216681350c6c'

Пример ответа:

Status Code | 200

Файл изображения

Возможные ошибки:

Код | Сообщение | Описание | Код
400 | Photo obtain error | Не удалось получить оригинал изображения из OMNI Platform | 160001
400 | Content not found | FaceSampleId попытки равен null | 120031

### Скачивание Liveness Reflection видео попытки верификации аппликанта​

Запрос возвращает Liveness Reflection видео попытки верификации для определенного аппликанта. Эндпоинт: GET /publicapi/api​/v2​/private​/Applicants/{applicantId}/Attempts/{attemptId}/Video Параметры: applicantId attemptId Пример запроса:

    curl -X 'GET' \
      'http:/baf.ai/publicapi/api/v2/private/Applicants/a948fb4d-8320-429d-aff1-37925609c22f/Attempts/6562/Video' \
      -H 'accept: text/plain' \
      -H 'Authorization: Bearer sk_e291909c-687f-43b7-b234-216681350c6c'

Пример ответа:

Status Code | 200

Видео файл Возможные ошибки:

Код | Сообщение | Описание | Код
400 | Validation response does not contain a video | No video reference found in validationResponse | 120033

### Скачивание видео контроля движений для попытки верификации аппликанта​

Запрос возвращает видео контроля движений для попытки верификации для определенного аппликанта. Эндпоинт: GET /publicapi/api​/v2​/private​/Applicants/{applicantId}/Attempts/{attemptId}/LivenessActionVideo Параметры: applicantId attemptId Пример запроса:

    curl -X 'GET' \
      'http:/baf.ai/publicapi/api/v2/private/Applicants/a948fb4d-8320-429d-aff1-37925609c22f/Attempts/6562/LivenessActionVideo' \
      -H 'accept: text/plain' \
      -H 'Authorization: Bearer sk_e291909c-687f-43b7-b234-216681350c6c'

Пример ответа:

Status Code | 200

Видео файл Возможные ошибки:

Код | Сообщение | Описание | Код
400 | Validation response does not contain a video | Ссылка на видео в validationResponse не найдена | 120033

### Разблокировать или открыть аппликанта​

Этот запрос позволяет разблокировать или открыть аппликанта. Если заявитель находится в статусе Failed, количество потраченных попыток обнуляется. Эндпоинт: POST /api/v2/private/Applicants/{applicantId}/Open Параметры: applicantId Пример запроса:

    curl -X 'POST' \
      'http:/baf.ai/publicapi/api/v2/private/Applicants/dcf431c7-786a-4097-83e0-ba9b6dc00e76/Open' \
      -H 'accept: */*' \
      -H 'Authorization: Bearer sk_e291909c-687f-43b7-b234-216681350c6c' \
      -d ''

Пример ответа:

Status Code | 200

Возможные ошибки:

Код | Сообщение | Описание | Код
400 | Request already unblocked | Попытка разблокировать разблокированного аппликанта | 150002

### Обновление регистрационной фотографии аппликанта​

Этот запрос позволяет обновить регистрационную фотографию аппликанта. Все последующие авторизации будут сравниваться с новой фотографией. Эндпоинт: POST /api/v2/private/Applicants/{applicantId}/UpdateMainPhoto Параметры: applicantId Пример запроса:

    curl -X 'POST' \
      'http:/baf.ai/publicapi/api/v2/private/Applicants/dcf431c7-786a-4097-83e0-ba9b6dc00e76/UpdateMainPhoto' \
      -H 'accept: */*' \
      -H 'Content-Type: application/json-patch+json' \
      -d '{"faceImageBase64": "string"}'

Пример ответа:

Status Code | 200

Возможные ошибки:

Код | Сообщение | Описание | Код
400 | Applicant has not yet registered | Попытка обновить фотографию незарегистрированного заявителя | 150006
400 | Graphql error: "error message" | Платформа возвращает ошибки в ответ на graphql запрос | 120029

### Подтверждение регистрации​

Этот запрос позволяет подтвердить регистрацию.

Эндпоинт: POST /api/v2/private/Applicants/{applicantId}/ConfirmRegistration

Параметры:

applicantId

Пример запроса:

    curl -X 'POST' \
      'https:/baf.ru/publicapi/api/v2/private/Applicants/8b01d250-cb74-49a3-9bcb-d65770ebcd9f/ConfirmRegistration' \
      -H 'accept: */*' \
      -H 'Authorization: Bearer sk_fc2c0d81-7e9b-4f8f-b0aa-cc2d97bfa87c'

Пример ответа:

Status Code | 200

Возможные ошибки:

Код | Сообщение | Описание | Код
400 | Applicant does not have an register attempt for confirmation | Попытка подтвердить регистрацию аппликанта без успешной попытки регистрации | 1100002
400 | Applicant is already registered | Попытка подтвердить регистрацию уже зарегистрированного аппликанта | 150001

### Получение информации контроля движений​

Этот запрос позволяет получить информацию контроля движений вместе с фото в формате base64 какой-либо попытки.

Эндпоинт: GET /api/v2/private/Applicants/{applicantId}/Attempts/{attemptId}/GetMotionControlContent

Параметры:

applicantId attemptId

Пример запроса:

    curl -X 'GET' \
      'https:/baf.3divi.ru/publicapi/api/v2/private/Applicants/afc05551-b75a-4e1e-9c30-63d5fcc59a0b/Attempts/321049/GetMotionControlContent' \
      -H 'accept: text/plain' \
      -H 'Authorization: Bearer sk_fc2c0d81-7e9b-4f8f-b0aa-cc2d97bfa87c'

Пример ответа:

Status Code | 200

    {
      "patterns": [
        {
          "rawPhoto": "base64_image",
          "pattern": "left",
          "result": true,
          "photo_link": "vr.ref-images:motion_control_frame-mcf-26-03-12-04_19_14-32cab-08cbb-8a52b.jpeg"
        },
        {
          "rawPhoto": "base64_image",
          "pattern": "right",
          "result": true,
          "photo_link": "vr.ref-images:motion_control_frame-mcf-26-03-12-04_19_14-32cab-08cbb-8a52b.jpeg"
        }
      ]

Возможные ошибки:

Код | Сообщение | Описание | Код
400 | Validation response or request not found | Некорректный applicantId или attemptId | 120024

### Получение контента по s3 ссылке​

Этот запрос позволяет получить контент из попытки в байтовом формате по s3 ссылке.

Эндпоинт: GET /api/v2/private/Applicants/{applicantId}/Attempts/{attemptId}/{contentLink}

Параметры:

applicantId attemptId contentLink

Пример запроса:

    curl -X 'GET' \
      'https:/baf.3divi.ru/publicapi/api/v2/private/Applicants/afc05551-b75a-4e1e-9c30-63d5fcc59a0b/Attempts/321044/vr.videos%3Amotion_control_video-26-04-01-06_03_07-no-parent-ea6d9-9571b.webm/GetAttemptContentByLink' \
      -H 'accept: */*' \
      -H 'Authorization: Bearer sk_6ae3d0d3-b477-4962-96e5-6e84df4bd9e0'

Пример ответа:

Status Code | 200

Файл контента

Возможные ошибки:

Код | Сообщение | Описание | Код
400 | Validation response or request not found | Некорректный applicantId или attemptId | 120024
400 | Content not found by link | Некорректная ссылка на контент | 120049