Old versions of the API
Help
Sign up for YooMoney
Adding money to e-wallets, bank accounts, and phone balance
By law, when adding money to e-wallet, bank account, or phone balance, a payment receiver (an owner of the means of payment used to recieve the money) must be verified. For this purpose, when processing a payment, you need to submit the receiver's details (e.g. a wallet number) to YooMoney.

If you use an old solution and send the details in a fraud_data object, please read these articles:
  • Adding money to phone balance
  • Adding money to bank account created in your system

How it works
When a user starts adding money to a wallet, account, or phone balance, you create a payment in YooMoney and send the receiver's details. They need to be added to the request each time you process a payment or autopayment (a payment made using a saved payment method). The details are only required for a payment creation request, other requests are formed in a standard way.
If a user is paying by bank card, via Mir Pay, or YooMoney (using wallet or cards linked to it), the receiver's details need to be specified in the request. In other cases, YooMoney will skip the details.
To process the payment, you can select any integration scenario:
Learn more about processing payments:
Adding money to e-wallet
Create a payment : send YooMoney a request with information for authentication, the idempotency key, amount and currency of the payment as well as payment details for the selected integration scenario. Add a receiver object in the request and specify the following details:
  • a payment receiver code digital_wallet;
  • a wallet number where money should be added.
Example of a request for creating a payment when adding money to e-wallet (based on a payment via a bank card)
cURL
PHP
Python
curl https://api.yookassa.ru/v3/payments \
  -X POST \
  -u <Shop ID>:<Secret Key> \
  -H 'Idempotence-Key: <Idempotence Key>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "2.00",
          "currency": "RUB"
        },
        "capture": true,
        "payment_method_data": {
          "type": "bank_card"
        },
        "confirmation": {
          "type": "redirect",
          "return_url": "https://www.example.com/return_url"
        },
        "description": "Order No. 72",
        "receiver": {
          "type": "digital_wallet",
          "account_number": "4100116075156746"
        }
      }'
The receiver object in the payment object  is not returned.
Adding money to bank account created in your system
Create a payment : send YooMoney a request with information for authentication, the idempotency key, amount and currency of the payment as well as payment details for the selected integration scenario. Add a receiver object in the request and specify the following details:
  • a payment receiver code bank_account;
  • a bank account number where money should be added;
  • BIC of the bank where the account was created.
Example of a request for creating a payment when adding money to bank account (based on a payment via a bank card)
cURL
PHP
Python
curl https://api.yookassa.ru/v3/payments \
  -X POST \
  -u <Shop ID>:<Secret Key> \
  -H 'Idempotence-Key: <Idempotence Key>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "2.00",
          "currency": "RUB"
        },
        "capture": true,
        "payment_method_data": {
          "type": "bank_card"
        },
        "confirmation": {
          "type": "redirect",
          "return_url": "https://www.example.com/return_url"
        },
        "description": "Order No. 72",
        "receiver": {
          "type": "bank_account",
          "account_number": "10000000000000000001",
          "bic": "044030653"
        }
      }'
The receiver object in the payment object  is not returned.
Adding money to phone balance
Create a payment : send YooMoney a request with information for authentication, the idempotency key, amount and currency of the payment as well as payment details for the selected integration scenario. Add a receiver object in the request and specify the following details:
  • a payment receiver code mobile_balance;
  • a phone number balance where money should be added.
Example of a request for creating a payment when adding money to phone balance (based on a payment via a bank card)
cURL
PHP
Python
curl https://api.yookassa.ru/v3/payments \
  -X POST \
  -u <Shop ID>:<Secret Key> \
  -H 'Idempotence-Key: <Idempotence Key>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "2.00",
          "currency": "RUB"
        },
        "capture": true,
        "payment_method_data": {
          "type": "bank_card"
        },
        "confirmation": {
          "type": "redirect",
          "return_url": "https://www.example.com/return_url"
        },
        "description": "Order No. 72",
        "receiver": {
          "type": "mobile_balance",
          "phone": "79000000000"
        }
      }'
The receiver object in the payment object  is not returned.
See also
Adding money to bank account (using fraud_data)