Возврат оплаты покупателю
Если в процессе покупатель и продавец захотят расторгнуть сделку, вы можете вернуть оплату покупателю. Комиссии за проведение возврата нет.
Вернуть платежи можно только в статусе
succeeded
. Сделать возврат платежа в составе сделки можно только до выплаты или до закрытия сделки. Порядок возврата платежа зависит от момента перечисления вам вознаграждения (
fee_moment
в сделке):
 
Возвраты в сценарии «Вознаграждение после успешного платежа»
Если при создании сделки вы указали, что ваше вознаграждение нужно перечислять после успешного платежа (
fee_moment=payment_succeeded
), вернуть покупателю вы сможете только ту сумму, которая предназначалась продавцу. Возврат можно сделать всей суммы или только ее части. Частичных возвратов может быть несколько.
 
Возврат всей суммы
Чтобы вернуть всё вознаграждение продавца, в запросе на создание возврата  передайте в параметре
payment_id
уникальный идентификатор платежа, в объектах
amount
и 
deal
 — всю сумму вознаграждения продавца.
Сумма в объекте
deal
должна совпадать с суммой в объекте
amount
.
Пример запроса на полный возврат вознаграждения продавца
cURL
curl https://api.yookassa.ru/v3/refunds \
    -X POST \
    -u <Идентификатор магазина>:<Секретный ключ> \
    -H 'Idempotence-Key: <Ключ идемпотентности>' \
    -H 'Content-Type: application/json' \
    -d '{
          "amount": {
            "value": "800.00",
            "currency": "RUB"
          },
          "deal": {
            "refund_settlements": [
              {
                "type": "payout",
                "amount": {
                  "value": "800.00",
                  "currency": "RUB"
                }
              }
            ]
          },
          "payment_id": "2855940e-000f-5000-9000-1ef78d597562",
          "description": "Возврат заказа №37"
        }'
В ответ ЮKassa вернет созданный объект возврата . В нём также будет указан идентификатор сделки, в рамках которой возвращали платеж.
Пример тела ответа
JSON
{
    "id": "28618525-0015-5000-9000-1e336d42672e",
    "status": "succeeded",
    "amount": {
        "value": "800.00",
        "currency": "RUB"
    },
    "created_at": "2021-06-21T16:48:36.804Z",
    "deal": {
        "id": "dl-285e5ee7-0022-5000-8000-01516a44b147",
        "refund_settlements": [{
            "type": "payout",
            "amount": {
                "value": "800.00",
                "currency": "RUB"
            }
        }]
    },
    "description": "Возврат заказа №37",
    "payment_id": "2855940e-000f-5000-9000-1ef78d597562"
}
ЮKassa вернет покупателю всю сумму, которая предназначалась продавцу, и закроет сделку. Баланс сделки после возврата станет нулевым.
 
Возврат части суммы
Чтобы вернуть часть вознаграждения продавца, в запросе на создание возврата  передайте параметр
payment_id
с уникальным идентификатором платежа, в объектах
amount
и 
deal
 — часть вознаграждения продавца, которую хотите вернуть.
Важно учесть:
  • Сумма в объекте
    deal
    должна совпадать с суммой в объекте
    amount
    .
  • После возврата на балансе сделки должна остаться сумма, достаточная для выплаты вознаграждения продавцу, иначе выплату сделать не получится. Подробнее о лимитах выплат
Пример запроса на частичный возврат вознаграждения продавца
cURL
curl https://api.yookassa.ru/v3/refunds \
    -X POST \
    -u <Идентификатор магазина>:<Секретный ключ> \
    -H 'Idempotence-Key: <Ключ идемпотентности>' \
    -H 'Content-Type: application/json' \
    -d '{
          "amount": {
            "value": "200.00",
            "currency": "RUB"
          },
          "deal": {
            "refund_settlements": [
              {
                "type": "payout",
                "amount": {
                  "value": "200.00",
                  "currency": "RUB"
                }
              }
            ]
          },
          "payment_id": "2855940e-000f-5000-9000-1ef78d597562",
          "description": "Возврат заказа №37"
        }'
В ответ ЮKassa вернет созданный объект возврата .
Пример тела ответа
JSON
{
    "id": "28618525-0015-5000-9000-1e336d42672e",
    "status": "succeeded",
    "amount": {
        "value": "200.00",
        "currency": "RUB"
    },
    "created_at": "2021-06-21T16:48:36.804Z",
    "deal": {
        "id": "dl-285e5ee7-0022-5000-8000-01516a44b147",
        "refund_settlements": [{
            "type": "payout",
            "amount": {
                "value": "200.00",
                "currency": "RUB"
            }
        }]
    },
    "description": "Возврат заказа №37",
    "payment_id": "2855940e-000f-5000-9000-1ef78d597562"
}
ЮKassa вернет покупателю указанную часть оплаты и уменьшит баланс сделки и сумму выплаты продавцу на сумму возврата.
 
Возвраты в сценарии «Вознаграждение при закрытии сделки»
Если вознаграждение вы собираетесь получить при закрытии сделки (
fee_moment=deal_closed
), то вернуть покупателю вы сможете весь платеж, включая ваше вознаграждение. Вернуть можно всю сумму или только ее часть. Частичных возвратов может быть несколько.
Комиссия ЮKassa списывается безвозвратно. Если вы хотите вернуть платеж полностью, ЮKassa возместит эквайринговую комиссию с баланса вашего магазина. В этом случае баланс сделки в объекте сделки может стать отрицательным. Если на балансе магазина платформы недостаточно средств для возврата комиссии ЮKassa, вернуть платеж не получится.
 
Возврат всей суммы
Чтобы вернуть всю сумму платежа, в запросе на создание возврата  передайте параметр
payment_id
с уникальным идентификатором платежа и объект
amount
с суммой возвращаемого платежа.
Если используете решение ЮKassa для работы по 54-ФЗ, запрос на создание возврата нужно передавать без объекта
receipt
. Чтобы сформировать чек возврата прихода для вашего вознаграждения, отправьте ЮKassa отдельный запрос.
Пример запроса на полный возврат платежа
cURL
curl https://api.yookassa.ru/v3/refunds \
    -X POST \
    -u <Идентификатор магазина>:<Секретный ключ> \
    -H 'Idempotence-Key: <Ключ идемпотентности>' \
    -H 'Content-Type: application/json' \
    -d '{
          "amount": {
            "value": "1000.00",
            "currency": "RUB"
          },
          "payment_id": "2855940e-000f-5000-9000-1ef78d597562",
          "description": "Возврат заказа №37"
        }'
В ответ ЮKassa вернет созданный объект возврата .
Пример объекта возврата
JSON
{
    "id": "28618906-0015-5000-a000-1555d6d94c48",
    "status": "succeeded",
    "amount": {
        "value": "1000.00",
        "currency": "RUB"
    },
    "created_at": "2021-06-21T17:05:10.506Z",
    "deal": {
        "id": "dl-285e5ee7-0022-5000-8000-01516a44b147",
        "refund_settlements": [{
            "type": "payout",
            "amount": {
                "value": "800.00",
                "currency": "RUB"
            }
        }]
    },
    "description": "Возврат заказа №37",
    "payment_id": "2855940e-000f-5000-9000-1ef78d597562"
}
Если возврат прошел успешно, ЮKassa вернет покупателю всю оплату, включая эквайринговую комиссию — ее ЮKassa спишет с баланса вашего магазина, баланс сделки при этом станет отрицательным. После этого ЮKassa закроет сделку.
Пример объекта сделки после полного возврата платежа
JSON
{
  "id": "dl-285e5ee7-0022-5000-8000-01516a44b147",
  "status": "closed",
  "balance": {
    "value": "-45.00",
    "currency": "RUB"
  },
  "payout_balance":{
     "value":"0.00",
     "currency":"RUB"
  },
  "created_at": "2021-06-18T07:28:39.390497Z",
  "type": "safe_deal",
  "fee_moment": "deal_closed",
  "metadata": {
    "order_id": "37"
  }
  "description":"SAFE_DEAL 123554642-2432FF344R"
}
 
Возврат части суммы
Чтобы вернуть только часть платежа, в запросе на создание возврата  передайте параметр
payment_id
с уникальным идентификатором платежа, объект
amount
с той частью общей суммы, которую хотите вернуть, и объект
deal
с информацией о том, как уменьшить вознаграждение продавца.
Важно учесть:
  • После возврата на балансе сделки должна остаться сумма, достаточная для выплаты вознаграждения продавцу, иначе выплату сделать не получится. Подробнее о лимитах выплат
  • Если используете решение ЮKassa для работы по 54-ФЗ и возвращаете часть вашего вознаграждения, запрос на создание возврата нужно передавать без объекта
    receipt
    . Чтобы сформировать чек возврата прихода, отправьте ЮKassa отдельный запрос.
Пример запроса на частичный возврат платежа
cURL
curl https://api.yookassa.ru/v3/refunds \
    -X POST \
    -u <Идентификатор магазина>:<Секретный ключ> \
    -H 'Idempotence-Key: <Ключ идемпотентности>' \
    -H 'Content-Type: application/json' \
    -d '{
            "amount": {
              "value": "200.00",
              "currency": "RUB"
            },
            "deal": {
                "refund_settlements": [
                  "type": "payout",
                  "amount": {
                    "value": "160.00",
                    "currency": "RUB"
                   }
                ]
            },
            "payment_id": "2855940e-000f-5000-9000-1ef78d597562",
            "description": "Возврат заказа №37"
        }'
В ответ ЮKassa вернет созданный объект возврата .
Пример тела ответа
JSON
{
  "id": "27dd7a4f-0015-5000-8000-1e8caf204668",
  "status": "succeeded",
  "amount": {
    "value": "200.00",
    "currency": "RUB"
  },
  "created_at": "2020-02-12T13:03:11.398Z",
  "description": "Возврат заказа №37",
  "deal": {
    "id": "dl-285e5ee7-0022-5000-8000-01516a44b147",
    "refund_settlements": [
        "type": "payout",
        "amount": {
           "value": "160.00",
           "currency": "RUB"
        }
     ]
  },
  "payment_id": "2855940e-000f-5000-9000-1ef78d597562"
}
ЮKassa вернет покупателю указанную часть оплаты и уменьшит баланс сделки и сумму выплаты продавцу на сумму возврата.

Есть вопросы или замечания по документации?

Можем созвониться и обсудить их лично: мы поможем вам разобраться, а вы нам — понять, что тут нужно улучшить. Для этого оставьте свои контакты и выберите время.
Да, хочу обсудить
 
Что почитать еще
Основы работы с APIТестированиеОтправка чеков в Безопасной сделкеРеестры возвратов