Old versions of the API
Help
Sign up for YooMoney
YooMoney for Shopping
Specifics
  • Payment method type in the API: yoo_money
  • Confirmation scenario: Redirect
  • Payment term: 1 hour
  • Holding: 7 days, full and partial payment capture is available, with some specifics
  • Code in reports: PC
  • Refund: yes, full and partial
  • Refund processing time: instantly
  • Recurring payments: yes
  • Limits: the minimum payment amount is 1 ruble, and the maximum amount can be from 15,000 to 250,000 rubles (it depends on the wallet status), there are additional restrictions
Integration scenarios
Ready-made solutions:
Payment with confirmation at the YooMoney website
Step 1. Create a payment  with the yoo_money type in the payment_method_data object, and the redirect type as well as the URL of a page on your side for redirecting the user after the payment (in the return_url parameter) in the confirmation object.
Example of request
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"
        },
        "payment_method_data": {
          "type": "yoo_money"
        },
        "confirmation": {
          "type": "redirect",
          "return_url": "https://www.example.com/return_url"
        },
        "description": "Order No. 72"
      }'
Step 2. Redirect the user to the ooMoney’s page (you will receive the URL in the confirmation_url parameter). On this page, the user will enter the bank card details and confirm the payment.
Example of a created payment object
JSON
{
  "id": "22c5d0f0-000f-5000-8000-13ece77bc6c1",
  "status": "pending",
  "paid": false,
  "amount": {
    "value": "2.00",
    "currency": "RUB"
  },
  "confirmation": {
    "type": "redirect",
    "confirmation_url": "https://yoomoney.ru/payments/internal/confirmation?orderId=22c5d0f0-000f-5000-8000-13ece77bc6c1"
  },
  "created_at": "2018-06-27T16:37:04.513Z",
  "description": "Order No. 72",
  "metadata": {},
  "payment_method": {
    "type": "yoo_money",
    "id": "22c5d0f0-000f-5000-8000-13ece77bc6c1",
    "saved": false
  },
  "recipient": {
    "account_id": "100500",
    "gateway_id": "100700"
  },
  "refundable": false,
  "test": false
}
If a payment via wallet or linked card doesn't go through (for example, if there wasn't enough money), YooMoney will display an error message to the user and prompt them to try again.
Step 3. Wait for the payment to be successfully completed: you will receive a notification from YooMoney, or you can send periodic requests for payment information .
Specifics of processing two-stage payments
For two-stage payments from the YooMoney wallet, you can debit the payment amount fully or partially. There is an exception: if you make a recurring payment, you can only debit the full amount.
Specific requirements
When you add money to e-wallets, bank accounts, and phone balance, you need to send the payment receiver's details in the request.
See also
Payment process