JSON-API V2.0 для сервера ККМ. Пример открытия/закрытия и печати чека смены.

< Назад
Содержание

Программное обеспечение предназначено для печати документов на фискальных регистраторах, онлайн-кассах или автоматизированных системах печати документов(АСПД) через сеть Интернет и ЛВС. Особенно актуально применение программы при печати чеков из терминальных сеансов Windows Server. В условиях подключения к серверу терминалов через интернет, в особенности через сети операторов мобильной связи, существует проблема медленной печати на ККМ. Эту задачу успешно решает «Сервер ККМ». Кроме этого, программа позволяет организовать многопользовательскую печать на ККМ с нескольких компьютеров.

Как использовать

Все вызовы методов — это GET или POST HTTP-запросы к URL   http://localhost:4398/PrintService/api/v2/ с некоторым набором параметров.

Начало работы.

Для того, чтобы приступить к работе с сервером ККМ по JSON-API, необходимо получить токен клиента. Для этого используется POST метод GetToken, В теле запрос передаются следующие параметры:

  • login — имя пользователя
  • password — пароль пользователя

Пример (в целях тестирования нужно использовать «login»: «First», «password»: «Second»):

JSON-запрос получения токена

Пример ответа на запрос:

JSON-ответ получения токена.
  • success — статус запроса (значение true — успешно, false — не успешно)
  • expire — дата окончания действия токена.
  • tokenId — токен.

Пример: Открытие Смены.

Открытие смены осуществляется POST методом OpenShift ( http://localhost:4398/PrintService/api/v1/OpenShift ).

JSON-запрос для открытия смены

{
«InputParameters»: {
«CashierName»: «First»,
«CashierVatin»: «»
},
«IdClient»: «46cac3bd-18db-496a-aed8-242eddc294ab»,
«NameKkm»: «Atol»
}

  • СashierName — — ФИО кассира
  • CashierVatin — ИНН кассира
  • type: операция, выполняемая Cервером ККМ, в данном примере openShift — открытие смены.
  • idClinet — токен клиента.
  • NameKkm — псевдоним кассы, зарегистрированной на Сервере

Пример ответа на запрос:

{
«success»: true,
«response»: {
«fnsUrl»: null,
«fnNumber»: null,
«registrationNumber»: null,
«fiscalDocumentDateTime»: «0001-01-01T00:00:00.000Z»,
«fiscalDocumentSign»: «1530632824»,
«shiftNumber»: 268,
«fiscalDocumentNumber»: 2435,
«OutputParameters»: {
«BacklogDocumentFirstDateTime»: «/Date(1574073000000+0800)/»,
«BacklogDocumentFirstNumber»: 2429,
«BacklogDocumentsCounter»: 7,
«MemoryOverflowFn»: false,
«NumberOfChecks»: null,
«NumberOfDocuments»: null,
«OfdTimeout»: false,
«ResourcesExhaustionFn»: false,
«ResourcesFn»: 901,
«UrgentReplacementFn»: false
}
},
«errors»: [
{
«code»: 0,
«msg»: «Ошибок нет»
}
],
«requestBody»: {
«After»: [],
«Before»: [
{
«Alignment»: 0,
«Font»: 0,
«Line»: «Внимание!»,
«Wrap»: false
},
{
«Alignment»: 0,
«Font»: 0,
«Line»: «Печать в режиме демонстрации.»,
«Wrap»: false
},
{
«Alignment»: 0,
«Font»: 0,
«Line»: «Вызовов печати осталось 19»,
«Wrap»: false
}
],
«Cashier»: «First»,
«CashierVATIN»: null,
«Date»: «/Date(1574220840000+0800)/»,
«DeviceId»: «6266e5c7-5c42-461b-82b4-28f1b9763466»,
«DocNumber»: 2435,
«DocType»: 8,
«DockId»: «4e017cef-fdab-4015-871d-f1f434a3f76e»,
«FiscalSign»: «1530632824»,
«Fn»: «9999078900009072»,
«ResultCode»: 0,
«ResultDescription»: «Ошибок нет»,
«SessionNumber»: 268,
«TerminalId»: null,
«Ver»: null,
«Output»: {
«BacklogDocumentFirstDateTime»: «/Date(1574073000000+0800)/»,
«BacklogDocumentFirstNumber»: 2429,
«BacklogDocumentsCounter»: 7,
«MemoryOverflowFn»: false,
«NumberOfChecks»: null,
«NumberOfDocuments»: null,
«OfdTimeout»: false,
«ResourcesExhaustionFn»: false,
«ResourcesFn»: 901,
«UrgentReplacementFn»: false
}
}
}

  • success — результат выполнения запроса, true — запрос выполнен успешно, false — запрос не выполнен
  • response — ответ
    • fnsUrl — адрес сайта ФНС
    • fnNumber — номер ФН
    • registrationNumber — РНК
    • fiscalDocumentSign — Фискальный Признак ФД
    • shiftNumber — номер смены
    • fiscalDocumentNumber — номер ФД
    • OutputParameters выходные параметры
    • BacklogDocumentFirstDateTime — Дата и время первого из непереданных документов
    • BacklogDocumentFirstNumber — Номер первого непереданного документа
    • BacklogDocumentsCounter — Количество непереданных документов
    • MemoryOverflowFn — Признак переполнения памяти ФН
    • NumberOfChecks — Количество кассовых чеков за смену
    • NumberOfDocuments — Количество общее ФД за смену
    • OfdTimeout — Признак того, что подтверждение оператора для переданного фискального документа отсутствует более двух дней. Для ФД с версией ФФД 1.0 более 5 дней.
    • ResourcesExhaustionFn — Признак исчерпания ресурса ФН срока
    • ResourcesFn — Срок действия ключей фискального признака. Текущее значение реквизита определяется как остаток срока действия ключей в днях.
    • UrgentReplacementFn — Признак необходимости срочной замены ФН
  • errors — массив ошибок (code — код ошибки, msg — описание ошибки )

Пример: Закрытие Смены.

Закрытие смены производится аналогичным образом, с вышеприведенным примером, открытия смены, методом CloseShift ( http://localhost:4398/PrintService/api/v1/OpenShift ).

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

{
«InputParameters»: {
«CashierName»: «First»,
«CashierVatin»: «»
},
«IdClient»: «46cac3bd-18db-496a-aed8-242eddc294ab»,
«NameKkm»: «Atol»,
}

Ответ аналогичный методу Открытия смены

Пример: Печать чека.

Печать чека производится методом ProcessCheck( http://localhost:4398/PrintService/api/v1/ ProcessCheck ).

Тело Запроса:

  • IdClient — токен клиента
  • NameKKM — псевдоним ККМ
  • InputParameters — входные параметры
    • InputParameters — входные параметры
      • CashierName — ФИО кассира
      • CashierVatin — ИНН кассира
      • PaymentType — Тип расчета
        1 — Приход
        2 — Возврат прихода
        3 — Расход
        4 — Возврат расхода
      • TaxVariant — Код системы налогообложения.
        0 — Общая
        1 — Упрощенная (Доход).
        2 — Упрощенная (Доход минус Расход)
        3 — Единый налог на вмененный доход
        4 — Единый сельскохозяйственный налог
        5 — Патентная система налогообложения
      • CustomerEmail — Email покупателя
      • CustomerPhone — Телефонный номер покупателя
      • SenderEmail — Адрес электронной почты отправителя чека
      • AddressSettle — Адрес проведения расчетов
      • PlaceSettle — Место проведения расчетов
      • AgentSign — агента
        • PayingAgentOperation — Операция платежного агента
        • PayingAgentPhone — Телефон платежного агента
        • ReceivePaymentsOperatorPhone — Телефон оператора по приему платежей
        • MoneyTransferOperatorPhone — Телефон оператора перевода
        • MoneyTransferOperatorName — Наименование оператора перевода
        • MoneyTransferOperatorAddress — Адрес оператора перевода
        • MoneyTransferOperatorVATIN — ИНН оператора перевода
      • PurveyorData — Данные поставщика
        • PurveyorPhone — Телефон поставщика
        • PurveyorName — Наименование поставщика
        • PurveyorVATIN — ИНН поставщика
      • AdditionalAttribute — Дополнительный реквизит чека
  • Positions — позиция по чеку
    • FiscalString — Фискальная строка
      • Name — Наименование товара
      • Quantity — Количество товара
      • PriceWithDiscount — Цена единицы товара с учетом скидок/наценок
      • SumWithDiscount — Конечная сумма по позиции чека с учетом всех скидок/наценок
      • DiscountSum — Сумма скидок и наценок (если значение > 0 то в чеке выводиться скидка, если значение < 0 то наценка )
      • Department — Отдел, по которому ведется продажа
      • Tax — Ставка НДС. Список значений:
        «none» — БЕЗ НДС
        «10» — НДС 10
        «18» — НДС 18
        «20» — НДС 20
        «0» — НДС 0
        «10/110» — расч.ставка 10/110
        «18/118» — расч.ставка 18/118
        «20/120» — расч.ставка 20/120
      • TaxSum — Сумма НДС за предмет расчета.
        В ККТ должен быть отключен расчет налогов, и в чеке выводиться сумма НДС
      • SignMethodCalculation — Признак способа расчета.
        1 — Предоплата полная
        2 — Предоплата частичная
        3 — Аванс
        4 — Полный расчет
        5 — Частичный расчет и кредит
        6 — Передача в кредит
        7 — Оплата кредита
      • SignCalculationObject — Признак предмета расчета.
        1 — Товар
        2 — Подакцизный товар
        3 — Работа
        4 — Услуга
        5 — Ставка азартной игры
        6 — Выигрыш азартной игры
        7 — Лотерейный билет
        8 — Выигрыш лотереи
        9 — Предоставление результатов интеллектуальной деятельности
        10 — Платеж, выплата
        11 — Агентское вознаграждение
        12 — Составной предмет расчета
        13 — Иной предмет расчета
        14 — Имущественное право
        15 — Внереализационный доход
        16 — Страховые взносы
        17 — Торговый сбор
        18 — Курортный сбор
        19 — Залог
      • AgentData — данные агента
      • PurveyorData — данные поставщика
      • MeasurementUnit — Единица измерения предмета расчета
      • GoodCodeData — Данные кода товарной номенклатуры
        • StampType — Тип маркировки.
        • Stamp — Контрольный идентификационный знак (КиЗ)
        • GTIN — Глобальный идентификатор торговой единицы (GTIN)
        • SerialNumber — Серийный номер
      • TextString — строка с произвольным текстом
        • Text — текст
      • Barcode — штрихкод
        • BarcodeType — Строка, определяющая тип штрихкода (  EAN8, EAN13, CODE39, QR )
        • Barcode — Значение штрихкода
  • Payments
    • Cash — Сумма наличной оплаты
    • ElectronicPayment — Сумма безналичными средствами
    • AdvancePayment — Сумма предоплатой (зачетом аванса)
    • Credit — Сумма постоплатой (в кредит)
    • CashProvision — Сумма встречным предоставлением

Ответ аналогичный ответу на Метод OpenShift

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

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

семь + 6 =

Регистрация
*
*
*

четырнадцать + два =

Генерация пароля

2 × 3 =