YooMoney API
Guides
Old versions of the API
Help
Sign up for YooMoney
Чеки при возвратах
В этой статье описано, как сформировать чек при проведении возврата.
 
Как это работает
Для чека возврата прихода, как и для чека прихода, нужны данные о товарах или услугах и контактные данные пользователя.
Проведение возврата
При полном возврате (возврате всей суммы платежа) данные передавать не нужно — ЮKassa возьмет эти данные из запроса на создание платежа.
При частичном возврате вы передаете данные для чека в объекте receipt в том же запросе, что и данные для возврата.
Проведение возврата
Статус регистрации чека
Статус регистрации чека вернется в объекте возврата  в параметре receipt_registration. Также статус отображается в личном кабинете ЮKassa в истории платежей.
Если чек зарегистрировать не удалось (статус чека canceled) или если в течение трех дней с момента создания возврата чек не сформируется (чек останется в статусе pending), обратитесь в техническую поддержку ЮKassa.
Полный возврат
Если вы делаете полный возврат, данные для чека передавать не нужно.
Для возврата отправьте стандартный запрос на создание возврата . Объект receipt не передавайте.
Пример запроса полный возврат с данными для чека
cURL
PHP
Python
curl https://api.yookassa.ru/v3/refunds \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "1250.00",
          "currency": "RUB"
        },
        "payment_id": "<Идентификатор возвращаемого платежа>"
      }'
При возврате ЮKassa автоматически создаст чек возврата на основе данных, которые вы передавали в запросе на создание платежа.
В ответ вернется созданный объект возврата . Актуальный статус регистрации чека возврата прихода можно узнать по значению параметра receipt_registration.
Частичный возврат
Если вы делаете частичный возврат, в запросе на создание возврата  нужно передать объект receipt с данными для чека возврата. Данные для чека аналогичны тем, которые вы передавали в запросе на создание платежа.
Пример запроса на частичный возврат с данными для чека
cURL
PHP
Python
curl https://api.yookassa.ru/v3/refunds \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "payment_id": "<Идентификатор возвращаемого платежа>",
        "amount": {
          "value": "500.00",
          "currency": "RUB"
        },
        "receipt": {
          "customer": {
            "email": "user@example.com"
          },
          "items": [
            {
              "description": "Топ трикотажный",
              "quantity": "1.00",
              "amount": {
                "value": "500.00",
                "currency": "RUB"
              },
              "vat_code": "4",
              "payment_mode": "full_prepayment",
              "payment_subject": "marked",
              "mark_mode": 0,
              "mark_code_info":
              {
                "gs_1m": "DFGwNDY0MDE1Mzg2NDQ5MjIxNW9vY2tOelDFuUFwJh05MUVFMDYdOTJXK2ZaMy9uTjMvcVdHYzBjSVR3NFNOMWg1U2ZLV0dRMWhHL0UrZi8ydkDvPQ=="
              },
              "measure": "piece"
            }
          ]
        }
      }'
При возврате ЮKassa создаст чек возврата на основе данных, которые вы передавали в запросе на создание частичного возврата.
В ответ вернется созданный объект возврата . Актуальный статус регистрации чека возврата прихода можно узнать по значению параметра receipt_registration.
Памятка по подготовке данных для чеков
Проверьте, что вы корректно передаете данные для чеков в объекте receipt:
  • объект receipt есть только в запросах на частичный возврат платежа;
  • переданы все обязательные параметры;
  • во всех параметрах непустые значения;
  • значения параметров переданы в нужном формате;
  • количество товара не превышает количество, указанное в зарегистрированном чеке;
  • сумма возврата в amount совпадает с общей суммой возвращаемых товаров в объекте receipt (чтобы определить сумму возвращаемых товаров, для каждого товара умножьте quantity на amount и просуммируйте получившиеся значения по всем товарам);
  • все суммы в чеке положительные.
Если что-то будет не так, ЮKassa вернет ошибку.
See also