YooMoney API
Old versions of the API
Sign up for YooMoney
YooMoney for Shopping
  • Payment method type in the API: yoo_money
  • Confirmation scenario: Redirect
  • Payment term: 1 hour
  • Holding: 7 days (6 hours if the payment is made via a saved method)
  • 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 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
  "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 .
See also