Инструкции
Помощь
Подключить ЮKassa
Отправка данных для чеков по 54-ФЗ
Если вы используете решение ЮKassa для работы по 54-ФЗ, для Безопасной сделки вам нужно формировать чеки за вознаграждение вашей платформы.
Особенности
В Безопасной сделке для отправки чеков используется сценарий Сначала платеж, потом чек.
Чек при платеже нужно формировать всегда, при возврате — только если вы возвращаете свое вознаграждение. Данные для чека нужно передавать отдельным запросом. Для одного платежа или возврата можно создать не более 15 чеков.
Для работы с чеками подключите в личном кабинете онлайн-кассу и настройте отправку данных для чека по этой инструкции.
Проведение платежа
Данные для чека рекомендуется отправлять при успешном получении оплаты от покупателя. Порядок действий зависит от того, как вы проводите платеж — в одну или в две стадии.
Платеж в одну стадию
  1. Создайте платеж в одну стадию.
  2. Когда платеж перейдет в статус succeeded, создайте чек прихода, указав полную сумму вашего вознаграждения.
Платеж в две стадии
  1. Создайте платеж в две стадии.
  2. Когда платеж перейдет в статус waiting_for_capture, создайте чек прихода, указав полную сумму вашего вознаграждения.
  3. При подтверждении платежа:
    • Если списываете полную сумму, новый чек не нужен.
    • Если списываете только часть своей комиссии, создайте два чека: чек возврата прихода с суммой вашего вознаграждения, которую оплатил покупатель, и чек прихода с новой суммой, которую вы подтверждаете.
    • Если отменяете платеж, создайте чек возврата прихода с полной суммой вашего вознаграждения.
Возврат платежа
Чек возврата нужен, только если вы используете сценарий сделки Вознаграждение при закрытии сделки и делаете возврат. Данные для чека рекомендуется отправлять сразу после успешного возврата.
  1. Создайте возврат (полный или частичный).
  2. Когда возврат перейдет в статус succeeded, создайте чек возврата прихода, указав сумму возвращаемого вознаграждения.
Чек при создании платежа
При проведении платежа сформируйте чек прихода: в запросе на создание чека  передайте payment_id с идентификатором платежа, type со значением payment и данные для чека с информацией о вашем вознаграждении, которое вы получите от проведения сделки.
Пример запроса на создание чека прихода
cURL
PHP
Python
curl https://api.yookassa.ru/v3/receipts \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "customer" : {
          "full_name": "Иванов Иван Иванович",
          "email": "user@example.com",
          "phone": "7100000000"
        },
        "payment_id": "2855940e-000f-5000-9000-1ef78d597562",
        "type": "payment",
        "send": "true",
        "items": [
          {
            "description": "Сервисный сбор",
            "quantity": "1.00",
            "amount": {
              "value": "200.00",
              "currency": "RUB"
            },
            "vat_code": "4",
            "payment_mode": "full_payment",
            "payment_subject": "service"
          }
        ],
        "settlements": [
          {
            "type": "cashless",
            "amount": {
              "value": "200.00",
              "currency": "RUB"
            }
          }
        ]
      }'
В ответ ЮKassa отправит вам объект чека  в актуальном статусе.
Пример объекта чека
JSON
{
  "id": "rt_1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
  "type": "payment",
  "payment_id": "24b94598-000f-5000-9000-1b68e7b15f3f",
  "status": "pending",
  "items": [
    {
      "description": "Сервисный сбор",
      "quantity": "1.00",
      "amount": {
        "value": "200.00",
        "currency": "RUB"
      },
      "vat_code": "4",
      "payment_mode": "full_payment",
      "payment_subject": "service"
    }
  ],
  "settlements": [
    {
      "type": "cashless",
      "amount": {
        "value": "200.00",
        "currency": "RUB"
      }
    }
  ]
}
Чеки при частичном подтверждении платежа
При частичном подтверждении платежа сформируйте два чека:
Шаг 1. Сформируйте чек возврата прихода для того вознаграждения, которое оплатил покупатель: в запросе на создание чека  передайте payment_id с идентификатором подтверждаемого платежа, параметр type со значением refund и данные для чека с информацией о вознаграждении.
Пример запроса на создание чека возврата прихода при частичном подтверждении платежа
cURL
PHP
Python
curl https://api.yookassa.ru/v3/receipts \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "customer": {
          "full_name": "Иванов Иван Иванович",
          "email": "user@example.com",
          "phone": "7100000000"
        },
        "payment_id": "2855940e-000f-5000-9000-1ef78d597562",
        "type": "refund",
        "send": "true",
        "items": [
          {
            "description": "Сервисный сбор",
            "quantity": "1.00",
            "amount": {
              "value": "200.00",
              "currency": "RUB"
            },
            "vat_code": "4",
            "payment_mode": "full_payment",
            "payment_subject": "service"
          }
        ],
        "settlements": [
          {
            "type": "cashless",
            "amount": {
              "value": "200.00",
              "currency": "RUB"
            }
          }
        ]
      }'
В ответ ЮKassa отправит вам объект чека  в актуальном статусе.
Пример объекта чека
JSON
{
  "id": "rt_1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
  "type": "payment",
  "payment_id": "24b94598-000f-5000-9000-1b68e7b15f3f",
  "status": "pending",
  "items": [
    {
      "description": "Сервисный сбор",
      "quantity": "1.00",
      "amount": {
        "value": "200.00",
        "currency": "RUB"
      },
      "vat_code": "4",
      "payment_mode": "full_payment",
      "payment_subject": "service"
    }
  ],
  "settlements": [
    {
      "type": "cashless",
      "amount": {
        "value": "200.00",
        "currency": "RUB"
      }
    }
  ]
}
Шаг 2. Сформируйте чек прихода для подтверждаемого вознаграждения: в запросе на создание чека  передайте payment_id с идентификатором подтверждаемого платежа, параметр type со значением payment и данные для чека с информацией о новом вознаграждении.
Пример запроса на создание чека прихода при частичном подтверждении платежа
cURL
PHP
Python
curl https://api.yookassa.ru/v3/receipts \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "customer" : {
          "full_name" : "Иванов Иван Иванович",
          "email" : "email@email.ru",
          "phone" : "7100000000"
        },
        "payment_id": "2855940e-000f-5000-9000-1ef78d597562",
        "type": "payment",
        "send": "true",
        "items": [
          {
            "description": "Сервисный сбор",
            "quantity": "1.00",
            "amount": {
              "value": "120.00",
              "currency": "RUB"
            },
            "vat_code": "4",
            "payment_mode": "full_payment",
            "payment_subject": "service"
          }
        ],
        "settlements": [
          {
            "type": "cashless",
            "amount": {
              "value": "120.00",
              "currency": "RUB"
            }
          }
        ]
      }'
В ответ ЮKassa отправит вам объект чека  в актуальном статусе.
Пример объекта чека
JSON
{
  "id": "rt_1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
  "type": "payment",
  "payment_id": "24b94598-000f-5000-9000-1b68e7b15f3f",
  "status": "pending",
  "items": [
    {
      "description": "Сервисный сбор",
      "quantity": "1.00",
      "amount": {
        "value": "120.00",
        "currency": "RUB"
      },
      "vat_code": "4",
      "payment_mode": "full_payment",
      "payment_subject": "service"
    }
  ],
  "settlements": [
    {
      "type": "cashless",
      "amount": {
        "value": "120.00",
        "currency": "RUB"
      }
    }
  ]
}
Чек при отмене платежа
При отмене платежа сформируйте чек возврата прихода: в запросе на создание чека  передайте payment_id с идентификатором отмененного платежа, type со значением refund и данные для чека с информацией о вашем возвращаемом вознаграждении.
Пример запроса на создание чека при отмене платежа
cURL
PHP
Python
curl https://api.yookassa.ru/v3/receipts \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "customer" : {
          "full_name": "Иванов Иван Иванович",
          "email": "user@example.com",
          "phone": "7100000000"
        },
        "payment_id": "2855940e-000f-5000-9000-1ef78d597562",
        "type": "refund",
        "send": "true",
        "items": [
          {
            "description": "Сервисный сбор",
            "quantity": "1.00",
            "amount": {
              "value": "200.00",
              "currency": "RUB"
            },
            "vat_code": "4",
            "payment_mode": "full_payment",
            "payment_subject": "service"
          }
        ],
        "settlements": [
          {
            "type": "cashless",
            "amount": {
              "value": "200.00",
              "currency": "RUB"
            }
          }
        ]
      }'
В ответ ЮKassa отправит вам объект чека  в актуальном статусе.
Пример объекта чека
JSON
{
  "id": "rt_1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
  "type": "refund",
  "payment_id": "24b94598-000f-5000-9000-1b68e7b15f3f",
  "status": "pending",
  "items": [
    {
      "description": "Сервисный сбор",
      "quantity": "1.00",
      "amount": {
        "value": "200.00",
        "currency": "RUB"
      },
      "vat_code": "4",
      "payment_mode": "full_payment",
      "payment_subject": "service"
    }
  ],
  "settlements": [
    {
      "type": "cashless",
      "amount": {
        "value": "200.00",
        "currency": "RUB"
      }
    }
  ]
}
Чеки при возврате платежа
Создайте чек возврата прихода: в запросе на создание чека  передайте refund_id с идентификатором возврата, type со значением refund, в данных для чека передайте информацию о той части вашего вознаграждения, которую вы возвращаете.
Пример запроса на создание чека при возврате вознаграждения
cURL
PHP
Python
curl https://api.yookassa.ru/v3/receipts \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "customer" : {
          "full_name" : "Иванов Иван Иванович",
          "email" : "email@email.ru",
          "phone" : "7100000000"
        },
        "payment_id": "24b94598-000f-5000-9000-1b68e7b15f3f",
        "type": "refund",
        "send": "true",
        "items": [
          {
            "description": "Сервисный сбор",
            "quantity": "1.00",
            "amount": {
              "value": "40.00",
              "currency": "RUB"
            },
            "vat_code": "4",
            "payment_mode": "full_payment",
            "payment_subject": "service"
          }
        ],
        "settlements": [
          {
            "type": "cashless",
            "amount": {
              "value": "40.00",
              "currency": "RUB"
            }
          }
        ]
      }'
В ответ ЮKassa отправит вам объект чека  в актуальном статусе.
Пример объекта чека
JSON
{
  "id": "rt_1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
  "type": "refund",
  "payment_id": "24b94598-000f-5000-9000-1b68e7b15f3f",
  "status": "pending",
  "items": [
    {
      "description": "Сервисный сбор",
      "quantity": "1.00",
      "amount": {
        "value": "40.00",
        "currency": "RUB"
      },
      "vat_code": "4",
      "payment_mode": "full_payment",
      "payment_subject": "service"
    }
  ],
  "settlements": [
    {
      "type": "cashless",
      "amount": {
        "value": "40.00",
        "currency": "RUB"
      }
    }
  ]
}
Что почитать еще
Отправка чеков в налоговую по 54-ФЗПлатежи в Безопасной сделкеВозврат платежа в Безопасной сделке