ofd.ru
Version:
API клиент ОФД OFD.ru на TypeScript
962 lines (927 loc) • 56.7 kB
TypeScript
/** Тип (признак) платежного агента */
export declare enum AgentType {
/** Банковский платежный агент */
BankPaymentAgent = "BANK_PAYMENT_AGENT",
/** Банковский платежный субагент */
BankPaymentSubagent = "BANK_PAYMENT_SUBAGENT",
/** Платежный агент */
PaymentAgent = "PAYMENT_AGENT",
/** Платежный субагент */
PaymentSubagent = "PAYMENT_SUBAGENT",
/** Поверенный */
Confidant = "CONFIDANT",
/** Комиссионер */
Commissioner = "COMMISSIONER",
/** Агент */
Agent = "AGENT"
}
declare interface BaseCreateReceiptRequest {
/** ИНН компании */
Inn: string;
/**
* Идентификатор ФД в вашей информационной системе.
*
* Использование идентификатора предотвращает формирование дублей чеков
*
* **Важно!** Изменяйте идентификатор для перепробития неуспешных чеков в Ferma® (`StatusCode`: `3`)
*/
InvoiceId: string;
/**
* Интервал повтора проверки КМ в честном знаке (в секундах).
*
* Минимум `1`, максимум `1800`.
*/
McCheckRetryPeriodSec?: number;
/**
* URL адрес для отправки уведомления о статусе ФД
*
* Если поле заполнено корректно, то после обработки документа (успешной или неуспешной фискализации в ККТ: статус `CONFIRMED` или `KKT_ERROR`), ответ будет отправлен POST запросом по URL указанному в данном поле. Корректность заполненного поля определяется по регулярному выражению:`^http(s?)\:\/\/[0-9a-zA-Zа-яА-Я]([-.\w]*[0-9a-zA-Zа-яА-Я])*(:(0-9)*)*(\/?)([a-zA-Z0-9а-яА-Я\-\.\?\,\'\/\\\+&=%\$#_]*)?$\\`.
*/
CallbackUrl?: string;
/** Информация о кассире */
Cashier?: {
/** ФИО кассира */
Name?: string;
/** ИНН кассира */
Inn?: string;
};
/** Содержимое клиентского чека */
CustomerReceipt: {
/**
* Параметр проверки кода маркировки.
*
* Если вы в запросе не указали параметр CheckMcMode, чек пробьётся при любом результате проверки кода маркировки в ЦРПТ.
* */
CheckMcMode?: CheckMcMode;
/**
* Система налогообложения.
*
* Внимание! Список применения значений систем налогообложения формируется на этапе регистрации кассы. Чтобы изменить список допустимых значений, необходимо выполнить перерегистрацию кассы.
*/
TaxationSystem: TaxationSystem;
/** Адрес электронной почты клиента */
Email?: string;
/** Контактный телефон клиента */
Phone?: string;
/**
* Признак предмета расчёта для всего чека
*
* Если в данном поле значение клиентом не указано, то используется значение по умолчанию, которое устанавливается по умолчанию при заведении учетной записи в информационной системе Ferma®.
*/
PaymentType: ReceiptPaymentType;
/**
* Использование ФА в сервисе Ferma®.
*
* Если используется касса ФА в сервисе Ferma® необходимо установить значение true. Если используется касса ФС необходимо установить значение false.
* Касса ФА может применятся для:
*
* – вендингового аппарата, при совершении расчетов за товары или услуги;
*
* – совершения расчетов за проезд в автоматизированном режиме (через валидатор) или совершения расчетов через терминал кондуктора.
*/
KktFA: boolean;
/** Номер автоматического устройства */
AutomatNumber?: string;
/** Место осуществления расчетов */
BillAddress: string;
/** Дополнительный реквизит пользователя с учетом особенностей сферы деятельности, в которой осуществляются расчеты */
CustomUserProperty?: {
/** Наименование дополнительного реквизита */
Name: string;
/** Значение дополнительного реквизита */
Value: string;
};
/**
* Данные платежного агента .
*
* Для касс с ФФД 1.2 параметр должен передаваться только в отдельные позиции и не может быть передан в структуре всего чека.
*
* Для касс с ФФД 1.05-1.1 параметр может передаваться как на отдельные позиции, так и в структуре всего чека.
*/
PaymentAgentInfo?: PaymentAgentInfo;
/** Данные о покупателе */
ClientInfo?: {
/**
* ФИО или наименование организации, если клиент юр. лицо.
*
* Не более 256 символов в поле.
*/
Name?: string;
/**
* ИНН покупателя.
*
* Длина 10-12 цифр.
*/
Inn?: string;
/**
* Дата рождения покупателя (клиента).
*
* В формате `ДД.ММ.ГГ`, где ДД — день, ММ — месяц, ГГ — год.
*/
Birthday?: string;
/** Гражданство покупателя (клиента) */
Citizenship?: string;
/** Код вида документа, удостоверяющего личность */
IdDocType?: IdDocumentType;
/** Данные документа, удостоверяющего личность покупателя (клиента) */
IdDocData?: string;
/** Адрес покупателя (клиента) */
Address?: string;
};
/** Отраслевой реквизит чека */
IndustryItemRequisite?: IndustryItemRequisite;
/** Операционный реквизит чека */
OperationRequisite?: {
/** Идентификатор операции */
Id?: string;
/** Данные операции */
Details?: string;
/** Дата и время задается в формате unix timestamp */
DateTime?: string;
};
/** Суммы по типам оплат */
PaymentItems: {
/** Тип оплаты */
PaymentType: PaymentType;
/** Сумма по типу в рублях */
Sum: number;
}[];
/**
* Дополнительный реквизит чека (БСО).
*
* Применяется в составе кассового чека (БСО). Максимальная длина - 16 символов.
*/
AdditionalReceiptProp?: string;
/** Товарные позиции, приобретаемые клиентом */
Items: ReceiptItem[];
};
}
/** Режим проверка кода маркировки */
declare enum CheckMcMode {
/** Вне зависимости от результата проверки, устанавливается по умолчанию, чек пробьётся */
IgnoreAnyErrors = "IGNORE_ANY_ERRORS",
/** Касса пробивает чек, если результат проверки КМ в ЦРПТ не равен значению [М-]. Если результат проверки кода окажется равен значению [М-] - касса чек не пробивает */
RequireNoMMinus = "REQUIRE_NO_M_MINUS"
}
/** Информацию по чеку коррекции */
export declare interface CorrectionInfo {
/** Описание коррекции и её причин */
Description: string;
/** Тип коррекции */
Type?: CorrectionType;
/**
* Дата пробития чека, к которому применяется чек коррекции.
*
* В формате `ДД.ММ.ГГ`, где ДД — день, ММ — месяц, ГГ — год.
*/
ReceiptDate?: string;
/** Номер предписания налогового органа */
ReceiptId?: string;
}
export declare type CorrectionReceiptType = ReceiptType.IncomeCorrection | ReceiptType.BuyCorrection | ReceiptType.IncomeReturnCorrection | ReceiptType.ExpenseReturnCorrection;
/** Тип коррекции */
export declare enum CorrectionType {
/** Коррекция производится самостоятельно */
Self = "SELF",
/** Коррекция производится по предписанию */
INSTRUCTION = "INSTRUCTION"
}
declare type CreateCorrectionReceiptRequest = BaseCreateReceiptRequest & {
/** Тип ФД */
Type: CorrectionReceiptType;
CustomerReceipt: {
CorrectionInfo: CorrectionInfo;
};
};
/**
* Параметры запроса на формирования фискального документа
*
* @see https://ofd.ru/razrabotchikam/ferma#%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2_items_%D1%82%D0%B5%D0%B3_1059
*/
export declare type CreateReceiptRequest = CreateRegularReceiptRequest | CreateCorrectionReceiptRequest;
declare type CreateRegularReceiptRequest = BaseCreateReceiptRequest & {
/** Тип ФД */
Type: RegularReceiptType;
};
/**
* Ferma®
*
* Версия 2.67 от 10.12.2024
*
* @see https://ofd.ru/razrabotchikam/ferma
*/
export declare class Ferma {
private authedFetcher;
/**
* Конструктор класса
*
* Значения параметров можно получить в личном кабинете клиента в разделе Ferma®, после покупки услуг сервиса Ferma® или узнать у вашего менеджера.
*
*/
constructor({ login, password, baseUrl, }: {
/** Логин для доступа к API */
login: string;
/** Пароль API */
password: string;
/**
* Базовый URL API.
*
* Для тестового API укажите `FERMA_TEST_OPTIONS.baseUrl`
*
* @default `https://ferma.ofd.ru/api`
*/
baseUrl?: string;
});
/**
* Запрос на формирование фискальных документов.
*
* @param data Данные для формирования документа
* @returns ID документа
*
* @see https://ofd.ru/razrabotchikam/ferma#%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81_%D0%BD%D0%B0_%D1%84%D0%BE%D1%80%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%84%D0%B8%D1%81%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2
*/
createReceipt(data: CreateReceiptRequest): Promise<string>;
/**
* Проверка статуса кассового чека.
*
* Важно! Информация о статусе кассового чека хранится в оперативной памяти сервиса Ferma® всего сутки. После истечения суток при повторном запросе статуса кассового чека в ответ будет выведена ошибка «Чек не найден». После истечения суток информацию о статусе кассового чека можно получить в запросе реестра кассовых чеков.
*
* @param data `InvoiceId` или `ReceiptId` чека
* @returns Статус чека
*
* @see https://ofd.ru/razrabotchikam/ferma#%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%B0_%D0%BA%D0%B0%D1%81%D1%81%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D1%87%D0%B5%D0%BA%D0%B0
*/
getReceipt(data: {
/** Идентификатор, присвоенный вашей информационной системой в запросе на формирование кассового чека. */
InvoiceId: string;
} | {
/** Идентификатор, присвоенный сервисом Ferma® */
ReceiptId: string;
}): Promise<GetReceiptResponse>;
}
/**
* Опции для тестирования API
*
* @see https://ofd.ru/razrabotchikam/ferma#%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B5_api_ferma
*/
export declare const FERMA_TEST_OPTIONS: {
/** Базовый тестовый URL */
readonly baseUrl: "https://ferma-test.ofd.ru/api";
/** ИНН тестовой организации */
readonly inn: "3245001416";
/** Данные для тестирования ФФД версии 1.1 */
readonly ffd11: {
/** Логин */
readonly login: "fermatest1";
/** Пароль */
readonly password: "Hjsf3321klsadfAA";
};
/** Данные для тестирования ФФД весрии 1.2 */
readonly ffd12: {
/** Логин */
readonly login: "fermatest2";
/** Пароль */
readonly password: "Go2999483Mb";
};
};
export declare interface FermaErrorResponse {
Status: "Failed";
Error: {
Code: number;
Message: string;
};
}
export declare type FermaResponse<T> = FermaSuccessResponse<T> | FermaErrorResponse;
export declare interface FermaSuccessResponse<T> {
Status: "Success";
Data: T;
}
/**
* Идентификатор ФОИВ (ФЕДЕРАЛЬНЫЕ ОРГАНЫ ИСПОЛНИТЕЛЬНОЙ ВЛАСТИ).
*
* @see https://ofd.ru/razrabotchikam/ferma#%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%B0_foivid
*/
export declare enum FoivId {
/** Министерство внутренних дел Российской Федерации */
Mvd = "001",
/** Министерство Российской Федерации по делам гражданской обороны, чрезвычайным ситуациям и ликвидации последствий стихийных бедствий */
Emercom = "002",
/** Министерство иностранных дел Российской Федерации */
Mid = "003",
/** Федеральное агентство по делам Содружества Независимых Государств, соотечественников, проживающих за рубежом, и по международному гуманитарному сотрудничеству */
Rossotrudnichestvo = "004",
/** Министерство обороны Российской Федерации */
MoD = "005",
/** Федеральная служба по военно-техническому сотрудничеству */
Fsvts = "006",
/** Федеральная служба по техническому и экспортному контролю */
Fstek = "007",
/** Министерство юстиции Российской Федерации */
Minjust = "008",
/** Федеральная служба исполнения наказаний */
Fsinn = "009",
/** Федеральная служба судебных приставов */
Fssp = "010",
/** Государственная фельдъегерская служба Российской Федерации (федеральная служба) */
Gfs = "011",
/** Служба внешней разведки Российской Федерации (федеральная служба) */
Svr = "012",
/** Федеральная служба безопасности Российской Федерации (федеральная служба) */
Fsb = "013",
/** Федеральная служба войск национальной гвардии Российской Федерации (федеральная служба) */
Rosgvardiya = "014",
/** Федеральная служба охраны Российской Федерации (федеральная служба) */
Fso = "015",
/** Федеральная служба по финансовому мониторингу (федеральная служба) */
Rosfinmonitoring = "016",
/** Федеральное архивное агентство (федеральное агентство) */
Rosarkhiv = "017",
/** Главное управление специальных программ Президента Российской Федерации (федеральное агентство) */
Gusp = "018",
/** Управление делами Президента Российской Федерации (федеральное агентство) */
Udp = "019",
/** Министерство здравоохранения Российской Федерации */
Minzdrav = "020",
/** Федеральная служба по надзору в сфере здравоохранения */
Roszdravnadzor = "021",
/** Министерство культуры Российской Федерации */
Mincult = "022",
/** Министерство науки и высшего образования Российской Федерации */
Minobrnauki = "023",
/** Министерство природных ресурсов и экологии Российской Федерации */
Minprirody = "024",
/** Федеральная служба по гидрометеорологии и мониторингу окружающей среды */
Roshydromet = "025",
/** Федеральная служба по надзору в сфере природопользования */
Rosprirodnadzor = "026",
/** Федеральное агентство водных ресурсов */
Rosvodresursy = "027",
/** Федеральное агентство лесного хозяйства */
Rosleskhoz = "028",
/** Федеральное агентство по недропользованию */
Rosnedra = "029",
/** Министерство промышленности и торговли Российской Федерации */
Minpromtorg = "030",
/** Федеральное агентство по техническому регулированию и метрологии */
Rosstandart = "031",
/** Министерство просвещения Российской Федерации */
Minpros = "032",
/** Министерство Российской Федерации по развитию Дальнего Востока и Арктики */
Minvostokrazvitiya = "033",
/** Министерство сельского хозяйства Российской Федерации */
Minselhoz = "034",
/** Федеральная служба по ветеринарному и фитосанитарному надзору */
Rosselkhoznadzor = "035",
/** Федеральное агентство по рыболовству */
Rosrybolovstvo = "036",
/** Министерство спорта Российской Федерации */
Minsport = "037",
/** Министерство строительства и жилищно-коммунального хозяйства Российской Федерации */
Minstroy = "038",
/** Министерство транспорта Российской Федерации */
Mintrans = "039",
/** Федеральная служба по надзору в сфере транспорта */
Rostransnadzor = "040",
/** Федеральное агентство воздушного транспорта */
Rosaviatsiya = "041",
/** Федеральное дорожное агентство */
Rosavtodor = "042",
/** Федеральное агентство железнодорожного транспорта */
Roszheldor = "043",
/** Федеральное агентство морского и речного транспорта */
Rosmorrechflot = "044",
/** Министерство труда и социальной защиты Российской Федерации */
Mintrud = "045",
/** Федеральная служба по труду и занятости */
Rostrud = "046",
/** Министерство финансов Российской Федераци */
Minfin = "047",
/** Федеральная налоговая служба */
Fns = "048",
/** Федеральная пробирная палата (федеральная служба) */
Probe = "049",
/** Федеральная служба по регулированию алкогольного рынка */
Rosalkogol = "050",
/** Федеральная таможенная служба */
Fts = "051",
/** Федеральное казначейство (федеральная служба) */
Treasury = "052",
/** Федеральное агентство по управлению государственным имуществом */
Rosimushchestvo = "053",
/** Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации */
Mintsyfra = "054",
/** Федеральная служба по надзору в сфере связи, информационных технологий и массовых коммуникаций */
Roskomnadzor = "055",
/** Федеральное агентство по печати и массовым коммуникациям */
Rospechat = "056",
/** Федеральное агентство связи */
Rossvyaz = "057",
/** Министерство экономического развития Российской Федерации */
Minekonomrazvitiya = "058",
/** Федеральная служба по аккредитации */
Rosakkreditatsiya = "059",
/** Федеральная служба государственной статистики */
Rosstat = "060",
/** Федеральная служба по интеллектуальной собственности */
Rospatent = "061",
/** Федеральное агентство по туризму */
Rostourism = "062",
/** Министерство энергетики Российской Федерации */
Minenergo = "063",
/** Федеральная антимонопольная служба */
Fas = "064",
/** Федеральная служба государственной регистрации, кадастра и картографии */
Rosreestr = "065",
/** Федеральная служба по надзору в сфере защиты прав потребителей и благополучия человека */
Rospotrebnadzor = "066",
/** Федеральная служба по надзору в сфере образования и науки */
Rosobrnadzor = "067",
/** Федеральная служба по экологическому, технологическому и атомному надзору */
Rostekhnadzor = "068",
/** Федеральное агентство по государственным резервам */
Rosrezerv = "069",
/** Федеральное медико-биологическое агентство */
Fmba = "070",
/** Федеральное агентство по делам молодежи */
Rosmolodezh = "071",
/** Федеральное агентство по делам национальностей */
Fadn = "072"
}
/**
* Ответ на запрос получения информации о чеке
*
* @see https://ofd.ru/razrabotchikam/ferma#%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%B0_%D0%BA%D0%B0%D1%81%D1%81%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D1%87%D0%B5%D0%BA%D0%B0
*/
export declare type GetReceiptResponse = (StatusNew | StatusProcessed | StatusConfirmed | StatusKktError) & {
StatusMessage?: string;
Description?: string;
ModifiedDateUtc: string;
ReceiptDateUtc: string;
ModifiedDateTimeIso: string;
ReceiptDateTimeIso: string;
Device?: {
DeviceId: string;
RNM: string;
ZN: string;
FN: string;
FDN: string;
FPD: string;
ShiftNumber: number;
ReceiptNumInShift: number;
DeviceType: string;
OfdReceiptUrl: string;
} | null;
};
/**
* Тип документа, удостоверяющего личность
*
* @see https://ofd.ru/razrabotchikam/ferma#%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%B0_iddoctype
*/
export declare enum IdDocumentType {
/** Паспорт гражданина Российской Федерации */
RfId = "RF_ID",
/** Паспорт гражданина Российской Федерации, дипломатический паспорт, служебный паспорт, удостоверяющие личность гражданина Российской Федерации за пределами Российской Федерации */
RfIdEtc = "RF_ID_ETC",
/** Временное удостоверение личности гражданина Российской Федерации, выдаваемое на период оформления паспорта гражданина Российской Федерации */
TempRfId = "TEMP_RF_ID",
/** Свидетельство о рождении гражданина Российской Федерации (для граждан Российской Федерации в возрасте до 14 лет) */
BirthRfId = "BIRTH_RF_ID",
/** Иные документы, признаваемые документами, удостоверяющими личность гражданина Российской Федерации в соответствии с законодательством Российской Федерации */
OtherRfId = "OTHER_RF_ID",
/** Паспорт иностранного гражданина */
ForeignId = "FOREIGN_ID",
/** Иные документы, признаваемые документами, удостоверяющими личность иностранного гражданина в соответствии с законодательством Российской Федерации и международным договором Российской Федерации */
ForeignIdOther = "FOREIGN_ID_OTHER",
/** Документ, выданный иностранным государством и признаваемый в соответствии с международным договором Российской Федерации в качестве документа, удостоверяющего личность лица без гражданства. */
IdForeignStateless = "ID_FOREIGN_STATELESS",
/** Вид на жительство (для лиц без гражданства) */
ResidencePermit = "RESIDENCE_PERMIT",
/** Разрешение на временное проживание (для лиц без гражданства) */
TempResidencePermit = "TEMP_RESIDENCE_PERMIT",
/** Свидетельство о рассмотрении ходатайства о признании лица без гражданства беженцем на территории Российской Федерации по существу */
StatelessReviewId = "STATELESS_REVIEW_ID",
/** Удостоверение беженца */
RefugeeId = "REFUGEE_ID",
/** Иные документы, признаваемые документами, удостоверяющими личность лиц без гражданства в соответствии с законодательством Российской Федерации и международным договором Российской Федерации */
OtherId = "OTHER_ID",
/** Документ, удостоверяющий личность лица, не имеющего действительного документа, удостоверяющего личность, на период рассмотрения заявления о признании гражданином Российской Федерации или о приеме в гражданство Российской Федерации */
StatelessReviewRfId = "STATELESS_REVIEW_RF_ID"
}
/** Отраслевой реквизит */
export declare interface IndustryItemRequisite {
/** Идентификатор ФОИВ (ФЕДЕРАЛЬНЫЕ ОРГАНЫ ИСПОЛНИТЕЛЬНОЙ ВЛАСТИ). */
FoivId?: FoivId;
/**
* Дата документа основания.
*
* Формат `ДД.ММ.ГГГГ`, где ДД — день, ММ — месяц, ГГГГ — год.
*/
DocDate?: string;
/** Номер документа основания */
DocNumber?: string;
/** Значение отраслевого реквизита */
Value?: string;
}
/** Планируемый статус товара с КМ */
export declare enum MarkingCodePlannedStatus {
/** Штучный товар, подлежащий обязательной маркировке средством идентификации, реализован */
PieceProductIncome = "PIECE_PRODUCT_INCOME",
/** Мерный товар, подлежащий обязательной маркировке средством идентификации, в стадии реализации */
MeasuredProductIncome = "MEASURED_PRODUCT_INCOME",
/** Штучный товар, подлежащий обязательной маркировке средством идентификации, возвращен */
PieceProductReturn = "PIECE_PRODUCT_RETURN",
/** Часть товара, подлежащего обязательной маркировке средством идентификации, возвращена */
MeasuredProductReturn = "MEASURED_PRODUCT_RETURN",
/** Статус товара, подлежащего обязательной маркировке средством идентификации, не изменился */
ProductStatusNotChanged = "PRODUCT_STATUS_NOT_CHANGED"
}
/** Формат КМ */
export declare enum MarkingCodeType {
/** Неизвестный код товара */
UnknownProductCode = "UNKNOWN_PRODUCT_CODE",
/** Значение кода маркировки в формате EAN-8 */
Ean8 = "EAN8",
/** Значение кода маркировки в формате EAN-13 */
Ean13 = "EAN13",
/** Значение кода маркировки в формате ITF-14 */
Itf14 = "ITF14",
/** Значение кода маркировки в формате GS1 */
Gs1 = "GS1",
/** Значение кода маркировки в формате GS1.M */
Gs1m = "GS1M",
/** Значение кода маркировки в формате КМК (Короткий код маркировки) */
ShortMc = "SHORT_MC",
/** Контрольно-идентификационный знак мехового изделия */
Fur = "FUR",
/** Значение кода маркировки в формате ЕГАИС-2.0 */
Egais20 = "EGAIS20",
/** Значение кода маркировки в формате ЕГАИС-3.0 */
Egais30 = "EGAIS30",
/** Определяется ФНС России */
Ktf1 = "KTF1",
/** Определяется ФНС России */
Ktf2 = "KTF2",
/** Определяется ФНС России */
Ktf3 = "KTF3",
/** Определяется ФНС России */
Ktf4 = "KTF4",
/** Определяется ФНС России */
Ktf5 = "KTF5",
/** Определяется ФНС России */
Ktf6 = "KTF6"
}
/**
* Единицы измерения
*
* @see https://ofd.ru/razrabotchikam/ferma#%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%B0_measure
*/
export declare enum Measure {
/** Применяется для предметов расчета, которые могут быть реализованы поштучно или единицами */
Piece = "PIECE",
/** Грамм */
Gram = "GRAM",
/** Килограмм */
Kilogram = "KILOGRAM",
/** Тонна */
Ton = "TON",
/** Сантиметр */
Centimeter = "CENTIMETER",
/** Дециметр */
Decimeter = "DECIMETER",
/** Метр */
Meter = "METER",
/** Квадратный сантиметр */
SquareCentimeter = "SQUARE_CENTIMETER",
/** Квадратный дециметр */
SquareDecimeter = "SQUARE_DECIMETER",
/** Квадратный метр */
SquareMeter = "SQUARE_METER",
/** Миллилитр */
Milliliter = "MILLILITER",
/** Литр */
Liter = "LITER",
/** Кубический метр */
CubicMeter = "CUBIC_METER",
/** Киловатт час */
KilowattHour = "KILOWATT_HOUR",
/** Гигакалория */
Gigacalorie = "GIGACALORIE",
/** Сутки (день) */
Day = "DAY",
/** Час */
Hour = "HOUR",
/** Минута */
Minute = "MINUTE",
/** Секунда */
Second = "SECOND",
/** Килобайт */
Kilobyte = "KILOBYTE",
/** Мегабайт */
Megabyte = "MEGABYTE",
/** Гигабайт */
Gigabyte = "GIGABYTE",
/** Терабайт */
Terabyte = "TERABYTE",
/** Применяется при использовании иных единиц измерения */
Other = "OTHER"
}
/** Данные платёжного агента */
declare interface PaymentAgentInfo {
/** Тип (признак) платежного агента */
AgentType?: AgentType;
/** Телефон оператора по переводу денежных средств */
TransferAgentPhone?: string;
/** Имя агента */
TransferAgentName?: string;
/** Адрес агента */
TransferAgentAddress?: string;
/** ИНН агента */
TransferAgentINN?: string;
/** Операция платежного агента */
PaymentAgentOperation?: string;
/** Телефон платежного агента */
PaymentAgentPhone?: string;
/** Телефон потребителя */
ReceiverPhone?: string;
/** ИНН поставщика */
SupplierInn?: string;
/** Наименование поставщика */
SupplierName?: string;
/** Телефон поставщика */
SupplierPhone?: string;
}
/** Признак способа расчёта */
export declare enum PaymentMethod {
/** Предоплата 100% */
FullPrepayment = 1,
/** Предоплата */
Prepayment = 2,
/** Аванс */
Advance = 3,
/** Полный расчет */
FullPayment = 4,
/** Частичный расчет */
PartialPayment = 5,
/** Передача в кредит */
CreditTransfer = 6,
/** Оплата в кредит */
CreditPayment = 7
}
/** Тип оплаты */
export declare enum PaymentType {
/** Наличными */
Cash = 0,
/** Безналичными */
Cashless = 1,
/** Предоплата (аванс) */
Prepayment = 2,
/** Предоплата (кредит) */
Credit = 3,
/** Иная формам оплаты */
Other = 4
}
/**
* Товарная позиция в чеке
*
* @see https://ofd.ru/razrabotchikam/ferma#%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2_items_%D1%82%D0%B5%D0%B3_1059
* */
export declare interface ReceiptItem {
/** Здесь могу присутствовать описание товара или описание услуги.
*
* Параметр всегда требуется в запросе на формирование фискального документа.
*/
Label: string;
/** Цена товарной позиции в рублях */
Price: number;
/** Количество товара в товарной позиции */
Quantity: number;
/**
* Общая стоимость товара в товарной позиции в рублях.
*
* Правила округления для стоимости товара зависят от типа кассы. В кассах типа Эфир Pro ФС и Эфир Pro ФА стоимость округляется по математическим правилам округления.
* Результат умножения значений параметров `Price` и `Quantity` должно быть равно значению параметра `Amount`
*/
Amount: number;
/**
* Сумма акциза с учетом копеек.
*
* Участвует в запросе, если предмет расчета признается объектом налогообложения акцизами.
*/
Excise?: number;
/** Вид вычисляемого НДС */
Vat: Vat;
/** Код маркировки товарной позиции */
MarkingCodeData?: {
/** Формат КМ */
Type?: MarkingCodeType;
/**
* Код маркировки
*
* В параметре передается значение, полученное сканером штрих-кода.
*/
Code: string;
/**
* Планируемый статус товара с КМ.
*
* @default `PIECE_PRODUCT_INCOME`
*/
PlannedStatus?: MarkingCodePlannedStatus;
/** Тег содержит дробное количество маркированного товара */
Fractional?: {
/**
* Числитель.
*
* Должен быть строго меньше знаменателя `Denominator`.
*/
Numerator: number;
/** Знаменатель */
Denominator: number;
};
};
/**
* Тег содержит единицы измерения количества предмета расчета.
*
* Обязателен для ФФД 1.2.
*
* @default `PIECE` — если не передан, для ФФД 1.2
*/
Measure?: Measure;
/** Признак способа расчёта */
PaymentMethod: PaymentMethod;
/** Отраслевой реквизит чека */
IndustryItemRequisite?: IndustryItemRequisite;
/**
* Дополнительный реквизит предмета расчета.
*
* Максимальная длина 64 символов.
*/
AdditionalRequisite?: string;
/**
* Код страны происхождения товара.
*
* Не более 3 цифр.
*/
OriginCountryCode?: string;
/**
* Номер таможенной декларации.
*
* Не более 32 символов.
*/
CustomsDeclarationNumber?: string;
/**
* Признак предмета расчета для конкретной позиции в чеке.
*
* Если значение отсутствует, берется значение для всего чека.
*/
PaymentType?: ReceiptPaymentType;
/** Данные платёжного агента */
PaymentAgentInfo?: PaymentAgentInfo;
}
/**
* Признак предмета расчёта
*
* @see https://ofd.ru/razrabotchikam/ferma#%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D0%BA%D0%B0_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%B0_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%B0_paymenttype
*/
export declare enum ReceiptPaymentType {
/** О реализуемом товаре, за исключением подакцизного товара (наименование и иные сведения, описывающие товар) – «ТОВАР» или «Т» */
Product = 1,
/** О реализуемом подакцизном товаре (наименование и иные сведения, описывающие товар) – «ПОДАКЦИЗНЫЙ ТОВАР» или «АТ» */
ExciseProduct = 2,
/** О выполняемой работе (наименование и иные сведения, описывающие работу) – «РАБОТА» или «Р» */
Work = 3,
/** Об оказываемой услуге (наименование и иные сведения, описывающие услугу) – «УСЛУГА» или «У» или может не печататься */
Service = 4,
/** О приеме ставок при осуществлении деятельности по проведению азартных игр – «СТАВКА АЗАРТНОЙ ИГРЫ» или «СТАВКА ИГРЫ» или «СА» */
GamblingBet = 5,
/** О выплате денежных средств в виде выигрыша при осуществлении деятельности по проведению азартных игр – «ВЫИГРЫШ АЗАРТНОЙ ИГРЫ» или «ВЫИГРЫШ АИ» или «ВА» */
GamblingWin = 6,
/** О приеме денежных средств при реализации лотерейных билетов, электронных лотерейных билетов, приеме лотерейных ставок при осуществлении деятельности по проведению лотерей – «ЛОТЕРЕЙНЫЙ БИЛЕТ» или «СТАВКА ЛОТЕРЕИ» или «СЛ» */
LotteryTicket = 7,
/** О выплате денежных средств в виде выигрыша при осуществлении деятельности по проведению лотерей – «ВЫИГРЫШ ЛОТЕРЕИ» или «ВЫИГРЫШ ЛОТЕРЕИ» или «ВЛ» */
LotteryWin = 8,
/** О предоставлении прав на использование результатов интеллектуальной деятельности или средств индивидуализации – «ПРЕДОСТАВЛЕНИЕ РИД» или «РИД» */
IntellectualProperty = 9,
/** Об авансе, задатке, предоплате, кредите, взносе в счет оплаты, пени, штрафе, вознаграждении, бонусе и ином аналогичном предмете расчета – «ПЛАТЕЖ» или «П», «ВЫПЛАТА» или «В» */
AdvancePayment = 10,
/** О вознаграждении пользователя, являющегося платежным агентом (субагентом), банковским платежным агентом (субагентом), комиссионером, поверенным или иным агентом – «АГЕНТСКОЕ ВОЗНАГРАЖДЕНИЕ» или «АВ» */
AgencyFee = 11,
/** О предмете расчета, состоящем из предметов, каждому из которых может быть присвоено значение от «1» до «11» – «СОСТАВНОЙ ПРЕДМЕТ РАСЧЕТА» или «СПР» */
CompositeItem = 12,
/** О предмете расчета, не относящемуся к предметам расчета, которым может быть присвоено значение от «1» до «12» и от «14» до «18» – «ИНОЙ ПРЕДМЕТ РАСЧЕТА» или «ИПР» */
OtherItem = 13,
/** О передаче имущественных прав – «ИМУЩЕСТВЕННОЕ ПРАВО» */
PropertyTransfer = 14,
/** О внереализационным доходе – «ВНЕРЕАЛИЗАЦИОННЫЙ ДОХОД» или может не печататься */
NonOperationalIncome = 15,
/** О суммах расходов, уменьшающих сумму налога (авансовых платежей) в соответствии с пунктом 3.1 статьи 346.21 Налогового кодекса Российской Федерации – «СТРАХОВЫЕ ВЗНОСЫ» */
InsuranceContributions = 16,
/** О суммах уплаченного торгового сбора – «ТОРГОВЫЙ СБОР» */
TradeFee = 17,
/** О курортном сборе – «КУРОРТНЫЙ СБОР» */
ResortFee = 18,
/** О залоге – «ЗАЛОГ» */
Pledge = 19,
/** О суммах произведенных расходов в соответствии со статьей 346.16 Налогового кодекса Российской Федерации, уменьшающих доход */
ExpenseReduction = 20,
/** О страховых взносах на обязательное пенсионное страхование, уплачиваемых ИП, не производящими выплаты и иные вознаграждения физическим лицам — «ВЗНОСЫ НА ОБЯЗАТЕЛЬНОЕ ПЕНСИОННОЕ СТРАХОВАНИЕ ИП» или «ВЗНОСЫ НА ОПС ИП» или может не печататься */
PensionContributionsIP = 21,
/** О страховых взносах на обязательное пенсионное страхование, уплачиваемых организациями и ИП, производящими выплаты и иные вознаграждения физическим лицам — «ВЗНОСЫ НА ОБЯЗАТЕЛЬНОЕ ПЕНСИОННОЕ СТРАХОВАНИЕ» или «ВЗНОСЫ НА ОПС» или может не печататься */
PensionContributions = 22,
/** О страховых взносах на обязательное медицинское страхование, уплачиваемых ИП, не производящими выплаты и иные вознаграждения физическим лицам — «ВЗНОСЫ НА ОБЯЗАТЕЛЬНОЕ МЕДИЦИНСКОЕ СТРАХОВАНИЕ ИП» или «ВЗНОСЫ НА ОМС ИП» или может не печататься */
MedicalContributionsIP = 23,
/** О страховых взносах на обязательное медицинское страхование, уплачиваемые организациями и ИП, производящими выплаты и иные вознаграждения физическим лицам — «ВЗНОСЫ НА ОБЯЗАТЕЛЬНОЕ МЕДИЦИНСКОЕ СТРАХОВАНИЕ» или «ВЗНОСЫ НА ОМС» или может не печататься */
MedicalContributions = 24,
/** О страховых взносах на обязательное социальное страхование на случай временной нетрудоспособности и в связи с материнством, на обязательное социальное страхование от несчастных случаев на производстве и профессиональных заболеваний — «ВЗНОСЫ НА ОБЯЗАТЕЛЬНОЕ СОЦИАЛЬНОЕ СТРАХОВАНИЕ» или «ВЗНОСЫ НА ОСС» или может не печататься */
SocialContributions = 25,
/** О приеме и выплате денежных средств при осуществлении казино и залами игровых автоматов расчетов с использованием обменных знаков игорного заведения — «ПЛАТЕЖ КАЗИНО» или «ПК» или может не печататься */
CasinoPayment = 26,
/** О выдаче денежных средств банковским платежным агентом — «ВЫДАЧА ДЕНЕЖНЫХ СРЕДСТВ» или «ВЫДАЧА ДС» или может не печататься */
CashIssuance = 27,
/** О реализуемом подакцизном товаре, подлежащем маркировке средством идентификации, не имеющем кода маркировки — «АТНМ» или может не печататься */
ExciseProductNoMark = 30,
/** О реализуемом подакцизном товаре, подлежащем маркировке средством идентификации, имеющем код маркировки — «АТМ» или может не печататься */
ExciseProductMark = 31,
/** О реализуемом товаре, подлежащем маркировке средством идентификации, не имеющем кода маркировки, за исключением подакцизного товара — «ТНМ» или может не печататься */
ProductNoMark = 32,
/** О реализуемом товаре, подлежащем маркировке средством идентификации, имеющем код маркировки, за исключением подакцизного товара — «ТМ» или может не печататься */
ProductMark = 33
}
/** Тип фискального документа */
export declare enum ReceiptType {
/** Получение денежных средств от покупателя */
Income = "Income",
/** Возврат денежных средств, полученных от покупателя */
IncomeReturn = "IncomeReturn",
/** Авансовый платеж от покупателя */
IncomePrepayment = "IncomePrepayment",
/** Возврат аванса */
IncomeReturnPrepayment = "IncomeReturnPrepayment",
/** Чек коррекции/приход */
IncomeCorrection = "IncomeCorrection",
/** Чек коррекции/расход */
BuyCorrection = "BuyCorrection",
/** Чек коррекции/Возврат прихода */
IncomeReturnCorrection = "IncomeReturnCorrection",
/** Чек коррекции/Возврат расхода */
ExpenseReturnCorrection = "ExpenseReturnCorrection",
/** Выдача денежных средств покупателю */
Expense = "Expense",
/** Возврат денежных средств, выданных покупателю */
ExpenseReturn = "ExpenseReturn"
}
export declare type RegularReceiptType = Exclude<ReceiptType, CorrectionReceiptType>;
declare interface StatusConfirmed {
StatusCode: 2;
StatusName: "CONFIRMED";
}
declare interface StatusKktError {
StatusCode: 3;
StatusName: "KKT_ERROR";
}
declare interface StatusNew {
StatusCode: 0;
StatusName: "NEW";
}
declare interface StatusProcessed {
StatusCode: 1;
StatusName: "PROCESSED";
}
/** Система налогообложения */
export declare enum TaxationSystem {
/** ОСН */
Common = "Common",
/** УСН доход */
SimpleIn = "SimpleIn",
/** УСН доход - расход */
SimpleInOut = "SimpleInOut",
/** ЕНВД */
Unified = "Unified",
/** ЕСН */
UnifiedAgricultural = "UnifiedAgricultural",
/** Патент */
Patent = "Patent"
}
/** Тип вычисляемого НДС */
export declare enum Vat {
/** Налог на добавленную стоимость без НДС */
VatNo = "VatNo",
/** НДС 5% */
Vat5 = "Vat5",
/** Вычисленный НДС 5% от 105% суммы */
CalculatedVat5105 = "CalculatedVat5105",
/** НДС 7% */
Vat7 = "Vat7",
/** Вычисленный НДС 7% от 107% суммы */
CalculatedVat7107 = "CalculatedVat7107",
/** Налог на добавленную стоимость (НДС) 10% */
Vat10 = "Vat10",
/** НДС 20% */
Vat20 = "Vat20",
/** НДС 0% */
Vat0 = "Vat0",
/** Вычисленный НДС 10% от 110% суммы */
CalculatedVat10110 = "CalculatedVat10110",
/** Вычисленный НДС 20% от 120% суммы */
CalculatedVat20120 = "CalculatedVat20120"
}
export { }