# ЮKassa: POST /receipts — Создание чека

Используйте этот запрос при оплате с соблюдением требований 54-ФЗ, чтобы создать чек зачета предоплаты. Если вы работаете по сценарию «Сначала платеж, потом чек», в запросе также нужно передавать данные для формирования чека прихода и чека возврата прихода.

Документация: https://yookassa.ru/developers/api#create_receipt

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `Idempotence-Key` | header | string | да | Ключ идемпотентности. Рекомендуется использовать строку вида UUID v7 |
| `type` | body | string (payment, refund) | да | Тип чека в онлайн-кассе. Возможные значения: payment (приход), refund (возврат прихода). |
| `payment_id` | body | string | нет | Идентификатор платежа в ЮKassa для отображения информации о чеке в личном кабинете; на платеж не влияет. Обязателен при создании чека платежа (тип чека: payment, статус платежа: waiting_for_capture или succeeded) и чека возврата для отмененных или частично подтвержденных платежей (тип чека: refund, статус платежа: canceled или succeeded). Для одного платежа можно создать до 50 чеков. |
| `refund_id` | body | string | нет | Идентификатор возврата в ЮKassa для отображения информации о чеке в личном кабинете. Обязателен при создании чека возврата (тип чека: refund, статус платежа: succeeded). Для одного возврата можно создать до 50 чеков. |
| `customer` | body | object | да | Информация о пользователе. Необходимо указать как минимум контактные данные: для Чеков от ЮKassa — электронную почту (customer.email), в остальных случаях — электронную почту (customer.email) или номер телефона (customer.phone). |
| `customer.full_name` | body | string | нет | Для юрлица — название организации, для ИП и физического лица — ФИО. Если у физлица отсутствует ИНН, в этом же параметре передаются паспортные данные. Не более 256 символов. Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу Orange Data, Атол Онлайн. |
| `customer.inn` | body | string | нет | ИНН пользователя (10 или 12 цифр). Если у физического лица отсутствует ИНН, необходимо передать паспортные данные в параметре full_name. Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу Orange Data, Атол Онлайн. |
| `customer.email` | body | string | нет | Адрес электронной почты пользователя для отправки чека. Обязательный параметр, если вы используете Чеки от ЮKassa или стороннюю онлайн-кассу и не передаете параметр phone. |
| `customer.phone` | body | string | нет | Телефон пользователя для отправки чека. Указывается в формате ITU-T E.164, например 79000000000. Обязательный параметр, если не передан email. |
| `items` | body | object[] | да | Список товаров в чеке: не более 80 позиций для Чеков от ЮKassa, не более 100 позиций для сторонних онлайн-касс. |
| `internet` | body | boolean | нет | Признак проведения платежа в интернете (тег в 54 ФЗ — 1125). Возможные значения: true — оплата прошла онлайн, через интернет (например, на вашем сайте или в приложении); false — оплата прошла офлайн, при личном взаимодействии (например, в торговой точке или при встрече с курьером). По умолчанию true; если вы принимаете платежи офлайн, передайте в запросе значение false. |
| `send` | body | boolean | да | Формирование чека в онлайн-кассе сразу после создания объекта чека. Сейчас можно передать только значение true. |
| `tax_system_code` | body | integer | нет | Система налогообложения магазина (тег в 54 ФЗ — 1055). Для сторонних онлайн-касс: обязательный параметр, если вы используете онлайн-кассу Атол Онлайн, обновленную до ФФД 1.2, или у вас несколько систем налогообложения, в остальных случаях не передается. Для Чеков от ЮKassa: параметр передавать не нужно, ЮKassa его проигнорирует. |
| `timezone` | body | integer | нет | Номер часовой зоны для адреса, по которому вы принимаете платежи (тег в 54 ФЗ — 1011). Указывается, только если в чеке есть товары, которые подлежат обязательной маркировке (в items.mark_code_info передается параметр gs_1m, short или fur). Перечень возможных значений: для Чеков от ЮKassa; для сторонних онлайн-касс. |
| `additional_user_props` | body | object | нет | Дополнительный реквизит пользователя (тег в 54 ФЗ — 1084). Можно передавать, если вы отправляете данные для формирования чека по сценарию Сначала платеж, потом чек |
| `additional_user_props.name` | body | string | нет | Наименование дополнительного реквизита пользователя (тег в 54 ФЗ — 1085). Не более 64 символов. |
| `additional_user_props.value` | body | string | нет | Значение дополнительного реквизита пользователя (тег в 54 ФЗ — 1086). Не более 234 символов. |
| `receipt_industry_details` | body | object[] | нет | Отраслевой реквизит чека (тег в 54 ФЗ — 1261). Нужно передавать, если используете ФФД 1.2. |
| `receipt_operational_details` | body | object | нет | Операционный реквизит чека (тег в 54 ФЗ — 1270). Нужно передавать, если используете ФФД 1.2. |
| `receipt_operational_details.operation_id` | body | integer | нет | Идентификатор операции (тег в 54 ФЗ — 1271). Число от 0 до 255. |
| `receipt_operational_details.value` | body | string | нет | Данные операции (тег в 54 ФЗ — 1272). |
| `receipt_operational_details.created_at` | body | string | нет | Время создания операции (тег в 54 ФЗ — 1273). Указывается по UTC и передается в формате ISO 8601. Пример: 2017-11-03T11:52:31.827Z |
| `settlements` | body | object[] | да | Перечень совершенных расчетов. |
| `on_behalf_of` | body | string | нет | Идентификатор магазина, от имени которого нужно отправить чек. Выдается ЮKassa, отображается в разделе Продавцы личного кабинета (столбец shopId). Необходимо передавать, если вы используете Сплитование платежей. |

Пример запроса:

```
{
  "customer": {
    "full_name": "Иванов Иван Иванович",
    "inn": "6321341814",
    "email": "user@yoomoney.ru",
    "phone": "79000000000"
  },
  "type": "payment",
  "send": true,
  "settlements": [
    {
      "type": "cashless",
      "amount": {
        "value": "1000.00",
        "currency": "RUB"
      }
    }
  ],
  "items": [
    {
      "description": "string",
      "quantity": 1,
      "amount": {
        "value": "1000.00",
        "currency": "RUB"
      },
      "vat_code": 0
    }
  ]
}
```

Пример ответа:

```json
{
  "id": "rt-1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
  "type": "payment",
  "status": "succeeded",
  "items": [
    {
      "description": "string",
      "quantity": 1,
      "amount": {
        "value": "1000.00",
        "currency": "RUB"
      },
      "vat_code": 0
    }
  ]
}
```

## Базовые URL

- Основной: `https://api.yookassa.ru/v3`

## Авторизация

Тип: Basic Auth

HTTP Basic Auth: имя пользователя — идентификатор магазина (shopId, раздел Настройки — Магазин) или шлюза для выплат (agentId, раздел Настройки выплат), пароль — секретный ключ (раздел Интеграция — Ключи API). Для тестового магазина ключ выпускается автоматически. Участники партнерской программы используют OAuth 2.0 и передают Bearer-токен. Секретный ключ и OAuth-токен нельзя публиковать.

```
curl https://api.yookassa.ru/v3/payments/{payment_id} \
  -u <Идентификатор магазина>:<Секретный ключ>
```

## Нюансы

- capture по умолчанию false: без capture: true платеж останется в статусе waiting_for_capture и в момент expires_at отменится автоматически, деньги вернутся покупателю.
- Для POST и DELETE обязателен заголовок Idempotence-Key — до 64 символов, рекомендуется UUID. Повтор с тем же ключом в течение 24 часов вернет результат первого запроса; для новой операции нужен новый ключ.
- HTTP 500 не значит, что операция не прошла: результат неизвестен. Повтори запрос с теми же данными и тем же ключом идемпотентности или запроси объект через GET.
- Возврат покупателя на return_url не означает успешную оплату — статус проверяй на сервере или по HTTP-уведомлению.
- Сумма — строка с точкой и двумя знаками: "1000.00", вместе с кодом валюты.
- Методы /webhooks работают только с OAuth-токеном в партнерской программе. Обычный магазин настраивает уведомления в личном кабинете.
- Вернуть платеж можно в течение трех лет с момента создания. Комиссия ЮKassa за платеж не возвращается.
- Для Чеков от ЮKassa частичная предоплата, аванс и кредит не поддерживаются.

---

Если этого недостаточно — официальная документация: https://yookassa.ru/developers/api#create_receipt
Вся интеграция одним документом: https://mcp-everything.ru/integrations/yookassa.md
