import { IAmount } from './Common' export enum VatCodesEnum { /** 1 Без НДС */ 'ndsNone' = 1, /** 2 НДС по ставке 0% */ 'nds0' = 2, /** 3 НДС по ставке 10% */ 'nds10' = 3, /** 4 НДС чека по ставке 20% */ 'nds20' = 4, /** 5 НДС чека по расчетной ставке 10/110 */ 'nds10/110' = 5, /** 6 НДС чека по расчетной ставке 20/120 */ 'nds20/120' = 6, } export enum TaxSystemCodesEnum { /** Общая система налогообложения */ 'OSN' = 1, /** Упрощенная (УСН, доходы) */ 'USN6' = 2, /** Упрощенная (УСН, доходы минус расходы) */ 'USN15' = 3, /** Единый налог на вмененный доход (ЕНВД) */ 'ENVD' = 4, /** Единый сельскохозяйственный налог (ЕСН) */ 'ESN' = 5, /** Патентная система налогообложения */ 'PSN' = 6, } export enum ReceiptRegistrationEnum { /** данные в обработке; */ pending = 'pending', /** чек успешно зарегистрирован; */ succeeded = 'succeeded', /** чек зарегистрировать не удалось, сформируйте чек вручную. */ canceled = 'canceled', } export interface ICustomer { /** Для юрлица — название организации, для ИП и физического лица — ФИО. * Если у физлица отсутствует ИНН, в этом же параметре передаются паспортные данные. * Не более 256 символов. * Онлайн-кассы, которые поддерживают этот параметр: Orange Data, Атол Онлайн. **/ full_name?: string /** ИНН пользователя (10 или 12 цифр). Если у физического лица отсутствует ИНН, необходимо передать паспортные данные в параметре full_name. * Онлайн-кассы, которые поддерживают этот параметр: Orange Data, Атол Онлайн. * */ inn?: string /** Электронная почта пользователя для отправки чека. Обязательный параметр, если не передан phone. */ email?: string /** Телефон пользователя для отправки чека. Указывается в формате ITU-T E.164, например 79000000000. Обязательный параметр, если не передан email. */ phone?: string } export interface IReceiptItem { /** Название товара (не более 128 символов). Тег в 54 ФЗ — 1030. */ description: string /** Цена товара (тег в 54 ФЗ — 1079). */ amount: IAmount /** Ставка НДС (тег в 54 ФЗ — 1199). * Для чеков по 54-ФЗ: возможные значения — числа от 1 до 6. Подробнее про коды ставок НДС * Для чеков самозанятых: фиксированное значение — 1. * */ vat_code: VatCodesEnum /** Количество товара (тег в 54 ФЗ — 1023). * Для чеков по 54-ФЗ: максимально возможное значение зависит от модели вашей онлайн-кассы. * Для чеков самозанятых: только целые положительные числа (без разделителя и дробной части). Пример: 1. * */ quantity: string /** Мера количества предмета расчета (тег в 54 ФЗ — 2108) — единица измерения товара, например штуки, граммы. Обязателен при использовании ФФД 1.2. * Перечень возможных значений: https://yookassa.ru/developers/payment-acceptance/scenario-extensions/receipts/54fz/parameters-values#measure * */ measure?: string /** Дробное количество маркированного товара (тег в 54 ФЗ — 1291). Нужно передавать при одновременном выполнении следующих условий: * используется ФФД версии 1.2; * расчет осуществляется за маркированный товар; * поле measure имеет значение piece. * Пример: вы продаете поштучно карандаши. Они поставляются пачками по 100 штук с одним кодом маркировки. * При продаже одного карандаша нужно в numerator передать 1, а в denominator — 100. * */ mark_quantity?: { /** Числитель — количество продаваемых товаров из одной потребительской упаковки (тег в 54 ФЗ — 1293). Не может превышать denominator. */ numerator: number /** Знаменатель — общее количество товаров в потребительской упаковке (тег в 54 ФЗ — 1294). */ denominator: number } } export interface IReceipt { /** Информация о пользователе. Необходимо указать как минимум контактные данные: электронную почту (customer.email) или номер телефона (customer.phone). */ customer?: ICustomer /** Список товаров в заказе. Для чеков по 54-ФЗ можно передать не более 100 товаров, для чеков самозанятых — не более шести. */ items: IReceiptItem[] /** Система налогообложения магазина (тег в 54 ФЗ — 1055). Параметр необходим, если вы используете онлайн-кассу Атол Онлайн, обновленную до ФФД 1.2, или у вас несколько систем налогообложения, в остальных случаях не передается. */ tax_system_code?: TaxSystemCodesEnum }