Оплата с формы партнёра¶
Общие сведения¶
Оплату с собственной платёжной формы партнёр может реализовать c помощью API.
Обратите внимание
Для приёма платежей с помощью собственной платёжной формы партнёру необходимо отвечать стандартам безопасности PCI DSS и иметь соответствующий сертификат, т.к. данные банковских карт, принимаемые к оплате, являются чувствительной информацией.
Важная информация
Согласно требованиям Банка России 13-МР от 12.10.2023 выполняется проверка соответствия фактической деятельности партнёра заявленной им при заключении договора. Для этого, а также для снижения риска недействительных и мошеннических операций, партнёру требуется интегрировать скрипт, разработанный для сбора дополнительных данных о клиенте при совершении платежей.
Доступны несколько сценариев приёма платежей:
- одношаговый — когда авторизация и подтверждение платежа выполняются в рамках одного запроса;
- двухшаговый — когда авторизация и подтверждение платежа выполняются двумя отдельными запросами.
При выполнении одношагового сценария средства клиента холдируются и сразу же списываются после подтверждения им оплаты. Отменить списание технически невозможно, доступен лишь возврат средств.
При выполнении двухшагового сценария средства клиента холдируются после подтверждения им оплаты и списываются только после того, как QIWI получит подтверждение от партнёра. Холдирование средств можно отменить, списанные средства можно вернуть.
Начало работы¶
① Выполните шаги, указанные в статье «Интернет-эквайринг» → «Начало работы»
② Выпустите ключ доступа к API приёма платежей
Ключ доступа к API — cимвольная строка для авторизации запросов к API согласно стандарту OAuth 2.0 RFC 6749, RFC 6750В. Выпускается в личном кабинете в разделе «Настройки».
③ Протестируйте взаимодействие
Отправленный вам siteId
по умолчанию находится в тестовом режиме. В этом режиме вы можете проводить операции без реального движения денежных средств. Тестирование доступно только для определённых способов оплаты. Подробности см. в статье «Тестовый режим».
Одношаговый сценарий¶
Пример успешной оплаты с помощью выполнения одношагового сценария описан и изображён ниже. В примере оплата совершается с банковской карты.
Обратите внимание
Все способы оплаты, кроме оплаты с банковской карты, подключаются по запросу: оплата с банковской карты доступна по умолчанию, для подключения остальных способов обратитесь в службу поддержки.
- Клиент выбирает товар или услугу на торговой площадке партнёра, переходит к оплате.
- Партнёр отображает клиенту собственную платёжную форму для ввода реквизитов карты.
- Клиент вводит реквизиты карты и подтверждает оплату.
-
Партнёр отправляет QIWI запрос на создание платежа, в котором передаёт сумму платежа, данные карты и признак одношагового проведения платежа (
flags:[SALE]
).Если не передать
flags:[SALE]
, платёж будет проведён по двушаговому сценарию: средства клиента будут захолдированы после подтверждения им оплаты и списаны только после того, как QIWI получит подтверждение от партнёра. -
QIWI возвращает партнёру статус платежа (
WAITING
— создан, ожидает аутентификации клиента с помощью 3D-Secure), а также данные для аутентификации:pareq
иacsUrl
. - Партнёр использует полученные данные для аутентификации клиента и сообщает QIWI об успешном прохождении аутентификации: см. шаги из статьи «Интернет-эквайринг» → 3D-Secure.
- QIWI с помощью платёжной системы отправляет запрос на авторизацию и подтверждение платежа в банк-эмитент.
- Банк-эмитент резервирует (холдирует) и сразу же списывает денежные средства с карты клиента.
- QIWI фиксирует успешное списание средств и возвращает партнёру статус платежа
COMPLETED
. - Партнёр принимает решение об успешности завершения платежа — выполняет действия, указанные в статье «Общие принципы и правила» → «Решение об успешности операции».
%%{init: {
"sequence" : {
"wrap":true,
"messageFontSize":14,
"noteFontSize":12,
"actorMargin":
60 }}}%%
sequenceDiagram
participant С as Клиент
participant P as Партнёр
participant Q as QIWI
participant B as Банк-эмитент
С->>P: Выбор товара или услуги, оплата
Note right of С: Ввод реквизитов карты
P->>+Q: Запрос на создание платежа
Note right of P: siteId, paymentId, amount, cardData, flags: SALE
Q->>-P: Ответ на запрос создания платежа
Note left of Q: siteId, paymentId, amount, status:WAITING, requirements.threeDS.pareq, requirements.threeDS.acsUrl
rect rgb(230, 230, 230)
Note over С, B: Аутентификация клиента с помощью 3D-Secure
end
Q->>+B: Запрос на авторизацию и подтверждение платежа
Note right of Q: Через платёжную систему
B->>B: HOLD
B->>B: CAPTURE
B->>-Q: Ответ на запрос
Note left of B: ОК
Q->>Q: Завершение платежа
Q->>P: Статус платежа
Note left of Q: status:COMPLETED
rect rgb(255, 238, 223)
Q->>P: Сценарий «Принятие решения об успешности операции»
P->>Q:
end
P->>С: Отображение результата на форме
Note right of С: «Платёж успешен»
Элемент диаграммы QIWI — совокупность участников процесса проведения платежа. Указанные на диаграмме сценарии см. в статьях:
- «3D-Secure»;
- «Общие принципы и правила» → «Решение об успешности операции».
Партнёр получает, обрабатывает и хранит данные карты клиента.
PUT /partner/payin/v1/sites/test-01/payments/1811 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: api.qiwi.com
{
"amount": {
"currency": "RUB",
"value": 1.00
},
"paymentMethod" : {
"type" : "CARD",
"pan" : "4444443616621049",
"expiryDate" : "12/19",
"cvv2" : "123",
"holderName" : "unknown cardholder"
},
"flags": [ "SALE" ]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"paymentId": "1811",
"billId": "autogenerated-a29ea8c9-f9d9-4a60-87c2-c0c4be9affbc",
"createdDateTime": "2019-08-15T13:28:26+03:00",
"amount": {
"currency": "RUB",
"value": 1.00
},
"capturedAmount": {
"currency": "RUB",
"value": 0.00
},
"refundedAmount": {
"currency": "RUB",
"value": 0.00
},
"paymentMethod": {
"type": "CARD",
"maskedPan": "444444******1049",
"rrn": "123",
"authCode": "181218",
"type": "CARD"
},
"status": {
"value": "WAITING",
"changedDateTime": "2019-08-15T13:28:26+03:00"
},
"requirements" : {
"threeDS" : {
"pareq" : "eJyrrgUAAXUA+Q==",
"acsUrl" : "https://test.paymentgate.ru/acs/auth/start.do"
}
}
}
Запросы и ответы приведены в качестве примера: актуальные формат и список параметров см. в разделе «Справочник методов API» документации API приёма платежей.
Примеры запросов для аутентификации клиента см. в статье «3D-Secure».
Двухшаговый сценарий¶
Пример успешной оплаты с помощью выполнения двухшагового сценария описан и изображён ниже. В примере оплата совершается с банковской карты.
Обратите внимание
Двухшаговый сценарий позволяет использовать лишь один способ оплаты — с банковской карты.
- Клиент выбирает товар или услугу на торговой площадке партнёра, переходит к оплате.
- Партнёр отображает клиенту собственную платёжную форму для ввода реквизитов карты.
- Клиент вводит реквизиты карты и подтверждает оплату.
- Партнёр отправляет QIWI запрос на создание платежа, в котором передаёт сумму платежа и данные карты.
- QIWI возвращает партнёру статус платежа (
WAITING
— создан, ожидает аутентификации клиента с помощью 3D-Secure), а также данные для аутентификации:pareq
иacsUrl
. - Партнёр использует полученные данные для аутентификации клиента и сообщает QIWI об успешном прохождении аутентификации: см. шаги из статьи «Интернет-эквайринг» → 3D-Secure.
- QIWI с помощью платёжной системы отправляет запрос на авторизацию платежа в банк-эмитент.
- Банк-эмитент резервирует (холдирует) денежные средства на карте клиента.
- QIWI фиксирует успешное холдирование средств.
-
Партнёр выполняет действия, указанные в статье «Общие принципы и правила» → «Решение об успешности операции».
На этапе получения уведомления у партнёра появляется идентификатор платежа, который он должен подтвердить —
paymentId
. -
Партнёр выполняет необходимые действия перед тем, как получить денежные средства от клиента — списать их с его карты.
Сбор заказа и т.п.
-
Партнёр отправляет QIWI запрос на подтверждение платежа, в котором передаёт полученный на этапе 10 идентификатор платежа.
По умолчанию QIWI ожидает подтверждения платежа в течение 72 часов с момента его успешной авторизации — оплаты счёта. По истечении этого срока платёж подтверждается автоматически. Для изменения длительности ожидания или настройки автоматической отмены платежа обратитесь в службу поддержки. Длительность ожидания не может превышать 5 суток.
-
QIWI с помощью платёжной системы отправляет запрос на подтверждение платежа в банк-эмитент.
- Банк-эмитент списывает денежные средства с карты клиента.
- QIWI фиксирует успешное завершение платежа.
- Партнёр принимает решение об успешности завершения платежа — выполняет действия, указанные в статье «Общие принципы и правила» → «Решение об успешности операции».
%%{init: {
"sequence" : {
"wrap":true,
"messageFontSize":14,
"noteFontSize":12,
"actorMargin":
60 }}}%%
sequenceDiagram
participant С as Клиент
participant P as Партнёр
participant Q as QIWI
participant B as Банк-эмитент
С->>P: Выбор товара или услуги, оплата
Note right of С: Ввод реквизитов карты
P->>+Q: Запрос на создание платежа
Note right of P: siteId, paymentId, amount, cardData
Q->>-P: Ответ на запрос создания платежа
Note left of Q: siteId, paymentId, amount, status:WAITING, requirements.threeDS.pareq, requirements.threeDS.acsUrl
rect rgb(230, 230, 230)
Note over С, B: Аутентификация клиента с помощью 3D-Secure
end
Q->>+B: Запрос на авторизацию платежа
Note right of Q: Через платёжную систему
B->>B: HOLD
B->>-Q: Результат авторизации
Note left of B: ОК
Q->>Q: Состояние операции
Note over Q: Средства захолдированы
rect rgb(255, 238, 223)
Q->>P: Сценарий «Принятие решения об успешности операции»
Note left of Q: paymentId
P->>Q:
end
P->>С: Коммуникация с клиентом
Note left of P: Заказ собирается
P->>P: Сбор заказа
Note over P: Заказ готов к отправке
P->>+Q: Запрос на подтверждение платежа
Note right of P: siteId, paymentId, captureId
Q->>+B: Запрос на подтверждение платежа
Note right of Q: Через платёжную систему
B->>B: CAPTURE
B->>-Q: Результат
Note left of B: ОК
Q->>Q: Статус платежа
Note over Q: COMPLETED
Q->>-P: Ответ на запрос подтверждения
Note left of Q: siteId, paymentId, captureId, amount, status: COMPLETED
rect rgb(255, 238, 223)
Q->>P: Сценарий «Принятие решения об успешности операции»
Note left of Q: paymentId
P->>Q:
end
P->>С: Коммуникация с клиентом
Note left of P: Заказ отправлен
Элемент диаграммы QIWI — совокупность участников процесса проведения платежа. Указанные на диаграмме сценарии см. в статьях:
- «3D-Secure»;
- «Общие принципы и правила» → «Решение об успешности операции».
Партнёр получает, обрабатывает и хранит данные карты клиента.
PUT /partner/payin/v1/sites/test-01/payments/1811 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: api.qiwi.com
{
"amount": {
"currency": "RUB",
"value": 1.00
},
"paymentMethod" : {
"type" : "CARD",
"pan" : "4444443616621049",
"expiryDate" : "12/19",
"cvv2" : "123",
"holderName" : "unknown cardholder"
}
}
Пример ответа на запрос создания платежа см. в разделе «Одношаговый сценарий».
Запросы и ответы приведены в качестве примера: актуальные формат и список параметров см. в разделе «Справочник методов API» документации API приёма платежей.
Примеры запросов для аутентификации клиента см. в статье «3D-Secure».