Для разработчиков

Фискализация с вашего сервера, без оборудования

Tezga это облачный ESIR, работающий с виртуальным процессором фискальных чеков (V-PFR) Налоговой администрации. Ваша платформа вызывает REST API, мы выдаём и фискализируем чек и возвращаем PFR-номер, QR и PDF. Нет локальной установки, устройства и считывателей карт.

IB одобренного ESIR
1597IB одобренного ESIR
без локального оборудования
V-PFRбез локального оборудования
server-to-server
RESTserver-to-server

Ваш первый чек

curl -X POST https://pos.narbiz.com/api/integrations/order?provider=custom \
  -H "X-Tezga-Api-Key: tzg_…" \
  -H "Content-Type: application/json" \
  -d '{
    "externalId": "NALOG-1042",
    "tok": "fiskalni",
    "nacinPlacanja": "Kartica",
    "kupac": { "naziv": "Kupac", "email": "kupac@primer.rs" },
    "stavke": [
      { "naziv": "Paket od 10 časova", "kolicina": 1, "cenaSaPdv": 24000 }
    ]
  }'

В ответе приходят fiskalni.pfrBroj, brojacRacuna, verifikacioniUrl и javniPdfUrl, который работает без входа.

46 вопросов, которые интеграторы задают чаще всего

Как это работает

Tezga это облачный ESIR, без локальной установки и оборудования?
Для интеграции да: ваш сервер вызывает наш API, мы фискализируем через виртуальный процессор фискальных чеков (V-PFR) Налоговой администрации и возвращаем данные чека. Без локального программного обеспечения и без оборудования на вашей стороне. Кроме того, Tezga поддерживает и локальный процессор (L-PFR) для налогоплательщиков, которые продают в физическом помещении, поскольку закон требует от них устройство, выдающее чек и при обрыве интернета; это отдельный режим и он ничего не меняет в интеграции по API.
Есть ли прямой REST API, независимо от готовых коннекторов?
Есть, и это основной способ работы, а не дополнение. Коннекторы для WooCommerce и Shopify используют тот же API. Описание для инструментов находится по адресу /api/openapi.json (Postman, Swagger), а руководство для людей по адресу /api-dokumentacija.pdf.
Как аутентифицируется запрос?
Ключом API в заголовке X-Tezga-Api-Key. Ключ имеет вид tzg_ и 48 шестнадцатеричных знаков; тестовый и рабочий ключ выглядят одинаково, поскольку окружение это свойство аккаунта (см. вопрос о защите в коде). Ключей может быть несколько, по одному на каждую интеграцию, и каждый отдельно ставится на паузу или отзывается. Каждый ключ можно привязать к IP-адресам вашего сервера (отдельным или диапазону CIDR), поэтому украденный ключ не работает ни из какого другого места. Опционально тело дополнительно подписывается секретом HMAC-SHA256 (X-Tezga-Signature). OAuth и mTLS мы не предлагаем.
Какие операции покрывает API?
Выдачу фискального чека и электронного счёта, счёт на оплату, который сам закрывается по платежу, авансовый счёт и закрытие аванса, сторно и возврат (полный и по позициям), копию чека, состояние документа со всеми фискальными данными, налоговые метки аккаунта и банковские транзакции.
Что я получаю в ответе, когда чек выдан?
PFR-номер, время, счётчик чеков, номер ESIR, URL проверки и содержимое QR-кода, плюс публичную ссылку на чек и PDF, который работает без входа. Достаточно, чтобы самому распечатать чек или отправить его покупателю.

Надёжность

Что происходит, когда V-PFR Налоговой администрации недоступен?
Документ выдаётся и не теряется, а ответ это HTTP 202 с ok:false и сообщением. Затем Tezga САМА повторяет фискализацию через интервалы и, когда она проходит, уведомляет вас webhook-ом; состояние можно прочитать и самому через GET /documents/:id. Исключение это неопределённый исход (Налоговая чек приняла, а запись у нас не удалась): тогда повтор не выполняется автоматически, потому что иначе государство получило бы второй чек за один и тот же оборот. Работы без интернета на пути V-PFR не существует, потому что виртуальный процессор по определению работает через постоянное соединение; налогоплательщик, которому это нужно, использует локальный процессор (L-PFR) в своём помещении.
Как предотвращается двойной чек?
Каждый запрос несёт ваш externalId. Один и тот же externalId никогда не создаёт второй чек, а возвращает существующий, даже когда два запроса приходят одновременно. Защита в самом API, а не в коннекторе.
Есть ли webhook-уведомления?
Есть. Tezga отправляет POST на ваш адрес для событий: racun.fiskalizovan, racun.greska, refundacija.izvrsena, storno.izvrsen. Тело подписано HMAC, а если ваш сервер не отвечает, отправка повторяется через 1, 5, 15, 60, 360 минут.
Есть ли ограничение числа запросов?
По умолчанию 120 запросов в минуту на компанию для выдачи и возврата и 240 для чтения. Каждый ответ несёт X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset, а 429 несёт Retry-After. Ограничение привязано к аккаунту, а не к коду: если у вас ожидается пик, например начало продажи билетов на крупное событие, сообщите нам ожидаемое число чеков в минуту, и мы поднимем его до начала продажи.
По какому разрешению работает Tezga?
Решение Налоговой администрации 000-092-00-00123/2026-0000 от 03.07.2026, IB 1597, версия 1.1, как ESIR, работающий с V-PFR.

Продажа на расстоянии и билеты

Как выглядит поток при продаже на расстоянии, например билетов?
Покупатель платит картой у своего платёжного посредника, ваш бэкенд дожидается подтверждения платежа и только тогда отправляет один POST на /api/integrations/order со своим номером заказа. Мы выдаём и фискализируем чек и в том же ответе возвращаем PFR-номер, счётчик, QR и ссылку на PDF. Чек покупателю либо отправляем мы, либо вы забираете его по публичной ссылке и вставляете в своё подтверждение покупки.
Я продаю от имени организатора событий, как это выглядит у вас?
Технически: чек всегда несёт PIB компании, чей это аккаунт, потому что он выдаётся её элементом безопасности. Если продавец ваша платформа, всё помещается в один аккаунт. Если каждый организатор выдаёт свой чек, тогда каждый организатор это свой аккаунт, со своим элементом безопасности и своей подпиской, а ваша система лишь выбирает ключ, которым отправляет заказ. Кто из вас двоих является издателем чека, это не наше решение, а вопрос вашего договора с организатором и мнения вашего бухгалтера; оба варианта мы поддерживаем.
Как делается возврат денег за отменённый билет?
POST /api/integrations/refund, по нашему documentId или по вашему номеру заказа. Когда деньги не возвращаются (ошибочно выданный чек), используется "vrsta":"storno" и данные покупателя не требуются. Для возврата денег, полного или по позициям, используется "vrsta":"refundacija". Идентификация покупателя требуется только при возврате наличных, как предписывает Налоговая администрация: она берётся из оригинала, а когда её нет, приходят поля "kupacIdBroj" и "kupacIdTip" (удостоверение личности, паспорт иностранца, иностранное удостоверение), иначе 422 с понятным сообщением. Возврат на карту, на счёт или иным безналичным путём (PayPal) данных покупателя не требует.
Обязательно ли покупатель должен получить бумажный чек?
Не обязательно. При продаже на расстоянии чек доставляется электронно: мы отправляем его на почту покупателя, если вы пришлёте posaljiMejl:true, или вы забираете его как PDF по публичной ссылке из ответа и показываете в аккаунте покупателя и в своём подтверждении. Ссылка работает без входа и без ключа API, поэтому её можно вставить прямо в письмо.

Элемент безопасности и аккаунты

Используется мой элемент безопасности или вы требуете новый?
Используется ваш, который вам уже выдала Налоговая, в виде файла .pfx. Вы сами передаёте его в Настройки, Фискализация (файл, пароль и PAK); он хранится в зашифрованном виде и не покидает сервер. Смарт-карта нам не нужна, она для аппаратных устройств.
Как решается вопрос с несколькими порталами или несколькими помещениями?
Несколько порталов в рамках одного помещения работают через одну компанию, каждый со своим ключом API, без дополнительной лицензии. Отдельное помещение со своим элементом безопасности это отдельная компания в аккаунте, со своей подпиской; переключение это один клик.
Как выглядит тест перед продакшеном?
Тест выполняется в официальной sandbox-среде Налоговой администрации, с тестовым элементом безопасности, который она выдаёт. В Настройках вы вводите адрес sandbox и тестовый сертификат, а переход на продакшен это замена адреса и сертификата. Ключ API и ваш код остаются теми же. Тестовый аккаунт без какого-либо элемента работает в симуляции: чек создаётся локально, PFR-номер начинается с MOCK и ничего не уходит в Налоговую.
Как в коде не дать тесту выдать настоящий чек?
При запуске вызовите GET /api/integrations/tax-labels и прочитайте поле okruzenje: "produkcija" означает настоящие чеки в Налоговой, "sandbox" тестовую среду Налоговой, "simulacija" локальную симуляцию без Налоговой. Тестовая конфигурация может продолжать только если значение не "produkcija". Вторая проверка на каждом ответе: настоящий чек имеет verifikacioniUrl на https://suf.purs.gov.rs/v/, sandbox-чек на поддомене sandbox.suf.purs.gov.rs, а симулированный PFR-номер начинается с MOCK. Тестовый и рабочий ключ держите в отдельных конфигурациях, поскольку по виду они не различаются.
Как хранятся налоговые ставки, если я не плательщик НДС?
Аккаунт отмечается как неплательщик, и Tezga каждую позицию отмечает как освобождённую, независимо от ставки, которую вы пришлёте. Что использует аккаунт, можно прочитать и через GET /api/integrations/tax-labels.

Цена и сроки

Какой тариф нужен для прямого доступа к API?
Прямой API, исходящий webhook и двусторонняя связь с магазином WooCommerce и Shopify входят в тариф Biznis (2 390 RSD в месяц). На остальных тарифах, включая Start, запрос к API получает ответ 402 с объяснением. Связь есть и у компании с включённым уровнем Enterprise, на любом тарифе, а компания, которая использовала связь по API или с интернет-магазином до 16 сентября 2026 года, сохраняет её на своём тарифе. Ключ для терминала кассы на устройстве Android не является интеграцией и работает в любом тарифе.
Есть ли договорное обязательство и срок расторжения?
Нет ни того, ни другого. Подписка оплачивается вперёд за три, шесть или двенадцать месяцев и не продлевается сама. Если вы не продлите, доступ прекращается по истечении, а данные остаются доступны для выгрузки.
Сколько длится интеграция?
До первого тестового чека обычно полдня рабочего времени с готовым программистом: один вызов для выдачи, один для проверки состояния, один для сторно. Доступ к среде в тот же день, а переход на продакшен это изменение настроек, а не новая разработка.
Что на вас, а что на мне?
На нас: активация, корректность фискализации по решению Налоговой администрации, документация и поддержка при интеграции. На вас: аккаунт и оплата, передача элемента безопасности и PAK, ваш код и решение о переходе на продакшен.

Данные на чеке из интернет-магазина и ERP

Отправляется всё содержимое чека или только итоговая сумма?
Всё содержимое, по позициям: название, код, количество, единица измерения, цена с НДС и налоговая ставка для каждой позиции отдельно. Итоговая сумма не отправляется, Tezga считает её из позиций, поэтому не может случиться, чтобы сумма и позиции не совпадали. Один чек несёт до 500 позиций. Если код есть в каталоге Tezga, позиция привязывается к этому товару, поэтому отчёт по товару работает и для веб-продажи.
Как на фискальном чеке видны скидки и промокоды из магазина?
Как скидка, а не как скрытая цена. На /order вы отправляете popustProcenat или popustRsd по позиции, и popustProcenat или popustRsd на весь чек (по уровню только одно поле). Скидку на весь чек Tezga распределяет по позициям пропорционально основе, так же как в приложении, поэтому НДС по ставкам остаётся точным, а остаток копеек идёт на самую большую позицию. Когда позиция несёт код из каталога Tezga, отправьте cenaIzZahteva:true: тогда действуют цена и скидка из запроса, а из каталога название, единица измерения и ставка. Связи с интернет-магазином (WooCommerce, Shopify, PrestaShop, OpenCart, Magento, BigCommerce) всегда фискализируют цену, которую заплатил покупатель. Скидка больше суммы, два поля на одном уровне и скидка вместе с каталожным кодом без cenaIzZahteva возвращают 422.
Как учитываются ставки 20 и 10 процентов, когда корзина смешанная?
Каждая позиция несёт свою ставку, поэтому смешанная корзина не особый случай. Tezga работает с тремя налоговыми метками Налоговой администрации: Ђ для 20 процентов, Е для 10 процентов и А для освобождённого. В API ставку вы отправляете как 20, 10, 0 или pdv20, pdv10, oslobodjeno; для коннектора магазина вы задаёте сопоставление налогового класса из магазина одной из этих трёх. Пустая ставка трактуется как 20 процентов, никогда как освобождение, а неизвестное значение возвращает ошибку вместо неправильного чека. Ноль с платформы у плательщика НДС не трактуется как освобождение.
Распознаёт ли система, физическое лицо покупатель или юридическое?
По PIB. Если с заказом приходит PIB, покупатель записывается как юридическое лицо: на фискальном чеке идёт идентификация покупателя 10:PIB, а покупатель находится или создаётся в справочнике по PIB. Без PIB чек розничный. Коннекторы берут PIB из полей платформы: Magento из customer_taxvat, PrestaShop из siret, WooCommerce из мета-поля для PIB или VAT, Shopify из примечания к заказу в виде PIB: 123456789. Из собственной системы вы просто отправляете его в поле kupac.pib.
Идёт ли B2B-чек из магазина и на SEF, или это делает ERP?
Может из Tezga. Для заказа с PIB поток fiskalni_i_sef выдаёт фискальный чек и тот же документ отправляет на SEF как электронный счёт, с фискальным PFR-номером как ссылкой на счёте. Поток sef отправляет только электронный счёт, без фискализации. Условие в том, что у компании есть свой ключ API SEF в Настройках; без него документ получает статус не подключён и ждёт. Покупатель из государственного сектора с JBKJS не может в фискальный поток, потому что ему выдаётся исключительно электронный счёт.
Как идёт авансовый счёт, когда покупатель платит картой вперёд?
Через отдельный адрес /api/integrations/advance: вы отправляете сумму аванса, дату платежа, ставку и покупателя, Tezga выдаёт авансовый счёт. Когда вы поставляете товар, тот же вызов с zatvori:true и реальными позициями выдаёт возврат аванса, а затем итоговый счёт, со ссылкой на аванс, которую требует закон. Если возврат аванса не проходит в Налоговой, итоговый счёт не выдаётся, чтобы не возник двойной оборот. Веб-заказ, оплаченный вперёд, может идти и через /order с tok:"avans" (и опциональным datumUplate): создаётся авансовый счёт на сумму заказа после скидки, а закрывается тем же вызовом /advance с zatvori:true и тем же externalId. Так работает заказ с одной налоговой ставкой; смешанные ставки возвращают 422 с указанием на /advance. Для заказа, который оплачивается и сразу поставляется, аванс не нужен: один вызов на /order.
Работает ли частичный возврат, например одна из трёх позиций?
Работает. POST /api/integrations/refund с vrsta:refundacija и списком позиций с количеством возвращает только эти позиции, а сумма считается пропорционально оригиналу и уменьшается на то, что уже было возвращено ранее. Сторно это всегда весь чек. Возврат в PFR несёт номер и время оригинального чека, поэтому связь видна и Налоговой. Оригинал находится по documentId Tezga или по вашему номеру заказа.
Как сторнируется заказ, когда покупатель отказывается, из ERP или из магазина?
Из ERP одним вызовом на /api/integrations/refund по номеру заказа. Из Tezga кнопкой на заказе: фискальное сторно или возврат выдаётся, заказ получает статус возвращён, а в WooCommerce записывается запись о возврате и заметка, в Shopify заметка. Деньги покупателю не возвращаются автоматически, это остаётся на вашем платёжном посреднике. Сторно и возврат, выданные через API, когда проходят в Налоговой, запускают webhook с номером заказа; действия из кассы событие не отправляют, поэтому ERP читает их через GET documents.

Чек покупателю из интернет-магазина

Как покупатель из интернет-магазина получает фискальный чек?
Двумя способами, по вашему выбору. Первый: Tezga сама отправляет письмо покупателю, как только чек проходит в Налоговой, если с заказом пришёл адрес и поле posaljiMejl:true, либо если в связи с магазином включена автоматическая отправка. Второй: в ответе на вызов API вы получаете публичную ссылку на чек и PDF, которые работают без входа и без ключа, и встраиваете их в своё подтверждение покупки или в аккаунт покупателя. Письмо не отправляется, если фискализация не прошла, чтобы покупатель не получил чек, которого нет у Налоговой.
Чек это PDF во вложении или только ссылка для проверки?
И то, и другое. Письмо несёт PDF чека во вложении, а на самом чеке есть QR-код и адрес suf.purs.gov.rs для проверки в Налоговой администрации. URL проверки вы получаете и в ответе API, поэтому можете показать его сами. У каждого чека есть и публичная ссылка, которая работает без входа, используется для обмена и копии.
Может ли письмо с чеком нести название и данные моей компании?
Может. В заголовке письма стоит логотип компании, отправитель отображается под именем компании, ответ покупателя идёт на ваш адрес, а в подвале название, адрес, телефон и сайт. Логотип встроен в само письмо, не загружается из интернета; в письме показывается PNG, JPG или GIF до 200 КБ, а без логотипа стоят начальные буквы названия. Вводный текст и тему письма вы меняете в Настройках, Письма, Чек покупателю. PDF чека во вложении.

Объём, доступность и связывание систем

Какой объём выдерживает API и можно ли его поднять?
По умолчанию 120 запросов в минуту для выдачи и возврата и 240 для чтения, на компанию, а не на ключ или IP-адрес. Граница это настройка аккаунта, а не код: поднимается до 10 000 запросов в минуту по запросу, а минимум 10. Каждый ответ несёт X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset, поэтому ваша система знает, сколько ещё можно. Число фискальных чеков в месяц не ограничено: включено 3 000, сверх этого 2 динара за чек, а продажа не останавливается.
Какая у вас доступность и мониторинг, когда магазин работает круглосуточно?
Состояние системы публично, без входа, на /status: база, фискализация с процентом успешных чеков за последние 24 часа, отправка писем и фоновые задачи, со списком текущих и последних десяти инцидентов. Мониторинг каждые 10 минут проверяет V-PFR, SUF, SEF, почту и базу. Когда Налоговая не отвечает, все пользователи видят полосу с инструкцией, а Tezga сама повторяет фискализацию каждые 10 минут, до 12 раз за 48 часа, и после последней неудачи открывает срочный тикет и отправляет письмо компании. Договорный уровень услуги с гарантированным временем ответа есть на уровне Enterprise, в трёх ступенях: Стандарт (ответ 4 часа в рабочие дни), Расширенный (2 часа, 7 дней в неделю, дежурный телефон 08–22) и Критический оборот (30 минут, 0–24, круглосуточное дежурство с назначенным инженером).
С какими e-commerce платформами вы уже работаете?
У WooCommerce и Shopify есть полная двусторонняя связь: Tezga сама забирает заказы каждые 30 минут и по кнопке, фискализирует по статусу, который вы выберете (оплачено, отгружено или завершено), и записывает номер чека обратно в заказ. PrestaShop, OpenCart, Magento и Adobe Commerce, BigCommerce работают через входящий webhook. WordPress без WooCommerce, Wix, Gomag, custom-сайт и headless-магазины работают через REST API; n8n, Make и Zapier тем же API. Для WooCommerce есть и дополнение, которое в админке показывает фискальный чек рядом с заказом, только для чтения.
Как товары из ERP попадают в Tezga?
Через API, автоматически. POST /api/integrations/products принимает до 500 товаров за вызов (код, название, цена с НДС, налоговая ставка, единица измерения, GTIN, активен), а POST /api/integrations/customers до 500 покупателей (название, PIB с проверкой контрольной цифры, регистрационный номер, JBKJS, адрес, почта, телефон). Товар распознаётся по коду, покупатель по PIB, затем по почте, затем по названию; ничего не удаляется, а поле, которое вы не пришлёте, остаётся как есть. Одна плохая позиция не рушит остальные, а повторный вызов безопасен. Остаток на складе не записывается через API, чтобы книга изменений оставалась точной. Из магазина каталог переписывается сам (WooCommerce, Shopify), а вручную идёт импорт из Excel или CSV.
Сколько интеграций может быть на одном аккаунте?
До 20 именованных ключей API на компанию, по одному на каждую интеграцию, с паузой и с разрешёнными IP-адресами по ключу; ключ только для чтения не может выдать чек. До 5 webhook-адресов на компанию, каждый со своим секретом. Каждый вызов API записывается с ключом, маршрутом и исходом, поэтому видно, какая интеграция что делает.

Роли, данные и обновления

Как начисляется оплата: за вызов API, за чек или фиксированно?
Фиксированная месячная подписка по тарифу, оплаченная вперёд за 3, 6 или 12 месяцев, без срочного договора и без платы за внедрение. Вызовы API не тарифицируются. Фискальные чеки включены до 3 000 в месяц, сверх этого 2 динара за чек. Для сетей, marketplace-платформ и систем с собственной командой разработки есть уровень Enterprise, с ценой по запросу.
Как выглядит поддержка вне рабочего времени?
Обычная поддержка работает в рабочие дни, по почте, телефону, WhatsApp и Viber, и отвечают люди, которые пишут программу. Обращения ведутся как тикеты со сроком первого ответа: срочный 4 часа, обычный 24 часа. Когда Налоговая администрация не работает, система распознаёт это сама, уведомляет всех пользователей и повторяет фискализацию без ожидания поддержки. Дежурство по выходным и праздникам согласуется на уровне Enterprise: дежурный телефон 08–22 или круглосуточное дежурство.
Где данные и кто видит элемент безопасности?
Приложение и база работают в Европейском союзе, во Франкфурте; обработчики это Vercel, Neon, Cloudflare и Resend, указанные в Политике конфиденциальности. Сертификат, пароль, PAK и PIN хранятся в зашифрованном виде алгоритмом AES-256-GCM, не показываются обратно ни вам, ни нам и используются исключительно при связи с процессором фискальных чеков. Ключи API хранятся как хеш SHA-256 и видны только один раз, при создании. Доступ к аккаунту можно ограничить IP-адресами компании, вход имеет двухфакторную защиту, а каждое административное действие остаётся в журнале.
Сколько пользователей и какие роли существуют?
Три роли: администратор, менеджер и кассир. Кассиры работают под своими входами, поэтому каждый чек несёт имя того, кто его выдал, а выручка видна по смене и по кассиру. Тарифы Tezga и Start имеют одного пользователя, а с тарифа Posao число пользователей не ограничено. Сотрудник получает приглашение по почте и сам задаёт пароль; ссылка действует 72 часа и используется один раз. В тарифе Biznis один аккаунт ведёт и несколько компаний, с переключением в один клик. Бухгалтер записывается как контакт и сам получает запланированные отчёты, без входа в кассу. Каждое действие пользователя остаётся в журнале активности.
Кто архивирует фискальные чеки и как долго они хранятся?
Tezga, в базе, вместе с каждым чеком и ссылкой на проверку Налоговой администрации. Фискальные записи не удаляются ни настройкой, ни удалением аккаунта: компания, которая когда-либо выдала фискальный чек, анонимизируется, а чеки остаются из-за законного срока в 10 лет. Все данные компании вы забираете в один клик как ZIP, из всех таблиц, без секретов. С дополнением для цифрового архива (DMS Fascikla) каждый фискализированный чек идёт и в электронный архив в виде PDF/A, с архивной книгой и сроками хранения.
Что происходит, когда Налоговая меняет правила, прерывает ли обновление сайт?
Не прерывает. Tezga работает в облаке, обновляется на нашей стороне, и у вас нет установки: новая версия публикуется как целое и переключается в один момент, а предыдущая остаётся готовой к возврату за несколько секунд. Изменения схемы базы это только добавление, поэтому старый и новый код работают над одной базой. Tezga одобрена как ESIR 1597 версия 1.1; технические указания Налоговой администрации (TaxCore) мы отслеживаем и внедряем сами, а ваш договор по API не меняется. Корректность связи с V-PFR проверяется каждую ночь.
Могу ли я протестировать интеграцию до оплаты?
Пробного периода нет, но тест не обусловлен оплатой настоящих чеков. По запросу мы открываем демо-аккаунт на 48 часов, с данными для пробы, в котором чеки не уходят в Налоговую: PFR-номер начинается с MOCK, а поле okruzenje в tax-labels возвращает simulacija. Со своим тестовым элементом безопасности вы работаете в официальной sandbox-среде Налоговой администрации. Переход на продакшен это замена адреса и сертификата; ключ API и ваш код остаются теми же.

Что-то не отвечено?

Напишите нам с описанием сценария (что продаёте, кто покупатели, как платят), и мы ответим конкретно, с примерами вызовов для вашего случая.

podrska@tezgafiskal.com