Marketing crm pro

API

документация для интеграции кассовых систем
Введение

1. Вся работа происходит через запросы к WEB серверу.
2. Запрос делается через GET
3. Ответ через обычный plain text

Сценарии запросов следующие:

- Когда проводят картой/авторизуют клиента на кассе, делается запрос с номером, и получается ответ с активностью карты и балансом

- После оплаты на кассе идет сообщение о новой транзакции, куда передается сумма оплаты, сумма, оплаченная бонусами и состав чека. В ответ придет идентификатор новой транзакции и сумма бонусов.

- Идентификатор транзакции понадобится, чтобы откатить транзакцию, например при возврате товара.

Описание протокола:

Общие параметры в GET:

restoID - идентификатор заведения

key - секретный ключ заведения

Эти параметры статичны для конкретного заведения
getcard
Запрос информации по карте.

number
- это номер карты или номер телефона.

На выходе строка: номер_карты|активность(0,1)|баланс_в_копейках|ФИО|Сообщение кассиру. Пример: 1240240|1|350|Иванов Петя|Текст сообщения.

Если карта не найдена по номеру или телефону, то в ответ придет error|тест_ошибки. Тест ошибки соответственно нужно показать кассиру. Этот метод вызывается перед транзакцией, что бы узнать, сколько денег есть на карте, а так же активна-ли карта или нет. Если связи с сервером нет, то списать бонусы при оплате невозможно. Метод полностью рабочий, можно запрашивать реальные данные.

https://office.akrk.info/exchange/getcard?restoID=*&key=***&number=*
ping
этот метод вызывается каждые 5 минут для подтверждения связи с сервером.
Ответ либо ok, либо error|Текст ошибки
https://office.akrk.info/exchange/ping?restoID=*&key=*
payorder1c
Новая транзакция.

Необходимо передать следующие данные:

- number - Номер карты или номер телефона
- orderSumm - Сумма чека в копейках;
- orderPayBonus - Сумма, оплаченная бонусами в копейках;
- orderPayMoney - Сумма, оплаченная деньгами в копейках;
- checkOrder - Состав чека.
- request (не обязательно) - идентификатор запроса.
request может быть любой строкой до 255 символов. Формируется на стороне клиента. Должен быть уникальным для каждого запроса

Передается через POST. В идеале это строки со следующими данными:
catName - название категории
catCode - код категории
name - название товара
price -цена за единицу
count - количество
article - артикул товара (необязательный параметр)
cft - коэффициент товара (0 - бонус не начисляется, необязательный параметр)
Передается в формате JSON

Метод payorder1c возвращает следующую структуру:
ok|сумма_бонуса|баланс_карты|код_отмены_транзакции
Код отмены необходимо будет запомнить, и использовать при отмене
https://office.akrk.info/exchange/payorder1c?restoID=*&key=***&number=*


Пример (checkOrder - Состав чека):
[
  {
    "catName": "Пиво разливное",
    "catCode": "Пиво разливное",
    "name": "ВЕЛЬВЕТ",
    "price": "480",
    "count": "2"
    "article": "qqqqqqq"
    "cft": "1"
  },
  {
    "catName": "Пиво разливное",
    "catCode": "Пиво разливное",
    "name": "ФУЛЛЕРС ЛОНДОН ПРАЙД",
    "price": "560",
    "count": "2"
    "article": "123123123"
    "cft": "0"
  }
]
getbonussumm1c
Получить потенциальную сумму бонусов, а так же потенциальный баланс карты.
Входящие параметры аналогичны методу payorder1c.

Возможный ответ:
- error|Карта на найдена или не активированна.
- error|Карта заблокирована или не активирована.
- error|Системная ошибка: нет карточного счета.
- error|Заведение отключено
- ok|суммабонуса|баланскарты

spendbonus
Списание суммы со счета.

Необходимо передать следующие данные:
- restoID - идентификатор заведения
- key - секретный ключ заведения
- number - Номер карты, номер телефона или GUID
- spendSumm - Сумма списания в копейках;
- code код списания. Может принимать значения:

1 - Транзакция.Место
2 - Бонус.Акция
3 - Бонус.Админ
4 - Транзакция.Доставка
5 - Магазин.АКРК
6 - Подарочный сертификат
7 - Транзакция.Online
8 - Покупка авто
9 - Запчасти для авто
10 - Покупка б/у авто
11 - Автосервис

- comment - комментарий
- request (не обязательно) - идентификатор запроса.
request может быть любой строкой до 255 символов. Формируется на стороне клиента. Должен быть уникальным для каждого запроса

Возможный ответ:
* error|Карта на найдена или не активированна.
* error|Карта заблокирована или не активирована.
* error|Заведение отключено
* error|Сумма на карте недостаточна
* ok|код_транзакции
https://office.akrk.info/exchange/spendbonus?restoID=*&key=***&number=*........
cancelbonus
Отмена транзакции

Необходимо передать следующие данные:

- restoID - идентификатор заведения
- key - секретный ключ заведения
- code - код транзакции, полученный при вызове spendbonus

Возможный ответ:

* ok|Транзакция отменена
* error|Транзакция не найдена
* error|Заведение отключено


https://office.akrk.info/exchange/cancelbonus?restoID=*&key=***........
partialrollback
Частичная отмена транзакции

Необходимо передать следующие данные:
- restoID - идентификатор заведения
- key - секретный ключ заведения
- code - код транзакции, полученный при вызове payorder1c
- article - артикул товара для отмены
- count - количество позиций артикула для отмены
- orderPayBonus - сумма, оплаченная бонусами в первой транзакции

Возможный ответ:
* ok|Позиция отменена
* error|Транзакция не найдена
* error|Артикул в транзакции не найдена
* error|Количество для артикула превышает данные в транзакции
* error|Заведение отключено
https://office.akrk.info/exchange/partialrollback?...*&key=***...........​ 
getsegmentlist
Получить список доступных сегментов по заведению или сети
https://office.akrk.info/exchange/getsegmentlist?restoID=***&key=***
getguidlist
Получить список guid в сегменте
https://office.akrk.info/exchange/getguidlist?restoID=***&key=***&segmentID=.....
checkguidsegment
Проверить нахождение клиента по guid в сегменте
https://office.akrk.info/exchange/checkguidsegment?restoID=***&key=***&segmentID=.....&guid=.......