Перейти к содержанию

Проверка карты

Мерчант для проверки реквизитов карты, чтобы убедиться, что карта является действующей и доступна для покупок. На этапе проверки средства с карты не списываются. Списание возможно только при выполнении одного из условий:

Проверка карты может быть выполнена только при оплате с формы партнёра. Если проверка пройдена успешно, для карты может быть выпущен платёжный токен.

Сервис проверки карт по умолчанию отключен. Чтобы подключить его, обратитесь к вашему курирующему менеджеру.

Сценарий использования

  1. Отправьте запрос проверки карты. В запросе укажите:

    • Уникальный в рамках вашего сайта идентификатор проверки (requestUid в URL запроса).
    • Данные карты (cardData в теле запроса). Обязательные параметры — PAN, срок действия и CVV2.

    Для генерации платежного токена в запросе должен быть указан параметр tokenizationData.account — уникальный идентификатор покупателя в системе мерчанта.

  2. Обработайте ответ сервера:

    • информация о доступности карты содержится в атрибуте isValidCard (true — карта доступна);
    • платёжный токен возвращается в объекте createdToken, если isValidCard=true и в запросе был передан tokenizationData.account

Чтобы убедиться, что номер карты введён её держателем, используется 3D-Secure (3DS). Включение или отключение 3DS производится на стороне банка, выпустившего карту. Если 3DS включен, в ответе на запрос проверки карты возвращаются:

  • объект requirements с адресом для перенаправления покупателя (ACS URL);
  • значение WAITING_3DS в поле status.

Процесс 3DS при проверке карты аналогичен процессу 3DS при покупке:

  1. Перенаправьте покупателя на страницу аутентификации.
  2. Завершите проверку 3DS запросом завершения аутентификации при проверке карты. В запросе укажите тот же идентификатор проверки, что и в исходном запросе проверки карты.
  3. Если проверка 3DS завершилась успешно, в ответе в атрибуте isValidCard содержится информация о доступности карты для списаний (true — карта доступна). Если isValidCard=true и запрошен выпуск платежного токена, платежный токен возвращается в объекте createdToken.

После завершения проверки результат будет отправлен в уведомлении с типом CHECK_CARD. При необходимости текущий статус можно запросить отдельно.

Примеры

PUT /partner/payin/v1/sites/site-01/validation/card/requests/acd7bf20-22e2-4cbf-a218-38d90e9f29b9 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com

{
    "cardData": {
        "pan": "1111222233334444",
        "expiryDate": "12/34",
        "cvv2": "123",
        "holderName": "Super Man"
    },
    "tokenizationData": {
        "account": "cat_girl"
    }
}
{
    "requestUid": "acd7bf20-22e2-4cbf-a218-38d90e9f29b9",
    "status": "SUCCESS",
    "isValidCard": true,
    "threeDsStatus": "WITHOUT",
    "checkOperationDate": "2025-03-25T12:55:12+03:00",
    "cardInfo": {
      "issuingCountry": "643",
      "issuingBank": "Gazprombank",
      "paymentSystem": "MIR",
      "fundingSource": "DEBIT",
      "paymentSystemProduct": "details"
    },
    "createdToken": {
      "token": "1a77343a-dd8a-11eb-ba80-0242ac130004",
      "name": "111122******4444",
      "expiredDate": "2034-12-31T00:00:00+03:00",
      "account": "cat_girl"
    }
}
{
    "requestUid": "acd7bf20-22e2-4cbf-a218-38d90e9f29b9",
    "status": "WAITING_3DS",
    "requirements": {
        "pareq": "Some string pareq",
        "acsUrl": "http://xxxxxxx"
    }
}
<form name="form" action="{ACSUrl}" method="post" >
    <input type="hidden" name="TermUrl" value="{TermUrl}" >
    <input type="hidden" name="MD" value="{MD}" >
    <input type="hidden" name="PaReq" value="{PaReq}" >
</form>
{
    "requestUid": "acd7bf20-22e2-4cbf-a218-38d90e9f29b9",
    "status": "ERROR"
}
POST /partner/payin/v1/sites/site-01/validation/card/requests/acd7bf20-22e2-4cbf-a218-38d90e9f29b9/complete HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com

{
    "pares": "Some string pares"
}
{
    "requestUid": "acd7bf20-22e2-4cbf-a218-38d90e9f29b9",
    "status": "SUCCESS",
    "isValidCard": true,
    "threeDsStatus": "PASSED",
    "checkOperationDate": "2025-03-25T12:55:12+03:00",
    "cardInfo": {
      "issuingCountry": "643",
      "issuingBank": "Gazprombank",
      "paymentSystem": "MIR",
      "fundingSource": "DEBIT",
      "paymentSystemProduct": "details"
    },
    "createdToken": {
      "token": "1a77343a-dd8a-11eb-ba80-0242ac130004",
      "name": "111122******4444",
      "expiredDate": "2034-12-31T00:00:00+03:00",
      "account": "cat_girl"
    }
}

Запрос и ответ приведены в качестве примера: актуальные формат, список и описание параметров см. в документации API приёма платежей.

Была ли эта статья полезной?