Set Kit API Reference
Set Kit представляет из себя программный комплекс состоящий из трёх компонентов: клиента (в данном случае web интерфейс для управления и конфигурированием сервера), сервера и база данных(с которой работает сервер). Версия документации в формате PDF
API Endpoint
https://localhost:8081/set-kit
Terms of Service: https://www.crystals.ru/agreement
Contact: setkit@crystals.ru
Schemes: http, https
Version: latest
Мягкий чек
Эти методы позволяют сохранять, изменять и удалять чек
Сохранить мягкий чек
Сохраняет присланный чек. В заголовке Location ответа возвращает путь, по которому можно получить этот чек. Важно, что используя этот метод, guid чека всегда гененируется на стороне SetKit. Для того чтобы сохранить МЧ в конкретном магазине ипользуем PATH с указанием shop. Для сохранения чека с guid внешней системы, необходмио использовать метод Обновить чек
Мягкий чек
номер магазина
Request Content-Types: application/json
Request Example
{
"guid": 1,
"name": "Order",
"status": "READY_TO_PAYMENT",
"dateCreated": "2018-12-31 10:52",
"kitNumber": "kit_0001",
"isEditable": true,
"receiptEditable": true,
"positionsAddingAllowed": true,
"positionsDeletingAllowed": true,
"operationType": 1,
"totalPrice": 46.32,
"discountsValue": 0.18,
"additionalInfo": "additional information",
"location": "location",
"verificationCode": "5738",
"positions": [
{
"positionOrder": 1,
"code": "500-1",
"departNumber": 1,
"barcode": "5000001",
"quantity": 4.5,
"unitPrice": 10.29,
"vat": -20,
"vatValue": 20,
"discountValue": 0.18,
"totalPrice": 46.32,
"isFixedPrice": false,
"isFixedDiscounts": false,
"additionalInfo": "{'comment':'Good client'}",
"positionDiscounts": [
{
"cardNumber": "10001001-v",
"quantity": 1,
"advertisementId": "discount-001-code",
"advertisementCode": "discount-001",
"advertisementName": "discount-second-good-50rub",
"actionDiscountType": "discount-type-01",
"value": 0.18,
"additionalInfo": "{'comment':'Discount for first position'}"
}
]
}
],
"client": {
"guid": "0001",
"cardNumber": "10001001-v",
"firstName": "Иван",
"lastName": "Иванов",
"middleName": "Иванов",
"email": "ivanov@e1.com",
"phone": "8-800-999-99-99",
"accumulation": 2100000,
"bonusBalance": 50000,
"clientNotificationType": "BY_EMAIL",
"juristicDetails": {
"inn": "100000000012",
"organizationName": "Организация"
}
},
"slipMessage": {
"message": "Слип из мягкого чека",
"intoCheck": false
},
"payments": [
{
"typeId": "ExternalBankTerminalPaymentEntity",
"bankId": "Фулфилмент",
"amount": 10.2,
"properties": [
{
"key": "card.number",
"value": 1234
},
{
"key": "auth.code",
"value": 5678
},
{
"key": "purchase.number",
"value": 9012345
}
]
}
],
"extendedAttributes": [
{
"key": "client.guid",
"value": "1234"
},
{
"key": "ext.code",
"value": 5678
}
],
"productsValidation": {
"type": "PARTIAL",
"count": 5,
"considerProductQuantity": false
},
"communicationMessages": [
{
"header": "Заголовок тестового сообщения",
"body": "Тестовое сообщение кассиру",
"footer": "Это сообщение кассиру"
}
]
}
Чек успешно сохранён
Невалидный запрос (см. также MissingPropertiesError)
Response Content-Types: application/json
Response Example (200 OK)
{
"guid": 1,
"name": "Order",
"status": "READY_TO_PAYMENT",
"dateCreated": "2018-12-31 10:52",
"kitNumber": "kit_0001",
"isEditable": true,
"receiptEditable": true,
"positionsAddingAllowed": true,
"positionsDeletingAllowed": true,
"operationType": 1,
"totalPrice": 46.32,
"discountsValue": 0.18,
"additionalInfo": "additional information",
"location": "location",
"verificationCode": "5738",
"positions": [
{
"positionOrder": 1,
"code": "500-1",
"departNumber": 1,
"barcode": "5000001",
"quantity": 4.5,
"unitPrice": 10.29,
"vat": -20,
"vatValue": 20,
"discountValue": 0.18,
"totalPrice": 46.32,
"isFixedPrice": false,
"isFixedDiscounts": false,
"additionalInfo": "{'comment':'Good client'}",
"positionDiscounts": [
{
"cardNumber": "10001001-v",
"quantity": 1,
"advertisementId": "discount-001-code",
"advertisementCode": "discount-001",
"advertisementName": "discount-second-good-50rub",
"actionDiscountType": "discount-type-01",
"value": 0.18,
"additionalInfo": "{'comment':'Discount for first position'}"
}
]
}
],
"client": {
"guid": "0001",
"cardNumber": "10001001-v",
"firstName": "Иван",
"lastName": "Иванов",
"middleName": "Иванов",
"email": "ivanov@e1.com",
"phone": "8-800-999-99-99",
"accumulation": 2100000,
"bonusBalance": 50000,
"clientNotificationType": "BY_EMAIL",
"juristicDetails": {
"inn": "100000000012",
"organizationName": "Организация"
}
},
"slipMessage": {
"message": "Слип из мягкого чека",
"intoCheck": false
},
"payments": [
{
"typeId": "ExternalBankTerminalPaymentEntity",
"bankId": "Фулфилмент",
"amount": 10.2,
"properties": [
{
"key": "card.number",
"value": 1234
},
{
"key": "auth.code",
"value": 5678
},
{
"key": "purchase.number",
"value": 9012345
}
]
}
],
"extendedAttributes": [
{
"key": "client.guid",
"value": "1234"
},
{
"key": "ext.code",
"value": 5678
}
],
"productsValidation": {
"type": "PARTIAL",
"count": 5,
"considerProductQuantity": false
},
"communicationMessages": [
{
"header": "Заголовок тестового сообщения",
"body": "Тестовое сообщение кассиру",
"footer": "Это сообщение кассиру"
}
]
}
Response Headers (200 OK)
Location |
URL страницы, по которой доступен этот чек |
object |
Response Example (400 Bad Request)
{
"code": 1040,
"message": "Не корректно сформирован json запрос."
}
Получить мягкий чек в определённом статусе по его guid
Возвращает чек с указанным guid
guid мягкого чека
номер магазина
статус мягкого чека
Чек найден
Чек не найден (см. также AlreadyOnCash, AlreadyPaid, AlreadyRemoved)
Response Content-Types: application/json
Response Example (200 OK)
{
"guid": 1,
"name": "Order",
"status": "READY_TO_PAYMENT",
"dateCreated": "2018-12-31 10:52",
"kitNumber": "kit_0001",
"isEditable": true,
"receiptEditable": true,
"positionsAddingAllowed": true,
"positionsDeletingAllowed": true,
"operationType": 1,
"totalPrice": 46.32,
"discountsValue": 0.18,
"additionalInfo": "additional information",
"location": "location",
"verificationCode": "5738",
"positions": [
{
"positionOrder": 1,
"code": "500-1",
"departNumber": 1,
"barcode": "5000001",
"quantity": 4.5,
"unitPrice": 10.29,
"vat": -20,
"vatValue": 20,
"discountValue": 0.18,
"totalPrice": 46.32,
"isFixedPrice": false,
"isFixedDiscounts": false,
"additionalInfo": "{'comment':'Good client'}",
"positionDiscounts": [
{
"cardNumber": "10001001-v",
"quantity": 1,
"advertisementId": "discount-001-code",
"advertisementCode": "discount-001",
"advertisementName": "discount-second-good-50rub",
"actionDiscountType": "discount-type-01",
"value": 0.18,
"additionalInfo": "{'comment':'Discount for first position'}"
}
]
}
],
"client": {
"guid": "0001",
"cardNumber": "10001001-v",
"firstName": "Иван",
"lastName": "Иванов",
"middleName": "Иванов",
"email": "ivanov@e1.com",
"phone": "8-800-999-99-99",
"accumulation": 2100000,
"bonusBalance": 50000,
"clientNotificationType": "BY_EMAIL",
"juristicDetails": {
"inn": "100000000012",
"organizationName": "Организация"
}
},
"slipMessage": {
"message": "Слип из мягкого чека",
"intoCheck": false
},
"payments": [
{
"typeId": "ExternalBankTerminalPaymentEntity",
"bankId": "Фулфилмент",
"amount": 10.2,
"properties": [
{
"key": "card.number",
"value": 1234
},
{
"key": "auth.code",
"value": 5678
},
{
"key": "purchase.number",
"value": 9012345
}
]
}
],
"extendedAttributes": [
{
"key": "client.guid",
"value": "1234"
},
{
"key": "ext.code",
"value": 5678
}
],
"productsValidation": {
"type": "PARTIAL",
"count": 5,
"considerProductQuantity": false
},
"communicationMessages": [
{
"header": "Заголовок тестового сообщения",
"body": "Тестовое сообщение кассиру",
"footer": "Это сообщение кассиру"
}
]
}
Response Example (404 Not Found)
{
"code": 1010,
"message": "Мягкий чек не найден."
}
Получить мягкий чек по его guid
Возвращает чек с указанным guid
guid мягкого чека
номер магазина
Чек найден
Чек не найден
Response Content-Types: application/json
Response Example (200 OK)
{
"guid": 1,
"name": "Order",
"status": "READY_TO_PAYMENT",
"dateCreated": "2018-12-31 10:52",
"kitNumber": "kit_0001",
"isEditable": true,
"receiptEditable": true,
"positionsAddingAllowed": true,
"positionsDeletingAllowed": true,
"operationType": 1,
"totalPrice": 46.32,
"discountsValue": 0.18,
"additionalInfo": "additional information",
"location": "location",
"verificationCode": "5738",
"positions": [
{
"positionOrder": 1,
"code": "500-1",
"departNumber": 1,
"barcode": "5000001",
"quantity": 4.5,
"unitPrice": 10.29,
"vat": -20,
"vatValue": 20,
"discountValue": 0.18,
"totalPrice": 46.32,
"isFixedPrice": false,
"isFixedDiscounts": false,
"additionalInfo": "{'comment':'Good client'}",
"positionDiscounts": [
{
"cardNumber": "10001001-v",
"quantity": 1,
"advertisementId": "discount-001-code",
"advertisementCode": "discount-001",
"advertisementName": "discount-second-good-50rub",
"actionDiscountType": "discount-type-01",
"value": 0.18,
"additionalInfo": "{'comment':'Discount for first position'}"
}
]
}
],
"client": {
"guid": "0001",
"cardNumber": "10001001-v",
"firstName": "Иван",
"lastName": "Иванов",
"middleName": "Иванов",
"email": "ivanov@e1.com",
"phone": "8-800-999-99-99",
"accumulation": 2100000,
"bonusBalance": 50000,
"clientNotificationType": "BY_EMAIL",
"juristicDetails": {
"inn": "100000000012",
"organizationName": "Организация"
}
},
"slipMessage": {
"message": "Слип из мягкого чека",
"intoCheck": false
},
"payments": [
{
"typeId": "ExternalBankTerminalPaymentEntity",
"bankId": "Фулфилмент",
"amount": 10.2,
"properties": [
{
"key": "card.number",
"value": 1234
},
{
"key": "auth.code",
"value": 5678
},
{
"key": "purchase.number",
"value": 9012345
}
]
}
],
"extendedAttributes": [
{
"key": "client.guid",
"value": "1234"
},
{
"key": "ext.code",
"value": 5678
}
],
"productsValidation": {
"type": "PARTIAL",
"count": 5,
"considerProductQuantity": false
},
"communicationMessages": [
{
"header": "Заголовок тестового сообщения",
"body": "Тестовое сообщение кассиру",
"footer": "Это сообщение кассиру"
}
]
}
Response Example (404 Not Found)
{
"code": 1010,
"message": "Мягкий чек не найден."
}
Обновить чек
Ищет в хранилище локальную версию чека по guid и обновляет записи. Если чека не существует, то создаст его. Будьте внимательны! Обновление, по своей сути, полностью затирает существующие данные. То есть, необходимо отсылать не изменения чека, а полную изменную версию. (каждый раз)
Мягкий чек
guid мягкого чека
номер магазина
Request Content-Types: application/json
Request Example
{
"guid": 1,
"name": "Order",
"status": "READY_TO_PAYMENT",
"dateCreated": "2018-12-31 10:52",
"kitNumber": "kit_0001",
"isEditable": true,
"receiptEditable": true,
"positionsAddingAllowed": true,
"positionsDeletingAllowed": true,
"operationType": 1,
"totalPrice": 46.32,
"discountsValue": 0.18,
"additionalInfo": "additional information",
"location": "location",
"verificationCode": "5738",
"positions": [
{
"positionOrder": 1,
"code": "500-1",
"departNumber": 1,
"barcode": "5000001",
"quantity": 4.5,
"unitPrice": 10.29,
"vat": -20,
"vatValue": 20,
"discountValue": 0.18,
"totalPrice": 46.32,
"isFixedPrice": false,
"isFixedDiscounts": false,
"additionalInfo": "{'comment':'Good client'}",
"positionDiscounts": [
{
"cardNumber": "10001001-v",
"quantity": 1,
"advertisementId": "discount-001-code",
"advertisementCode": "discount-001",
"advertisementName": "discount-second-good-50rub",
"actionDiscountType": "discount-type-01",
"value": 0.18,
"additionalInfo": "{'comment':'Discount for first position'}"
}
]
}
],
"client": {
"guid": "0001",
"cardNumber": "10001001-v",
"firstName": "Иван",
"lastName": "Иванов",
"middleName": "Иванов",
"email": "ivanov@e1.com",
"phone": "8-800-999-99-99",
"accumulation": 2100000,
"bonusBalance": 50000,
"clientNotificationType": "BY_EMAIL",
"juristicDetails": {
"inn": "100000000012",
"organizationName": "Организация"
}
},
"slipMessage": {
"message": "Слип из мягкого чека",
"intoCheck": false
},
"payments": [
{
"typeId": "ExternalBankTerminalPaymentEntity",
"bankId": "Фулфилмент",
"amount": 10.2,
"properties": [
{
"key": "card.number",
"value": 1234
},
{
"key": "auth.code",
"value": 5678
},
{
"key": "purchase.number",
"value": 9012345
}
]
}
],
"extendedAttributes": [
{
"key": "client.guid",
"value": "1234"
},
{
"key": "ext.code",
"value": 5678
}
],
"productsValidation": {
"type": "PARTIAL",
"count": 5,
"considerProductQuantity": false
},
"communicationMessages": [
{
"header": "Заголовок тестового сообщения",
"body": "Тестовое сообщение кассиру",
"footer": "Это сообщение кассиру"
}
]
}
Чек успешно сохранён
Невалидный запрос (см. также MissingPropertiesError)
Response Content-Types: application/json
Response Example (200 OK)
{
"guid": 1,
"name": "Order",
"status": "READY_TO_PAYMENT",
"dateCreated": "2018-12-31 10:52",
"kitNumber": "kit_0001",
"isEditable": true,
"receiptEditable": true,
"positionsAddingAllowed": true,
"positionsDeletingAllowed": true,
"operationType": 1,
"totalPrice": 46.32,
"discountsValue": 0.18,
"additionalInfo": "additional information",
"location": "location",
"verificationCode": "5738",
"positions": [
{
"positionOrder": 1,
"code": "500-1",
"departNumber": 1,
"barcode": "5000001",
"quantity": 4.5,
"unitPrice": 10.29,
"vat": -20,
"vatValue": 20,
"discountValue": 0.18,
"totalPrice": 46.32,
"isFixedPrice": false,
"isFixedDiscounts": false,
"additionalInfo": "{'comment':'Good client'}",
"positionDiscounts": [
{
"cardNumber": "10001001-v",
"quantity": 1,
"advertisementId": "discount-001-code",
"advertisementCode": "discount-001",
"advertisementName": "discount-second-good-50rub",
"actionDiscountType": "discount-type-01",
"value": 0.18,
"additionalInfo": "{'comment':'Discount for first position'}"
}
]
}
],
"client": {
"guid": "0001",
"cardNumber": "10001001-v",
"firstName": "Иван",
"lastName": "Иванов",
"middleName": "Иванов",
"email": "ivanov@e1.com",
"phone": "8-800-999-99-99",
"accumulation": 2100000,
"bonusBalance": 50000,
"clientNotificationType": "BY_EMAIL",
"juristicDetails": {
"inn": "100000000012",
"organizationName": "Организация"
}
},
"slipMessage": {
"message": "Слип из мягкого чека",
"intoCheck": false
},
"payments": [
{
"typeId": "ExternalBankTerminalPaymentEntity",
"bankId": "Фулфилмент",
"amount": 10.2,
"properties": [
{
"key": "card.number",
"value": 1234
},
{
"key": "auth.code",
"value": 5678
},
{
"key": "purchase.number",
"value": 9012345
}
]
}
],
"extendedAttributes": [
{
"key": "client.guid",
"value": "1234"
},
{
"key": "ext.code",
"value": 5678
}
],
"productsValidation": {
"type": "PARTIAL",
"count": 5,
"considerProductQuantity": false
},
"communicationMessages": [
{
"header": "Заголовок тестового сообщения",
"body": "Тестовое сообщение кассиру",
"footer": "Это сообщение кассиру"
}
]
}
Response Example (400 Bad Request)
{
"code": 1040,
"message": "Не корректно сформирован json запрос."
}
Удалить мягкий чек
Переводит чек в статус deleted, и после этого его невозможно получить извне. Стоит сказать, что после этого его guid можно использовать для другого чека
guid мягкого чека
номер магазина
Чек успешно сохранён
Невалидные данные
Response Content-Types: application/json
Response Example (404 Not Found)
{
"code": 1010,
"message": "Мягкий чек не найден."
}
Обновить частично мягкий чек
Обновление МЧ(в данной версии выполняет только обновление статуса МЧ и информации о слипе).
Мягкий чек
guid мягкого чека
номер магазина
Request Content-Types: application/json
Request Example
{
"status": "READY_TO_PAYMENT",
"slipMessage": {
"message": "Слип из мягкого чека",
"intoCheck": false
}
}
Чек успешно обновлен
Response Content-Types: application/json
Response Example (200 OK)
{
"guid": 1,
"name": "Order",
"status": "READY_TO_PAYMENT",
"dateCreated": "2018-12-31 10:52",
"kitNumber": "kit_0001",
"isEditable": true,
"receiptEditable": true,
"positionsAddingAllowed": true,
"positionsDeletingAllowed": true,
"operationType": 1,
"totalPrice": 46.32,
"discountsValue": 0.18,
"additionalInfo": "additional information",
"location": "location",
"verificationCode": "5738",
"positions": [
{
"positionOrder": 1,
"code": "500-1",
"departNumber": 1,
"barcode": "5000001",
"quantity": 4.5,
"unitPrice": 10.29,
"vat": -20,
"vatValue": 20,
"discountValue": 0.18,
"totalPrice": 46.32,
"isFixedPrice": false,
"isFixedDiscounts": false,
"additionalInfo": "{'comment':'Good client'}",
"positionDiscounts": [
{
"cardNumber": "10001001-v",
"quantity": 1,
"advertisementId": "discount-001-code",
"advertisementCode": "discount-001",
"advertisementName": "discount-second-good-50rub",
"actionDiscountType": "discount-type-01",
"value": 0.18,
"additionalInfo": "{'comment':'Discount for first position'}"
}
]
}
],
"client": {
"guid": "0001",
"cardNumber": "10001001-v",
"firstName": "Иван",
"lastName": "Иванов",
"middleName": "Иванов",
"email": "ivanov@e1.com",
"phone": "8-800-999-99-99",
"accumulation": 2100000,
"bonusBalance": 50000,
"clientNotificationType": "BY_EMAIL",
"juristicDetails": {
"inn": "100000000012",
"organizationName": "Организация"
}
},
"slipMessage": {
"message": "Слип из мягкого чека",
"intoCheck": false
},
"payments": [
{
"typeId": "ExternalBankTerminalPaymentEntity",
"bankId": "Фулфилмент",
"amount": 10.2,
"properties": [
{
"key": "card.number",
"value": 1234
},
{
"key": "auth.code",
"value": 5678
},
{
"key": "purchase.number",
"value": 9012345
}
]
}
],
"extendedAttributes": [
{
"key": "client.guid",
"value": "1234"
},
{
"key": "ext.code",
"value": 5678
}
],
"productsValidation": {
"type": "PARTIAL",
"count": 5,
"considerProductQuantity": false
},
"communicationMessages": [
{
"header": "Заголовок тестового сообщения",
"body": "Тестовое сообщение кассиру",
"footer": "Это сообщение кассиру"
}
]
}
Response Example (404 Not Found)
{
"code": 1010,
"message": "Мягкий чек не найден."
}
Получить список мягких чеков по набору параметров
Возвращает список мягких чеков
номер магазина
номер комплекта к которому относится мягкий чек
телефон клиента, может быть передано несколько через '|'(phone=79991234567|89991234567)
статус мягкого чека
признак, вывести результат в кратком виде
длина номера мягкого чека без учета префикса
префикс номера мягкого чека
смещение выборки
кол-во мягких чеков в результате(по умолчанию 100)
Список мягких чеков соответствующих набору параметров
Список мягких чеков соответствующих набору параметров
Response Content-Types: application/json
Response Example (200 OK)
[
{
"guid": 1,
"name": "Order",
"status": "READY_TO_PAYMENT",
"dateCreated": "2018-12-31 10:52",
"kitNumber": "kit_0001",
"isEditable": true,
"receiptEditable": true,
"positionsAddingAllowed": true,
"positionsDeletingAllowed": true,
"operationType": 1,
"totalPrice": 46.32,
"discountsValue": 0.18,
"additionalInfo": "additional information",
"location": "location",
"verificationCode": "5738",
"positions": [
{
"positionOrder": 1,
"code": "500-1",
"departNumber": 1,
"barcode": "5000001",
"quantity": 4.5,
"unitPrice": 10.29,
"vat": -20,
"vatValue": 20,
"discountValue": 0.18,
"totalPrice": 46.32,
"isFixedPrice": false,
"isFixedDiscounts": false,
"additionalInfo": "{'comment':'Good client'}",
"positionDiscounts": [
{
"cardNumber": "10001001-v",
"quantity": 1,
"advertisementId": "discount-001-code",
"advertisementCode": "discount-001",
"advertisementName": "discount-second-good-50rub",
"actionDiscountType": "discount-type-01",
"value": 0.18,
"additionalInfo": "{'comment':'Discount for first position'}"
}
]
}
],
"client": {
"guid": "0001",
"cardNumber": "10001001-v",
"firstName": "Иван",
"lastName": "Иванов",
"middleName": "Иванов",
"email": "ivanov@e1.com",
"phone": "8-800-999-99-99",
"accumulation": 2100000,
"bonusBalance": 50000,
"clientNotificationType": "BY_EMAIL",
"juristicDetails": {
"inn": "100000000012",
"organizationName": "Организация"
}
},
"slipMessage": {
"message": "Слип из мягкого чека",
"intoCheck": false
},
"payments": [
{
"typeId": "ExternalBankTerminalPaymentEntity",
"bankId": "Фулфилмент",
"amount": 10.2,
"properties": [
{
"key": "card.number",
"value": 1234
},
{
"key": "auth.code",
"value": 5678
},
{
"key": "purchase.number",
"value": 9012345
}
]
}
],
"extendedAttributes": [
{
"key": "client.guid",
"value": "1234"
},
{
"key": "ext.code",
"value": 5678
}
],
"productsValidation": {
"type": "PARTIAL",
"count": 5,
"considerProductQuantity": false
},
"communicationMessages": [
{
"header": "Заголовок тестового сообщения",
"body": "Тестовое сообщение кассиру",
"footer": "Это сообщение кассиру"
}
]
}
]
Response Example (200 - вкл. режим shortView )
[
{
"guid": 123,
"dateCreated": "2017-12-20 16:58",
"totalPrice": 1100,
"kitNumber": "kit_0001"
}
]
Сервис
Сервисные методы
Статистика о количестве чеков в разрезе статусов для указанного номера магазина.
Возвращает список статусов чека и количества чеков в этом статусе для указанного магазина.
Номер магазина.
Список структур, описывающих статус чека и количество чеков в этом статусе.
Response Content-Types: application/json
Response Example (200 OK)
[
{
"status": "CREATED",
"count": 10,
"lastUpdate": "2024-09-03 11:52"
}
]
Получить настройки и узнать состояние лицензии сервиса
Список параметров и состояние лицензии
Response Content-Types: application/json
Response Example (200 OK)
{
"version": "2.0.0",
"licenses": {
"name": "SetKit",
"count": 1,
"licenseStatus": "OK",
"licenseAgentStatus": "OK"
},
"properties": {
"some.property": "some.value"
}
}
Сбросить список магазинов, обслуживаемых по лицензии типа oneshop
Список успешно сброшен
Schema Definitions
SoftCheque: object
Мягкий чек / заказ.
- guid: string
-
Уникальный идентификатор чека. При создании заказа не обязателен!
- name: string
-
Наименование мягкого чека/заказа
- status: string CREATED, READY_TO_PAYMENT, PAYMENT, COMPLETED, CANCELED
-
Статус мягкого чека. CREATED - Черновик, READY_TO_PAYMENT - Готов, PAYMENT - На кассе, COMPLETED - Оплачен, CANCELED - Отменён.
- dateCreated: timestamp
-
Дата создания чека
- shopNumber: integer (int32)
-
Номер магазина
- isEditable: boolean
-
Управление запретом редактирования позиций (добавление новых/удаление переданных разрешено)
- totalPrice: decimal
-
Конечная стоимость чека в рублях
- discountsValue: decimal
-
Сумма все скидок в рублях (не учитывается кассой)
- additionalInfo: object
-
Любая дополнительная информация
- location: object
-
Место расчетов
- positions: array
-
Список позиций, которые фигурируют в чеке
- client: client
-
Информация о клиенте
- slipMessage: slipMessage
-
Информация о слипе
- operationType: integer (int32)
-
Признак расчета
- prePayment: decimal
-
Сумма по чеку предоплатой (авансом)
- receiptEditable: boolean
-
Управление полным запретом редактирования чека (добавление и удаление позиций, редактирование количеств)
- destChequeGuid: string
-
GUID фактического МЧ (заполняется кассой при коммите данного МЧ)
- payments: array
-
Список оплат, которыми должен быть автоматически оплачен чек. На данный момент кассой воспринимается только первая оплата из списка. Также, ни одна оплата из списка не будет приниматься в расчет, если задано поле prePayment.
- extendedAttributes: array
-
Расширенные атрибуты чека.
- positionsAddingAllowed: boolean
-
Управление запретом добавления новых позиций (удаление и редактирование количества разрешено)
- positionsDeletingAllowed: boolean
-
Управление запретом удаления позиций из мягкого чека (добавление, редактирование количества и удаление добавленных разрешено)
- kitNumber: string
-
Номер комплекта к которому относится мягкий чек
- productsValidation: productsValidation
-
Управление проверкой товаров при поднятии мягкого чека на кассе
- verificationCode: string
-
Код верификации для выдачи заказа
- communicationMessages: array
-
Список сообщений кассиру, которые будут отображены при поднятии мягкого чека на кассе
Example
{
"guid": 1,
"name": "Order",
"status": "READY_TO_PAYMENT",
"dateCreated": "2018-12-31 10:52",
"kitNumber": "kit_0001",
"isEditable": true,
"receiptEditable": true,
"positionsAddingAllowed": true,
"positionsDeletingAllowed": true,
"operationType": 1,
"totalPrice": 46.32,
"discountsValue": 0.18,
"additionalInfo": "additional information",
"location": "location",
"verificationCode": "5738",
"positions": [
{
"positionOrder": 1,
"code": "500-1",
"departNumber": 1,
"barcode": "5000001",
"quantity": 4.5,
"unitPrice": 10.29,
"vat": -20,
"vatValue": 20,
"discountValue": 0.18,
"totalPrice": 46.32,
"isFixedPrice": false,
"isFixedDiscounts": false,
"additionalInfo": "{'comment':'Good client'}",
"positionDiscounts": [
{
"cardNumber": "10001001-v",
"quantity": 1,
"advertisementId": "discount-001-code",
"advertisementCode": "discount-001",
"advertisementName": "discount-second-good-50rub",
"actionDiscountType": "discount-type-01",
"value": 0.18,
"additionalInfo": "{'comment':'Discount for first position'}"
}
]
}
],
"client": {
"guid": "0001",
"cardNumber": "10001001-v",
"firstName": "Иван",
"lastName": "Иванов",
"middleName": "Иванов",
"email": "ivanov@e1.com",
"phone": "8-800-999-99-99",
"accumulation": 2100000,
"bonusBalance": 50000,
"clientNotificationType": "BY_EMAIL",
"juristicDetails": {
"inn": "100000000012",
"organizationName": "Организация"
}
},
"slipMessage": {
"message": "Слип из мягкого чека",
"intoCheck": false
},
"payments": [
{
"typeId": "ExternalBankTerminalPaymentEntity",
"bankId": "Фулфилмент",
"amount": 10.2,
"properties": [
{
"key": "card.number",
"value": 1234
},
{
"key": "auth.code",
"value": 5678
},
{
"key": "purchase.number",
"value": 9012345
}
]
}
],
"extendedAttributes": [
{
"key": "client.guid",
"value": "1234"
},
{
"key": "ext.code",
"value": 5678
}
],
"productsValidation": {
"type": "PARTIAL",
"count": 5,
"considerProductQuantity": false
},
"communicationMessages": [
{
"header": "Заголовок тестового сообщения",
"body": "Тестовое сообщение кассиру",
"footer": "Это сообщение кассиру"
}
]
}
SoftChequePart: object
Используется при обновлении МЧ, описывает часть МЧ которая будет обновлена.
- status: string CREATED, READY_TO_PAYMENT, PAYMENT, COMPLETED, CANCELED
-
Статус мягкого чека. CREATED - Черновик, READY_TO_PAYMENT - Готов, PAYMENT - На кассе, COMPLETED - Оплачен, CANCELED - Отменён.
- slipMessage: slipMessage
-
Информация о слипе
Example
{
"status": "READY_TO_PAYMENT",
"slipMessage": {
"message": "Слип из мягкого чека",
"intoCheck": false
}
}
SoftChequeShortView: object
Мягкий чек / заказ.
- guid: string
-
Уникальный идентификатор чека
- dateCreated: timestamp
-
Дата создания чека
- totalPrice: decimal
-
Конечная стоимость чека в рублях
- kitNumber: string
-
Номер комплекта к которому относится мягкий чек
Example
{
"guid": 123,
"dateCreated": "2017-12-20 16:58",
"totalPrice": 1100,
"kitNumber": "kit_0001"
}
SoftCheques: array
Список мягких чеков
Example
[
{
"guid": 1,
"name": "Order",
"status": "READY_TO_PAYMENT",
"dateCreated": "2018-12-31 10:52",
"kitNumber": "kit_0001",
"isEditable": true,
"receiptEditable": true,
"positionsAddingAllowed": true,
"positionsDeletingAllowed": true,
"operationType": 1,
"totalPrice": 46.32,
"discountsValue": 0.18,
"additionalInfo": "additional information",
"location": "location",
"verificationCode": "5738",
"positions": [
{
"positionOrder": 1,
"code": "500-1",
"departNumber": 1,
"barcode": "5000001",
"quantity": 4.5,
"unitPrice": 10.29,
"vat": -20,
"vatValue": 20,
"discountValue": 0.18,
"totalPrice": 46.32,
"isFixedPrice": false,
"isFixedDiscounts": false,
"additionalInfo": "{'comment':'Good client'}",
"positionDiscounts": [
{
"cardNumber": "10001001-v",
"quantity": 1,
"advertisementId": "discount-001-code",
"advertisementCode": "discount-001",
"advertisementName": "discount-second-good-50rub",
"actionDiscountType": "discount-type-01",
"value": 0.18,
"additionalInfo": "{'comment':'Discount for first position'}"
}
]
}
],
"client": {
"guid": "0001",
"cardNumber": "10001001-v",
"firstName": "Иван",
"lastName": "Иванов",
"middleName": "Иванов",
"email": "ivanov@e1.com",
"phone": "8-800-999-99-99",
"accumulation": 2100000,
"bonusBalance": 50000,
"clientNotificationType": "BY_EMAIL",
"juristicDetails": {
"inn": "100000000012",
"organizationName": "Организация"
}
},
"slipMessage": {
"message": "Слип из мягкого чека",
"intoCheck": false
},
"payments": [
{
"typeId": "ExternalBankTerminalPaymentEntity",
"bankId": "Фулфилмент",
"amount": 10.2,
"properties": [
{
"key": "card.number",
"value": 1234
},
{
"key": "auth.code",
"value": 5678
},
{
"key": "purchase.number",
"value": 9012345
}
]
}
],
"extendedAttributes": [
{
"key": "client.guid",
"value": "1234"
},
{
"key": "ext.code",
"value": 5678
}
],
"productsValidation": {
"type": "PARTIAL",
"count": 5,
"considerProductQuantity": false
},
"communicationMessages": [
{
"header": "Заголовок тестового сообщения",
"body": "Тестовое сообщение кассиру",
"footer": "Это сообщение кассиру"
}
]
}
]
SoftChequesShortView: array
Список мягких чеков в кратком виде
Example
[
{
"guid": 123,
"dateCreated": "2017-12-20 16:58",
"totalPrice": 1100,
"kitNumber": "kit_0001"
}
]
Client: object
Клиент (информация о клиенте).
- cardNumber: string
-
Номер карты клиента
- guid: string
-
Идентификатор клиента в системе (не учитывается кассой)
- firstName: string
-
Имя (не учитывается кассой)
- lastName: string
-
Фамилия (не учитывается кассой)
- middleName: string
-
Отчество (не учитывается кассой)
- email: string
-
Адрес электронной почты
- phone: string
-
Моб. телефон
- accumulation: decimal
-
Общая сумма накоплений (денежные, на основании истории покупок) (не учитывается кассой)
- bonusBalance: decimal
-
Баланс активных бонусов (не учитывается кассой)
- clientNotificationType: string BY_EMAIL, BY_PHONE
-
Способ отправки электронной копии чека покупателю
- juristicDetails: juristicDetails
-
Информация о ЮЛ
Example
{
"guid": "0001",
"cardNumber": "10001001-v",
"firstName": "Иван",
"lastName": "Иванов",
"middleName": "Иванов",
"email": "ivanov@e1.com",
"phone": "8-800-999-99-99",
"accumulation": 2100000,
"bonusBalance": 50000,
"clientNotificationType": "BY_EMAIL",
"juristicDetails": {
"inn": "100000000012",
"organizationName": "Организация"
}
}
Position: object
Позиция в чеке
- positionOrder: integer (int32)
-
Порядковый номер позиции в заказе (МЧ) (не учитывается кассой)
- code: string
-
Код (артикул) товара (одно из полей code или barcode должно быть заполнено)
- departNumber: integer (int64)
-
Номер отдела (не учитывается кассой)
- barcode: string
-
Штриховой код товара (одно из полей code или barcode должно быть заполнено)
- quantity: decimal
-
Количество товара в позиции
- unitPrice: decimal
-
Цена за единицу товара в рублях
- vat: float
-
Ставка НДС (в процентах)
- vatValue: decimal
-
Сумма НДС в рублях (не учитывается кассой)
- discountValue: decimal
-
Сумма скидок на позицию в рублях (не учитывается кассой)
- totalPrice: decimal
-
Стоимость позиции с учётом скидок в рублях (не учитывается кассой)
- isFixedPrice: boolean
-
Запрет изменения цены позиции лояльностью
- isFixedDiscounts: boolean
-
Запрет участия в любой лояльности
- additionalInfo: string
-
Дополнительная информация. Строка, содержащая произвольный набор атрибутов.
- positionDiscounts: array
-
Подробная информация о сработавших cкидках на позицию
- ccdDeclaration: string
-
Номер Грузовой Таможенной Декларации (ГТД) товара. Формат: XXXXXXXX/XXXXXX/XXXXXXX, где X - цифра.
- countryOfOriginCode: string
-
Код страны происхождения товара. Код должен задаваться согласно Общероссийскому Классификатору Стран Мира (ОКСМ). Например, код России согласно ОКСМ это 643.
- calculationMethod: integer (int32)
-
Признак способа расчета
- calculationSubject: integer (int32)
-
Признак предмета расчета
- mark: string
-
Марка (для маркированного товара)
- marks: array
-
Марки (для маркированного товара)
- sourceChequeGuid: string
-
GUID исходного мягкого чека (заполняется кассой при формировании фактического МЧ)
- returnRestricted: boolean
-
Признак запрета возврата позиции
- storage: string
-
Склад отгрузки товара
- sellerCode: string
-
Код продавца
- name: string
-
Наименование товара
- productionDate: string
-
Дата производства
- extendedAttributes: array
-
Расширенные атрибуты позиции.
- canChangePrice: boolean
-
Признак разрешения ручного изменения стоимости позиции (коррекция стоимости)
Example
{
"code": "500-1",
"departNumber": 1,
"barcode": "5000001",
"quantity": 4.5,
"unitPrice": 10.29,
"vat": 10,
"vatValue": 20,
"discountValue": 0.18,
"totalPrice": 46.32,
"isFixedPrice": false,
"isFixedDiscounts": false,
"positionDiscounts": [
{
"cardNumber": "10001001-v",
"quantity": 1,
"advertisementId": "discount-001-code",
"advertisementCode": "discount-001",
"advertisementName": "discount-second-good-50rub",
"actionDiscountType": "discount-type-01",
"value": 0.18,
"additionalInfo": "{'comment':'Discount for first position'}"
}
],
"ccdDeclaration": "12345678/123456/1234567",
"countryOfOriginCode": "643",
"calculationMethod": 4,
"calculationSubject": 1,
"mark": "01056000921lмVzф1",
"marks": [
"01056000921lмVzф2",
"01056000921lмVzф3"
],
"returnRestricted": false,
"storage": "К00000002",
"sellerCode": "00007",
"name": "Товар из МЧ",
"productionDate": "2021-09-30",
"extendedAttributes": [
{
"key": "counterparty.vat",
"value": "20.0"
},
{
"key": "ext.code",
"value": 5679
}
],
"canChangePrice": true
}
Discount: object
Скидка на позицию
- cardNumber: string
-
Номер дисконтной карты
- positionOrder: integer (int64)
-
Порядковый номер позиции на которую предоставлена скидка (не учитывается кассой)
- code: string
-
Код скидки (не учитывается кассой)
- quantity: decimal
-
Количество товара, на которое далась скидки
- advertisementId: string
-
Идентификатор скидки в системе лояльности
- advertisementCode: string
-
Внешний код скидки (external code)
- advertisementName: string
-
Наименование скидки в системе лояльности
- actionDiscountType: string
-
Тип скидки в системе лояльности (аналогичный импортируемому в РА SET10)
- value: decimal
-
Значение скидки в рублях
- additionalInfo: object
-
Дополнительная информация. Строка, содержащая произвольный набор атрибутов.
Example
{
"cardNumber": "10001001-v",
"positionOrder": 1,
"code": 1,
"quantity": 1.01,
"advertisementId": "discount-001-code",
"advertisementCode": "discount-001",
"advertisementName": "discount-second-good-50rub",
"actionDiscountType": "discount-type-01",
"value": 25000,
"additionalInfo": "Скидка на 500-1 товар"
}
SlipMessage: object
Информация о слипе.
- message: string
-
Сообщение в слипе
- intoCheck: boolean
-
Признак печати в чеке
Example
{
"message": "Слип из мягкого чека",
"intoCheck": false
}
AppInfo: object
Информация по сервису.
- version: string
-
Версия сервиса
- license: object
-
Информация по лицензии
- properties: object
-
Набор настроек сервиса
Example
{
"version": "2.0.0",
"licenses": {
"name": "SetKit",
"count": 1,
"licenseStatus": "OK",
"licenseAgentStatus": "OK"
},
"properties": {
"some.property": "some.value"
}
}
JuristicDetails: object
Информация о ЮЛ.
- inn: string
-
ИНН
- organizationName: string
-
Название организации
Example
{
"inn": "100000000012",
"organizationName": "Организация"
}
Payment: object
Оплата
- typeId: string
-
Идентификатор типа оплаты. В случае плагинной оплаты - это id соответствующего плагина, внешний банковский терминал - ExternalBankTerminalPaymentEntity, предоплата - PrepaymentEntity. Автоматическое внесение поддерживается для предоплаты и оплаты внешним банковским терминалом. Для остальных типов - оплата будет лишь выбрана, но не внесена.
- bankId: string
-
Идентификатор банка. По сути это название банка из Set10 (Кассовый модуль - Банки).
- amount: decimal
-
Сумма оплаты (если не задана, необходим ввод суммы кассиром)
- properties: array
-
Дополнительные свойства оплаты
Example
{
"typeId": "ExternalBankTerminalPaymentEntity",
"bankId": "Фулфилмент",
"amount": 10.2,
"properties": [
{
"key": "card.number",
"value": 1234
},
{
"key": "auth.code",
"value": 5678
},
{
"key": "purchase.number",
"value": 9012345
}
]
}
Property: object
Дополнительное (расширенное) свойство / атрибут
- key: string
-
Ключ (наименование свойства/атрибута)
- value: string
-
Значение
Example
{
"key": "card.number",
"value": 1234
}
ProductsValidation: object
Управление проверкой товаров при поднятии мягкого чека на кассе
- type: string FULL, PARTIAL
-
Способ проверки товаров в заказе:
FULL
- Проверка всех товаровPARTIAL
- Выборочная проверка товаров
- count: integer (int32)
-
Количество товаров для выборочной проверки
- considerProductQuantity: boolean
-
Учитывать количество добавляемого товара в режиме полной проверки. Действие признака распространяется на весовые и штучно-весовые товары без маркировки. Учет добавляемого товара будет производиться по суммарному количеству, переданному в заказе. Если передано несколько позиций с одинаковым артикулом, то такие позиции схлопываются. Например, в заказе передана весовая позиция "Сыр" в количестве 800 грамм, при сканировании нескольких кусочков сыра весом 300, 260 и 240 грамм их вес будет последовательно вычитаться из общего веса позиции и после добавления последнего кусочка проверка товара будет пройдена.
Example
{
"type": "PARTIAL",
"count": 5,
"considerProductQuantity": false
}
CommunicationMessage: object
Сообщение для отображения кассиру
- header: string
-
Верхний колонтитул сообщения (заголовок)
- body: string
-
Сообщение
- footer: string
-
Нижний колонтитул сообщения (подвал)
Example
{
"header": "Заголовок тестового сообщения",
"message": "Тестовое сообщение кассиру",
"footer": "Это сообщение кассиру"
}
ValidationError: object
- code: integer (int32)
- message: string
Example
{
"code": 1040,
"message": "Не корректно сформирован json запрос."
}
MissingPropertiesError: object
- code: integer (int32)
- message: string
- error: array
Example
{
"code": 1041,
"message": "Отсутствуют параметры в запросе",
"error": [
"isEditable: Поле должно быть определено."
]
}
NotFound: object
Чек не найден
- code: integer (int32)
- message: string
Example
{
"code": 1010,
"message": "Мягкий чек не найден."
}
AlreadyOnCash: object
Ответ в случае, если уже на кассе
- code: integer (int32)
- message: string
Example
{
"code": 1011,
"message": "Мягкий чек оплачивается на кассе."
}
AlreadyPaid: object
Ответ в случае, если уже оплачен
- code: integer (int32)
- message: string
Example
{
"code": 1012,
"message": "Мягкий чек оплачен."
}
AlreadyRemoved: object
Ответ в случае, если уже удалён
- code: integer (int32)
- message: string
Example
{
"code": 1013,
"message": "Мягкий чек удалён."
}
AnotherShop: object
Ответ в случае, если прикреплен к другому магазину
- code: integer (int32)
- message: string
Example
{
"code": 1014,
"message": "Мягкий чек прикреплен к другому магазину."
}
LicenseExpired: object
Ответ в случае, если лицензия истекла
- code: integer (int32)
- message: string
Example
{
"code": 1050,
"message": "Лицензия истекла."
}
LicenseOfflineModeExpired: object
Ответ в случае, если период работы в оффлайн режиме истек
- code: integer (int32)
- message: string
Example
{
"code": 1051,
"message": "Работа в оффлайн режиме с агентом лицензирования истекла."
}
LicenseNotFound: object
Ответ в случае, если лицензия не найдена
- code: integer (int32)
- message: string
Example
{
"code": 1052,
"message": "Отсутствует лицензия на подключение."
}
LicenseUnsuitable: object
Ответ в случае, если полученных лицензий недостаточно для обработки запроса с данного магазина (тип лицензии 'oneshop')
- code: integer (int32)
- message: string
Example
{
"code": 1053,
"message": "Сервис мягких чеков не обслуживает данный магазин. Обратитесь в службу поддержки для получения лицензии."
}
SoftCheckStatusesStatistics: object
Структура, содержащая информацию о как много магазин имеет чеков в указанном статусе
- status: string CREATED, READY_TO_PAYMENT, PAYMENT, COMPLETED, CANCELED
-
Статус мягкого чека. CREATED - Черновик, READY_TO_PAYMENT - Готов, PAYMENT - На кассе, COMPLETED - Оплачен, CANCELED - Отменён.
- count: integer (int64)
-
Количество чеков в указанном статусе.
- lastUpdate: timestamp
-
Дата и время последнего обновления статуса.
Example
{
"status": "CREATED",
"count": 10,
"lastUpdate": "2024-09-03 11:52"
}
SoftCheckStatusesStatisticsList: array
Список с постатусным количеством чеков в магазине.
Example
[
{
"status": "CREATED",
"count": 10,
"lastUpdate": "2024-09-03 11:52"
}
]