# Параметры для формирования чека

Чтобы сформировать чек требуется в [запросе на создание платежа](https://help.unitpay.ru/payments/create-payment) указать дополнительные параметры:

<table data-header-hidden><thead><tr><th width="234.33333333333331"></th><th width="145">Тип</th><th>Описание</th></tr></thead><tbody><tr><td><strong>Параметр</strong></td><td><strong>Тип</strong></td><td><strong>Описание</strong></td></tr><tr><td>customerEmail</td><td>строка</td><td>Email плательщика</td></tr><tr><td>customerPhone</td><td>число</td><td>Телефон плательщика в международном формате без "+"</td></tr><tr><td>cashItems</td><td>строка</td><td><p><strong>Позиции заказа</strong><br><br>Получается путем кодирования base64 значения в формате json. Например: <br></p><p></p><p>Получившееся значение необходимо кодировать в URL формат, чтобы ссылка на оплату открылась корректно.</p><pre class="language-javascript"><code class="lang-javascript">const cashItems = [
  { name: 'Булочка', count: 1, 
    price: 10.00, type: 'commodity' 
  },
  { name: 'Кофе', count: 2, 
    price: 5.00, type: 'commodity' 
  },
]

const json = JSON.stringify(cashItems);

const bytes = new TextEncoder().encode(json);

const encodedCashItems = btoa(String.fromCharCode(...bytes));

// Дополнительный шаг для всех методов кроме виджета
const cashItemsForUrl = encodeURIComponent(encodedCashItems);

console.log(cashItemsForUrl); </code></pre><p></p></td></tr></tbody></table>

{% hint style="danger" %}
Для [Юнит.Чеков](https://help.unitpay.ru/online-cash-register) отправка чеков сейчас доступна только по электронной почте. Отправка чеков в смс недоступна. Чтобы пользователю поступил чек обязательно передавайте параметр **customerEmail**.
{% endhint %}

{% hint style="info" %}
Для формирования чека [возврата](https://help.unitpay.ru/payments/payment-refund) достаточно передать **cashItems. CustomerEmail** или **customerPhone** не требуются
{% endhint %}

{% hint style="warning" %}
С 1.02.2021 года в кассовом чеке нужно **обязательно указывать корректно номенклатуру** (наименование, количество, цену) за товары/услуги в cashItems.&#x20;
{% endhint %}

**Параметр cashItems формируется из:**

<table data-header-hidden><thead><tr><th width="237"></th><th width="167.33333333333331">Тип</th><th>Описание</th></tr></thead><tbody><tr><td><strong>Параметр</strong></td><td><strong>Тип</strong></td><td><strong>Описание</strong></td></tr><tr><td>name</td><td>string</td><td>Название позиции <em>(обязательный параметр): <strong>не более 128 символов для одной позиции</strong></em></td></tr><tr><td>count</td><td>number</td><td>Количество <em>(обязательный параметр): <strong>суммарно в чеке не может быть более 100 позиций</strong></em></td></tr><tr><td>price</td><td>number</td><td>Цена за единицу товара <em>(обязательный параметр)</em></td></tr><tr><td>currency</td><td>string</td><td>По умолчанию всегда RUB (если ваши товары/услуги в рублях, то currency отдельно можно не передавать). <br>Валюта заказа по стандарту ISO 4217 (UAH, BYN, EUR, USD и тд. <a href="../book-of-reference/currency-codes">Полный список валют</a>). <br>В чеке у пользователя всегда будут рубли, даже если вы передали валюту, отличную от RUB (конвертация происходит на стороне Unitpay).</td></tr><tr><td>nds</td><td>string</td><td><p><strong>Размер ставки НДС:</strong> </p><p>none</p><p>vat0<br>vat5<br>vat7</p><p>vat10</p><p>vat22<br><br>vat110 (ставка 10/110, применяется только для чеков с признаками способа расчета "Предоплата, Предоплата 100% и Аванс)<br>vat122 (ставка 22/122, применяется только для чеков с признаками способа расчета "Предоплата, Предоплата 100% и Аванс)<br>vat105 (ставка 5/105, применяется только для чеков с признаками способа расчета "Предоплата, Предоплата 100% и Аванс) <br>vat107 (ставка 7/107, применяется только для чеков с признаками способа расчета "Предоплата, Предоплата 100% и Аванс)</p></td></tr><tr><td></td><td></td><td></td></tr><tr><td>type</td><td>string</td><td>Список <strong>типов позиций</strong>:<br><a href="https://help.unitpay.ru/online-cash-register/types-for-online-cashbox">https://help.unitpay.ru/online-cash-register/types-for-online-cashbox</a></td></tr><tr><td>paymentMethod</td><td>string</td><td><p><strong>Признак способа расчета:</strong></p><p>full_payment - полный расчет (<em>Используется по умолчанию)</em></p><p>full_prepayment - предоплата 100% </p><p>prepayment - предоплата </p><p>advance - аванс </p></td></tr><tr><td>sum</td><td>number</td><td>Сумма <strong>(необязательный параметр):</strong> обязателен только при использовании <strong>промокодов, купонов и скидочных сертификатов</strong><br>(в sum передается значение после применения скидки на товары, sum всегда должен быть равен произведению price*count).</td></tr></tbody></table>

{% hint style="info" %}
Если в ссылку/запрос передается информация о нескольких товарах, то их нужно передать через запятую в виде массива: \[{...},{...},{...}].
{% endhint %}

{% hint style="info" %}
С 12.01.2026 параметр НДС `vat20` автоматически подменяется на параметр `vat22`. До конца I квартала 2026 года вам необходимо изменить параметр `nds` и передавать `vat22` в cashItems.
{% endhint %}

{% hint style="warning" %}
Параметр **paymentMethod** необязательный и может быть так же задан в настройках кассы в личном кабинете Unitpay. При этом приоритет выбора будет такой:\
1\) Данные из запроса **cashItems** на создание платежа\
2\) Данные из настройки кассы\
3\) Если не заданы пункты 1 и 2, то по умолчанию - full\_payment
{% endhint %}

{% hint style="info" %}
При продаже маркированного товара с 1 марта 2020 года должен отображаться признак маркировки: **markCode**. При формировании чека на маркированные товары должны быть переданы дополнительные параметры:
{% endhint %}

<table><thead><tr><th width="209.33333333333331"></th><th width="193"></th><th></th></tr></thead><tbody><tr><td><strong>Параметр</strong></td><td><strong>Тип</strong></td><td><strong>Описание</strong></td></tr><tr><td>markCode</td><td>string</td><td>Код маркировки товара в формате, соответствующем требованиям ФНС России </td></tr><tr><td>quantity</td><td>number</td><td>Количество товара. <strong>Суммарно в чеке не может быть более 100 позиций.</strong></td></tr><tr><td>measure</td><td>number</td><td><p>Единицы измерения количества предмета расчета. Может принимать одно из значений: <br>0 - применяется для предметов расчета, которые могут быть реализованы поштучно или единицами;<br>10 - грамм;<br>11 - килограмм; <br>12 - тонна;<br>20 - сантиметр.</p><p>Если продается штучный товар, то measure всегда = 0. <br>Если на одну конкретную единицу товара одна маркировка, то указывается quantity = 1, а mark_quantity не включается в запрос.</p></td></tr><tr><td>markQuantity</td><td>array</td><td><p>Объем товаров в маркированной партии.</p><p>Если в упаковке с единой маркировкой, например, 10 штук товара и вы продаете из коробки 2 штуки, то указывается quantity = 1, а в mark_quantity в числителе numerator = 2, в знаменателе denominator = 10.</p><p>Пример:</p><p><code>"mark_quantity":{"numerator":2,"denominator":10}</code></p></td></tr></tbody></table>

{% hint style="info" %}
**Важное замечание**:\
\
Сумма заказа (sum) должна быть **больше или равна** price\*count (из **cashItems**).\
\
Если сумма заказа **больше**, то в чек добавится дополнительное наименование "Корректировка итога".\
\
Если сумма заказа **меньше** price\*count, то при переходе на оплату по сформированной ссылке / при инициации такого запроса к API, ответ от сервера будет выглядеть так:\
\
"Сумма позиций больше стоимости заказа".
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.unitpay.ru/online-cash-register/receipt_parameters.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
