При получении данных заказа из информационной системы предприятия через веб-сервис или от собственного приложения предприятия в приложение Assist mPOS передаются необходимые входные данные.
Входные данные для приложения Assist mPOS
Параметр | Обяза-тельный | Описание | Комментарий | Пример в формате JSON |
ordernum | Нет | Уникальный номер заказа из внешней системы | На входе используется валидация. Запрещены и фильтруются символы <>"='/();# | "ordernum":"12354_5678" |
amount | Да | Сумма заказа | Если значение отличается от значения произведения переданных в строке items значений price и quantity | "amount":"1234.56" |
amount _ prepaid | Нет | Сумма ранее полученной предоплаты | "amount_prepaid":"1000.00" | |
currency | Нет | Валюта заказа, ISO код | В настоящий момент возможна оплата заказов только в рублях. | "currency":"RUB" |
server | Нет | URL для платежей | Используется только в случае вызова приложения Assist mPOS из собственного приложения предприятия. | "server":"<SERVER-NAME> " |
login | Нет | Логин пользователя assist, который проводит оплату. Могут быть использованы данные курьера. | Используется только в случае вызова приложения Assist mPOS из собственного приложения предприятия. | "login":"<LOGIN>" |
password | Нет | Пароль пользователя assist, который проводит оплату. Могут быть использованы данные курьера. | Используется только в случае вызова приложения Assist mPOS из собственного приложения предприятия. | "password":"<PASSWORD>" |
merchant_id | Нет/Да | Идентификатор предприятия в АПК Ассист. Параметр обязателен, если его значение отсутствует в настройках приложения. | "merchant_id":"223344" | |
merchant_name | Нет | Для печати в чеке. Пример: ООО "Яркий фотомаркет" | "merchant_name":"ООО Мерчант" | |
comment | Нет | Комментарий к заказу | "comment":"скидка 8 марта" | |
clientname | Нет | Имя покупателя | "clientname":"Иван" | |
clientemail | Нет | Email адрес покупателя | "clientmail":"client@mail.ru" | |
clientphone | Нет | Номер мобильного телефона покупателя | "clientphone":"12345678" | |
payment_address | Нет | Место расчета для печати в чеке | "payment_address":"ул. Новая, д.23" | |
cashier | Нет | Фамилия кассира для печати в чеке | "cashier":"Иванов" | |
taxation_system | Нет/Да | Идентификатор системы налогообложения | Код в соответствии со справочником типов системы налогообложения | "taxation_system":"0" |
сustomer_doc_id | Нет | Номер паспорта покупателя | Для чека | "сustomer_doc_id":"5678№123456" |
customer_inn | Нет | ИНН покупателя | Для чека | "customer_inn":"888888888888" |
payment_agent_mode | Нет1 | Признак агента | Для чека. Число от 0 до 6. Передается в соответствии со справочником. | "payment_agent_mode":"0" |
payment_receiver_operator_phone | Нет1 | Телефон оператора по приёму платежей | Для чека | "payment_receiver_operator_phone":"891133333333" |
payment_agent_phone | Нет1 | Телефон платежного агента | Для чека | "payment_agent_phone":"881244444444" |
supplier_phone | Нет1 | Телефон поставщика | Для чека. Номер контактного телефона поставщика | "supplier_phone":"891188888888" |
document_requisite | Нет | Дополнительный реквизит чека | Значение дополнительного реквизита с учетом особенностей сферы деятельности, в которой осуществляются расчеты | "document_requisite":"HXT109352724" |
items | Нет | Товарные позиции в формате json : {"items":[ { "id": "Позиция в чеке", "product" : "Код номенклатуры", "type" : " Предмет расчета" "name" : "Наименование", "display_name" : "Опциональное название позиции, только для отображения в приложении", "price" : "Цена за единицу номенклатуры, без учета скидки", "quantity" : "Количество", "tax" : "Идентификатор ставки налога", "amount" : "Стоимость позиции итого" "discount_amount" : "Скидка по позиции итого" "payment_method" : "Способ расчета", "eancode": "EAN-8/UPC-E, EAN-13/UPC-A, ITF-14 код маркировки товара", "gs1code": "GS1 DataMatrix/"Честный Знак" код маркировки товара", "furcode": "Код маркировки мехового изделия в формате СС-DDDDDD-СССССССССС (C-символ, D-цифра)", "uncode": "Неопознанный код маркировки товара", "country_of_origin" : "Код страны происхождения товара", "number_of_customs_declaration" : "Номер таможенной декларации", "supplier_inn" : "ИНН поставщика", "supplier_name" : "Наименование поставщика", "supplier_phone" : "Телефон поставщика", "excise":"Акциз", "payment_receiver_operator_phone":"Телефон оператора по приёму платежей", "payment_agent_phone":"Телефон платёжного агента", "payment_agent_operation":"Операция платёжного агента", "line_attribute":"Дополнительный реквизит предмета расчета", "agent_mode":" Признак агента по предмету расчета"} ... ] } | Валидация данных:
Только один из кодов маркировки товара (eancode, gs1code, furcode или uncode) может быть передан в позиции чека, передача нескольких кодов недопустима. Внимание! Для формата фискальных данных версии 1.2 не разрешается передавать неопознанный код маркировки товара uncode, следует использовать только один из распознаваемых кодов маркировки (eancode, gs1code или furcode). | "items":[ {"id":"1", "product":"16537615", "type":1, "name":"Чехол FUJIFILM LC-X100F для X100F, коричневый", "display_name": "Компактный фотик" "price":"6500.00", "quantity":1, "tax":"vat0", "amount":"6500.00", "discount_amount":"490.00", "payment_method":"4", "gs1code ":"010465006531290521p9YjRk;Ihdm6T2WItlgr91417592zexhyEZtzgbDJ2fDfjyI2JgmgjwriiZsKaE+efoxlg==", "country_of_origin":"643", "number_of_customs_declaration":"1111-2222", "supplier_inn":"911111111111", "supplier_name":"Поставщик фото","supplier_phone":"1234567", "line_attribute":"дополнительная информация", "agent_mode":0 } ] |
allow_edit_item_quantity | Нет | Разрешено ли пользователю изменять количество позиций заказа | Допустимые значения false или true (по умолчанию false) | "allow_edit_item_quantity":true |
allow_remove_item | Нет | Разрешено ли пользователю удалять позиции заказа | Допустимые значения false или true (по умолчанию false) | "allow_remove_item":true |
1Параметр может заполняться только для ФФД 1.05 и 1.1.
Получение данных из информационной системы предприятия через веб-сервис
Для получения приложением Assist mPOS данных заказа через веб-сервис сначала необходимо настроить соответствующие параметры (URL информационной системы предприятия, наименование учетной записи пользователя и пароль для доступа к веб-сервису информационной системы предприятия) в Личном кабинете АПК Ассист. Настройка параметров описана в инструкции по работе с Личным кабинетом».
После ввода номера заказа пользователем приложение осуществляет запрос методом GET на указанный в настройках сервер предприятия с параметром ID заказа.
Примерный вид запроса:
GET https://<URL сервера информационной системы предприятия>?orderid=XXXX,
где XXXX – уникальный идентификатор заказа в системе предприятия (номер заказа).
В ответ информационная система предприятия должна передать данные заказа в формате JSON в соответствии с таблицей входных данных для приложения Assist mPOS, приведенной выше.
В случае ошибки информационная система предприятия должна ответить согласованным сообщением об ошибке, например, «Заказ не найден» или «Заказ уже оплачен».
При получении из информационной системы предприятия заказов списком приложение осуществляет запрос методом GET на указанный в настройках сервер предприятия с параметром ID пользователя.
Примерный вид запроса:
GET https://<URL сервера информационной системы предприятия>?id=XXXX,
где XXXX – уникальный идентификатор пользователя в системе предприятия (номер заказа).
Получение данных от собственного приложения предприятия
Собственное приложение предприятия, установленное на том же мобильном устройстве, инициирует оплату заказа, передавая приложению Assist mPOS данные заказа.
Данные заказа в формате JSON передаются через Intent как строка (extra string):
Intent.putExtra(Intent.EXTRA_TEXT, json)
Тип данных: Intent.setType("application/json")
Intent action: "ru.assisttech.assistmpos.PAY"
Данные заказа передаются в соответствии с таблицей входных данных для приложения Assist mPOS, приведенной выше.
Результат оплаты возвращается собственному приложению предприятия приложением Assist mPOS также в формате JSON через Intent как строка (extra string):
Intent.putExtra(Intent.EXTRA_TEXT, json)
дополнительно устанавливается тип данных Intent.setType("application/json").
Выходные параметры (результат оплаты)
Параметр ( JSON имя поля) | Обязательный | Описание |
ordernum | Да | Номер заказа |
orderstate | Да | Статус заказа |
billnumber | Нет | Внутренний номер АПК Ассист |
amount | Да | Сумма заказа |
currency | Да | Валюта заказа, ISO код |
clientmail | Нет | Адрес электронной почты покупателя |
clientphone | Нет | Номер телефона покупателя |
payment_type | Да | Способ оплаты (CASH, CARD, FAST_TRANSFER) |
operationdate | Нет | Дата и время операции (GMT) |
cardtype | Нет | Тип платежной системы (VISA/MC) |
cardmask | Нет | Маскированный PAN |
cardholder | Нет | Держатель карты |
cardexpire | Нет | Срок действия карты |
fiscal_printer_serial* | Нет | Серийный номер ККТ |
fiscal_printer_shift* | Нет | Номер смены в ККТ |
fiscal_storage_number* | Нет | Номер фискального накопителя |
fiscal_doc_number* | Нет | Сквозной номер фискального документа |
fiscal_doc_mark* | Нет | Фискальный признак |
fiscal_storage_number_per_shift* | Нет | Номер фискального документа в смене |
fiscal_doc_datetime* | Нет | Дата формирования фискального документа |
*Поле передается только в случае фискализации на стороне АПК Ассист
В случае завершения операции оплаты (успешно или неуспешно) возвращается код результата Activity.RESULT_OK.
Если операция оплаты была прервана, то возвращается код результата Activity.RESULT_CANCELED.
При неуспешном завершении операции оплаты передаются следующие выходные параметры:
Параметр ( JSON имя поля) | Обязательный | Описание |
error_code | Нет | Код ошибки |
error_message | Нет | Сообщение об ошибке |
Получение статуса заказа собственным приложением предприятия
Собственное приложение предприятия, установленное на том же мобильном устройстве, может также запросить статус заказа в АПК Ассист, передавая запрос приложению Assist mPOS. Запрос статуса заказа в формате JSON передается через Intent как строка (extra string):
Intent.putExtra(Intent.EXTRA_TEXT, json)
Тип данных: Intent.setType("application/json")
Intent action: "ru.assisttech.assistmpos.GET_PAYMENT_INFO"
Входные данные для запроса статуса заказа
Параметр | Обязательный | Описание | Комментарий | Пример в формате JSON |
ordernum | Да | Уникальный номер заказа из внешней системы | На входе используется валидация. Запрещены и фильтруются символы <>"='/();# | "ordernum":"12354_5678" |
login | Да | Наименование учетной записи курьера в АПК Ассист. | "login":"qwert" | |
password | Да | Пароль курьера в АПК Ассист. | "password":"qweerty" | |
merchant_id | Да | Идентификатор предприятия в АПК Ассист. | "merchant_id":"223344" |
Результат оплаты возвращается собственному приложению предприятия приложением Assist mPOS также в формате JSON аналогично ответу на передачу данных заказа.