Банковская карта
 Особенности
 Сценарии интеграции
Готовые решения:
Самостоятельная интеграция:
Устаревшие решения:
  • Платежная форма для веба в вашем дизайне — YandexCheckout.js
  • Платежная форма для веба в готовом дизайне — YandexCheckout UI
 Оплата на странице Яндекс.Кассы
Шаг 1. Создайте платеж , в объекте
payment_method_data
передайте тип
bank_card
, в объекте
confirmation
передайте тип
redirect
и адрес страницы на вашей стороне, на которую вернется пользователь (в параметре
return_url
).
Пример запроса
cURL
PHP
Python
curl https://payment.yandex.net/api/v3/payments \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "2.00",
          "currency": "RUB"
        },
        "payment_method_data": {
          "type": "bank_card"
        },
        "confirmation": {
          "type": "redirect",
          "return_url": "https://www.merchant-website.com/return_url"
        },
        "description": "Заказ №72"
      }'
Шаг 2. Перенаправьте пользователя на страницу для ввода данных (ссылка на нее придет в параметре
confirmation_url
).
Пример созданного объекта платежа
JSON
{
  "id": "22c5d173-000f-5000-9000-1bdf241d4651",
  "status": "pending",
  "paid": false,
  "amount": {
    "value": "2.00",
    "currency": "RUB"
  },
  "confirmation": {
    "type": "redirect",
    "return_url": "https://www.merchant-website.com/return_url",
    "confirmation_url": "https://money.yandex.ru/payments/external/confirmation?orderId=22c5d173-000f-5000-9000-1bdf241d4651"
  },
  "created_at": "2018-06-27T16:39:15.865Z",
  "description": "Заказ №72",
  "metadata": {},
  "payment_method": {
    "type": "bank_card",
    "id": "22c5d173-000f-5000-9000-1bdf241d4651",
    "saved": false
  },
  "recipient": {
    "account_id": "100001",
    "gateway_id": "1000001"
  },
  "refundable": false,
  "requestor": {
    "type": "merchant",
    "account_id": "100001"
  },
  "test": false
}
Шаг 3. Дождитесь успешного завершения платежа: подождите, когда придет уведомление от Яндекс.Кассы, или периодически отправляйте запросы, чтобы получить информацию о платеже .
 Оплата с вводом данных на вашей стороне
Чтобы использовать эту возможность, вам нужно получить сертификат на соответствие требованиям PCI DSS.
Шаг 1. Создайте платеж , в объекте
payment_method_data
передайте тип
bank_card
и объект
card
с данными банковской карты, в объекте
confirmation
передайте тип
redirect
и адрес страницы на вашей стороне, на которую пользователь вернется после оплаты (в параметре
return_url
).
Пример запроса
cURL
PHP
Python
curl https://payment.yandex.net/api/v3/payments \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "2.00",
          "currency": "RUB"
        },
        "payment_method_data": {
          "type": "bank_card",
          "card": {
            "cardholder": "MR CARDHOLDER",
            "csc": "213",
            "expiry_month": "01",
            "expiry_year": "2020",
            "number": "5469550010800081"
          }
        },
        "confirmation": {
          "type": "redirect",
          "return_url": "https://www.merchant-website.com/return_url"
        },
        "description": "Заказ №72"
      }'
Шаг 2. Перенаправьте пользователя на страницу аутентификации по 3-D Secure (ссылка на нее придет в параметре
confirmation_url
).
Пример созданного объекта платежа
JSON
{
  "id": "22c5d173-000f-5000-9000-1bdf241d4651",
  "status": "pending",
  "paid": false,
  "amount": {
    "value": "2.00",
    "currency": "RUB"
  },
  "confirmation": {
    "type": "redirect",
    "confirmation_url": "<Ссылка для прохождения 3-D Secure>"
  },
  "created_at": "2019-03-14T15:20:35.394Z",
  "description": "Заказ №72",
  "metadata": {},
  "payment_method": {
    "type": "bank_card",
    "id": "22c5d173-000f-5000-9000-1bdf241d4651",
    "saved": false
  },
  "recipient": {
    "account_id": "100001",
    "gateway_id": "1000001"
  },
  "refundable": false,  
  "requestor": {
    "type": "merchant",
    "account_id": "100001"
  },
  "test": false
}
Шаг 3. Дождитесь успешного завершения платежа: подождите, когда придет уведомление от Яндекс.Кассы, или периодически отправляйте запросы, чтобы получить информацию о платеже .
 Управление 3-D Secure
Нужно согласовать с менеджером Яндекс.Кассы.
Вы можете отключить 3-D Secure, тогда передавать объект
confirmation
не нужно. Если вы хотите запросить прохождение 3-D Secure пользователем, в объекте
confirmation
передайте тип
redirect
, адрес страницы на вашей стороне, на которую пользователь вернется после оплаты (в параметре
return_url
) и параметр
enforce
со значением
true
.
 Что почитать еще
Основы проведения платежейНеуспешные платежиОплата по 54-ФЗТестирование