Вопросы
baas_support@qiwi.com
NAV Navbar
Примеры

PAYMENTS API

API предназначен для проведения платежей в рамках продукта BaaS. Подробности см. в разделе «Руководства по интеграции» → BaaS → «Расходные операции».

Используемые в тексте термины описаны в разделе «Руководства по интеграции» → BaaS → «Термины и бизнес-сущности».

Взаимодействие через API

Взаимодействие между партнёром и BaaS совершается по защищённому протоколу (HTTPS). Поддерживаются только HTTPS-запросы. HTTP-запросы по нешифрованному каналу не поддерживаются.

Данные в запросах передаются в формате JSON в кодировке UTF-8. В ответах данные возвращаются также в формате JSON в кодировке UTF-8.

URL для вызовов API

Доступ к API

Схема аутентификации - Bearer. В заголовках запроса передаётся bearer-токен в поле Authorization.

--header "Authorization: Bearer MjMyNDQxMjM6NDUzRmRnZDQ0M*******"

Bearer-токен выдается партнёру при интеграции.

Авторизация

За авторизацию отвечает обязательный заголовок запроса QIWI-Client-Token. Подробности см. в разделе «Руководства по интеграции» → BaaS → «Общие принципы и правила» → «Подтверждение операций».

--header "QIWI-Client-Token: fa9c491b7b06c6cf64a0b53fb2b9a91c"

Подпись платёжных поручений

За подпись платёжных поручений отвечает обязательный заголовок запроса QIWI-Payment-Signature. Подробности см. в разделе «Руководства по интеграции» → BaaS → «Общие принципы и правила» → «Подпись платёжных поручений».

Передача информации об устройстве клиента

Модель устройства клиента

За передачу модели устройства клиента, с которого отправляется запрос, отвечает обязательный заголовок clientDevice.

Идентификатор устройства клиента

За передачу идентификатора устройства клиента, с которого отправляется запрос, отвечает обязательный заголовок deviceId.

Пополнение с банковской карты

Пополнение с банковской карты описано на explain.qiwi.com.

Запрос → PUT

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

curl https://api-test.qiwi.com/partner/openapi-payment-api/v1/replenishment-by-webform/products/best-partner/transactions/a97 \
  -X PUT \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -H 'Authorization: Bearer eyJ2ZXJzaW9FJMjlCRkFFRDM5OE***********************' \
  -H 'QIWI-Client-Token: fa9c491b7b06c6cf64a0b53fb2b9a91c' \
  -H 'QIWI-Payment-Signature: 8YKr8d9wGn3NLwMCc4JhlzWs6cb2XHv+ncVJyOqC5Ou6VCiWSer6VJS7J/Ja8P0JLMSZ2u7Exbhw0PoaY9G6uAg0nruULFJv0rEJU8a9etwdEENvazH0tHbK9G7OT/xZt6y3cGkDNj5avLiCOk0v/mEd2Myf25Th3mMky/Cz9amv5UpfCm/' \
  -d '{
    "toClientId": "1",
    "transactionAmount": {
      "value": 100.00,
      "currency": "RUB"
    },
    "clientIpAddress": "255.255.255.255",
    "clientCommission" : {
      "value" : 2.00,
      "currency" : "RUB"
    }
  }'
Параметр Описание REGEX Пример
productId Обязательный параметр URL запроса. Идентификатор продукта, в рамках которого совершается платеж: выдается партнёру при интеграции ^[A-Za-z0-9-]{1,100}$ Prd-123-DEF-456
transactionId Обязательный параметр URL запроса. Уникальный идентификатор операции в системе партнёра ^[A-Za-z0-9-]{1,100}$ Txn-123-DEF-456
toClientId string
Обязательный параметр тела запроса. Идентификатор получателя. Уникален в рамках продукта productId. Генерируется партнёром при создании клиента через API Clients. Если для платежа настроена комиссия, необходимо указать clientId, переданный в запросе комиссии по платежу.
^[A-Za-z0-9-]{1,100}$ Cnt-123-DEF-456
transactionAmount object
Обязательный параметр тела запроса. Блок с информацией о сумме операции
   
value string
Обязательный параметр тела запроса. Значение с двумя десятичными разрядами. Указывается сумма без учета комиссии.
  200.00
currency string
Обязательный параметр тела запроса. Валюта, ISO 4217
  RUB
clientIpAddress string
Обязательный параметр тела запроса. IP-адрес, с которого клиент осуществляет запрос на совершение платежа
валидный IPv4/IPv6 255.255.255.255
clientCommission object
Параметр тела запроса. Блок с информацией о комиссии, которая взимается с клиента. Если комиссия для указанного productID не настроена в BaaS, передавать параметр не нужно.
   
value number
Параметр тела запроса. Значение с двумя десятичными разрядами. Необходимо передать значение, полученное запросом комиссии по платежу.
  10.00
currency string
Параметр тела запроса. Валюта, ISO 4217
  RUB

Ответ ←

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

{
    "productId": "best-partner",
    "transactionId": "a97",
    "toClientId": "1",
    "transactionAmount": {
        "currency": "RUB",
        "value": "100.00"
    },
    "creationDateTime": "2020-08-25T18:11:22+03:00",
    "payUrl": "https://oplata-test.qiwi.com/form/?invoice_uid=0ad92a20-3dfc-4627-baa4-b70a96a867ae",
    "status": "PROCESSING",
    "statusDetails": {},
    "clientCommission": {
        "currency": "RUB",
        "value": 2.00
    }
}
Параметр Тип Описание
productId String Идентификатор продукта, в рамках которого совершается платеж: выдается партнёру при интеграции
transactionId String Уникальный идентификатор операции в системе партнёра
toClientId String Идентификатор получателя. Уникален в рамках продукта productId
transactionAmount   Блок с информацией о сумме операции
currency String Валюта, ISO 4217
value String Значение с двумя десятичными разрядами
creationDateTime DateTime в формате ISO 8601 ±hh:mm с московской Time Zone Дата создания операции в BaaS
accountingDateTime DateTime в формате ISO 8601 ±hh:mm с московской Time Zone Дата перехода операции в финальный статус в сервисе Payments
payUrl String URL платежной формы, на которую партнёру необходимо перенаправить клиента для заполнения реквизитов платежа
status String Статус операции в BaaS
statusDetails String Заполнен, если "status": "DECLINED"
clientCommission   Блок с информацией о комиссии, которая взимается с клиента
value Number Значение с двумя десятичными разрядами
currency String Валюта, ISO 4217

Ответ с ошибкой содержит объект с информацией об ошибке. Подробнее см. раздел Формат ошибок API.

Статус пополнения с банковской карты

Метод используется для получения текущего статуса платежа.

Запрос → GET

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

curl https://api-test.qiwi.com/partner/openapi-payment-api/v1/replenishment-by-webform/products/best-partner/transactions/a97 \
  -X GET \
  -H 'Authorization: Bearer eyJ2ZXJzaW9uIjoiCRkFFRDM5OE***********************' \
  -H 'QIWI-Client-Token: fa9c491b7b06c6cf64a0b53fb2b9a91c'
Параметр Описание REGEX Пример
productId Обязательный параметр URL запроса. Идентификатор продукта, в рамках которого совершается платеж: выдается партнёру при интеграции ^[A-Za-z0-9-]{1,100}$ Prd-123-DEF-456
transactionId Обязательный параметр URL запроса. Уникальный идентификатор операции в системе партнёра ^[A-Za-z0-9-]{1,100}$ Txn-123-DEF-456

Ответ ←

См. ответ на запрос "Пополнение с банковской карты".

Ответ с ошибкой содержит объект с информацией об ошибке. Подробнее см. раздел Формат ошибок API.

Выплата на кошелёк

Подробности см. на explain.qiwi.com.

Запрос → PUT

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

curl https://api-test.qiwi.com/partner/openapi-payment-api/v1/replenishment-from-funder/products/best-partner/transactions/a98 \
  -X PUT \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -H 'Authorization: Bearer eyJ2ZXJzaW9uIjoicmVzMjlCRkFFRDM5OE***********************' \
  -H 'QIWI-Client-Token: fa9c491b7b06c6cf64a0b53fb2b9a91c' \
  -H 'QIWI-Payment-Signature: 8YKr8d9wGn3NLwMCc4JhlzWs6cb2XHv+ncVJyOqC5Ou6VCiWSer6VJS7J/Ja8P0JLMSZ2u7Exbhw0PoaY9G6uAg0nruULFJv0rEJU8a9etwdEENvazH0tHbK9G7OT/xZt6y3cGkDNj5avLiCOk0v/mEd2Myf25Th3mMky/Cz9amv5UpfCm/' \
  -d '{
   "fromFunderId": "uid40",
   "toClientId": "customerUid4000",
   "transactionAmount": {
     "currency": "RUB",
     "value": "200.00"
   },
   "clientIpAddress": "255.255.255.255"
  }'
Параметр Описание REGEX Пример
productId Обязательный параметр URL запроса. Идентификатор продукта, в рамках которого совершается платеж: выдается партнёру при интеграции ^[A-Za-z0-9-]{1,100}$ Prd-123-DEF-456
transactionId Обязательный параметр URL запроса. Уникальный идентификатор операции в системе партнёра ^[A-Za-z0-9-]{1,100}$ Txn-123-DEF-456
fromFunderId string
Обязательный параметр тела запроса. Идентификатор источника средств
^[A-Za-z0-9-]{1,100}$ Fnd-123-DEF-456
toClientId string
Обязательный параметр тела запроса. Идентификатор получателя. Уникален в рамках продукта productId. Генерируется при создании клиента по API Clients.
^[A-Za-z0-9-]{1,100}$ Cnt-123-DEF-456
transactionAmount object
Обязательный параметр тела запроса. Блок с информацией о сумме операции
   
value string
Обязательный параметр тела запроса. Значение с двумя десятичными разрядами
  200.00
currency string
Обязательный параметр тела запроса. Валюта, ISO 4217
  RUB
clientIpAddress string
Обязательный параметр тела запроса. IP-адрес, с которого клиент осуществляет запрос на совершение платежа
валидный IPv4/IPv6 255.255.255.255

Ответ ←

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

{
    "productId": "best-partner",
    "transactionId": "a98",
    "fromFunderId": "uid40",
    "toClientId": "1",
    "transactionAmount": {
        "currency": "RUB",
        "value": 50.00
    },
    "creationDateTime": "2020-08-26T13:03:17+03:00",
    "accountingDateTime": "2020-08-26T13:03:17+03:00",
    "status": "SUCCESS",
    "statusDetails": {}
}
Параметр Тип Описание
productId String Идентификатор продукта, в рамках которого совершается платеж: выдается партнёру при интеграции
transactionId String Уникальный идентификатор операции в системе партнёра
fromFunderId String Идентификатор источника средств
toClientId String Идентификатор получателя. Уникален в рамках продукта productId
transactionAmount   Блок с информацией о сумме операции
currency String Валюта, ISO 4217
value Number Значение с двумя десятичными разрядами
creationDateTime DateTime в формате ISO 8601 ±hh:mm с московской Time Zone Дата создания операции в BaaS
accountingDateTime DateTime в формате ISO 8601 ±hh:mm с московской Time Zone Дата перехода операции в финальный статус в BaaS
status String Статус операции в BaaS
statusDetails String Заполнен, если "status": "DECLINED"

Ответ с ошибкой содержит объект с информацией об ошибке. Подробнее см. раздел Формат ошибок API.

Статус выплаты на кошелёк

Метод используется для получения текущего статуса платежа.

Запрос → GET

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

curl https://api-test.qiwi.com/partner/openapi-payment-api/v1/replenishment-from-funder/products/best-partner/transactions/a98 \
  -X GET \
  -H 'Authorization: Bearer eyJ2ZXJzaW9uIjoicmVzdF92MyIsImRhdGEiOnsibWVyY2hhbnRfaWQiOjIwNDIsImFwaV91c2VyX2lkIjo1NjYwMzk3Miwic2VjcmV0IjoiQjIwODlDNkI5Q0NDNTdCNDQzNGHJK43JFJDK595FJFJMjlCRkFFRDM5OE***********************' \
  -H 'QIWI-Client-Token: fa9c491b7b06c6cf64a0b53fb2b9a91c'
Параметр Описание REGEX Пример
productId Обязательный параметр URL запроса. Идентификатор продукта, в рамках которого совершается платеж: выдается партнёру при интеграции ^[A-Za-z0-9-]{1,100}$ Prd-123-DEF-456
transactionId Обязательный параметр URL запроса. Уникальный идентификатор операции в системе партнёра ^[A-Za-z0-9-]{1,100}$ Txn-123-DEF-456

Ответ ←

См. ответ на запрос "Выплата на кошелёк".

Ответ с ошибкой содержит объект с информацией об ошибке. Подробнее см. раздел Формат ошибок API.

Перевод на банковскую карту

Перевод на банковскую карту описан на explain.qiwi.com.

Запрос → PUT

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

curl https://api-test.qiwi.com/partner/openapi-payment-api/v1/withdrawal-to-card/products/best-partner/transactions/a97 \
  -X PUT \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -H 'Authorization: Bearer eyJ2ZXJzaW9uIjoiMjlCRkFFRDM5OE***********************' \
  -H 'QIWI-Client-Token: fa9c491b7b06c6cf64a0b53fb2b9a91c' \
  -H 'QIWI-Payment-Signature: 8YKr8d9wGn3NLwMCc4JhlzWs6cb2XHv+ncVJyOqC5Ou6VCiWSer6VJS7J/Ja8P0JLMSZ2u7Exbhw0PoaY9G6uAg0nruULFJv0rEJU8a9etwdEENvazH0tHbK9G7OT/xZt6y3cGkDNj5avLiCOk0v/mEd2Myf25Th3mMky/Cz9amv5UpfCm/' \
  -H 'clientDevice: Iphone 12' \
  -H 'deviceId: AB1234CD-E123-12FG-J123' \
  -d '{
    "fromAccountId": "customerAccountUid4000",
    "pan": "4002345686552016",
    "clientIpAddress": "198.204.56.69",
    "transactionAmount": {
      "value" : 9.45,
      "currency" : "RUB"
    },
    "clientCommission": {
      "value" : 49.00,
      "currency" : "RUB"
    }
  }'
Параметр Описание REGEX Пример
productId Обязательный параметр URL запроса. Идентификатор продукта, в рамках которого совершается платеж: выдается партнёру при интеграции ^[A-Za-z0-9-]{1,100}$ Prd-123-DEF-456
transactionId Обязательный параметр URL запроса. Уникальный идентификатор операции в системе партнёра ^[A-Za-z0-9-]{1,100}$ Txn-123-DEF-456
fromAccountId string
Обязательный параметр тела запроса. Уникальный идентификатор счёта, c которого происходит списание денежных средств. Генерируется партнёром при создании счёта по API Clients.
^[A-Za-z0-9-]{1,100}$ Acc-123-DEF-456
pan string
Обязательный параметр тела запроса. Номер карты получателя денежных средств
^\\d{16,19}$ 2345678910111213
transactionAmount object
Обязательный параметр тела запроса. Блок с информацией о сумме операции
   
value number
Обязательный параметр тела запроса. Значение с двумя десятичными разрядами. Указывается сумма без учета комиссии.
  200.00
currency string
Обязательный параметр тела запроса. Валюта, ISO 4217
  RUB
clientIpAddress string
Обязательный параметр тела запроса. IP-адрес, с которого клиент осуществляет запрос на совершение платежа
валидный IPv4/IPv6 255.255.255.255
clientCommission object
Обязательный параметр тела запроса. Блок с информацией о комиссии, которая взимается с клиента. Если комиссия для указанного productID не настроена в BaaS, передавать параметр не нужно.
   
value number
Обязательный параметр тела запроса. Значение с двумя десятичными разрядами. Нужно передать значение, полученное запросом комиссии по платежу.
  10.00
currency string
Обязательный параметр тела запроса. Валюта, ISO 4217
  RUB

Ответ ←

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

{
 "productId": "best-partner",
 "transactionId": "a97",
 "fromAccountId": "customerAccountUid4000",
 "transactionAmount": {
   "currency": "RUB",
   "value": 200
 },
  "clientCommission" : {
    "value" : 49.00,
    "currency" : "RUB"
  },
 "creationDateTime": "2018-10-31T18:10:37+03:00",
 "accountingDateTime": "2017-09-03T14:30:00+03:00",
 "status": "PROCESSING",
 "statusDetails": {},
 "needClientApprove": false
}
Параметр Тип Описание
productId String Идентификатор продукта, в рамках которого совершается платеж: выдается партнёру при интеграции
transactionId String Уникальный идентификатор операции в системе партнёра
fromAccountId String Уникальный идентификатор счёта, c которого происходит списание денежных средств
transactionAmount   Блок с информацией о сумме операции
currency String Валюта, ISO 4217
value Number Значение с двумя десятичными разрядами
creationDateTime DateTime в формате ISO 8601 ±hh:mm с московской Time Zone Дата создания операции в BaaS
accountingDateTime DateTime в формате ISO 8601 ±hh:mm с московской Time Zone Дата перехода операции в финальный статус в BaaS
status String Статус операции в BaaS
statusDetails String Заполнен, если "status": "DECLINED"
clientCommission   Блок с информацией о комиссии, которая взимается с клиента
value Number Значение с двумя десятичными разрядами
currency String Валюта, ISO 4217
needClientApprove Boolean Если true - клиенту необходимо сообщить о том, что перевод на указанную карту является потенциально подозрительной операцией: получатель денежных средств, возможно, относится к числу финансовых мошенников. Клиент может отказаться от проведения операции или подтвердить ее исполнение запросом confirmations.

Ответ с ошибкой содержит объект с информацией об ошибке. Подробнее см. раздел Формат ошибок API.

Получение комиссии по платежу

Получение комиссии описано на explain.qiwi.com.

Запрос → GET

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

curl https://api-test.qiwi.com/partner/openapi-commissions/v1/products/best-partner/{txnType}?clientId=1&value=100.99&currency=RUB \
  -X GET \
  -H 'Authorization: Bearer eyJ2ZXJzaW9uIjoicmVzdF92MyIsImRhdGEiOnsibWVyY2hhbnRfaWQiOjIwNDIsImFwaV91c2VyX2lkIjo1NjYwMzk3Miwic2VjcmV0IjoiQjIwODlDNkI5Q0NDNTdCNDQzNGHJK43JFJDK595FJFJMjlCRkFFRDM5OE***********************' \
  -H 'QIWI-Client-Token: fa9c491b7b06c6cf64a0b53fb2b9a91c'
Параметр Описание REGEX Пример
productId Обязательный параметр URL запроса. Идентификатор продукта: выдается партнёру при интеграции ^[A-Za-z0-9-]{1,100}$ Prd-123-DEF-456
txnType Обязательный параметр URL запроса. Тип операции, для которой необходимо получить размер комиссии    
clientId Обязательный параметр URL запроса. Идентификатор клиента, для которого планируется совершить платеж и которому необходимо отобразить размер комиссии. Уникален в рамках продукта productId. Генерируется при создании клиента по API Clients. ^[A-Za-z0-9-]{1,100}$ Cnt-123-DEF-456
value Обязательный параметр URL запроса. Сумма, для которой необходимо рассчитать размер комиссии. Эта же сумма должна быть передана в transactionAmount платежного запроса.   10.00
currency Обязательный параметр URL запроса. Валюта, ISO 4217    

Ответ ←

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

{
    "clientCommission": {
        "value": 10.00,
        "currency": "RUB"
    }
}
Параметр Тип Описание
clientCommission object Блок с информацией о комиссии, которая взимается с клиента
value Number Размер комиссии, значение с двумя десятичными разрядами
currency String Валюта, ISO 4217

Ответ с ошибкой содержит объект с информацией об ошибке. Подробнее см. раздел Формат ошибок API.

Типы операций для получения размера комиссии

Тип операции Описание
replenishment-by-webform Пополнение с банковской карты
withdrawal-to-card Перевод на банковскую карту

Подтверждение перевода на банковскую карту

Перевод средств на банковскую карту (в том числе этап подтверждения перевода) описан на explain.qiwi.com.

Запрос → PUT

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

curl https://api-test.qiwi.com/partner/openapi-payment-api/v1/withdrawal-to-card/products/best-partner/transactions/a97/confirmations \
  -X PUT \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -H 'Authorization: Bearer eyJ2ZXJzaW9uIjoicmVFJMjlCRkFFRDM5OE***********************' \
  -H 'QIWI-Client-Token: fa9c491b7b06c6cf64a0b53fb2b9a91c' \
  -d '{
    "clientApproveStatus": "APPROVED"
  }'
Параметр Описание REGEX Пример
productId Обязательный параметр URL запроса. Идентификатор продукта: выдается партнёру при интеграции ^[A-Za-z0-9-]{1,100}$ Prd-123-DEF-456
transactionId Обязательный параметр URL запроса. Уникальный идентификатор операции в системе партнёра ^[A-Za-z0-9-]{1,100}$ Txn-123-DEF-456
clientApproveStatus string
Обязательный параметр тела запроса. Статус подтверждения. Необходимо передать APPROVED или NOT_APPROVED: см. справочник статусов.
  APPROVED

Ответ ←

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

{
  "clientApproveStatus": "APPROVED"
}
Параметр Тип Описание
clientApproveStatus String Статус подтверждения: см. справочник статусов

Ответ с ошибкой содержит объект с информацией об ошибке. Подробнее см. раздел Формат ошибок API.

Статус подтверждения перевода на банковскую карту

Метод используется для получения текущего статуса операции подтверждения платежа.

Запрос → GET

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

curl https://api-test.qiwi.com/partner/openapi-payment-api/v1/withdrawal-to-card/products/best-partner/transactions/a97/confirmations \
  -X GET \
  -H 'Authorization: Bearer eyJ2ZXJzaW9uIjoicmVzdF92MyIsImRhdGEiOnsibWVyY2hhbnRfaWQiOjIwNDIsImFwaV91c2VyX2lkIjo1NjYwMzk3Miwic2VjcmV0IjoiQjIwODlDNkI5Q0NDNTdCNDQzNGHJK43JFJDK595FJFJMjlCRkFFRDM5OE***********************' \
  -H 'QIWI-Client-Token: fa9c491b7b06c6cf64a0b53fb2b9a91c'
Параметр Описание REGEX Пример
productId Обязательный параметр URL запроса. Идентификатор продукта: выдается партнёру при интеграции ^[A-Za-z0-9-]{1,100}$ Prd-123-DEF-456
transactionId Обязательный параметр URL запроса. Уникальный идентификатор операции в системе партнёра ^[A-Za-z0-9-]{1,100}$ Txn-123-DEF-456

Ответ ←

См. ответ на запрос confirmations.

Ответ с ошибкой содержит объект с информацией об ошибке. Подробнее см. раздел Формат ошибок API.

Справочник статусов подтверждения платежа

Статус Описание
APPROVED Платеж подтвержден: финальный статус
NOT_APPROVED Платеж не подтвержден: финальный статус
NONE Промежуточный статус: возвращается, если отсутствует подтверждение или отказ на проведение операции

Статус перевода на банковскую карту

Метод используется для получения текущего статуса платежа.

Запрос → GET

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

curl https://api-test.qiwi.com/partner/openapi-payment-api/v1/withdrawal-to-card/products/best-partner/transactions/a97 \
  -X GET \
  -H 'Authorization: Bearer eyJ2ZXJzaW9uIjoicmVzdF92MyIsImRhdGEiOnsibWVyY2hhbnRfaWQiOjIwNDIsImFwaV91c2VyX2lkIjo1NjYwMzk3Miwic2VjcmV0IjoiQjIwODlDNkI5Q0NDNTdCNDQzNGHJK43JFJDK595FJFJMjlCRkFFRDM5OE***********************' \
  -H 'QIWI-Client-Token: fa9c491b7b06c6cf64a0b53fb2b9a91c'
Параметр Описание REGEX Пример
productId Обязательный параметр URL запроса. Идентификатор продукта, в рамках которого совершается платеж: выдается партнёру при интеграции ^[A-Za-z0-9-]{1,100}$ Prd-123-DEF-456
transactionId Обязательный параметр URL запроса. Уникальный идентификатор операции в системе партнёра ^[A-Za-z0-9-]{1,100}$ Txn-123-DEF-456

Ответ ←

См. ответ на запрос "Перевод на банковскую карту".

Ответ с ошибкой содержит объект с информацией об ошибке. Подробнее см. раздел Формат ошибок API.

Получение токена формы для перевода на банковскую карту

Перевод средств на банковскую карту с помощью формы описан на explain.qiwi.com. Метод возвращает токен и URL-адрес формы для перевода.

Запрос → PUT

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

curl https://api-test.qiwi.com/partner/openapi-payment-api/v1/withdrawal-to-card/products/best-partner/transactions/a99/form-token \
  -X PUT \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -H 'Authorization: Bearer MjMyNDQxMjM6NDUzRmRnZDQ0M*******' \
  -H 'QIWI-Client-Token: fa9c491b7b06c6cf64a0b53fb2b9a91c' \
  -d '{
    "fromAccountId" : "customerAccountUid4000"
  }'
Параметр Описание REGEX Пример  
productId Обязательный параметр URL запроса. Идентификатор продукта: выдается партнёру при интеграции \^[A-Za-z0-9-]{1,100}$ Prd-123-DEF-456  
transactionId Обязательный параметр URL запроса. Уникальный идентификатор операции в системе партнёра ^[A-Za-z0-9-]{1,100}$ Txn-123-DEF-456 +
fromAccountId string
Обязательный параметр тела запроса. Уникальный идентификатор счёта, c которого происходит списание денежных средств. Генерируется партнёром при создании счёта по API Clients.
^[A-Za-z0-9-]{1,100}$ Acc-123-DEF-456  

Ответ ←

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

{
  "formToken" : "0b96b8e82f93b00a4010a66e23adb9e1",
  "formUrl" : "https://openapi-widget.qiwi.com/api/pay-transfer-widget/widget"
}
Параметр Тип Описание
formToken String Токен для формы просмотра реквизитов карты.
formUrl String URL формы для перевода на банковскую карту

Ответ с ошибкой содержит объект с информацией об ошибке. Подробнее см. раздел Формат ошибок API.

Перевод между кошельками

Перевод между кошельками описан на explain.qiwi.com.

Запрос → PUT

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

curl https://api-test.qiwi.com/partner/openapi-payment-api/v1/transfer-between-clients/products/best-partner/transactions/a121 \
  -X PUT \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -H 'Authorization: Bearer eyJ2ZXJzaW9uIjoicmVzdF92MyIsImRhRkFFRDM5OE***********************' \
  -H 'QIWI-Client-Token: fa9c491b7b06c6cf64a0b53fb2b9a91c' \
  -H 'QIWI-Payment-Signature: 8YKr8d9wGn3NLwMCc4JhlzWs6cb2XHv+ncVJyOqC5Ou6VCiWSer6VJS7J/Ja8P0JLMSZ2u7Exbhw0PoaY9G6uAg0nruULFJv0rEJU8a9etwdEENvazH0tHbK9G7OT/xZt6y3cGkDNj5avLiCOk0v/mEd2Myf25Th3mMky/Cz9amv5UpfCm/' \
  -d '{
    "fromClientId": "customerUid4000",
    "toClientId": "customerUid3000",
    "transactionAmount": {
      "value": 200.00,
      "currency": "RUB"
    },
    "clientIpAddress": "255.255.255.255"
  }'
Параметр Описание REGEX Пример
productId Обязательный параметр URL запроса. Идентификатор продукта, в рамках которого совершается платеж: выдается партнёру при интеграции ^[A-Za-z0-9-]{1,100}$ Prd-123-DEF-456
transactionId Обязательный параметр URL запроса. Уникальный идентификатор операции в системе партнёра ^[A-Za-z0-9-]{1,100}$ Txn-123-DEF-456
fromClientId string
Обязательный параметр тела запроса. Идентификатор клиента-отправителя. Генерируется при создании клиента по API Clients
^[A-Za-z0-9-]{1,100}$ Cnt-123-DEF-456
toClientId string
Обязательный параметр тела запроса. Идентификатор клиента-получателя. Генерируется при создании клиента по API Clients
^[A-Za-z0-9-]{1,100}$ Cnt-123-DEF-456
transactionAmount object
Обязательный параметр тела запроса. Блок с информацией о сумме операции
   
value number
Обязательный параметр тела запроса. Значение с двумя десятичными разрядами
  200.00
currency string
Обязательный параметр тела запроса. Валюта, ISO 4217
  RUB
clientIpAddress string
Обязательный параметр тела запроса. IP-адрес, с которого клиент осуществляет запрос на совершение платежа
валидный IPv4/IPv6 255.255.255.255

Ответ ←

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

{
 "productId": "best-partner",
 "transactionId": "a121",
 "fromClientId": "customerUid4000",
 "toClientId": "customerUid3000",
 "transactionAmount": {
   "currency": "RUB",
   "value": 200
 },
 "creationDateTime": "2018-10-31T18:36:35+03:00",
 "accountingDateTime": "2018-10-31T18:36:35+03:00",
 "status": "SUCCESS",
 "statusDetails": {}
}
Параметр Тип Описание
productId String Идентификатор продукта, в рамках которого совершается платеж: выдается партнёру при интеграции
transactionId String Уникальный идентификатор операции в системе партнёра
fromClientId String Идентификатор клиента-отправителя
toClientId String Идентификатор клиента-получателя
transactionAmount   Блок с информацией о сумме операции
currency String Валюта, ISO 4217
value String Значение с двумя десятичными разрядами
creationDateTime DateTime в формате ISO 8601 ±hh:mm с московской Time Zone Дата создания операции в BaaS
accountingDateTime DateTime в формате ISO 8601 ±hh:mm с московской Time Zone Дата перехода операции в финальный статус в BaaS
status String Статус операции в BaaS
statusDetails String Заполнен, если "status": "DECLINED"

Ответ с ошибкой содержит объект с информацией об ошибке. Подробнее см. раздел Формат ошибок API.

Статус перевода между кошельками

Метод используется для получения текущего статуса платежа.

Запрос → GET

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

curl https://api-test.qiwi.com/partner/openapi-payment-api/v1/transfer-between-clients/products/best-partner/transactions/a121 \
  -X GET \
  -H 'Authorization: Bearer eyJ2ZXJzaW9uIjoicmVzdF92MyIsImRhdGEiOnsibWVyY2hhbnRfaWQiOjIwNDIsImFwaV91c2VyX2lkIjo1NjYwMzk3Miwic2VjcmV0IjoiQjIwODlDNkI5Q0NDNTdCNDQzNGHJK43JFJDK595FJFJMjlCRkFFRDM5OE***********************' \
  -H 'QIWI-Client-Token: fa9c491b7b06c6cf64a0b53fb2b9a91c'
Параметр Описание Тип REGEX Пример Обяз.
productId Обязательный параметр URL запроса. Идентификатор продукта, в рамках которого совершается платеж: выдается партнёру при интеграции String ^[A-Za-z0-9-]{1,100}$ Prd-123-DEF-456 +
transactionId Обязательный параметр URL запроса. Уникальный идентификатор операции в системе партнёра String ^[A-Za-z0-9-]{1,100}$ Txn-123-DEF-456 +

Ответ ←

См. ответ на запрос "Перевод между кошельками".

Ответ с ошибкой содержит объект с информацией об ошибке. Подробнее см. раздел Формат ошибок API.

Статусы платежей

Статус Описание
PROCESSING Платеж в процессе проведения
SUCCESS Платеж успешен: финальный статус
DECLINED Платеж неуспешен: финальный статус

Детализация статуса DECLINED

Пример ответа с статусом DECLINED

{
    "productId": "best-partner",
    "transactionId": "txn1",
    "fromClientId": "1",
    "toClientId": "2",
    "transactionAmount": {
        "currency": "RUB",
        "value": 2.00
    },
    "creationDateTime": "2020-08-26T16:09:09+03:00",
    "accountingDateTime": "2020-08-26T16:09:09+03:00",
    "status": "DECLINED",
    "statusDetails": {
        "failureCode": "LIMIT_EXCEEDED"
    }
}

Ответ на запрос с финальным неуспешным статусом DECLINED содержит:

В поле failureCode указывается код детализации статуса.

Справочник кодов детализации статуса

Код Описание
CLIENT_BLOCKED Клиент заблокирован.
ORIGIN_TXN_EXPIRED Актуально для отмен: срок, когда исходную операцию можно отменить, истек.
ORIGIN_TXN_AMOUNT_EXCEEDED Актуально для отмен: допустимая сумма отмены превышена.
ORIGIN_TXN_CANCELLATIONS_COUNT_EXCEEDED Актуально для отмен: количество отмен для одной операции превышено.
ORIGIN_TXN_INCORRECT_STATUS Актуально для отмен: исходная операция находится в статусе, в котором ее нельзя отменить.
CLIENT_INCORRECT_IDENTIFICATION_LEVEL Выполнение операции запрещено для текущего уровня идентификации клиента.
ACCOUNT_BALANCE_ERROR Системная ошибка, связанная с балансами.
ACCOUNT_BALANCE_INSUFFICIENT_FUNDS Недостаточно средств на источнике платежа: в случае платежа со счёта клиента.
ACCOUNT_BALANCE_EXCEEDED Нарушен допустимый лимит на остаток на счёте.
LIMIT_EXCEEDED Нарушены лимиты: на оборот, на сумму одной операции и т.д.
INVOICE_EXPIRED Актуально для операции пополнения с карты: счёт для оплаты был создан, но не оплачен клиентом в течение заданного времени.
INVOICE_ERROR Актуально для операции пополнения счёта клиента с банковской карты: возникла ошибка со счётом для оплаты с карты.
PAYMENT_ERROR Актуально для операции перевода средств на банковскую карту: возникла ошибка при зачислении средств на банковскую карту.
FRAUD_OPERATION Операция запрещена системой фрод-мониторинга.

Формат ошибок API

См. информацию из раздела «Руководства по интеграции» → BaaS → «Тестирование» → «Работа с ошибками».

Справочник кодов ошибок

Код Описание
openapi.payment.api.bad.request.data Некорректные параметры запроса
openapi.payment.api.bad.amount.data Некорректная сумма: платеж на указанную сумму провести нельзя
openapi.payment.api.unsupported.currency Указанная валюта не поддерживается
openapi.payment.api.txn.parameter.changed Попытка создать операцию с тем же идентификатором, но другими данными
openapi.payment.api.txn.type.changed Попытка создать/получить операцию с верным идентификатором, но неверного типа: тип операции содержится в path запроса (p2p, payment и т.д.)
openapi.payment.api.txn.test.mode.configured.incorrectly Попытка создать операцию не в тестовом режиме, при этом для партнёра задана настройка "тестовый режим", и наоборот. Все участники операции (productId, fromFunderId, providerId, clientId) должны быть в одинаковом состоянии: отсутствие или наличие тестового режима.
openapi.payment.api.txn.not.found Операция не найдена
openapi.payment.api.client.not.found Клиент не найден
openapi.payment.api.provider.not.found Провайдер не найден
openapi.payment.api.withdrawal.to.card.not.found Не найдена операция перевода на карту
openapi.payment.api.withdrawal.to.card.token.parameter.changed Попытка выпустить токен формы для перевода средств на банковскую карту с тем же идентификатором транзакции, что уже выпущенный, но другими данными (fromAccountId)
openapi.payment.api.withdrawal.to.card.token.expired Токен формы для перевода средств на банковскую карту с таким идентификатором транзакции уже был выпущен и срок его действия истек
openapi.payment.api.withdrawal.to.card.token.already.used Токен формы для перевода средств на банковскую карту с таким идентификатором транзакции уже был выпущен и использован для создания перевода клиентом
openapi.payment.api.withdrawal.to.card.already.exists Попытка выпустить токен формы для перевода средств на банковскую карту с тем же идентификатором транзакции, как уже существующий перевод
openapi.payment.api.funder.not.found Источник денежных средств не найден
openapi.payment.api.product.not.found Продукт не найден
openapi.payment.api.client.blocked Клиент заблокирован
openapi.payment.api.payform.not.enabled.for.product Не заданы настройки для пополнения с карты
openapi.payment.api.payout.not.enabled.for.product Не заданы настройки для перевода на карту
openapi.payment.api.client.wrong.identification.level Выполнение операции запрещено для текущего уровня идентификации клиента
openapi.payment.api.precheck.failed В случае пополнения с банковской карты и перевода на банковскую карту: запрос не прошел банковские проверки, например, превышен лимит. Финансовая операция не создаётся.
openapi.payment.api.withdrawal.to.card.does.not.require.confirmation В случае перевода на карту: операцию не требуется подтверждать.
openapi.payment.api.cancellation.not.found Операция отмены не найдена
openapi.payment.api.cancellation.parameter.changed Попытка создать отмену с тем же идентификатором, но другими данными
openapi.payment.api.wrong.commission.amount Неверная сумма комиссии
openapi.payment.api.wrong.commission.currency Неверная валюта комиссии
openapi.payment.api.client.token.not.found Не найден активный токен клиента
openapi.payment.api.client.token.not.enabled Поддержка клиентских токенов отключена для продукта
openapi.payment.api.client.token.mismatch Переданный токен не совпал с текущим токеном клиента
openapi.payment.api.client.token.header.is.missing Отсутствует заголовок QIWI-Client-Token, обязательный для продуктов с поддержкой клиентских токенов
openapi.payment.api.ip.address.not.allowed Запросы с этого IP адреса не разрешены
openapi.payment.api.missing.device.info.metadata Отсутствует заголовок clientDevice или deviceId, обязательный для продуктов с поддержкой передачи метаданных устройства клиента
openapi.commissions.internal.error Внутренняя ошибка в сервисе комиссий
openapi.commissions.ip.address.not.allowed Запросы с этого IP адреса не разрешены
openapi.commissions.product.not.found Продукт не найден
openapi.commissions.wrong.currency Неверная валюта/валюта не поддерживается
openapi.commissions.cancellation.inapplicable Отмены не применимы к платежу
openapi.commissions.wrong.money.amount Некорректная сумма: получить комиссию на указанную сумму нельзя
openapi.commissions.client.token.not.found Не найден активный токен клиента
openapi.commissions.client.token.header.is.missing Отсутствует заголовок QIWI-Client-Token, обязательный для продуктов с поддержкой клиентских токенов
openapi.commissions.client.token.mismatch Токен, переданный в запросе, не совпадает с выпущенным для клиента токеном
openapi.commissions.client.token.not.enabled Поддержка клиентских токенов отключена для продукта