Последнее обновление: 23-11-2022
Общие сведения
API предназначен для проведения идентификации физических лиц. Подробности см. на explain.qiwi.com.
Используемые в тексте термины описаны в этой статье.
Доступ к API
Для успешного вызова методов API необходимы:
- Корректные заголовки
Accept
иContent-Type
. API поддерживает только один MIME-тип:application/json
. Любое другое значение приведет к ошибке формата данных. - URL, составленный согласно требованиям к нужному запросу.
- Bearer-токен, выданный вам для доступа к API.
Авторизация
Авторизация должна передаваться во всех запросах в заголовке Authorization
:
Authorization: Bearer {token}
Для получения токенов обращайтесь к своему контактному менеджеру.
Шифрование запросов с персональными данными
Для запросов, в которых передаются персональные данные, нужно использовать HTTPS-протокол со специально настроенным шифрованием в соответствии с ГОСТ Р 34.10-2012 и 34.11-2012. Такие запросы нужно отправлять на соответствующие URL-адреса.
Формирование URL запроса
URL-адрес любого запроса к API складывается из двух компонент: server URL
и путь конкретного запроса.
Значения server URL
перечислены далее. Эндпоинты запросов указаны в их описании.
Запросы, в которых передаются персональные данные
К ним относятся запросы разделов Упрощенная онлайн-идентификация и Получение персональных данных клиента.
Адреса server URL
:
-
В тестовой среде:
https://api-gost-test.qiwi.com/partner/openapi-identification
-
В производственной среде:
https://api-gost.qiwi.com/partner/openapi-identification
Запросы, в которых не передаются персональные данные
Адреса server URL
:
-
В тестовой среде:
https://api-test.qiwi.com/partner/openapi-identification
-
В производственной среде:
https://api.qiwi.com/partner/openapi-identification
Упрощенная онлайн-идентификация
Процесс упрощённой идентификации описан на explain.qiwi.com.
Создание заявки
Запрос → POST
-
URL /v1/products/{productId}/persons/{personId}/simplified-identification/applications
- productId — ID продукта
- personId — ID клиента
Атрибуты тела запроса
Создание заявки (тело запроса)
{
"firstName" : "Имя",
"lastName" : "Фамилия",
"middleName" : "Отчество",
"birthDate" : "11.01.1996",
"citizenshipCountryId" : "RU",
"contacts" : {
"mobilePhoneNumber" : "+79271234567",
"email" : "email@email.com"
},
"identifyingDocument" : {
"type" : "RUSSIAN_INNER_PASSPORT",
"series" : "9208",
"number" : "556900"
},
"secondaryDocuments" : [ {
"type" : "INN",
"number" : "33701000015"
} ],
"clientDeviceFingerprint" : {
"IPv4" : "10.12.11.290"
}
}
Имя | Тип | Описание |
---|---|---|
birthDate | String | Дата рождения. Формат: ДД.ММ.ГГГГ . Допустимый диапазон: от 14 до 100 лет включительно |
citizenshipCountryId | String | Гражданство. Всегда значение RU |
clientDeviceFingerprint | object | Сведения о клиентском устройстве, с которого поступил запрос |
clientDeviceFingerprint.IPv4 | String | IP-адрес клиентского устройства, с которого поступил запрос |
contacts | object | Контактные данные клиента |
contacts.email | String | |
contacts.mobilePhoneNumber | String | Номер мобильного телефона в международном формате |
firstName | String | Имя. Минимум две буквы, допустимо использование тире |
lastName | String | Фамилия. Минимум две буквы, допустимо использование тире |
middleName | String | Отчество. Минимум две буквы, допустимо использование тире |
identifyingDocument | object | Сведения о документе, удостоверяющем личность |
identifyingDocument.type | String | Тип документа. Всегда значение RUSSIAN_INNER_PASSPORT |
identifyingDocument.number | String | Номер документа. Формат: 6 цифр |
identifyingDocument.series | String | Серия документа. Формат: 4 цифры |
secondaryDocuments | array | Дополнительные документы. В массиве можно передавать объекты ИНН или СНИЛС |
Атрибуты ответа
Ответ на создание заявки
{
"firstName" : "Имя",
"lastName" : "Фамилия",
"middleName" : "Отчество",
"birthDate" : "11.01.1996",
"citizenshipCountryId" : "RU",
"contacts" : {
"mobilePhoneNumber" : "+79271234567",
"email" : "email@email.com"
},
"identifyingDocument" : {
"type" : "RUSSIAN_INNER_PASSPORT",
"series" : "9208",
"number" : "556900"
},
"secondaryDocuments": [
{
"type" : "INN",
"number" : "500100732259"
}
],
"id" : "1234ABCD4321",
"creationDateTime" : "2019-01-11T17:16:05.743+03:00",
"applicationStatus" : "IN_PROGRESS",
"identificationLevel" : "NOT_VERIFIED",
"productId" : "111222",
"personId" : "1"
}
Имя | Тип | Описание |
---|---|---|
applicationStatus | String | Статус (состояние) заявки. Возможные значения |
birthDate | String | Дата рождения. Формат см. в описании запроса |
citizenshipCountryId | String | Гражданство. ID из справочника стран |
contacts | object | Контактные данные клиента |
contacts.email | String | |
contacts.mobilePhoneNumber | String | Номер мобильного телефона |
creationDateTime | String | Дата создания заявки |
firstName | String | Имя |
lastName | String | Фамилия |
middleName | String | Отчество |
id | String | ID заявки |
identificationLevel | String | Текущий уровень идентификации. Возможные значения |
identificationLevelReasonCode | String | Код причины полученного уровня идентификации |
identifyingDocument | object | Сведения о документе, удостоверяющем личность |
identifyingDocument.number | String | Номер документа |
identifyingDocument.series | String | Серия документа |
identifyingDocument.type | String | Тип документа |
personId | String | ID клиента |
productId | String | ID продукта |
secondaryDocuments | array | Массив дополнительных документов |
Получение статуса заявки
Запрос → GET
-
URL /v1/products/{productId}/persons/{personId}/simplified-identification/applications/{applicationId}
- productId — ID продукта
- personId — ID клиента
- applicationId — ID заявки
Структура тела ответа идентична структуре ответа на запрос «Создание заявки».
Получение статуса всех заявок
Запрос → GET
-
URL /v1/products/{productId}/persons/{personId}/simplified-identification/applications
- productId — ID продукта
- personId — ID клиента
Тело ответа — json-массив объектов-заявок. Структура каждого объекта-заявки идентична структуре ответа на запрос «Создание заявки».
Полная идентификация
Процесс полной идентификации описан на explain.qiwi.com.
Поиск заявок на идентификацию
Запрос → GET
-
URL /v1/full-identification/applications/search?parameter=value
- productId — ID продукта
- flowType — тип заявки (всегда
AGENT_FILLED_ONLY_FULL_IDENTIFICATION
) - mobilePhoneNumber — номер мобильного телефона в международном формате
- applicationStatus — статус (состояние) заявки, необязательный параметр
Атрибуты объекта-заявки
Запрос поиска
GET /v1/full-identification/applications/search?
productId=agent-ident&flowType=AGENT_FILLED_ONLY_FULL_IDENTIFICATION&mobilePhoneNumber=%2B79071234567 HTTP/1.1
Accept: application/json
Authorization: Bearer YUu2qw048gtdsvlk3iu
Host: <server URL>
В ответе возвращается json-массив объектов-заявок.
Объект-заявка
{
"id" : "A171EB8417CE11E99124DD04D7207C6E",
"creationDateTime" : "2019-01-13T11:29:44.943+03:00",
"applicationStatus" : "AWAITING_PASSPORT_CONFIRMATION",
"identificationLevel" : "NOT_VERIFIED",
"maximumPossibleIdentificationLevel" : "FULL",
"productId" : "111222",
"identificationDataSource" : {
"identificationAgentName" : "Евросеть",
"identificationEndpoint" : {
"fullAddress" : "г. Москва, ул. Гранатная, 1, оф. 2"
}
},
"firstName" : "И***",
"lastName" : "Ф***",
"middleName" : "О***",
"citizenshipCountryId" : "RU",
"contacts" : {
"mobilePhoneNumber" : "+79271234567",
"email" : null
}
}
Имя | Тип | Описание |
---|---|---|
applicationStatus | String | Статус (состояние) заявки. Возможные значения |
citizenshipCountryId | String | Гражданство. ID из справочника стран |
contacts | object | Контактные данные клиента |
contacts.email | String | |
contacts.mobilePhoneNumber | String | Номер мобильного телефона в международном формате |
creationDateTime | String | Дата создания заявки |
id | String | ID заявки |
identificationLevel | String | Текущий уровень идентификации. Возможные значения |
firstName | String | Имя |
lastName | String | Фамилия |
middleName | String | Отчество |
maximumPossibleIdentificationLevel | String | Максимально допустимый уровень идентификации. Возможные значения |
personId | String | ID клиента |
productId | String | ID продукта |
identificationDataSource | object | Источник идентификационных данных |
identificationDataSource. identificationAgentName |
String | Название агента идентификации |
identificationDataSource. identificationEndpoint |
object | Точка идентификации |
identificationDataSource. identificationEndpoint.fullAddress |
String | Адрес точки идентификации, в которой клиент оставил заявку |
Создание сессии подтверждения SIM-карты
Запрос инициирует отправку SMS-сообщения с OTP (One Time Password, одноразовый пароль) клиенту на указанный номер телефона.
Запрос → PUT
-
URL /v1/products/{productId}/full-identification/applications/{applicationId}/sim-confirmation/{confirmationSessionId}
- productId — ID продукта
- applicationId — ID заявки
- confirmationSessionId — клиентский ID подтверждения
Атрибуты тела запроса
Тело запроса
{
"personId" : "1",
"mobilePhoneNumber" : "+79271234567",
"clientDeviceFingerprint" : {
"IPv4" : "10.12.11.290"
}
}
Имя | Тип | Описание |
---|---|---|
clientDeviceFingerprint | object | Сведения о клиентском устройстве, с которого поступил запрос |
clientDeviceFingerprint.IPv4 | String | IP-адрес клиентского устройства, с которого поступил запрос |
mobilePhoneNumber | String | Номер мобильного телефона в международном формате |
personId | String | ID клиента |
Атрибуты ответа
Тело ответа
{
"resendDelay" : "PT3M",
"resendAttemptsLeft" : 3
}
Имя | Тип | Описание |
---|---|---|
resendAttemptsLeft | integer | Количество оставшихся попыток повторного запроса OTP |
resendDelay | String | Интервал времени, через который можно повторно запросить OTP |
Повторная отправка SMS-сообщения с OTP
Запрос → POST
-
URL /v1/products/{productId}/full-identification/applications/{applicationId}/sim-confirmation/{confirmationSessionId}/resend-otp
- productId — ID продукта
- applicationId — ID заявки
- confirmationSessionId — клиентский ID подтверждения
Атрибуты тела запроса
Тело запроса повторной высылки SMS
{
"personId" : "1",
"clientDeviceFingerprint" : {
"IPv4" : "10.12.11.290"
}
}
Имя | Тип | Описание |
---|---|---|
clientDeviceFingerprint | object | Сведения о клиентском устройстве, с которого поступил запрос |
clientDeviceFingerprint.IPv4 | String | IP-адрес клиентского устройства, с которого поступил запрос |
personId | String | ID клиента |
Атрибуты ответа
Тело ответа
{
"resendDelay" : "PT3M",
"resendAttemptsLeft" : 3
}
Имя | Тип | Описание |
---|---|---|
resendAttemptsLeft | integer | Количество оставшихся попыток повторного запроса OTP |
resendDelay | String | Интервал времени, через который можно повторно запросить OTP |
Подтверждение SIM-карты с OTP
Запрос → PUT
-
URL /v1/products/{productId}/full-identification/applications/{applicationId}/sim-confirmation/{confirmationSessionId}/confirm-otp
- productId — ID продукта
- applicationId — ID заявки
- confirmationSessionId — клиентский ID подтверждения
Атрибуты тела запроса
Тело запроса подтверждения SIM-карты
{
"personId" : "1",
"confirmationCode" : "233210",
"clientDeviceFingerprint" : {
"IPv4" : "10.12.11.290"
}
}
Имя | Тип | Описание |
---|---|---|
clientDeviceFingerprint | object | Сведения о клиентском устройстве, с которого поступил запрос |
clientDeviceFingerprint.IPv4 | String | IP-адрес клиентского устройства, с которого поступил запрос |
confirmationCode | String | OTP (One Time Password, одноразовый пароль) |
personId | String | ID клиента |
Атрибуты ответа
Тело ответа
{
"applicationStatus" : "AWAITING_PASSPORT_CONFIRMATION"
}
Имя | Тип | Описание |
---|---|---|
applicationStatus | String | Статус (состояние) заявки. Возможные значения |
Подтверждение заявки по 4 знакам документа
Запрос → PUT
-
URL /v1/products/{productId}/full-identification/applications/{applicationId}/passport-confirmation
- productId — ID продукта
- applicationId — ID заявки
Атрибуты тела запроса
Тело запроса подтверждения заявки
{
"personId" : "1",
"passportNumberLast4Characters" : "4300",
"clientDeviceFingerprint" : {
"IPv4" : "10.12.11.290"
}
}
Имя | Тип | Описание |
---|---|---|
clientDeviceFingerprint | object | Сведения о клиентском устройстве, с которого поступил запрос |
clientDeviceFingerprint.IPv4 | String | IP-адрес клиентского устройства, с которого поступил запрос |
passportNumberLast4Characters | String | Последние 4 знака номера документа, удостоверяющего личность |
personId | String | ID клиента |
Атрибуты ответа
Тело ответа
{
"applicationStatus" : "IN_PROGRESS"
}
Имя | Тип | Описание |
---|---|---|
applicationStatus | String | Статус (состояние) заявки. Возможные значения |
Получение персональных данных клиента
По умолчанию персональные данные будут маскированными. Если по какой-то причине вам нужны немаскированные данные, обращайтесь к вашему контактному менеджеру.
Запрос → GET
-
URL /v1/products/{productId}/persons/{personId}/personal-data
- productId — ID продукта
- personId — ID клиента
Ответ
[
{
"productId": "1",
"personId": "8",
"productIdentificationLevel": "SIMPLIFIED",
"bankAlias": "QIWI_BANK",
"firstName": "и***",
"lastName": "и***",
"middleName": "и***",
"citizenshipCountryId": "RU",
"contacts": {
"mobilePhoneNumber": "+7***",
"email": null
},
"identifyingDocument": {
"type": "RUSSIAN_INNER_PASSPORT",
"series": "3***",
"number": "1***"
}
}
]
JSON-массив объектов с персональными данными.
Атрибуты объекта:
Имя | Тип | Описание |
---|---|---|
productId | String | ID продукта |
personId | String | ID клиента |
productIdentificationLevel | String | Текущий уровень идентификации у партнера. Возможные значения |
productIdentificationLevelReason | String | Код причины полученного уровня идентификации |
bankAlias | String | Акроним системы, в которой клиент получил идентификацию |
firstName | String | Имя |
lastName | String | Фамилия |
middleName | String | Отчество |
birthDate | String | Дата рождения клиента (в формате ГГГГ-ММ-ДД ) |
birthPlace | String | Место рождения клиента |
contacts | object | Контактные данные клиента |
contacts.email | String | |
contacts.mobilePhoneNumber | String | Номер мобильного телефона в международном формате |
citizenshipCountryId | String | Гражданство. ID из справочника стран |
identifyingDocument | object | Информация о документе, удостоверяющем личность |
identifyingDocument.number | String | Номер документа. Формат: 6 цифр |
identifyingDocument.series | String | Серия документа. Только для граждан РФ. Формат: 4 цифры |
identifyingDocument.issueDate | String | Дата выдачи документа (в формате ДД.ММ.ГГГГ ) |
identifyingDocument.issuingAuthorityCode | String | Код подразделения, выдавшего документ |
identifyingDocument.issuingAuthorityName | String | Название подразделения, выдавшего документ |
identifyingDocument.expiryDate | String | Срок действия документа (в формате ДД.ММ.ГГГГ ) |
identifyingDocument.type | String | Тип документа. Возможные значения |
identifyingDocument. otherDocumentTypeName |
String | Название документа, если выбран тип документа OTHER |
isPassportExpired | Bool | Признак просроченного паспорта (если true ) |
isClientActive | Bool | Признак активности клиента: true — клиент активен; false — клиент неактивен |
registrationType | String | Тип регистрации: PERMANENT — постоянная, TEMPORARY — временная |
registrationAddress | object | Сведения об адресе регистрации |
registrationAddress.countryId | String | ID из справочника стран |
registrationAddress.zipCode | String | Почтовый индекс |
registrationAddress.okatoRegionCode | String | Код субъекта РФ по ОКАТО. Значение из справочника регионов |
registrationAddress.district | String | Район |
registrationAddress.cityType | String | Тип населенного пункта |
registrationAddress.city | String | Наименование населенного пункта |
registrationAddress.street | String | Улица |
registrationAddress.house | String | Номер дома (владения) |
registrationAddress.building | String | Номер корпуса (строения) |
registrationAddress.flat | String | Номер квартиры (офиса) |
livingAddressIsIdenticalToRegistrationAddress | Bool | Признак того, что адрес проживания совпадает с адресом регистрации |
livingAddress | object | Сведения об адресе фактического проживания. Структура объекта совпадает с registrationAddress |
secondaryDocuments | array | Массив дополнительных документов |
hasInterestOwner | Bool | Признак выгодоприобретателя |
hasBeneficialOwner | Bool | Признак того, что лицо является бенефициарным владельцем |
publicOfficial | Bool | Признак публичного должностного лица |
publicOfficialType | String | Тип публичного должностного лица: RUSSIAN — российское, FOREIGN — иностранное, INTERNATIONAL — международное |
publicOfficialPost | String | Занимаемая должность публичного должностного лица |
financialPosition | String | Сведения о финансовом положении: GOOD — хорошее, SUFFICIENT — удовлетворительное, BAD — плохое |
businessReputation | String | Сведения о деловой репутации: GOOD — положительная, BAD — негативная |
fundingSources | String | Сведения об источниках происхождения денежных средств и (или) иного имущества клиента: OWN_FUNDS — собственные средства, BORROWED_FUNDS — заемные средства, OTHER — иное |
Деактивация клиента
Деактивация клиента переводит активного клиента из статуса «Активный» в «Неактивный». Физического удаления записи не происходит.
Запрос → POST
-
URL /v1/products/{productId}/persons/{personId}/deactivate
- productId — ID продукта
- personId — ID клиента
Атрибуты тела запроса
Тело запроса
{
"deactivationDateTime": "2018-09-24T10:00:00+03:00",
"deactivationReason": "Здесь причина деактивации клиента"
}
Имя | Тип | Описание |
---|---|---|
deactivationDateTime | String | Дата/время деактивации клиента (по стандарту ISO 8601) |
deactivationReason | String | Причина деактивации клиента |
Тело ответа отсутствует.
В случае успешного выполнения возвращается код ответа сервера 204
. При повторной деактивации уже неактивного клиента возвращается код ответа сервера 400
.
Дополнительные документы
ИНН
Атрибуты
ИНН
{
"type" : "INN",
"number" : "500100732259"
}
Имя | Тип | Описание |
---|---|---|
number | String | ИНН |
type | String | Тип документа. Передавать значение INN |
СНИЛС
Атрибуты
СНИЛС
{
"type" : "SNILS",
"number" : "112-233-445 95"
}
Имя | Тип | Описание |
---|---|---|
number | String | СНИЛС |
type | String | Тип документа. Передавать значение SNILS |
Разрешение на проживание
Атрибуты
Разрешение на проживание
{
"type" : "RESIDENCE_PERMIT",
"residencePermitType" : "VISA",
"number" : "N4321",
"dateFrom" : "11.09.2015",
"dateTo" : "11.09.2021",
"issuingAuthorityName" : "МИД РФ"
}
Имя | Тип | Описание |
---|---|---|
dateFrom | String | Дата выдачи |
dateTo | String | Дата окончания действия документа |
issuingAuthorityName | String | Орган, выдавший документ, подтверждающий право на пребывание в РФ |
number | String | Номер документа |
residencePermitType | String | Вид разрешения на пребывание. Значения: VISA , PERMANENT_RESIDENCE_PERMIT , TEMPORARY_RESIDENCE_PERMIT |
type | String | Тип документа. Передавать значение RESIDENCE_PERMIT |
Миграционная карта
Атрибуты
Миграционная карта
{
"type" : "MIGRATION_CARD",
"serial" : "4321",
"number" : "43211234",
"dateFrom" : "11.09.2015",
"dateTo" : "11.09.2021"
}
Имя | Тип | Описание |
---|---|---|
dateFrom | String | Дата начала срока пребывания |
dateTo | String | Дата окончания срока пребывания |
number | String | Номер |
serial | String | Серия |
type | String | Тип документа. Передавать значение MIGRATION_CARD |
Патент на работу
Атрибуты
Патент на работу
{
"type" : "WORKING_PATENT",
"series" : "77",
"number" : "8843211234",
"issuingAuthorityName" : "ФМС",
"issueDate" : "11.09.2015",
"documentSeries" : "РА",
"documentNumber" : "4000123"
}
Имя | Тип | Описание |
---|---|---|
documentNumber | String | Номер бланка документа |
documentSeries | String | Серия бланка документа |
issueDate | String | Дата выдачи |
issuingAuthorityName | String | Орган, выдавший патент |
number | String | Номер |
series | String | Серия |
type | String | Тип документа. Передавать значение WORKING_PATENT |
Справочники
Справочник стран (гражданств)
Запрос → GET
-
URL /dictionary/v1/countries
Справочник стран (фрагмент)
[
{
"id": "AF",
"name": "АФГАНИСТАН"
},
{
"id": "AL",
"name": "АЛБАНИЯ"
}
]
В ответе приходит json-массив со списком стран.
Имя | Тип | Описание |
---|---|---|
id | String | ID страны |
name | String | Название страны |
Справочник регионов России
Запрос → GET
-
URL /dictionary/v1/russian-regions
В ответе приходит json-массив со списком регионов РФ.
Справочник регионов России (фрагмент)
[
{
"okatoRegionCode": "79",
"name": "Республика Адыгея"
},
{
"okatoRegionCode": "84",
"name": "Республика Алтай"
}
]
Имя | Тип | Описание |
---|---|---|
name | String | Название региона |
okatoRegionCode | String | Код субъекта РФ по ОКАТО |
HTTP-статусы и формат ответов
Код | Описание | Тело ответа |
---|---|---|
200 | OK (запрос успешно выполнен) | Тело успешного ответа |
201 | Created (запрос успешно выполнен, ресурс создан) | Тело успешного ответа |
204 | No Content (запрос успешно выполнен) | Тело ответа отсутствует |
400 | Bad Request (некорректный запрос) | Стандартный json ошибки |
401 | Unauthorized (в запросе отсутствует корректная авторизация) | Пустое тело, либо стандартный json ошибки |
403 | Forbidden (операция запрещена) | Стандартный json ошибки |
404 | Not Found (ресурс не найден) | Пустое тело, либо стандартный json ошибки |
422 | Unprocessable Entity (ошибка валидации запроса) | Стандартный json ошибки |
423 | Locked (временно заблокирован) | Стандартный json ошибки |
500 | Internal Server Error (внутренняя ошибка сервера) | Пустое тело, либо стандартный json ошибки |
Атрибуты описания ошибки
Стандартный json ошибки
{
"serviceName": "openapi-identification",
"errorCode": "internal.error",
"description": "Undefined error. Please try to make operation later.",
"userMessage": "Undefined error. Please try to make operation later.",
"dateTime": "2018-09-03T18:41:27.016+03:00",
"traceId": "4a3c694ca580a5e0"
}
Имя | Тип | Описание |
---|---|---|
serviceName | String | Название сервиса, возвратившего ошибку |
errorCode | String | Код ошибки (см. далее) |
description | String | Описание ошибки |
userMessage | String | Пользовательское описание ошибки |
dateTime | String | Дата и время формирование ответа |
traceId | String | Параметр, необходимый для анализа логов. Его значение также всегда присутствует в заголовке ответа X-B3-TraceId |
При возвращении ошибки валидации запроса в JSON-объекте может присутствовать объект cause
. В объекте дополнительно описывается, какие ошибки и для каких полей были допущены.
Ошибка с полем cause
{
"serviceName": "openapi-identification",
"errorCode": "validation.error",
"description": "Данные некорректны",
"userMessage": "Данные некорректны",
"dateTime": "2018-09-05T13:55:57.897+03:00",
"traceId": "c8d2b66274672789",
"cause": {
"birthDate": [
"may not be null"
]
}
}
Возможные коды ошибок (атрибут errorCode
):
Код | Описание |
---|---|
internal.error | Внутренняя ошибка сервиса |
http.message.conversion.failed | Ошибка десериализации сообщения |
validation.error | Ошибка валидации (некорректное тело запроса) |
forbidden.operation | Операция запрещена |
data.not.found | Данные не найдены |
inapplicable.operation | Операция не применима для сущности в ее текущем состоянии |
secondary.document.invalid | Некорректный второй документ |
application.in.progress.already.exists | В данный момент есть незавершенная заявка, которая находится в обработке, или ожидании получения всех данных |
invalid.confirmation.factor.value | Неверное значение фактора подтверждения |
passport.confirmation.attempts.exceeded | Превышено количество попыток подтверждения паспорта |
sim.confirmation.attempts.exceeded | Превышено количество попыток подтверждения sim-карты |
confirmation.session.expired | Время жизни сессии подтверждения истекло |
incorrect.confirmation.code.error | Неверный OTP (One Time Password, одноразовый пароль) |
confirmation.attempts.limit.exceeded.error | Попытки подтверждения исчерпаны |
operation.inapplicable | Операция не применима |
incorrect.request.parameter | Неверный параметр запроса |
invalid.confirmation.data | Неверные данные подтверждения |
Значения перечислимых атрибутов
Статусы заявки
Статус | Описание |
---|---|
PROCESSING_FINISHED | Обработка завершена |
IN_PROGRESS | В процессе обработки |
AWAITING_PRODUCT_CHECKS | Ожидается завершение проверок |
AWAITING_SIM_CONFIRMATION | Ожидается подтверждение сим-карты |
AWAITING_PASSPORT_CONFIRMATION | Ожидается подтверждение идентификации |
AWAITING_AGENT_VERIFICATION | Ожидается верификация заявки у агента (для заявок на сайте) |
Типы документов, удостоверяющих личность
Тип | Описание |
---|---|
RUSSIAN_INNER_PASSPORT | Внутренний паспорт РФ |
FOREIGN_COUNTRY_IDENTIFYING_DOCUMENT | Документ, удостоверяющий личность иностранного гражданина, выданный его государством |
TEMPORARY_RESIDENCE_PERMIT | Разрешение на временное проживание |
PERMANENT_RESIDENCE_PERMIT | Вид на жительство |
REFUGEE_CERTIFICATE | Удостоверение беженца |
OTHER | Иной документ |
Код причины полученного уровня идентификации
Список значений полей identificationLevelReasonCode
, productIdentificationLevelReason
.
Код | Описание |
---|---|
smev.personal.data.not.found | Данные клиента не найдены в СМЭВ |
smev.personal.data.invalid | Данные клиента не прошли проверку в СМЭВ |
simplified.secondary.documents.constraints.validation.failed | Упрощенная идентификация: невалидный второй документ |
simplified.secondary.documents.missing | Упрощенная идентификация: отсутствует второй документ |
general.constraints.validation.failed | Ошибка валидации |
person.is.unreliable | Переданные персональные данные обнаружены в списках ограничений |
passport.expired | Паспорт просрочен |
full.identification.exists | У клиента уже есть полная идентификация |
one.passport.accounts.limit.exceeded | Превышено ограничение на максимальное количество аккаунтов на один паспорт |
person.account.is.deactivated | Аккаунт клиента уже закрыт |
personal.data.not.accepted | Клиенту нельзя предоставить идентификацию согласно текущим правилам |
identification.application.is.expired | Срок жизни незаполненной заявки истек |
passport.confirmation.attempts.exceeded | Превышено количество попыток подтверждения паспорта |
sim.confirmation.attempts.exceeded | Превышено количество попыток подтверждения sim-карты |
personal.data.and.level.cannot.be.updated.by.submitted.application | Заявка нарушает правила обновления существующего клиента при повышении уровня или повторном прохождении идентификации |
Уровень идентификации
Список значений полей identificationLevel
, productIdentificationLevel
.
Уровень | Описание |
---|---|
SIMPLIFIED | Упрощенная |
FULL | Полная |
NOT_VERIFIED | Не идентифицирован |
У меня есть одна ВТБшная карта, до 18 года ещё, думаю может расплачиваться ею, не тратить время на КИВИ, там же просто, ввёл 3 цифры вроде и всё
Киви и есть карта Там можно создать виртуальную карту.
Гость4
Всего 1 ответ.
Другие интересные вопросы и ответы
Действительно ли помогают такие организации как «ПризываНет», «Антипризыв» и т.д. получить военный билет?
Слава Кучер10
На счет компании «ПризываНет.ру» могу сказать следующее:
В ней работают как опытные юристы, так и врачи (чего нет во многих подобных организациях), есть лицензия на меддеятельность.
Врачи помогают создать и правильно оформить историю болезни, собрать все доказательства заболевания призывника, чтобы убедить военкомат в том, что призывник реально имеет проблемы со здоровьем, а не симулирует. Все оформляется документально, фиксируется в амбулаторной карте по месту жительства и т.д. Чтобы на руках были доказательства заболевания, коих у современных парней достаточно много. Совсем здоровых людей нет, и у большинства призывников при должном усердии можно обнаружить предпосылки к непризывным заболеваниям.
Сам военкомат нечасто интересуется здоровьем призывников и редко посылает их на обследования. Сотрудники «призываНет.ру» добиваются от военкомата направления на обследования, бесплатного для призывника. Обычно это 2 недели стационара, где каждый день будут обследовать врачи, записывать жалобы, а затем составят акт для военкомата, на основании которого вас должны списать в запас и присвоить непризывную категорию годности (обычно, “В” – ограниченно годен, не призывается в мирное время).
Если же признают годным, будут недостаточно тщательно обследовать, то юристы в судебном порядке будут добиваться справедливости и списания призывника в запас.
В среднем, клиент данной компании получает военный билет за 2 призыва, но по некоторым заболеваниям требуется 3-4 призыва.
Владислав Дубов51
Всего 26 ответов.
валидация данных банком не пройдена киви карта
при том что статус кошелька основной! Что это такое? И как решить проблемуАальберт Саков 5
Позвонить в поддержку и спросить.Антон Дёмин2
Всего 2 ответа.
Как узнать привязана ли банковская карта к киви кошельку?
Анатолий Ш.5
Необходимо зайти в личный кабинет QIWI: https://qiwi.com и в разделе “Банковские карты” проверить привязку.
idkneon4
Всего 1 ответ.
Что делать, если не удается пройти идентификацию яндекс-кошелька?
Паспорт РФ, ввожу свои данные, пишет что ошибка в паспорте(попробуйте снова). Попробовала несколько раз уже.
Карта банковская уже привязана(тут проблем даже не было).
Деньги пока не кладу на кошелёк, боясь потом их не вывести. Но этот вопрос важно решить в короткие сроки.
Даже проверила в базе.
Что мне делать
Floret2
При вводе паспортных данных кошелёк становится именной, но всех возможностей не открывает, например нельзя с некоторых сайтов перечислить средства, чтобы его идентифицировать, надо в салон Евросеть пойти, там делают за 50 рублей, я делала не так давно, заявление не нужно как написано на сайте, паспорт и номер кошелька и все.
Наталья02045
Всего 3 ответа.
Общие сведения
API предназначен для проведения идентификации физических лиц. Подробности см. на explain.qiwi.com.
Используемые в тексте термины описаны в этой статье.
Доступ к API
Для успешного вызова методов API необходимы:
- Корректные заголовки
Accept
иContent-Type
. API поддерживает только один MIME-тип:application/json
. Любое другое значение приведет к ошибке формата данных. - URL, составленный согласно требованиям к нужному запросу.
- Bearer-токен, выданный вам для доступа к API.
Авторизация
Авторизация должна передаваться во всех запросах в заголовке Authorization
:
Authorization: Bearer {token}
Для получения токенов обращайтесь к своему контактному менеджеру.
Шифрование запросов с персональными данными
Для запросов, в которых передаются персональные данные, нужно использовать HTTPS-протокол со специально настроенным шифрованием в соответствии с ГОСТ Р 34.10-2012 и 34.11-2012. Такие запросы нужно отправлять на соответствующие URL-адреса.
Формирование URL запроса
URL-адрес любого запроса к API складывается из двух компонент: server URL
и путь конкретного запроса.
Значения server URL
перечислены далее. Эндпоинты запросов указаны в их описании.
Запросы, в которых передаются персональные данные
К ним относятся запросы разделов Упрощенная онлайн-идентификация и Получение персональных данных клиента.
Адреса server URL
:
-
В тестовой среде:
https://api-gost-test.qiwi.com/partner/openapi-identification
-
В производственной среде:
https://api-gost.qiwi.com/partner/openapi-identification
Запросы, в которых не передаются персональные данные
Адреса server URL
:
-
В тестовой среде:
https://api-test.qiwi.com/partner/openapi-identification
-
В производственной среде:
https://api.qiwi.com/partner/openapi-identification
Упрощенная онлайн-идентификация
Процесс упрощённой идентификации описан на explain.qiwi.com.
Создание заявки
Запрос → POST
-
URL /v1/products/{productId}/persons/{personId}/simplified-identification/applications
- productId — ID продукта
- personId — ID клиента
Атрибуты тела запроса
Создание заявки (тело запроса)
{
"firstName" : "Имя",
"lastName" : "Фамилия",
"middleName" : "Отчество",
"birthDate" : "11.01.1996",
"citizenshipCountryId" : "RU",
"contacts" : {
"mobilePhoneNumber" : "+79271234567",
"email" : "email@email.com"
},
"identifyingDocument" : {
"type" : "RUSSIAN_INNER_PASSPORT",
"series" : "9208",
"number" : "556900"
},
"secondaryDocuments" : [ {
"type" : "INN",
"number" : "33701000015"
} ],
"clientDeviceFingerprint" : {
"IPv4" : "10.12.11.290"
}
}
Имя | Тип | Описание |
---|---|---|
birthDate | String | Дата рождения. Формат: ДД.ММ.ГГГГ . Допустимый диапазон: от 14 до 100 лет включительно |
citizenshipCountryId | String | Гражданство. Всегда значение RU |
clientDeviceFingerprint | object | Сведения о клиентском устройстве, с которого поступил запрос |
clientDeviceFingerprint.IPv4 | String | IP-адрес клиентского устройства, с которого поступил запрос |
contacts | object | Контактные данные клиента |
contacts.email | String | |
contacts.mobilePhoneNumber | String | Номер мобильного телефона в международном формате |
firstName | String | Имя. Минимум две буквы, допустимо использование тире |
lastName | String | Фамилия. Минимум две буквы, допустимо использование тире |
middleName | String | Отчество. Минимум две буквы, допустимо использование тире |
identifyingDocument | object | Сведения о документе, удостоверяющем личность |
identifyingDocument.type | String | Тип документа. Всегда значение RUSSIAN_INNER_PASSPORT |
identifyingDocument.number | String | Номер документа. Формат: 6 цифр |
identifyingDocument.series | String | Серия документа. Формат: 4 цифры |
secondaryDocuments | array | Дополнительные документы. В массиве можно передавать объекты ИНН или СНИЛС |
Атрибуты ответа
Ответ на создание заявки
{
"firstName" : "Имя",
"lastName" : "Фамилия",
"middleName" : "Отчество",
"birthDate" : "11.01.1996",
"citizenshipCountryId" : "RU",
"contacts" : {
"mobilePhoneNumber" : "+79271234567",
"email" : "email@email.com"
},
"identifyingDocument" : {
"type" : "RUSSIAN_INNER_PASSPORT",
"series" : "9208",
"number" : "556900"
},
"secondaryDocuments": [
{
"type" : "INN",
"number" : "500100732259"
}
],
"id" : "1234ABCD4321",
"creationDateTime" : "2019-01-11T17:16:05.743+03:00",
"applicationStatus" : "IN_PROGRESS",
"identificationLevel" : "NOT_VERIFIED",
"productId" : "111222",
"personId" : "1"
}
Имя | Тип | Описание |
---|---|---|
applicationStatus | String | Статус (состояние) заявки. Возможные значения |
birthDate | String | Дата рождения. Формат см. в описании запроса |
citizenshipCountryId | String | Гражданство. ID из справочника стран |
contacts | object | Контактные данные клиента |
contacts.email | String | |
contacts.mobilePhoneNumber | String | Номер мобильного телефона |
creationDateTime | String | Дата создания заявки |
firstName | String | Имя |
lastName | String | Фамилия |
middleName | String | Отчество |
id | String | ID заявки |
identificationLevel | String | Текущий уровень идентификации. Возможные значения |
identificationLevelReasonCode | String | Код причины полученного уровня идентификации |
identifyingDocument | object | Сведения о документе, удостоверяющем личность |
identifyingDocument.number | String | Номер документа |
identifyingDocument.series | String | Серия документа |
identifyingDocument.type | String | Тип документа |
personId | String | ID клиента |
productId | String | ID продукта |
secondaryDocuments | array | Массив дополнительных документов |
Получение статуса заявки
Запрос → GET
-
URL /v1/products/{productId}/persons/{personId}/simplified-identification/applications/{applicationId}
- productId — ID продукта
- personId — ID клиента
- applicationId — ID заявки
Структура тела ответа идентична структуре ответа на запрос «Создание заявки».
Получение статуса всех заявок
Запрос → GET
-
URL /v1/products/{productId}/persons/{personId}/simplified-identification/applications
- productId — ID продукта
- personId — ID клиента
Тело ответа — json-массив объектов-заявок. Структура каждого объекта-заявки идентична структуре ответа на запрос «Создание заявки».
Полная идентификация
Процесс полной идентификации описан на explain.qiwi.com.
Поиск заявок на идентификацию
Запрос → GET
-
URL /v1/full-identification/applications/search?parameter=value
- productId — ID продукта
- flowType — тип заявки (всегда
AGENT_FILLED_ONLY_FULL_IDENTIFICATION
) - mobilePhoneNumber — номер мобильного телефона в международном формате
- applicationStatus — статус (состояние) заявки, необязательный параметр
Атрибуты объекта-заявки
Запрос поиска
GET /v1/full-identification/applications/search?
productId=agent-ident&flowType=AGENT_FILLED_ONLY_FULL_IDENTIFICATION&mobilePhoneNumber=%2B79071234567 HTTP/1.1
Accept: application/json
Authorization: Bearer YUu2qw048gtdsvlk3iu
Host: <server URL>
В ответе возвращается json-массив объектов-заявок.
Объект-заявка
{
"id" : "A171EB8417CE11E99124DD04D7207C6E",
"creationDateTime" : "2019-01-13T11:29:44.943+03:00",
"applicationStatus" : "AWAITING_PASSPORT_CONFIRMATION",
"identificationLevel" : "NOT_VERIFIED",
"maximumPossibleIdentificationLevel" : "FULL",
"productId" : "111222",
"identificationDataSource" : {
"identificationAgentName" : "Евросеть",
"identificationEndpoint" : {
"fullAddress" : "г. Москва, ул. Гранатная, 1, оф. 2"
}
},
"firstName" : "И***",
"lastName" : "Ф***",
"middleName" : "О***",
"citizenshipCountryId" : "RU",
"contacts" : {
"mobilePhoneNumber" : "+79271234567",
"email" : null
}
}
Имя | Тип | Описание |
---|---|---|
applicationStatus | String | Статус (состояние) заявки. Возможные значения |
citizenshipCountryId | String | Гражданство. ID из справочника стран |
contacts | object | Контактные данные клиента |
contacts.email | String | |
contacts.mobilePhoneNumber | String | Номер мобильного телефона в международном формате |
creationDateTime | String | Дата создания заявки |
id | String | ID заявки |
identificationLevel | String | Текущий уровень идентификации. Возможные значения |
firstName | String | Имя |
lastName | String | Фамилия |
middleName | String | Отчество |
maximumPossibleIdentificationLevel | String | Максимально допустимый уровень идентификации. Возможные значения |
personId | String | ID клиента |
productId | String | ID продукта |
identificationDataSource | object | Источник идентификационных данных |
identificationDataSource. identificationAgentName |
String | Название агента идентификации |
identificationDataSource. identificationEndpoint |
object | Точка идентификации |
identificationDataSource. identificationEndpoint.fullAddress |
String | Адрес точки идентификации, в которой клиент оставил заявку |
Создание сессии подтверждения SIM-карты
Запрос инициирует отправку SMS-сообщения с OTP (One Time Password, одноразовый пароль) клиенту на указанный номер телефона.
Запрос → PUT
-
URL /v1/products/{productId}/full-identification/applications/{applicationId}/sim-confirmation/{confirmationSessionId}
- productId — ID продукта
- applicationId — ID заявки
- confirmationSessionId — клиентский ID подтверждения
Атрибуты тела запроса
Тело запроса
{
"personId" : "1",
"mobilePhoneNumber" : "+79271234567",
"clientDeviceFingerprint" : {
"IPv4" : "10.12.11.290"
}
}
Имя | Тип | Описание |
---|---|---|
clientDeviceFingerprint | object | Сведения о клиентском устройстве, с которого поступил запрос |
clientDeviceFingerprint.IPv4 | String | IP-адрес клиентского устройства, с которого поступил запрос |
mobilePhoneNumber | String | Номер мобильного телефона в международном формате |
personId | String | ID клиента |
Атрибуты ответа
Тело ответа
{
"resendDelay" : "PT3M",
"resendAttemptsLeft" : 3
}
Имя | Тип | Описание |
---|---|---|
resendAttemptsLeft | integer | Количество оставшихся попыток повторного запроса OTP |
resendDelay | String | Интервал времени, через который можно повторно запросить OTP |
Повторная отправка SMS-сообщения с OTP
Запрос → POST
-
URL /v1/products/{productId}/full-identification/applications/{applicationId}/sim-confirmation/{confirmationSessionId}/resend-otp
- productId — ID продукта
- applicationId — ID заявки
- confirmationSessionId — клиентский ID подтверждения
Атрибуты тела запроса
Тело запроса повторной высылки SMS
{
"personId" : "1",
"clientDeviceFingerprint" : {
"IPv4" : "10.12.11.290"
}
}
Имя | Тип | Описание |
---|---|---|
clientDeviceFingerprint | object | Сведения о клиентском устройстве, с которого поступил запрос |
clientDeviceFingerprint.IPv4 | String | IP-адрес клиентского устройства, с которого поступил запрос |
personId | String | ID клиента |
Атрибуты ответа
Тело ответа
{
"resendDelay" : "PT3M",
"resendAttemptsLeft" : 3
}
Имя | Тип | Описание |
---|---|---|
resendAttemptsLeft | integer | Количество оставшихся попыток повторного запроса OTP |
resendDelay | String | Интервал времени, через который можно повторно запросить OTP |
Подтверждение SIM-карты с OTP
Запрос → PUT
-
URL /v1/products/{productId}/full-identification/applications/{applicationId}/sim-confirmation/{confirmationSessionId}/confirm-otp
- productId — ID продукта
- applicationId — ID заявки
- confirmationSessionId — клиентский ID подтверждения
Атрибуты тела запроса
Тело запроса подтверждения SIM-карты
{
"personId" : "1",
"confirmationCode" : "233210",
"clientDeviceFingerprint" : {
"IPv4" : "10.12.11.290"
}
}
Имя | Тип | Описание |
---|---|---|
clientDeviceFingerprint | object | Сведения о клиентском устройстве, с которого поступил запрос |
clientDeviceFingerprint.IPv4 | String | IP-адрес клиентского устройства, с которого поступил запрос |
confirmationCode | String | OTP (One Time Password, одноразовый пароль) |
personId | String | ID клиента |
Атрибуты ответа
Тело ответа
{
"applicationStatus" : "AWAITING_PASSPORT_CONFIRMATION"
}
Имя | Тип | Описание |
---|---|---|
applicationStatus | String | Статус (состояние) заявки. Возможные значения |
Подтверждение заявки по 4 знакам документа
Запрос → PUT
-
URL /v1/products/{productId}/full-identification/applications/{applicationId}/passport-confirmation
- productId — ID продукта
- applicationId — ID заявки
Атрибуты тела запроса
Тело запроса подтверждения заявки
{
"personId" : "1",
"passportNumberLast4Characters" : "4300",
"clientDeviceFingerprint" : {
"IPv4" : "10.12.11.290"
}
}
Имя | Тип | Описание |
---|---|---|
clientDeviceFingerprint | object | Сведения о клиентском устройстве, с которого поступил запрос |
clientDeviceFingerprint.IPv4 | String | IP-адрес клиентского устройства, с которого поступил запрос |
passportNumberLast4Characters | String | Последние 4 знака номера документа, удостоверяющего личность |
personId | String | ID клиента |
Атрибуты ответа
Тело ответа
{
"applicationStatus" : "IN_PROGRESS"
}
Имя | Тип | Описание |
---|---|---|
applicationStatus | String | Статус (состояние) заявки. Возможные значения |
Получение персональных данных клиента
По умолчанию персональные данные будут маскированными. Если по какой-то причине вам нужны немаскированные данные, обращайтесь к вашему контактному менеджеру.
Запрос → GET
-
URL /v1/products/{productId}/persons/{personId}/personal-data
- productId — ID продукта
- personId — ID клиента
Ответ
[
{
"productId": "1",
"personId": "8",
"productIdentificationLevel": "SIMPLIFIED",
"bankAlias": "QIWI_BANK",
"firstName": "и***",
"lastName": "и***",
"middleName": "и***",
"citizenshipCountryId": "RU",
"contacts": {
"mobilePhoneNumber": "+7***",
"email": null
},
"identifyingDocument": {
"type": "RUSSIAN_INNER_PASSPORT",
"series": "3***",
"number": "1***"
}
}
]
JSON-массив объектов с персональными данными.
Атрибуты объекта:
Имя | Тип | Описание |
---|---|---|
productId | String | ID продукта |
personId | String | ID клиента |
productIdentificationLevel | String | Текущий уровень идентификации у партнера. Возможные значения |
productIdentificationLevelReason | String | Код причины полученного уровня идентификации |
bankAlias | String | Акроним системы, в которой клиент получил идентификацию |
firstName | String | Имя |
lastName | String | Фамилия |
middleName | String | Отчество |
birthDate | String | Дата рождения клиента (в формате ГГГГ-ММ-ДД ) |
birthPlace | String | Место рождения клиента |
contacts | object | Контактные данные клиента |
contacts.email | String | |
contacts.mobilePhoneNumber | String | Номер мобильного телефона в международном формате |
citizenshipCountryId | String | Гражданство. ID из справочника стран |
identifyingDocument | object | Информация о документе, удостоверяющем личность |
identifyingDocument.number | String | Номер документа. Формат: 6 цифр |
identifyingDocument.series | String | Серия документа. Только для граждан РФ. Формат: 4 цифры |
identifyingDocument.issueDate | String | Дата выдачи документа (в формате ДД.ММ.ГГГГ ) |
identifyingDocument.issuingAuthorityCode | String | Код подразделения, выдавшего документ |
identifyingDocument.issuingAuthorityName | String | Название подразделения, выдавшего документ |
identifyingDocument.expiryDate | String | Срок действия документа (в формате ДД.ММ.ГГГГ ) |
identifyingDocument.type | String | Тип документа. Возможные значения |
identifyingDocument. otherDocumentTypeName |
String | Название документа, если выбран тип документа OTHER |
isPassportExpired | Bool | Признак просроченного паспорта (если true ) |
isClientActive | Bool | Признак активности клиента: true — клиент активен; false — клиент неактивен |
registrationType | String | Тип регистрации: PERMANENT — постоянная, TEMPORARY — временная |
registrationAddress | object | Сведения об адресе регистрации |
registrationAddress.countryId | String | ID из справочника стран |
registrationAddress.zipCode | String | Почтовый индекс |
registrationAddress.okatoRegionCode | String | Код субъекта РФ по ОКАТО. Значение из справочника регионов |
registrationAddress.district | String | Район |
registrationAddress.cityType | String | Тип населенного пункта |
registrationAddress.city | String | Наименование населенного пункта |
registrationAddress.street | String | Улица |
registrationAddress.house | String | Номер дома (владения) |
registrationAddress.building | String | Номер корпуса (строения) |
registrationAddress.flat | String | Номер квартиры (офиса) |
livingAddressIsIdenticalToRegistrationAddress | Bool | Признак того, что адрес проживания совпадает с адресом регистрации |
livingAddress | object | Сведения об адресе фактического проживания. Структура объекта совпадает с registrationAddress |
secondaryDocuments | array | Массив дополнительных документов |
hasInterestOwner | Bool | Признак выгодоприобретателя |
hasBeneficialOwner | Bool | Признак того, что лицо является бенефициарным владельцем |
publicOfficial | Bool | Признак публичного должностного лица |
publicOfficialType | String | Тип публичного должностного лица: RUSSIAN — российское, FOREIGN — иностранное, INTERNATIONAL — международное |
publicOfficialPost | String | Занимаемая должность публичного должностного лица |
financialPosition | String | Сведения о финансовом положении: GOOD — хорошее, SUFFICIENT — удовлетворительное, BAD — плохое |
businessReputation | String | Сведения о деловой репутации: GOOD — положительная, BAD — негативная |
fundingSources | String | Сведения об источниках происхождения денежных средств и (или) иного имущества клиента: OWN_FUNDS — собственные средства, BORROWED_FUNDS — заемные средства, OTHER — иное |
Деактивация клиента
Деактивация клиента переводит активного клиента из статуса «Активный» в «Неактивный». Физического удаления записи не происходит.
Запрос → POST
-
URL /v1/products/{productId}/persons/{personId}/deactivate
- productId — ID продукта
- personId — ID клиента
Атрибуты тела запроса
Тело запроса
{
"deactivationDateTime": "2018-09-24T10:00:00+03:00",
"deactivationReason": "Здесь причина деактивации клиента"
}
Имя | Тип | Описание |
---|---|---|
deactivationDateTime | String | Дата/время деактивации клиента (по стандарту ISO 8601) |
deactivationReason | String | Причина деактивации клиента |
Тело ответа отсутствует.
В случае успешного выполнения возвращается код ответа сервера 204
. При повторной деактивации уже неактивного клиента возвращается код ответа сервера 400
.
Дополнительные документы
ИНН
Атрибуты
ИНН
{
"type" : "INN",
"number" : "500100732259"
}
Имя | Тип | Описание |
---|---|---|
number | String | ИНН |
type | String | Тип документа. Передавать значение INN |
СНИЛС
Атрибуты
СНИЛС
{
"type" : "SNILS",
"number" : "112-233-445 95"
}
Имя | Тип | Описание |
---|---|---|
number | String | СНИЛС |
type | String | Тип документа. Передавать значение SNILS |
Разрешение на проживание
Атрибуты
Разрешение на проживание
{
"type" : "RESIDENCE_PERMIT",
"residencePermitType" : "VISA",
"number" : "N4321",
"dateFrom" : "11.09.2015",
"dateTo" : "11.09.2021",
"issuingAuthorityName" : "МИД РФ"
}
Имя | Тип | Описание |
---|---|---|
dateFrom | String | Дата выдачи |
dateTo | String | Дата окончания действия документа |
issuingAuthorityName | String | Орган, выдавший документ, подтверждающий право на пребывание в РФ |
number | String | Номер документа |
residencePermitType | String | Вид разрешения на пребывание. Значения: VISA , PERMANENT_RESIDENCE_PERMIT , TEMPORARY_RESIDENCE_PERMIT |
type | String | Тип документа. Передавать значение RESIDENCE_PERMIT |
Миграционная карта
Атрибуты
Миграционная карта
{
"type" : "MIGRATION_CARD",
"serial" : "4321",
"number" : "43211234",
"dateFrom" : "11.09.2015",
"dateTo" : "11.09.2021"
}
Имя | Тип | Описание |
---|---|---|
dateFrom | String | Дата начала срока пребывания |
dateTo | String | Дата окончания срока пребывания |
number | String | Номер |
serial | String | Серия |
type | String | Тип документа. Передавать значение MIGRATION_CARD |
Патент на работу
Атрибуты
Патент на работу
{
"type" : "WORKING_PATENT",
"series" : "77",
"number" : "8843211234",
"issuingAuthorityName" : "ФМС",
"issueDate" : "11.09.2015",
"documentSeries" : "РА",
"documentNumber" : "4000123"
}
Имя | Тип | Описание |
---|---|---|
documentNumber | String | Номер бланка документа |
documentSeries | String | Серия бланка документа |
issueDate | String | Дата выдачи |
issuingAuthorityName | String | Орган, выдавший патент |
number | String | Номер |
series | String | Серия |
type | String | Тип документа. Передавать значение WORKING_PATENT |
Справочники
Справочник стран (гражданств)
Запрос → GET
-
URL /dictionary/v1/countries
Справочник стран (фрагмент)
[
{
"id": "AF",
"name": "АФГАНИСТАН"
},
{
"id": "AL",
"name": "АЛБАНИЯ"
}
]
В ответе приходит json-массив со списком стран.
Имя | Тип | Описание |
---|---|---|
id | String | ID страны |
name | String | Название страны |
Справочник регионов России
Запрос → GET
-
URL /dictionary/v1/russian-regions
В ответе приходит json-массив со списком регионов РФ.
Справочник регионов России (фрагмент)
[
{
"okatoRegionCode": "79",
"name": "Республика Адыгея"
},
{
"okatoRegionCode": "84",
"name": "Республика Алтай"
}
]
Имя | Тип | Описание |
---|---|---|
name | String | Название региона |
okatoRegionCode | String | Код субъекта РФ по ОКАТО |
HTTP-статусы и формат ответов
Код | Описание | Тело ответа |
---|---|---|
200 | OK (запрос успешно выполнен) | Тело успешного ответа |
201 | Created (запрос успешно выполнен, ресурс создан) | Тело успешного ответа |
204 | No Content (запрос успешно выполнен) | Тело ответа отсутствует |
400 | Bad Request (некорректный запрос) | Стандартный json ошибки |
401 | Unauthorized (в запросе отсутствует корректная авторизация) | Пустое тело, либо стандартный json ошибки |
403 | Forbidden (операция запрещена) | Стандартный json ошибки |
404 | Not Found (ресурс не найден) | Пустое тело, либо стандартный json ошибки |
422 | Unprocessable Entity (ошибка валидации запроса) | Стандартный json ошибки |
423 | Locked (временно заблокирован) | Стандартный json ошибки |
500 | Internal Server Error (внутренняя ошибка сервера) | Пустое тело, либо стандартный json ошибки |
Атрибуты описания ошибки
Стандартный json ошибки
{
"serviceName": "openapi-identification",
"errorCode": "internal.error",
"description": "Undefined error. Please try to make operation later.",
"userMessage": "Undefined error. Please try to make operation later.",
"dateTime": "2018-09-03T18:41:27.016+03:00",
"traceId": "4a3c694ca580a5e0"
}
Имя | Тип | Описание |
---|---|---|
serviceName | String | Название сервиса, возвратившего ошибку |
errorCode | String | Код ошибки (см. далее) |
description | String | Описание ошибки |
userMessage | String | Пользовательское описание ошибки |
dateTime | String | Дата и время формирование ответа |
traceId | String | Параметр, необходимый для анализа логов. Его значение также всегда присутствует в заголовке ответа X-B3-TraceId |
При возвращении ошибки валидации запроса в JSON-объекте может присутствовать объект cause
. В объекте дополнительно описывается, какие ошибки и для каких полей были допущены.
Ошибка с полем cause
{
"serviceName": "openapi-identification",
"errorCode": "validation.error",
"description": "Данные некорректны",
"userMessage": "Данные некорректны",
"dateTime": "2018-09-05T13:55:57.897+03:00",
"traceId": "c8d2b66274672789",
"cause": {
"birthDate": [
"may not be null"
]
}
}
Возможные коды ошибок (атрибут errorCode
):
Код | Описание |
---|---|
internal.error | Внутренняя ошибка сервиса |
http.message.conversion.failed | Ошибка десериализации сообщения |
validation.error | Ошибка валидации (некорректное тело запроса) |
forbidden.operation | Операция запрещена |
data.not.found | Данные не найдены |
inapplicable.operation | Операция не применима для сущности в ее текущем состоянии |
secondary.document.invalid | Некорректный второй документ |
application.in.progress.already.exists | В данный момент есть незавершенная заявка, которая находится в обработке, или ожидании получения всех данных |
invalid.confirmation.factor.value | Неверное значение фактора подтверждения |
passport.confirmation.attempts.exceeded | Превышено количество попыток подтверждения паспорта |
sim.confirmation.attempts.exceeded | Превышено количество попыток подтверждения sim-карты |
confirmation.session.expired | Время жизни сессии подтверждения истекло |
incorrect.confirmation.code.error | Неверный OTP (One Time Password, одноразовый пароль) |
confirmation.attempts.limit.exceeded.error | Попытки подтверждения исчерпаны |
operation.inapplicable | Операция не применима |
incorrect.request.parameter | Неверный параметр запроса |
invalid.confirmation.data | Неверные данные подтверждения |
Значения перечислимых атрибутов
Статусы заявки
Статус | Описание |
---|---|
PROCESSING_FINISHED | Обработка завершена |
IN_PROGRESS | В процессе обработки |
AWAITING_PRODUCT_CHECKS | Ожидается завершение проверок |
AWAITING_SIM_CONFIRMATION | Ожидается подтверждение сим-карты |
AWAITING_PASSPORT_CONFIRMATION | Ожидается подтверждение идентификации |
AWAITING_AGENT_VERIFICATION | Ожидается верификация заявки у агента (для заявок на сайте) |
Типы документов, удостоверяющих личность
Тип | Описание |
---|---|
RUSSIAN_INNER_PASSPORT | Внутренний паспорт РФ |
FOREIGN_COUNTRY_IDENTIFYING_DOCUMENT | Документ, удостоверяющий личность иностранного гражданина, выданный его государством |
TEMPORARY_RESIDENCE_PERMIT | Разрешение на временное проживание |
PERMANENT_RESIDENCE_PERMIT | Вид на жительство |
REFUGEE_CERTIFICATE | Удостоверение беженца |
OTHER | Иной документ |
Код причины полученного уровня идентификации
Список значений полей identificationLevelReasonCode
, productIdentificationLevelReason
.
Код | Описание |
---|---|
smev.personal.data.not.found | Данные клиента не найдены в СМЭВ |
smev.personal.data.invalid | Данные клиента не прошли проверку в СМЭВ |
simplified.secondary.documents.constraints.validation.failed | Упрощенная идентификация: невалидный второй документ |
simplified.secondary.documents.missing | Упрощенная идентификация: отсутствует второй документ |
general.constraints.validation.failed | Ошибка валидации |
person.is.unreliable | Переданные персональные данные обнаружены в списках ограничений |
passport.expired | Паспорт просрочен |
full.identification.exists | У клиента уже есть полная идентификация |
one.passport.accounts.limit.exceeded | Превышено ограничение на максимальное количество аккаунтов на один паспорт |
person.account.is.deactivated | Аккаунт клиента уже закрыт |
personal.data.not.accepted | Клиенту нельзя предоставить идентификацию согласно текущим правилам |
identification.application.is.expired | Срок жизни незаполненной заявки истек |
passport.confirmation.attempts.exceeded | Превышено количество попыток подтверждения паспорта |
sim.confirmation.attempts.exceeded | Превышено количество попыток подтверждения sim-карты |
personal.data.and.level.cannot.be.updated.by.submitted.application | Заявка нарушает правила обновления существующего клиента при повышении уровня или повторном прохождении идентификации |
Уровень идентификации
Список значений полей identificationLevel
, productIdentificationLevel
.
Уровень | Описание |
---|---|
SIMPLIFIED | Упрощенная |
FULL | Полная |
NOT_VERIFIED | Не идентифицирован |
Не хотела ставить такую негативную оценку, потому что долго пользовалась киви и в принципе было все в порядке, но в этот раз просто выбесила их поддержка.
С осени начались проблемы с пополнением кошелька через виртуальную карту. Тогда я заявляла о мошенничестве и после заявления почему-то заблокировали мой кошелек, а не кошелек мошенника. Потом сказали, что это ошибка, разблокировали.
Банк при попытке пополнения по номеру виртуальной карты сообщал, что карта скомпромитирована.
Я заблокировала старую виртуальную карту, выпустила новую. Один-два платежа проходят, потом опять начинаются проблемы, ошибка при пополнении.
В декабре при очередном выпуске новой виртуально карты деньги уже не пришли. Два банка сказали, что пополнение невозможно, потому что карта заблокирована. Обращаюсь в поддержку киви, они говорят, что с картой все в порядке и просят меня скрин ошибки. Отправляю, говорят, что нужен еще скрин, на котором видно номер карты. Они решили, что я несколько месяцев неправильно ввожу номера разных карт!!! Это насколько *** должна быть поддержка, чтобы такое придумать!
И это учитывая, что разбирательство по вопросу длится с начала декабря. Первое обращение было 7 декабря отправлено. То есть более чем через месяц переписки они просто решили, что я неправильно ввожу номер карты!!!
Последний ответ от них был таким:
«Мы провели проверку по вашему обращению.
С картой у вас все в порядке, она активна.
По ней мы не видим попыток пополнения, это может означать, что введены неверно реквизиты.
Рекомендуем при проведении платежа проверить введенные данные на корректность.»
Как всегда, на стороне банка, с которого должен прийти платеж, все в порядке, карта плохая, у киви тоже все отлично, виновата я, неправильно ввожу номер карты. Наверное, они считают своих клиентов недоразвитыми.
Полагаю, что проблема все-таки у киви, потому что в банке сказали, что надо разбираться с кошельком, на нем могут быть какие-то ограничения, если виртуальная карта на самом деле активна, но отображается как заблокированная. Учитывая, что кошелек киви действительно блокировали и при первых попытках пополнения мне сообщали, что карта скомпромитирована, а это как раз связано с мошенничеством, то киви явно что-то намудрили, но разбираться не хотят.
Администратор народного рейтинга
2021-01-21 10:14:28
Автор, уточните, пожалуйста, вы направляли скриншоты?
29.01.2021 10:15 Оценка не засчитана, так как нет ответа от автора
КИВИ Банк
2021-01-12 18:17:29
Здравствуйте, x*******@mail.ru.
Мы уточнили информацию по вашей заявке, продублируем тут: когда вы переводите деньги на карту, из банка-отправителя приходит запрос на списание, и банк-получатель его подтверждает. После этого подтверждения деньги списываются со счета отправителя. Специалисты провели проверку и выявили, что в наш банк первоначальный запрос от банка-отправителя не приходил.
Можно сделать вывод, что при введении данных карты есть ошибка. Вас неоднократно просили прислать скриншоты пошаговых действий. Специалистам нужно увидеть экран с номером карты QIWI, который вы вводите, чтобы убедиться, что всё верно, и более детально разобраться в вашей проблеме.
Мы готовы помочь, но необходимо ваше содействие.
Разблокировали кошелёк
Оценка
4
Такая интересная история, что любой может купить себе кошелёк за 20 рублей, закинуть на него ещё 10 руб, скинуть кому угодно с провокационной подписью. И все, вам снесут киви через…
Читать полностью
02.02.2023
Помощь с переводом денег
Оценка
5
Проверяется
У меня муж сейчас в Казахстане находится, я ему деньги отправляю. С последней транзакцией в праздники возникли проблемы. Я деньги со своего кошелька отправила, а муж их не видит…
Читать полностью
27.01.2023
Хотят помочь клиенту
Оценка
5
Проверяется
Недавно стал работать на себя и для этого открыл кошелек Киви. На него сразу начали приходить деньги за оплату услуг от клиентов и через неделю пользования я увидел, что кошелек…
Читать полностью
13.01.2023
Отличный вариант в актуальное время
Оценка
5
Проверяется
С киви-кошельком я связался уже очень давно, буквально когда он только появился, но активно пользоваться начал с того года. В основном это финансовые переводы на другие кошельки…
Читать полностью
09.01.2023
Купила авиабилеты
Оценка
5
Перед отпуском вспомнила, что вроде как видела на сайте киви возможность оплатить путешествие. Зашла проверить — действительно, можно и тур забронировать у агентств-партнёров, и…
Читать полностью
30.11.2022
Принимаю оплату на киви
Оценка
5
Я диджитал-художник, и многие мои клиенты не из РФ. Возникли сложности с приёмом оплаты, друг самозанятый посоветовал подключить киви. Вот, недавно подключил себе онлайн-оплату для…
Читать полностью
30.11.2022
Для оплаты в интернете
Оценка
5
Из соображений безопасности интернет покупки оплачиваю с виртуалки киви — мне лично так спокойнее. Да и часто заказываю на алиэкспрессе, а на него повышенный кэшбэк…
Читать полностью
29.11.2022
Техническая ошибка Qiwi – это недоразумение способно испортить общее впечатление от пользования платежной системой. От нее не застрахован никто, так как любой технический софт имеет свои изъяны. Неполадка может подстерегать пользователя на любом этапе: при входе, при оплате кредита, телефона или же во время перевода на другой счет (Вебмани или Яндекс.Деньги). Рассмотрим подробнее, что значит техническая ошибка в Киви, и как с ней бороться.
Содержание статьи
- 1 Виды неполадок и способы решения проблем
- 1.1 Техническая ошибка сертификата Киви
- 1.2 Ошибка при оплате с Qiwi
- 1.3 Не могу войти в кошелек
- 1.4 Проблема с использованием Qiwi Visa Card
- 1.5 Недостаточно средств
- 1.6 Проблема при привязке карты к Киви кошельку
- 1.7 Ошибка авторизации
- 1.8 Некорректный идентификатор счета
- 2 Как обратиться в техническую поддержку?
- 3 Полезное видео
- 4 Другие статьи по теме
Виды неполадок и способы решения проблем
Чаще всего встречаются следующие ошибки.
Техническая ошибка сертификата Киви
Такая проблема возникает при несоответствии времени устройства со временем сервера платежной системы. Система безопасности автоматически сравнивает данные, переданные компьютером с теми, которые передает сайт и если они не совпадут, дальнейшие действия со счетом блокируются.
Этот вопрос легко решаем. Для начала заходим на сайт точного времени – time100.ru, выбираем свой часовое пояс и сравниваем дату и время на компьютере с тем, что указано на сайте.
Если время совпадает, то достаточно будет воспользоваться другим браузером. Если нет – поможет перезагрузка компьютера, чтобы он заново синхронизировался со своим сервером и установил правильные настройки.
Кроме того, проблема может быть в установленных расширениях. Для решения вопроса их нужно отключить. В зависимости от браузера они так же могут быть в разделе «Дополнения».
Ошибка при оплате с Qiwi
Проблема с транзакцией – одна из самых распространенных и легко решаемых. Так же ее называют «200 ошибка Киви», так как при невозможности совершить платеж высвечивается именно эта цифра.
Если вы столкнулись с этим – не пытайтесь осуществить перевод. Отложите процедуру на несколько часов и попробуйте снова. Если через сутки вопрос не решился сам собой, помочь сможет только техническая поддержка Киви кошелька. Обратиться к ней можно с главной страницы.
Не могу войти в кошелек
Если при вводе логина и пароля вы не переходите в личный кабинет, на то могут быть несколько вариантов:
- Вы неправильно ввели логин и пароль. Попробуйте ввести их снова.
- Возникла неполадка на стороне системы. Можно подождать некоторое время и зайти снова.
- Возникла неполадка, связанная с вашим аккаунтом. Попробуйте сменить пароль.
- Если вы попробовали все вышеперечисленное, войти так и не удается, остается только обращаться в техническую поддержку. Как можно подробнее объясните проблему и вам восстановят аккаунт.
Проблема с использованием Qiwi Visa Card
Еще одна техническая ошибка при оплате Qiwi может возникнуть при использовании виртуальной карты. Для многих онлайн-игр нужна привязка банковской карты, однако при попытке связать виртуальную карту и аккаунт в игре пользователь получает отказ.
Это происходит только у тех, у кого на счету нет денег. Когда происходит привязка, со счета списывается несколько рублей, чтобы убедиться, что карта действительно существует и с нее возможно производить оплату. Через некоторое время деньги возвращаются на счет. Соответственно, если списывать нечего, то система выдает отказ. То есть решить вопрос можно банальным пополнением счета.
Недостаточно средств
Такая техническая ошибка при переводе Qiwi возникает когда на счету не хватает денег. Зачастую это происходит из-за того, что пользователь указывает сумму не учитывая комиссию, а она может быть довольно велика. К примеру, при выводе денег на банковскую карту с вас возьмут как минимум 50 рублей, плюс 2% от переводимой суммы. Решить вопрос просто: указать меньшую сумму, или же пополнить счет.
Проблема при привязке карты к Киви кошельку
Проблема точно такая же, как и при привязке виртуальной карты к игровому аккаунту: на карте нет денег для подтверждения. Платежная система так же должна убедиться, что с карты можно списывать деньги, прежде чем добавить ее в личный кабинет. Для того, чтобы избавится от проблемы, на счет нужно положить 30 рублей. Этих денег хватит для подтверждения, после чего они вернуться на счет.
Ошибка авторизации
Эта надпись возникает при попытке пополнить счет. Это происходит из-за того, что где-то при вводе были указаны неверные данные. Попробуйте еще раз проверить все цифры. Если вы уверены, что все в порядке, стоит почистить файлы куки и попробовать снова.
Некорректный идентификатор счета
Эта фраза появляется у большинства пользователей нового дизайна. Есть несколько выходов из ситуации:
- Вернуть старый дизайн. Сбоку есть специальная кнопка, нажатие на которую позволяет пользоваться старым дизайном.
- Почистить историю, куки и кэш браузера.
- Использовать другой браузер.
Технические ошибки при оплате могут возникать даже из-за того, что в браузере храняться данные о других платежах (в виде куки) и эта информация мешает совершать новые операции. Остается надеяться, что специалисты платежной системы исправят эту недоработку, а пока остается самостоятельно чистить данные браузера (ctrl + F5), или же использовать другой.
Как обратиться в техническую поддержку?
Существует несколько способов обращения. Подробнее о способах, правильном заполнении формы и времени ответа читайте в этой статье
Полезное видео
Видео об одной из самых распространенных ошибок.
Автор и источники
Авторы статьи: Виктор Еремеев и Дмитрий Луцкий. Владеют практически всеми электронными кошельками, имеют финансовое образование и большой опыт электронной коммерции.
Источником статьи является официальный сайт платежной системы. Отзывы и описание проблем, с которыми сталкиваются пользователи, взяты со сторонних ресурсов.