Автоплатежи
API Яндекс.Кассы позволяет сохранять способ оплаты (со всеми платежными данными) при платежах из кошелька в Яндекс.Деньгах или банковской картой и использовать для повторных списаний.
В этом случае пользователю нужно подтвердить только первый платеж, последующие списания будут безакцептными. Пользователь в любой момент времени может отозвать свое разрешение на повторы платежей.
 Особенности
По умолчанию автоплатежи работают только в тестовом магазине. Если хотите использовать их в вашем реальном магазине, напишите менеджеру Яндекс.Кассы.
 Сохранение способа оплаты
Чтобы сохранить способ оплаты, нужно выполнить платеж (принять оплату от пользователя).
Создайте запрос на оплату . Передайте в запросе
save_payment_method
со значением
true
(это значит, что нужно сохранить способ оплаты). Платеж можно проводить любым способом: с вводом данных карты или кошелька на странице Яндекс.Кассы, с передачей данных карты или по платежному токену.
Пример проведения платежа с сохранением способа оплаты
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",
        "save_payment_method": "true"
      }'
После того как платеж перейдет в статус
succeeded
(или
waiting_for_capture
если это платеж в две стадии), значение
payment_method.saved
изменится на 
true
. Это значит, что вы можете использовать идентификатор способа оплаты
payment_method.id
для следующих безакцептных платежей.
Пример успешного платежа с сохранением способа оплаты
JSON
{
  "id": "22e18a2f-000f-5000-a000-1db6312b7767",
  "status": "succeeded",
  "paid": true,
  "amount": {
    "value": "2.00",
    "currency": "RUB"
  },
  "authorization_details": {
    "rrn": "10000000000",
    "auth_code": "000000"
  },
  "captured_at": "2018-07-18T17:20:50.825Z",
  "created_at": "2018-07-18T17:18:39.345Z",
  "description": "Заказ №72",
  "metadata": {},
  "payment_method": {
    "type": "bank_card",
    "id": "22e18a2f-000f-5000-a000-1db6312b7767",
    "saved": true,
    "card": {
      "first6": "555555",
      "last4": "4444",
      "expiry_month": "07",
      "expiry_year": "2022",
      "card_type": "MasterCard",
      "issuer_country": "RU",
      "issuer_name": "Sberbank"
    },
    "title": "Bank card *4444"
  },
  "refundable": true,
  "refunded_amount": {
    "value": "0.00",
    "currency": "RUB"
  },
  "requestor": {
    "type": "merchant",
    "account_id": "100001"
  },
  "recipient": {
    "account_id": "100001",
    "gateway_id": "1000001"
  },
  "test": false
}
 Проведение платежа сохраненным способом оплаты
Создайте запрос на оплату  из кошелька или банковской картой. Передайте идентификатор сохраненного способа оплаты в параметре
payment_method_id
(вы получили его в ответе на успешный запрос, при проведении которого сохранили данные карты). Такой платеж не потребует дополнительного подтверждения от пользователя.
Пример проведения платежа сохраненным способом оплаты
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_id": "<Идентификатор сохраненного способа оплаты>",
        "description": "Заказ №105"
      }'
 Что почитать еще
Проведение платежейСпособы оплаты