YooMoney API
Guides
Old versions of the API
Help
Sign up for YooMoney
Пополнение банковского счета, открытого в вашей системе
Если пользователь пополняет свой банковский счет, открытый в вашей системе, по требованию НСПК при проведении платежа с оплатой банковской картой вам необходимо передавать данные пополняемого счета.
В этой статье описано, как отправлять данные счета при проведении обычных платежей и автоплатежей по API ЮKassa.
 
Как это работает
Если пользователь пополняет счет, открытый в вашей системе, в запросе на создание платежа  дополнительно передайте номер пополняемого счета и БИК банка.
Данные счета нужно отправлять в каждом запросе на создание платежа для любого сценария интеграции.
ЮKassa отправит дополнительные данные в НСПК, если выбрана оплата банковской картой. Если в процессе платежа пользователь выберет другой способ оплаты (для сценариев интеграции Виджет ЮKassa и Умный платеж), дополнительные данные будут проигнорированы и ЮKassa проведет платеж без них.
При подтверждении и отмене платежа данные счета передавать не нужно.
Если вы проводите автоплатежи, номер счета и БИК банка не сохраняются вместе со способом оплаты, поэтому их нужно отправлять в каждом запросе на создание повторного платежа.
Создание платежа
Создайте платеж : отправьте ЮKassa запрос с данными для аутентификации, ключом идемпотентности, суммой и валютой платежа и данными для оплаты выбранным способом. Дополнительно в объекте fraud_data передайте merchant_customer_bank_account с параметрами:
  • account_number — номер банковского счета. Пример: 10000000000000000001
  • bic — БИК банка, в котором открыт счет. Пример: 044030653
В объекте платежа  объект fraud_data с данными счета не возвращается.
Пример запроса на создание платежа с передачей данных банковского счета (на примере оплаты банковской картой)
cURL
PHP
Python
curl https://api.yookassa.ru/v3/payments \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "100.00",
          "currency": "RUB"
        },
        "capture": true,
        "payment_method_data": {
          "type": "bank_card"
        },
        "confirmation": {
          "type": "redirect",
          "return_url": "https://www.example.com/return_url"
        },
        "description": "Пополнение счета 10000000000000000001",
        "fraud_data": {
          "merchant_customer_bank_account": {
            "account_number": "10000000000000000001",
            "bic": "044030653"
          }
        }     
      }'
Передача данных счета при автоплатежах
При проведении автоплатежей данные пополняемого счета можно передать при платеже с сохранением способа оплаты и при повторных платежах.
Данные счета не сохраняются вместе со способом оплаты, поэтому их нужно отправлять при каждом повторном платеже. Сохраненный способ оплаты можно использовать для любых других платежей помимо пополнения счета.
Если вы пополняете счет и хотите сохранить способ оплаты, в запросе дополнительно передайте данные счета в объекте merchant_customer_bank_account с параметрами: account_number — номер пополняемого счета, bic — БИК банка.
Пример запроса на создание платежа с сохранением способа оплаты и передачей данных банковского счета (на примере оплаты банковской картой)
cURL
PHP
Python
curl https://api.yookassa.ru/v3/payments \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "100.00",
          "currency": "RUB"
        },
        "capture": true,
        "payment_method_data": {
          "type": "bank_card"
        },
        "confirmation": {
          "type": "redirect",
          "return_url": "https://www.example.com/return_url"
        },
        "description": "Пополнение счета 10000000000000000001",
        "save_payment_method": "true",
        "fraud_data": {
          "merchant_customer_bank_account": {
            "account_number": "10000000000000000001",
            "bic": "044030653"
          }
        }
      }'
Если вы хотите при пополнении счета провести повторный платеж, передайте в запросе идентификатор сохраненного способа оплаты и данные пополняемого счета.
Пример запроса на создание повторного платежа с сохраненным способом оплаты и передачей данных банковского счета (на примере оплаты банковской картой)
cURL
PHP
Python
curl https://api.yookassa.ru/v3/payments \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "100.00",
          "currency": "RUB"
        },
        "capture": true,
        "payment_method_id": "<Идентификатор сохраненного способа оплаты>",
        "description": "Пополнение счета 10000000000000000001",
        "fraud_data": {
          "merchant_customer_bank_account": {
            "account_number": "10000000000000000001",
            "bic": "044030653"
          }
        }
      }'
Что почитать еще