Общие положения
Сервис расположен по адресу https://cashbox.octonica.ru.
Обмен данными с Сервисом осуществляется по открытым каналам связи сети Интернет по протоколу HTTP(S) версии 1.1.
Данные передаются в Сервис стандартными HTTP POST запросами.
Соединение с Сервисом происходит с использованием криптографического протокола ТLS 1.2. Алгоритм шифрования канала: RSA.
Авторизация
Идентификация поставщика данных происходит по сертификату юридического лица, выданному нашей компанией.
Сертификат должен быть использован при установлении SSL соединения (двухсторонняя аутентификация).
Если при обработке данных в Сервисе возникли какие-либо внутренние ошибки, Сервис отвечает откликом
с HTTP-статусом 500 Internal Server Error
, в таких случаях нужно обратиться к разработчикам Сервиса.
Передача данных
Передача информации о проведенных платежах осуществляется POST-запросом по адресу https://cashbox.octonica.ru/api/externalPayment/send. Формат данных - json. При успешном приеме данных Сервис отвечает пустым откликом с HTTP-статусом 200 OK
. Если структура или формат данных запроса не соответствуют требованиям, Сервис отвечает откликом с HTTP-статусом 400 Bad Request
. Если при обработке данных в Сервисе возникли какие-либо внутренние ошибки,
Сервис отвечает откликом с HTTP-статусом 500 Internal Server Error
, в таких случаях нужно обратиться к разработчикам Сервиса.
Замечание
Пакетный API является транзакционным, при возникновении ошибки при обработке хотя бы одной строки пакета, не принимается весь пакет чеков.
Описание структуры данных
Данные передаются в виде массива структур. Каждая структура описывает один проведенный платеж.
Реквизитный состав структуры представлен в таблицах ниже.
Таблица 1 - реквизиты платежа
Наименование реквизита | Тип | Описание | Обязательность заполнения |
---|---|---|---|
externalId | строка | Внутренний идентификатор платежа в системе поставщика информации. Должен обеспечивать уникальность как минимум в рамках получателя платежа. | Да |
operationDt | строка | Время совершения платежа в формате ISO 8601 с поддержкой временных зон | Да |
operation | строка | Тип операции. Возможные значения:
|
Да |
companyInn | строка | ИНН получателя платежа | Да |
paymentType | строка | Тип платежа. Возможные значения:
|
Да |
clientEmail | строка | Адрес электронной почты плательщика | Нет |
clientPhone | строка | Номера сотового телефона плательщика | Нет |
itemUserData | строка | Идентификатор плательщика. Может представлять из себя номер лицевого счета, адрес или какой-либо иной идентификатор | Да |
items | массив позиций предмета оплаты | см. Таблица 2 | Да (как минимум 1 позиция) |
Таблица 2 - реквизиты предмета оплаты
Наименование реквизита | Тип | Описание | Обязательность заполнения |
---|---|---|---|
itemName | строка | Наименование товара(услуги) | Да |
itemPrice | целое число | Цена в копейках | Да |
itemQuantity | дробное число | Количество (объем) | Да |
itemSum | целое число | Сумма в копейках | Да |
measurementUnit | строка | Единица измерения количества (объема) | Нет |
paymentMethod | строка | Вид оплаты. Возможные значения:
|
Да |
paymentObject | строка | Вид предмета оплаты. Типовые значения:
|
Да |
vatType | строка | НДС. Возможные значения:
|
Да |
supplierName | строка | Наименование организации - поставщика товара\услуги | Нет |
supplierInn | строка | ИНН организации - поставщика товара\услуги | Нет |
supplierPhone | строка | Телефон организации - поставщика товара\услуги | Нет |
Таблица 3 - значения реквизита вид предмета оплаты
Значение | Описание |
---|---|
commodity | Товар |
excise | Подакцизный товар |
job | Работа |
service | Услуга |
gambling_bet | Ставка азартной игры |
gambling_prize | Выигрыш азартной игры |
lottery | Ставка (билет) лотереи |
lottery_prize | Выигрыш лотереи |
intellectual_activity | Предоставление результатов интеллектуальной деятельности |
payment | Аванс/задаток/предоплата/кредит/взнос/пеня/штраф/вознаграждение/бонус |
agent_commission | Агентское вознаграждение |
composite | Составной предмет расчета |
another | Иной предмет расчёта |
property_right | Имущественное право |
non_operating_gain | Внереализационный доход |
insurance_premium | Страховые взносы |
sales_tax | Торговый сбор |
resort_fee | Курортный сбор |
Примеры
json-запрос передачи двух платежей
[
{
"externalId": "7483949583784",
"operationDt": "2019-08-20T18:56:11.5603489+05:00",
"operation": "sell",
"companyInn": "7419005017",
"paymentType": "cashless",
"clientEmail": "noaddress@fake.mail",
"itemUserData": "ЛС №13245211",
"items": [
{
"itemName": "Услуги ЖКХ",
"itemSum": 102476,
"paymentMethod": "full_payment",
"paymentObject": "service"
}
]
},
{
"externalId": "74812312214124",
"operationDt": "2019-08-20T18:56:11.561349+05:00",
"operation": "sell",
"companyInn": "7419005017",
"paymentType": "cashless",
"clientPhone": "+7890123456",
"itemUserData": "ЛС №333",
"items": [
{
"itemName": "Содержание жилья",
"itemPrice": 1476,
"itemQuantity": 98.24,
"itemSum": 145002,
"measurementUnit": "кв.м",
"paymentMethod": "full_payment",
"paymentObject": "service"
},
{
"itemName": "Холодное водоснабжение",
"itemPrice": 16000,
"itemQuantity": 23.24,
"itemSum": 371840,
"measurementUnit": "куб.м",
"paymentMethod": "full_payment",
"paymentObject": "service"
},
{
"itemName": "Горячее водоснабжение",
"itemPrice": 16.0,
"itemQuantity": 2324.0,
"itemSum": 3718.0,
"measurementUnit": "куб.м",
"paymentMethod": "full_payment",
"paymentObject": "service",
"vatType": "none",
"supplierName": "ООО ТеплоСнаб",
"supplierInn": "7419002367",
"supplierPhone": "+7890546879"
}
]
}
]
Получение информации о статусе
Получение информации о статусе фискализации проведенных платежей осуществляется POST-запросом по адресу https://cashbox.octonica.ru/api/externalPayment/report. Формат данных - json.
При успешном приеме данных Сервис отвечает откликом с HTTP-статусом 200 OK
и телом json с той же структурой.
Если структура или формат данных запроса не соответствуют требованиям, Сервис отвечает откликом с HTTP-статусом 400 Bad Request
.
Если при обработке данных в Сервисе возникли какие-либо внутренние ошибки, Сервис отвечает откликом с HTTP-статусом 500 Internal Server Error
, в таких случаях нужно обратиться к разработчикам Сервиса.
Описание структуры данных
Таблица 4 - реквизиты запроса статуса фискализации
Наименование реквизита | Тип | Описание | Обязательность заполнения |
---|---|---|---|
date | дата | Время совершения платежа. Строковое представление даты в формате ISO 8601:2004 | Да |
companyInn | ИНН получателя платежа | Время совершения платежа в формате ISO 8601 с поддержкой временных зон | Да |
Таблица 5 - статусы платежей
Ответ состоит из реквизитов запроса см. Таблица 4, дополненных статусом каждого платежа.
Значение | Описание |
---|---|
waiting | в очереди на фискализацию |
register | фискализирован |
error | фискализация не произведена из-за ошибки |
notFound | информация о платеже отсутствует в базе данных |
unknown | статус неизвестен |
Примеры
json-запрос статусов платежей
{
"date": "2020-04-03T00:00:00",
"companyInn": "7456027298",
"items": [
{
"externalId": "1109471560"
},
{
"externalId": "1109405394"
},
{
"externalId": "1109467800"
},
{
"externalId": "1109714351"
},
{
"externalId": "1109547787"
},
{
"externalId": "1109657269!"
}
]
}
json-ответ статусов платежей
{
"date": "2020-04-03T00:00:00",
"companyInn": "7456027298",
"items": [
{
"externalId": "1109405394",
"status": "register"
},
{
"externalId": "1109467800",
"status": "register"
},
{
"externalId": "1109471560",
"status": "register"
},
{
"externalId": "1109547787",
"status": "register"
},
{
"externalId": "1109714351",
"status": "register"
},
{
"externalId": "1109657269!",
"status": "notFound"
}
]
}