API смарт-терминала позволяет записывать данные агентской схемы (агентские реквизиты) в чек. Для этого используется класс AgentRequisites.kt, экземпляр которого передаётся в позицию чека.
Этот класс состоит из данных контрагентов (участников агентского договора), которые представлены классами:
Agent;Principal;Subagent;TransactionOperator.Некоторые из полей этих классов помечены аннотацией @FiscalRequisite. Это означает, что такие поля будут записаны в кассу в виде тегов фискального документа. Все теги фискальных документов хранятся в классе FiscalTags.
Aгентские реквизиты различных типов агентов или субагентов содержат различный набор необходимых данных. Этот набор определён форматом фискальных данных (ФФД).
getRegisteredFfdVersion класса KktApi.kt, чтобы узнать на какую версию фискальных документов зарегистрирована касса пользователя вашего приложения.Чтобы создать агентские реквизиты с необходимыми данными для соответствующего типа агента или субагента используйте метод createFor*ТипАгента. Например:
AgentRequisites.createForAgent(principalInn, principalPhones)
getRegisteredAgentTypes или getRegisteredSubagentTypes класса KktApi.kt.Чтобы записать агентские реквизиты в позицию используйте метод setAgentRequisites класса Position.Builder:
val resultPosition = Position.Builder.newinstace(sourcePosition).setAgentRequisites(myRequisites).build()
Чтобы добавить полученную позицию в чек вы можете, например, создать интеграционную службу, подписанную на события изменения позиций чека или использовать команду открытия чека.
Итак, чтобы добавить в чек данные агентской схемы:
AgentRequisites для необходимого вам типа агента.setAgentRequisites класса Position.Buider добавьте созданные вами агентские реквизиты в необходимые вам позиции.