Продажа авиабилетов
При продаже авиабилетов вы можете передавать информацию о билетах, перелетах и пассажирах (так называемая «длинная запись»). Дополнительные данные используются только при оплате банковской картой, они нужны, чтобы снизить вероятность мошеннических операций.
Создание платежа с дополнительными данными
Информация о пассажирах и билетах передается при создании платежа  — в объекте
airline
. В этот момент номер билета еще не известен, поэтому указывается номер брони (
booking_reference
).
Информация о пассажирах передается в объекте
passengers
(не больше 4 пассажиров в одном платеже).
Информация о перелетах передается в объекте
legs
(не больше 4 перелетов в одном платеже). Перелет — это фрагмент маршрута. Если пользователь летит без пересадки, это один перелет. Если есть одна пересадка — два перелета.
Пример запроса на создание платежа за авиабилеты
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": "10000.00",
          "currency": "RUB"
        },
        "payment_method_data": {
          "type": "bank_card"
        },
        "confirmation": {
          "type": "redirect",
          "return_url": "https://www.merchant-website.com/return_url"
        },
        "description": "Заказ №72",
        "airline": {
          "booking_reference": "IIIKRV",
          "passengers": [
            {
              "first_name": "SERGEI",
              "last_name": "IVANOV"
              }
            ],
          "legs": [
            {
              "departure_airport": "LED",
              "destination_airport": "AMS",
              "departure_date": "2018-06-20"
            }
          ]
        }
      }'
Подтверждение платежа
Когда платеж переходит в статус
waiting_for_capture
, можно его подтвердить (если всё в порядке и вы готовы принять оплату). При подтверждении номер брони передавать не нужно, вместо него необходимо передать номер билета (
ticket_number
).
Пример запроса на подтверждение платежа за авиабилеты
cURL
PHP
Python
curl https://payment.yandex.net/api/v3/{payment_id}/capture \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "10000.00",
          "currency": "RUB"
        },
        "airline": {
          "booking_reference": "IIIKRV",
          "ticket_number": "5554916004417",
          "passengers": [
            {
              "first_name": "SERGEI",
              "last_name": "IVANOV"
              }
            ],
          "legs": [
            {
              "departure_airport": "LED",
              "destination_airport": "AMS",
              "departure_date": "2018-06-20"
            }
          ]
        }
      }'
Что почитать еще
Проведение платежейОплата по 54-ФЗ