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

Платёжный токен

Платёжный токен используется для оплаты заказа без ввода платёжных реквизитов. Для подключения этого способа оплаты обратитесь в службу поддержки.

Поддерживается выпуск платёжного токена для банковской карты, QR-кода СБП и QIWI Кошелька. Оплата токеном может быть использована:

Клиент может оплатить заказ платёжным токеном только на том сайте, для которого токен был выпущен. Чтобы токен действовал на других сайтах, обратитесь в службу поддержки.

Токен для банковской карты

При выпуске токена карты реквизиты карты хранятся в зашифрованном виде в QIWI.

Платёжный токен может быть выпущен на одном из следующих этапов взаимодействия с QIWI:

  • проверка банковской карты;
  • оплата заказа.

Выпуск токена при проверке карты

В запросе на проверку карты необходимо передать уникальный идентификатор клиента в системе партнёра в параметре tokenizationData.account.

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: api.qiwi.com

{
    "cardData": {
        "pan": "1111222233334444",
        "expiryDate": "12/34",
        "cvv2": "123",
        "holderName": "Holder Name"
    },
    "tokenizationData": {
        "account": "account"
    }
}
HTTP/1.1 200 OK
Content-Type: application/json

{
    "requestUid": "acd7bf20-22e2-4cbf-a218-38d90e9f29b9",
    "status": "SUCCESS",
    "isValidCard": true,
    "threeDsStatus": "WITHOUT",
    "checkOperationDate": "2021-07-29T16:30:00+03:00",
    "cardInfo": {
        "issuingCountry": "RUS",
        "issuingBank": "Bank",
        "paymentSystem": "VISA",
        "fundingSource": "DEBIT",
        "paymentSystemProduct": "Platinum..."
    },
    "createdToken": {
        "token": "1a77343a-dd8a-11eb-ba80-0352ac130004",
        "name": "111122******4444",
        "expiredDate": "2034-12-01T00:00:00+03:00",
        "account": "account"
    }
}

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

Информацию о токене можно получить после успешного завершения проверки карты одним из следующих способов:

Выпуск токена при оплате заказа

В запросе на создание счёта или запросе на создание платежа необходимо передать следующие параметры:

  • "flags": ["BIND_PAYMENT_TOKEN"] — признак привязки платёжного токена;
  • customer.account — идентификатор клиента в системе партнёра.
PUT /partner/payin/v1/sites/test-01/bills/893794793973 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: api.qiwi.com

{
  "amount": {
      "currency": "RUB",
      "value": 10.00
  },
  "expirationDateTime": "2024-01-13T14:30:00+03:00",
  "customer": {
      "account":"token12345"
  },
  "customFields": {},
  "flags":["BIND_PAYMENT_TOKEN"]
}
HTTP/1.1 200 OK
Content-Type: application/json

{
    "billId": "893794793973",
    "invoiceUid": "39b5c83f-abcc-3060-952f-31agh5b2012f",
    "amount": {
        "currency": "RUB",
        "value": "10.00"
    },
    "expirationDateTime": "2024-01-13T14:30:00+03:00",
    "status": {
        "value": "CREATED",
        "changedDateTime": "2024-01-10T17:44:23+03:00"
    },
    "customer": {
        "account": "token12345"
    },
    "flags": [
        "BIND_PAYMENT_TOKEN"
    ],
    "payUrl": "https://oplata.qiwi.com/form?invoiceUid=39b5c83f-abcc-3060-952f-31agh5b2012f"
}
PUT /partner/payin/v1/sites/test-01/payments/test1234567890 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: api.qiwi.com

{
    "billId": "1234567890",
    "amount": {
        "currency": "RUB",
        "value": "1.00"
  },
    "paymentMethod" : {
        "type" : "CARD",
        "pan" : "4256000000000078",
        "expiryDate" : "03/24",
        "cvv2" : "123",
        "holderName" : "TESTQIWI"
  },
    "customer": {
        "account": "token123"
  },
    "flags":["BIND_PAYMENT_TOKEN"]
}
HTTP/1.1 200 OK
Content-Type: application/json

{
    "paymentId": "test1234567890",
    "billId": "1234543211237",
    "createdDateTime": "2024-01-10T17:51:51+03:00",
    "amount": {
        "currency": "RUB",
        "value": "1.00"
    },
    "capturedAmount": {
        "currency": "RUB",
        "value": "0.00"
    },
    "refundedAmount": {
        "currency": "RUB",
        "value": "0.00"
    },
    "paymentMethod": {
        "type": "CARD",
        "maskedPan": "425600******0078",
        "rrn": "123",
        "authCode": "181218",
        "cardHolder": "TESTQIWI"
    },
    "createdToken": {
        "token": "aa8077be-5398-4389-925e-5aa13192e565",
        "name": "425600******0078",
        "expiredDate": "2024-03-31T00:00:00+03:00"
    },
    "customer": {
        "account": "token123"
    },
    "status": {
        "value": "COMPLETED",
        "changedDateTime": "2024-01-10T17:51:54+03:00"
    },
    "callbackUrl": "https://test.com",
    "customFields": {
        "customer_account": "token123"
    },
    "flags": [
        "TEST"
    ],
    "paymentCardInfo": {
        "issuingCountry": "643",
        "issuingBank": "Test Bank Name",
        "paymentSystem": "VISA",
        "fundingSource": "UNKNOWN",
        "paymentSystemProduct": "Unknown"
    }
}

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

Информацию о токене можно получить после успешной авторизации платежа банком-эмитентом одним из следующих способов:

  • в ответе на запрос создания платежа — см. поле createdToken;
  • в ответе на запрос завершения аутентификации — см. поле createdToken;
  • в уведомлении типа PAYMENT — см. поле tokenData.

Обратите внимание

  • Одному идентификатору клиента в системе партнёра могут соответствовать данные только одного физического лица.
  • Запрос на создание счёта с выпуском токена можно использовать без последующей оплаты счёта — не отправлять запрос на создание платежа.

Токен для QR-кода СБП

Для выпуска платёжного токена в запросе на создание QR-кода необходимо передать:

  • уникальный идентификатор клиента в системе партнёра в параметре tokenizationAccount;
  • признак создания токена "flags":["CREATE_TOKEN"].

Токен может быть выпущен для любого типа QR-кода (qrCode.type).

POST /partner/payin/v1/sites/test-01/sbp/qrCodes HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: api.qiwi.com

{
    "qrCodeUid": "Test123",
    "qrCode": {
      "type": "TOKEN",
      "image": {
          "mediaType": "image/png",
          "width": 300,
          "height": 300
      }
    },
  "tokenizationPurpose": "Описание с деталями привязки счета",
  "tokenizationAccount": "3e2322",
  "flags": ["CREATE_TOKEN"]
}
HTTP/1.1 200 OK
Content-Type: application/json

{
    "qrCodeUid": "Test123",
    "qrCode": {
        "type": "TOKEN",
        "ttl": 10,
        "image": {
            "mediaType": "image/png",
            "width": 300,
            "height": 300,
            "content": "iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAA"
        },
        "payload": "https://qr.nspk.ru/AD10006M8KH234K782OQM0L13JI31LQDб",
        "status": "CREATED"
    },
    "tokenizationPurpose": "Описание с деталями привязки счета",
    "flags": ["CREATE_TOKEN"],
    "token": {
        "status": "CREATED",
        "value": "a4a312345-6789-1234-a567-89a1234567a0",
        "expiredDate": "2023-08-11T10:10:32+03:00"
    },
    "createdOn": "2022-08-11T20:10:32+03:00"
}
POST /partner/payin/v1/sites/test-01/sbp/qrCodes HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: api.qiwi.com

{
    "qrCodeUid": "Test123",
    "amount": {
        "value": 100.00,
        "currency": "RUB"
    },
    "qrCode": {
        "type": "DYNAMIC",
        "image": {
            "mediaType": "image/png",
            "width": 300,
            "height": 300
        }
    },
    "tokenizationPurpose": "Описание с деталями привязки счета",
    "tokenizationAccount": "3e2322",
    "redirectUrl": "http://someurl.com"
    "flags": ["CREATE_TOKEN"]
}
HTTP/1.1 200 OK
Content-Type: application/json

{
    "qrCodeUid": "Test123",
    "amount": {
        "value": 100.00,
        "currency": "RUB"
    },
    "qrCode": {
      "type": "DYNAMIC",
      "ttl": 10,
      "image": {
          "mediaType": "image/png",
          "width": 300,
          "height": 300,
          "content": "iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAA"
      },
      "payload": "https://qr.nspk.ru/AD10006M8KH234K782OQM0L13JI31LQDб",
      "status": "CREATED"
    },
    "redirectUrl": "http://someurl.com",
    "tokenizationPurpose": "Описание с деталями привязки счета",
    "flags": ["CREATE_TOKEN"],
    "token": {
        "status": "CREATED",
        "value": "a4a312345-6789-1234-a567-89a1234567a0",
        "expiredDate": "2023-08-11T10:10:32+03:00"
    },
    "createdOn": "2022-08-11T20:10:32+03:00"
}

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

Обратите внимание

Одному идентификатору клиента в системе партнёра могут соответствовать данные только одного физического лица.

Токен для QIWI Кошелька

Для выпуска токена QIWI Кошелька необходимо выполнить нижеописанные действия.

  1. Отправить POST-запрос для выпуска токена на URL-адрес https://api.qiwi.com/partner/payin-tokenization-api/v1/sites/{siteId}/token-requests. В адресе указывается siteId, полученный при подключении, а в JSON-теле запроса передаются следующие параметры:

    Параметр Описание
    requestId Уникальный идентификатор запроса длиной от 1 до 36 символов. Идентификатор должен отличаться от идентификаторов всех ранее созданных запросов на выпуск токена QIWI Кошелька в рамках одного siteId
    phone Номер QIWI Кошелька клиента
    accountId Уникальный идентификатор клиента в системе партнёра

    Обратите внимание

    Одному идентификатору клиента в системе партнёра могут соответствовать данные только одного физического лица.

    POST /partner/payin-tokenization-api/v1/sites/test-01/token-requests HTTP/1.1
    Accept: application/json
    Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
    Content-type: application/json
    Host: api.qiwi.com
    
    {
        "requestId": "asd1232q77w1e3212",
        "phone": "79022222222",
        "accountId": "token324"
    }
    
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "requestId": "asd1232q77w1e3212",
        "status": {
            "value": "WAITING_SMS"
        }
    }
    

    Запросы и ответы приведены в качестве примера.

  2. Отправить POST-запрос для завершения выпуска токена на URL-адрес https://api.qiwi.com/partner/payin-tokenization-api/v1/sites/{siteId}/token-requests/complete после того, как клиент получит SMS с одноразовым кодом. В адресе указывается siteId, полученный при подключении, а в JSON-теле запроса передаются следующие параметры:

    Параметр Описание
    requestId Значение requestId, указанное в запросе из п.1
    smsCode Код из SMS, полученного клиентом
    PUT /partner/payin-tokenization-api/v1/sites/test-01/token-requests/complete HTTP/1.1
    Accept: application/json
    Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
    Content-type: application/json
    Host: api.qiwi.com
    
    {
        "requestId": "asd1232q77w1e3212",
        "smsCode": "1223"
    }
    
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "requestId": "asd1232q77w1e3212",
        "status": {
            "value": "CREATED"
        },
        "token": {
            "value": "589c04b5-47dd-41af-9682-b3eb91",
            "expiredDate": "2021-11-08T14:23:54+03:00"
        }
    }
    

    Запросы и ответы приведены в качестве примера.

Удаление токена

Для прекращения действия платёжного токена необходимо отправить DELETE-запрос на URL-адрес https://api.qiwi.com/partner/payin/v1/sites/{siteId}>/tokens, указав в адресе siteId, полученный при подключении, а в JSON-теле запроса следующие параметры:

Параметр Описание
customerAccountId Уникальный идентификатор клиента в системе партнёра, привязанный к платёжному токену
token Платёжный токен
DELETE /partner/payin/v1/sites/test-01/tokens HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: api.qiwi.com

{
  "token": "1a2b3c4d-1a2b-1a2b-1a2b3c-1a2b3c4d5e",
  "customerAccountId": "token_name"
}
HTTP/1.1 204 No Content

Запрос приведён в качестве примера.

Обратите внимание

  • Одному идентификатору клиента в системе партнёра могут соответствовать данные только одного физического лица.
  • Метод реализован только для платёжного токена карты и QIWI Кошелька.