Группа карт предназначена для логического и визуального разделения карт по определенным признакам. Группы карт не влияют на логику работы с картами и могут не использоваться при интеграции.

Добавить группу карт

POST

/organization/card_group/add

 

Заголовки

token // Токен доступа выданный при авторизации

 

Входной JSON

{

"id":"729a9760-1712-4b89-b4ca-7c9af4606ee8",

//[Необязательный]. Идентификатор группы. Если не передан - генерируется сервисом

"parent_id": "26e5744f-902d-4bb9-a565-32e872e7bb30",

//[Необязательный]. Идентификатор группы родителя. Если не передан - группа создается в корне дерева карт.

"name": "VIP-карты",

//[Необязательный]. Наименование группы

"description": "В этой группе находятся карты VIP-клиентов"

//[Необязательный]. Дополнительное описание

}

 

Выходной JSON

{
"code": 0,
"message": "Операция выполнена",
"id": "eeaedde5-5c71-4a7a-bc2d-5e04bdb8671e" //Идентификатор созданной группы
}

 

 

Изменить группу карт

POST

/organization/card_group/{id}

 

Параметры URI

id // Идентификатор существующей группы

 

Заголовки

token // Токен доступа выданный при авторизации

 

Входной JSON

{

"parent_id": "26e5744f-902d-4bb9-a565-32e872e7bb30",

//[Необязательный]. Идентификатор группы родителя. Если не передан - группа создается в корне дерева карт.

"name": "VIP-карты",

//[Необязательный]. Наименование группы

"description": "В этой группе находятся карты VIP-клиентов"

//[Необязательный]. Дополнительное описание

}

 

Выходной JSON

{
"code": 0,
"message": "Операция выполнена"
}

 

 

Удалить группу карт

POST

/organization/card_group/{id}/delete

 

Параметры URI

id // Идентификатор существующей группы

 

Заголовки

token // Токен доступа выданный при авторизации

 

Входной JSON

{

"test": true

//[Необязательный]. Если установлен то будет подсчитано сколько элементов будет удалено без их фактического удаления. Используется для вывода пользователю предварительных результатов и проверки наличия подчиненных элементов.

}

 

Выходной JSON

{
    "code": 0,

    "message": "Операция выполнена",
    "count_to_delete" : 88 // Количество удаленных вложенных объектов(карт и групп). Параметр возвращается в случае передачи в теле запроса аттрибута "test"
}

 

 

Получить группу карт

GET

/organization/card_group/{id}

 

Параметры URI

id // Идентификатор существующей группы

 

Заголовки

token // Токен доступа выданный при авторизации

 

Выходной JSON

{
       "code": 0,
       "message": "Операция выполнена",


       "cards_group": // Список групп карт
       {
        "id": "eeaedde5-5c71-4a7a-bc2d-5e04bdb8671e"                         

        // Идентификатор группы
        "parent_id": "d2c293f2-7994-4e21-aa70-239084847e51",

        // Идентификатор группы родителя
        "name": "Название группы карт",

        // Наименование группы карт
        "description": "Группа карт сети магазинов продуктов",

        // Дополнительное описание группы
        "groups": 23,

        // Количество вложенных групп
        "cards": 13

        // Количество вложенных карт(только текущей группы)
       }
}

 

 

 

Получить список групп карт

GET

/organization/card_group

 

Параметры в строке запроса

parent_id //[Необязательный]. Идентификатор родителя в которм выполняется поиск группы

page //[Необязательный]. Номер страницы которую нужно получить

per_page //[Необязательный]. Количество строк на страницу

 

Заголовки

token // Токен доступа выданный при авторизации

 

Выходной JSON

{
       "code": 0,
       "message": "Операция выполнена",


       "cards_groups": [ // Список групп карт
       {
        "id": "eeaedde5-5c71-4a7a-bc2d-5e04bdb8671e"                         

        // Идентификатор группы
        "parent_id": "d2c293f2-7994-4e21-aa70-239084847e51",

        // Идентификатор группы родителя
        "name": "Название группы карт",

        // Наименование группы карт
        "description": "Группа карт сети магазинов продуктов",

        // Дополнительное описание группы
        "groups": 23,

        // Количество вложенных групп
        "cards": 13

        // Количество вложенных карт(только текущей группы)
       }, ...

  ],

  "pagination": 

  {

    "per_page":    10,    // Количество строк на страницу

    "page"    :    1,     // Номер текущей страницы

    "items"   :    15275, // Всего записей

    "pages"   :    1528   // Всего страниц

  }

}

 

 

 

Карты

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

Добавить карту

При выполнении метода проверяется уникальность штрихового кода карты.

POST

/organization/card/add

 

Заголовки

token // Токен доступа выданный при авторизации

 

Входной JSON

{

   "id":  "",

//[Необязательный]. Идентификатор карты. Если не передан - генерируется сервисом.

   "parent_id":  "",

//[Необязательный]. Идентификатор родительской группы. Если не передан - карта создается в корне дерева карт

   "code": 54377537373, 

// Магнитный код карты

   "barcode":  ,

//Штриховой код карты

   "name": "",

//[Необязательный]. Наименование карты

   "description": "",

//[Необязательный]. Дополнительное описание карты

   "balance": 0,   

//[Необязательный]. Начальный баланс карты. Рекомендуется создавать карты с нулевым балансом и начислять/списывать баллы методом transaction

   "active": false,

//[Необязательный]. Признак активности карты

   "blocked": false,

//[Необязательный]. Признак блокировки карты

   "blockeddescription": "",

//[Необязательный]. Описание причины блокировки.

   "mastercard_id":  "",

//[Необязательный]. Идентификатор мастер-карты. Если указан, все начисления и списания бонусов будут проходить по мастер-карте. Используется как общий счет для нескольких карт.

   "referallink_id":  "",

//[Необязательный]. Идентификатор карты участнка, который пригласил держателя текущей карты в программу лояльности(реферал). Используется для расчета некоторых видов скидок.

   "phone":  "",

//[Необязательный]. Мобильный телефон. Используется в механизме привязки карт к учетным записям пользователей.

   "email":  "",

//[Необязательный]. Адрес эл. почты. Используется в механизме привязки карт к учетным записям пользователей.

   "external_card":  0,

//[Необязательный]. 0 - наша карта, иначе - сторонняя. Сторонние карты не могут быть привязаны к учетным записям пользователей. Может использоваться для учета карт других систем лояльности и применения скидок к ним.

   "accum_sale_amount":0,

//[Необязательный]. Оборот накоплений по продажам на карте(не бонусны). Используется при расчете скидок.

   "card_level_id":  "",

//[Необязательный]. Уровень карты. Используется при расчете скидок.

   "new_card_id":  "",

//[Необязательный]. В случае если карта была заблокирована - это поле можно использовать для перенаправления на новую карту. Позволяет её хранить, вводить и выводить, логика поведения должна быть описана со стороны клиентского приложения.

}

 

Выходной JSON

{
"code": 0,
"message": "Операция выполнена",
"id": "eeaedde5-5c71-4a7a-bc2d-5e04bdb8671e" //Идентификатор созданной карты
}

 

 

Изменить карту

POST

/organization/card/{id}

 

Параметры URI

id // Идентификатор существующей карты

 

Заголовки

token // Токен доступа выданный при авторизации

 

Входной JSON

{

   "parent_id":  "",

//[Необязательный]. Идентификатор родительской группы. Если не передан - карта создается в корне дерева карт

   "code": "54377537373", 

// Магнитный код карты

   "barcode":  "",

//Штриховой код карты

   "name": "",

//[Необязательный]. Наименование карты

   "description": "",

//[Необязательный]. Дополнительное описание карты

   "mastercard_id":  "",

//[Необязательный]. Идентификатор мастер-карты. Если указан, все начисления и списания бонусов будут проходить по мастер-карте. Используется как общий счет для нескольких карт.

   "phone":  "",

//[Необязательный]. Мобильный телефон. Используется в механизме привязки карт к учетным записям пользователей.

   "email":  "",

//[Необязательный]. Адрес эл. почты. Используется в механизме привязки карт к учетным записям пользователей.

   "external_card":  0,

//[Необязательный]. 0 - наша карта, иначе - сторонняя. Сторонние карты не могут быть привязаны к учетным записям пользователей. Может использоваться для учета карт других систем лояльности и применения скидок к ним.

   "accum_sale_amount":0,

//[Необязательный]. Оборот накоплений по продажам на карте(не бонусны). Используется при расчете скидок.

   "card_level_id":  "",

//[Необязательный]. Уровень карты. Используется при расчете скидок.

  "new_card_id":  "",

//[Необязательный]. В случае если карта была заблокирована - это поле можно использовать для перенаправления на новую карту. Позволяет её хранить, вводить и выводить, логика поведения должна быть описана со стороны клиентского приложения.

}

 

Выходной JSON

{
"code": 0,
"message": "Операция выполнена"
}

 

 

Удалить карту

POST

/organization/card/{id}/delete

 

Параметры URI

id // Идентификатор существующей карты

 

Заголовки

token // Токен доступа выданный при авторизации

 

Входной JSON

{

"checkbalance": true

//[Необязательный]. Если установлен то при удалении выполняется проверка наличия баллов на карте. В случае наличия удаление не производится

}

 

Выходной JSON

{
    "code": 0,

         "message": "Операция выполнена"
}

 

 

Получить карту

GET

/organization/card/{id}

 

Параметры URI

id // Идентификатор существующей карты

 

Заголовки

token // Токен доступа выданный при авторизации

 

Выходной JSON

{
       "code": 0,
       "message": "Операция выполнена",


"card": 

  {

  "parent_id":  "",

// Идентификатор родительской группы. Если не передан - карта создается в корне дерева карт

   "code": "54377537373", 

// Магнитный код карты

   "barcode":  "",

// Штриховой код карты

   "name": "",

// Наименование карты

   "description": "",

// Дополнительное описание карты

   "mastercard_id":  "",

// Идентификатор мастер-карты. Если указан, все начисления и списания бонусов будут проходить по мастер-карте. Используется как общий счет для нескольких карт.

   "phone":  "",

// Мобильный телефон. Используется в механизме привязки карт к учетным записям пользователей.

   "email":  "",

// Адрес эл. почты. Используется в механизме привязки карт к учетным записям пользователей.

   "external_card":  0,

// 0 - наша карта, иначе - сторонняя. Сторонние карты не могут быть привязаны к учетным записям пользователей. Может использоваться для учета карт других систем лояльности и применения скидок к ним.

   "accum_sale_amount":0,

// Оборот накоплений по продажам на карте(не бонусны). Используется при расчете скидок.

   "card_level_id":  "",

// Уровень карты. Используется при расчете скидок.

    "date_active":    0,

// Дата активации карты

    "activation_shop_id":"",

// Идентификатор магазина в котором была активирована карта.

    "date_deactivate":    0,

// Дата деактивации карты

    "date_last_transaction":    0,

// Дата последней транзакции по карте

    "date_first_check":    0,

// Дата первой покупки

    "last_transaction":"",

// Идентификатор последней транзакции

    "user_id":"",

// Идентификатор учетной записи пользователя, владельца карты

    "image":"",

//URI картинки карты. По-умолчанию берется из настроек организации.

    "date_unblock":    0,

//Дата автоматической разблокировки, если была наложена временная блокировка

  "new_card_id":  "",

//[Необязательный]. В случае если карта была заблокирована - это поле можно использовать для перенаправления на новую карту. Позволяет её хранить, вводить и выводить, логика поведения должна быть описана со стороны клиентского приложения.

  }
}

 

 

 

Получить список карт

GET

/organization/card

 

Параметры в строке запроса

parent_id //[Необязательный]. Идентификатор родителя в котором выполняется поиск карт

active //[Необязательный]. Только активные карты

blocked //[Необязательный]. Только заблокированные карты

card_filter // [Необязательный]. Фильтр для поиска по подобным значениям наименования, штрихового кода, магнитного кода, телефона или emailа

 

user_id //[Необязательный]. Идентификатор учетной записи пользователя-владельца карты

mastercard_id //[Необязательный]. Идентификатор мастер-карты

referallink_id//[Необязательный]. Идентификатор реферала

barcode //[Необязательный]. Фильтр по фрагменту ШК

code //[Необязательный]. Фильтр по фрагменту МК

with_groups //[Необязательный]. Возвращать группы карт

card_level_id // //[Необязательный]. Фильтр по идентификатору уровня карт

email //[Необязательный]. точное соответствие почты карты

phone //[Необязательный]. точное соответствие телефона карты

page //[Необязательный]. Номер страницы которую нужно получить

per_page //[Необязательный]. Количество строк на страницу

calculate_count //[Необязательный]. Рассчитывать ли пагинацию по всей таблице?

 

Заголовки

token // Токен доступа выданный при авторизации

 

Выходной JSON

{
       "code": 0,
       "message": "Операция выполнена",


       "cards":[ // Список карт
       {

          "row_number":  1,

// Номер строки

          "id":  "",

// Идентификатор карты

          "is_group":  "",

// Признак группы карт. Если передан параметр with_groups
          "parent_id":  "",

// Идентификатор родительской группы. Если не передан - карта создается в корне дерева карт

   "code": "54377537373", 

// Магнитный код карты

   "barcode":  "",

// Штриховой код карты

   "name": "",

// Наименование карты

   "description": "",

// Дополнительное описание карты

   "mastercard_id":  "",

// Идентификатор мастер-карты. Если указан, все начисления и списания бонусов будут проходить по мастер-карте. Используется как общий счет для нескольких карт.

   "phone":  "",

// Мобильный телефон. Используется в механизме привязки карт к учетным записям пользователей.

   "email":  "",

// Адрес эл. почты. Используется в механизме привязки карт к учетным записям пользователей.

   "external_card":  0,

// 0 - наша карта, иначе - сторонняя. Сторонние карты не могут быть привязаны к учетным записям пользователей. Может использоваться для учета карт других систем лояльности и применения скидок к ним.

   "accum_sale_amount":0,

// Оборот накоплений по продажам на карте(не бонусны). Используется при расчете скидок.

   "card_level_id":  "",

// Уровень карты. Используется при расчете скидок.

    "date_active":    0,

// Дата активации карты

    "activation_shop_id":"",

// Идентификатор магазина в котором была активирована карта.

    "date_deactivate":    0,

// Дата деактивации карты

    "date_last_transaction":    0,

// Дата последней транзакции по карте

    "date_last_activity":    0,

// Дата последней продажи по карте

    "date_first_check":    0,

// Дата первой покупки

    "last_transaction":"",

// Идентификатор последней транзакции

    "user_id":"",

//[Необязательный]. Идентификатор учетной записи пользователя, владельца карты

    "image":"",

//URI картинки карты. По-умолчанию берется из настроек организации.

    "date_unblock":    0

//Дата автоматической разблокировки, если была наложена временная блокировка  

  "new_card_id":  "",

//[Необязательный]. В случае если карта была заблокирована - это поле можно использовать для перенаправления на новую карту. Позволяет её хранить, вводить и выводить, логика поведения должна быть описана со стороны клиентского приложения.

     },...

 

      ],

 

     "pagination": 

       {

         "per_page":    10,    // Количество строк на страницу

         "page"    :    1,     // Номер текущей страницы

         "items"   :    15275, // Всего записей

         "pages"   :    1528   // Всего страниц

      }
}

 

 

Получить список карт по

GET

/organization/card/by_phone

/organization/card/by_emai

/organization/card/by_barcode

/organization/card/by_code

/organization/card/by_name

 

Параметры в строке запроса

filter // [Необязательный]. Фильтр для поиска в соответствии с названием метода

// Особенности:

// name - Поиск выполняется по фрагменту начала слова. Возвращает не более 500 записей.

// barcode - Поиск выполняется по началу штрихкода.

// code - Поиск выполняется по началу магнитного кода.

// phone - Поиск выполняется по последним символам номера телефона.

// email - Поиск выполняется по началу почты.

 

page //[Необязательный]. Номер страницы которую нужно получить

per_page //[Необязательный]. Количество строк на страницу

calculate_count //[Необязательный]. Рассчитывать ли пагинацию по всей таблице?

 

 

Заголовки

token // Токен доступа выданный при авторизации

 

Выходной JSON

{
       "code": 0,
       "message": "Операция выполнена",


       "cards":[ // Список карт
       {

          "row_number":  1,

// Номер строки

          "id":  "",

// Идентификатор карты

          "is_group":  "",

// Признак группы карт. Если передан параметр with_groups
          "parent_id":  "",

// Идентификатор родительской группы. Если не передан - карта создается в корне дерева карт

   "code": "54377537373", 

// Магнитный код карты

   "barcode":  "",

// Штриховой код карты

   "name": "",

// Наименование карты

   "description": "",

// Дополнительное описание карты

   "mastercard_id":  "",

// Идентификатор мастер-карты. Если указан, все начисления и списания бонусов будут проходить по мастер-карте. Используется как общий счет для нескольких карт.

   "phone":  "",

// Мобильный телефон. Используется в механизме привязки карт к учетным записям пользователей.

   "email":  "",

// Адрес эл. почты. Используется в механизме привязки карт к учетным записям пользователей.

   "external_card":  0,

// 0 - наша карта, иначе - сторонняя. Сторонние карты не могут быть привязаны к учетным записям пользователей. Может использоваться для учета карт других систем лояльности и применения скидок к ним.

   "accum_sale_amount":0,

// Оборот накоплений по продажам на карте(не бонусны). Используется при расчете скидок.

   "card_level_id":  "",

// Уровень карты. Используется при расчете скидок.

    "date_active":    0,

// Дата активации карты

    "activation_shop_id":"",

// Идентификатор магазина в котором была активирована карта.

    "date_deactivate":    0,

// Дата деактивации карты

    "date_last_transaction":    0,

// Дата последней транзакции по карте

    "date_last_activity":    0,

// Дата последней продажи по карте

    "date_first_check":    0,

// Дата первой покупки

    "last_transaction":"",

// Идентификатор последней транзакции

    "user_id":"",

//[Необязательный]. Идентификатор учетной записи пользователя, владельца карты

    "image":"",

//URI картинки карты. По-умолчанию берется из настроек организации.

    "date_unblock":    0

//Дата автоматической разблокировки, если была наложена временная блокировка  

  "new_card_id":  "",

//[Необязательный]. В случае если карта была заблокирована - это поле можно использовать для перенаправления на новую карту. Позволяет её хранить, вводить и выводить, логика поведения должна быть описана со стороны клиентского приложения.

     },...

 

      ],

 

     "pagination": 

       {

         "per_page":    10,    // Количество строк на страницу

         "page"    :    1,     // Номер текущей страницы

         "items"   :    15275, // Всего записей

         "pages"   :    1528   // Всего страниц

      }
}

 

 

 

Активация карты

            Метод устанавливает карте признак активации. С активной карты возможно списание бонусных баллов в счет покупок. Для неактивных карт доступно только начисление баллов.

POST

/organization/card/{id}/activate

 

Параметры

id // Идентификатор карты

 

Заголовки

token // Токен доступа выданный при авторизации

 

Входной JSON

{

       "activation_shop_id" : "2312322123"

       // [Необязательный] Строка. Идентификатор магазина, в котором была активирована карта

}

 

Выходной JSON

{
       "code": 0,
       "message": "Операция выполнена"
}

 

Деактивация карты         

POST

/organization/card/{id}/deactivate

 

Параметры

id // Идентификатор карты

 

Заголовки

token // Токен доступа выданный при авторизации

 

Выходной JSON

{
       "code": 0,
       "message": "Операция выполнена"
}

 

Блокировка карты

            Заблокированные карты полностью недоступны для начисления и списания бонусов до момента разблокировки.

POST

/organization/card/{id}/block

 

Параметры

id // Идентификатор карты

 

Заголовки

token // Токен доступа выданный при авторизации

 

Входной JSON

{

       "description" : "Причина блокировки",

       // Основание для блокировки карты

       "unblock_date":  1500659675601

       // [Необязательный]. Дата автоматичесой разблокировки карты. Если передан, карта будет автоматически разблокирована после указанной даты. Ручная разблокировка также возможна.

}

 

Выходной JSON

{
       "code": 0,
       "message": "Операция выполнена"
}

 

Разблокировка карты     

POST

/organization/card/{id}/unblock

 

Параметры

id // Идентификатор карты

 

Заголовки

token // Токен доступа выданный при авторизации

 

Выходной JSON

{
       "code": 0,
       "message": "Операция выполнена"
}

 

 

Повысить уровень

 

POST

/organization/card/{id}/levelup

 

Параметры URI

id // Идентификатор карты

 

Заголовки

token // Токен доступа выданный при авторизации

 

Входной JSON

{

   "check": false,

// Проверка. Если true тогда автоматически повышает уровень, если false, тогда только говорит - можно ли перейти на боле верхний уровень или нет

 

Выходной JSON

{
"code": 0,
"message": "Операция выполнена",

level_up": // Существует, если уровень повышен

{

// Идентификатор уровня карты

    "level_id":"61fc02f3-cef3-49d1-9150-4369b2a5f6a6",

// Наименование уровня

    "level_name":"1s100k",

// Сумма накоплений на карте

    "accum_amount":10500,

// Сумма накоплений необходимая для перехода на уровень

    "accum_level":100 

},

  "next_level_up":  // Существует если если есть следующий уровень, в случае если параметр check = true - в этой структуре будет показан уровень на который карта может перейти

  {

// Идентификатор уровня карты

    "level_id":"fd7173a2-a12d-421e-b413-00d4208d193a",

// Наименование уровня

    "level_name":"У2",

// Сумма накоплений на карте

    "accum_amount":0,

// Сумма накоплений необходимая для перехода на уровень

    "accum_level":0 

  }

}

 

Понизить уровень

Мы находимся на каком то уровне.

Смотрим есть ли в нем сброс - ничего не делаем иначе смотрим на приоритет ниже.

Смотрим хватает ли нам накоплений чтобы находиться на нем?

Если хватает - ничего не делаем, если не хватает - ищем уровень с более низким приоритетом - нашли - перевели карту, не нашли - оставили карту на текущем.

 

 

POST

/organization/card/{id}/leveldown

 

Параметры URI

id // Идентификатор карты

 

Заголовки

token // Токен доступа выданный при авторизации

 

Входной JSON

{

   "check": false,

// Проверка. Если true тогда автоматически понижает уровень, если false, тогда только говорит - можно ли перейти на боле верхний уровень или нет

 

Выходной JSON

{
"code": 0,
"message": "Операция выполнена",

level_down": // Существует, если уровень понижен

{

// Идентификатор уровня карты

    "level_id":"61fc02f3-cef3-49d1-9150-4369b2a5f6a6",

// Наименование уровня

    "level_name":"1s100k",

// Сумма накоплений на карте

    "accum_amount":10500,

// Сумма накоплений необходимая для перехода на уровень

    "accum_level":100 

},

  "next_level_down":  // Существует если если есть следующий уровень, в случае если параметр check = true - в этой структуре будет показан уровень на который карта может перейти при последующих возвратах

  {

// Идентификатор уровня карты

    "level_id":"fd7173a2-a12d-421e-b413-00d4208d193a",

// Наименование уровня

    "level_name":"У2",

// Сумма накоплений на карте

    "accum_amount":0,

// Сумма накоплений необходимая для перехода на уровень

    "accum_level":0 

  }

}

 

 

Расшифровка баланса сгорающих баллов

 

GET

/organization/card/{id}/balance_info?last_transactions=

 

Параметры в строке запроса

last_transactions //[Необязательный]. Если этот параметр не передан или значение превышает 100 - тогда вернуть первые 100 транзакций. Если не нужны - выставить параметр равным 0.

 

Заголовки

token // Токен доступа выданный при авторизации

 

Выходной JSON

{

  "balance":13573.04, // Устаревшее поле. Сколько всего начислялось баллов на карту без учета сгораний

  "balance_available":225, // Актуальный баланс по карте

  "last_transactions":  // Последние транзакции по карте

  [

    {

      "date":      1545720862693,

      "sum":-25   

    },

    {

      "date":      1545720862333,

      "sum":60   

    },

    {

      "date":      1545720768820,

      "sum":-25   

    },

    {

      "date":      1545720768417,

      "sum":50   

    } 

  ],

  "bonusactive":  // Бонусы, которые подлежат активации или сгоранию

  [

    {

      "date":      1545720862333,        // Дата начисления

      "sum":35,                          // Количество баллов

      "active_from":      1545858000000, // Дата активации

      "active_to":      1546117200000    // Дата сгорания

    },

    {

      "date":      1545720862693,

      "sum":25,

      "active_from":      1545858000000,

      "active_to":      1546117200000   

    },

    {

      "date":      1545720768417,

      "sum":50,

      "active_from":      1545858000000,

      "active_to":      0    // Поле не заполнено - не сгорают

    },

    {

      "date":      1545720768820,

      "sum":25,

      "active_from":      1545858000000,

      "active_to":      0   

    } 

  ],

  "code":  0,

  "message":"Операция выполнена"

}

 

Прикрепить случайную карту к клиенту

 

POST

/organization/card/add_user

 

Параметры URI

id // Идентификатор карты

 

Заголовки

token // Токен доступа выданный при авторизации

 

Входной JSON

{

// Идентификатор клиента, к которому надо прикрепить карту

   "user_id": "123",

// Новое название карты

   "name": "123",

// Новое описание карты

   "description": "1235",

}

 

Выходной JSON

{
"code": 0,
"message": "Операция выполнена"

}

 

Прикрепить конкретную карту к клиенту

 

POST

/organization/card/attach

 

Параметры URI

id // Идентификатор карты

 

Заголовки

token // Токен доступа выданный при авторизации

 

Входной JSON

{

// идентификатор клиента, к которому надо прикрепить карту

   "user_id": "123",

// идентификатор карты

   "card_id": "1235",

}

 

Выходной JSON

{
"code": 0,
"message": "Операция выполнена"

}

 

Получение списка карт клиента по его номеру телефона или почте с подтверждением операции

 

POST

/organization/card/send_identify

 

Параметры URI

id // Идентификатор карты

 

Заголовки

token // Токен доступа выданный при авторизации

 

Входной JSON

{

// почта для поиска

   "email": "mail@mail.ru",

// телефон для поиска

   "phone": "1235",

// куда выслать код или “phone” или “email”

   "send_to": "email",

 

// Когда клиент получил код вызываем эту же процедуру, но с новыми параметрами:

// идентификатор клиента, которому выслали код

   "user_id": "123",

// код

   "identify_code": "123",

}

 

Выходной JSON

{
"code": 0,
"message": "Операция выполнена"

// Когда выслали код или если код не требовался:

"cards":[ // Список карт
       {

          "row_number":  1,

// Номер строки

          "id":  "",

// Идентификатор карты

          "parent_id":  "",

// Идентификатор родительской группы. Если не передан - карта создается в корне дерева карт

   "code": "54377537373", 

// Магнитный код карты

   "barcode":  "",

// Штриховой код карты

   "name": "",

// Наименование карты

   "description": "",

// Дополнительное описание карты

   "mastercard_id":  "",

// Идентификатор мастер-карты. Если указан, все начисления и списания бонусов будут проходить по мастер-карте. Используется как общий счет для нескольких карт.

   "phone":  "",

// Мобильный телефон. Используется в механизме привязки карт к учетным записям пользователей.

   "email":  "",

// Адрес эл. почты. Используется в механизме привязки карт к учетным записям пользователей.

   "external_card":  0,

// 0 - наша карта, иначе - сторонняя. Сторонние карты не могут быть привязаны к учетным записям пользователей. Может использоваться для учета карт других систем лояльности и применения скидок к ним.

   "accum_sale_amount":0,

// Оборот накоплений по продажам на карте(не бонусны). Используется при расчете скидок.

   "card_level_id":  "",

// Уровень карты. Используется при расчете скидок.

    "date_active":    0,

// Дата активации карты

    "activation_shop_id":"",

// Идентификатор магазина в котором была активирована карта.

    "date_deactivate":    0,

// Дата деактивации карты

    "date_last_transaction":    0,

// Дата последней транзакции по карте

    "date_first_check":    0,

// Дата последней продажи по карте

    "date_last_activity":    0,

// Дата первой покупки

    "last_transaction":"",

// Идентификатор последней транзакции

    "user_id":"",

//[Необязательный]. Идентификатор учетной записи пользователя, владельца карты

    "image":"",

//URI картинки карты. По-умолчанию берется из настроек организации.

    "date_unblock":    0

//Дата автоматической разблокировки, если была наложена временная блокировка  

  "new_card_id":  "",

//[Необязательный]. В случае если карта была заблокирована - это поле можно использовать для перенаправления на новую карту. Позволяет её хранить, вводить и выводить, логика поведения должна быть описана со стороны клиентского приложения.

     },...

 

      ]

}

 

Замена карты

Проверки:

  • Потерянная
    • Что карта активирована (это означает, что она была выдана)
    • Что у неё поле “new_card_id” пустое (по ней не было замены)
  • Новая
    • не активирована ИЛИ временно заблокирована и активирована
    • нет пользователя
    • нет транзакций
    • не заблокирована ИЛИ Не заполнена дата первой продажи

Особенность:

  • Метод игнорирует настройку по максимально допустимым картам для клиента.

Что заполняем:

  1. Актуальный баланс
  2. Отложенные транзакции
  3. parent_id, active, mastercard_id, referallink_id, firstchequedate, date_active, date_deactivate, date_last_transaction, user_id, phone, email, external_card, accum_sale_amount, card_level_id, activation_shop_id

 

Старую карту деактивируем, блокируем, заполняем поле new_card_id

 

POST

/organization/card/replacement

 

Параметры URI

id // Идентификатор карты

 

Заголовки

token // Токен доступа выданный при авторизации

 

Входной JSON

{

// Карта подлежащая замене. Обязательный.

   "old_card_id": "mail@mail.ru",

// Новая карта. Обязательный.

   "new_card_id": "1235",

 

}

 

Выходной JSON

{
"code": 0,
"message": "Операция выполнена"

}