Основные положения
Веб-сервис предназначен для тех предприятий, которые используют услугу фискализации через АПК Ассист для финансовых операций, проводимых на стороне предприятия.
Веб-сервис фискализации внешних операций позволяет предприятию получить уникальный идентификатор сгенерированного в АПК Ассист фискального чека на основе данных, переданных в запросе.
По идентификатору можно в свою очередь запросить фискальные данные чека из АПК Ассист через отдельный веб-сервис fiscalreceipt. Эти данные используются, например, в тех случаях, когда предприятие самостоятельно отправляет электронные копии чеков своим покупателям.
Для обращения к веб сервису необходимо отправить запрос методом POST/SOAP на сервер ASSIST по адресу: https://<SERVER_NAME>/fiscal/fiscalize.cfm.
Входные параметры сервиса:
Параметр | Обязательное поле | Принимаемые значения | Значение по умолчанию | Описание |
Merchant_ID | Да | Число | Идентификатор предприятия в системе АПК Ассист | |
Login | Да | 20 символов | Логин пользователя сервиса от предприятия | |
Password | Да | 30 символов | Пароль пользователя сервиса от предприятия | |
Payment_ID | Нет | 255 символов | Идентификатор операции в системе предприятия | |
Да/Нет1 | 128 символов | E-mail адрес для отправки фискального чека | ||
Phone | Да/Нет1 | Число | Номер телефона для отправки фискального чека (без +7) | |
Type | Да | Строка | Тип фискализируемой операции:
| |
Paymenttype | Да | Число | ||
TaxationSystem | Нет4 | Число | Из настроек предприятия или ККТ | |
Chequeitems | Да/Нет2 | Строка в формате JSON | Позиции чека, см. «Работа с чеком». | |
Amount | Да | Число, 15 цифр (разделители «.», «,») | Сумма операции | |
Format | Нет | Число | 1 | Формат возвращаемого ответа (1-CSV, 2-WDDX, 3-XML, 4-SOAP) |
Language | Нет | RU - русский, EN - английский | Язык предприятия | Язык отправляемого письма (RU/EN) |
ReceiptLine | Да/Нет2 | 128 символов | Позиция чека (для чеков с единственной позицией) | |
Tax | Да/Нет2 | 10 символов | ||
FPMode | Да/Нет2 | Число | ||
LastName | 70 символов | Фамилия покупателя | ||
FirstName | 70 символов | Имя покупателя | ||
MiddleName | 70 символов | Отчество покупателя | ||
CustomerDocID | 11 символов | Серия/номер паспорта покупателя | ||
TaxpayerID | 12 символов | ИНН покупателя | ||
PaymentAddress | 256 символов | Адрес расчетов | ||
PaymentPlace | 256 символов | Место расчетов | ||
Cashier | 64 символа | Кассир |
1Должен быть передан хотя бы один из параметров Email и Phone. Если Email и Phone не указаны, то необходимые данные для контакта с плательщиком извлекаются из настроек предприятия. Если переданы оба параметра Email и Phone, то для контакта с плательщиком будет использоваться параметр Email.
2Состав чека (поля с названием, стоимостью за единицу товара/услуги, ставкой налога и способом расчета по каждой позиции) определяется по следующим правилам.
- Если в запросе передана структура ChequeItems (см. «Работа с чеком»), то формируется чек с количеством позиций по числу переданных в ChequeItems строк, в каждой позиции должны быть обязательно указаны параметры:
- product и/или name;
- price;
- quantity;
- amount;
при этом:
название каждой из позиций формируется как объединение параметров product и name через пробел (если переданы оба) или как один из параметров product или name соответственно (если передан только один);
если параметры Tax или FPmode не переданы в позициях, то они могут быть переданы в параметрах запроса (в этом случае значения этих параметров будут одинаковыми для всех позиций чека, переданных в ChequeItems);
если параметры Tax или FPmode не переданы в параметрах запроса, то их значения подставляются из настроек предприятия (значения этих параметров будут одинаковыми для всех позиций чека, переданных в ChequeItems);
если настройки предприятия для этих параметров отсутствуют, то обработка запроса завершается с ошибкой (недостаточно данных для выполнения операции).
2. Если в запросе не передана структура ChequeItems, то формируется чек с одной позицией, в которой:
- название позиции подставляется из параметра ReceiptLine, если он передан в запросе; если параметр ReceiptLine не передан в запросе, то название позиции подставляется из настроек предприятия; если настройки предприятия для этих параметров отсутствуют, то в качестве названия подставляется строка "Оплата заказа";
- стоимость единицы товара/услуги подставляется из параметра запроса Amount;
- количество всегда равно 1;
если параметры Tax или FPmode не переданы в параметрах запроса, то их значения подставляются из настроек предприятия;
если настройки предприятия для этих параметров отсутствуют, то обработка запроса завершается с ошибкой (недостаточно данных для выполнения операции).
3Уникальность Payment_ID контролируется в рамках конкретного предприятия для типа операций sell и sell_refund и статусов фискального чека:
Если для данного MerchantID, для данного Payment_ID и типов sell или sell_refund уже создан фискальный чек, то при статусах фискального чека New, InProgress, Requested, ErrorRe, Success выдается ошибка – «Фискальный чек создан или находится в обработке».
Если для данного MerchantID, данного Payment_ID и типов sell или sell_refund фискальный чек создан, но имеет статус Error или CreateError, - то создается новый чек.
При частичных отменах одного заказа параметр Payment_ID каждой отдельной операции отмены должен быть уникальным. Если предприятие не может обеспечить уникальность параметра Payment_ID для частичных отмен (например, передает в этом поле один и тот же номер заказа), то при фискализации операции типа sell_refund можно не передавать этот параметр, что обеспечит фискализацию более одной операции частичной отмены для данного заказа. При этом нужно иметь в виду, что отсутствие параметра Payment_ID отменяет проверку на уникальность и может привести к повторной фискализации одной и той же операции, если запрос на ее фискализацию был послан вторично.
4Параметр TaxationSystem задается для всего чека в целом (не передается в позициях чека). Если параметр не передан, то его значение берется из настроек предприятия. Если у предприятия не настроено значение параметра TaxationSystem по умолчанию, то в ККТ этот параметр (тег 1055) не отправляется и ККТ будет проводить чек по собственным настройкам. Это возможно только в том случае, если в ККТ настроена только одна система налогообложения, в противном случае ККТ выдаст ошибку.
Перечень возвращаемых параметров:
Название | Значение |
fiscalreceipt_ID | Идентификатор созданного фискального чека |
Payment_ID | Идентификатор операции в системе предприятия (если есть) |
Type | Тип фискализируемой операции:
|
Receipt_status | Статус созданного фискального чека |
или | |
Сообщение об ошибке (если переданы некорректные параметры или не все обязательные параметры) |
После получения данных о создании фискального чека в статусах New, InProgress, ErrorRe, Requested рекомендуется через несколько минут дополнительно запросить данные фискального чека с помощью веб-сервиса fiscalreceipt (о веб-сервисе fiscalreceipt подробнее см. «Получение фискального чека») для того чтобы убедиться, что создание фискального чека успешно завершено.
Если запрос на фискализацию не может быть обработан, в результате запроса вернутся ненулевые значения параметров firstcode, secondcode.