GrowCards Passes API v2 Для интеграции GrowCards в вашу внутреннюю систему используйте методы, описанные на этой странице.
Коллекция в Postman
Мы создали коллекцию в Postman с описанными ниже методами и всеми необходимыми параметрами для удобного тестирования запросов.
Список карт
GET
https://api.growcards.ru/v2/passes
Получение списка выпущенных карт. По умолчанию возвращает все карты, созданные в рамках компании. Для получения карт, созданных в рамках шаблона, укажите в параметрах запроса templateId
Query Parameters
200 В массиве data содержится список созданных карт
Copy {
"data": [
{
"_id": "5e491ad54ebdb3640ff47a09",
"name": "Петр Иванов",
"serialNumber": "3239950756",
"company": {
"name": "2MOOD"
},
"template": {
"name": "Карта 2MOOD"
},
"created_at": "2020-02-16T10:35:01.554Z",
"devices": [
{
"os": "ios",
"application": "apple wallet"
}
]
},
{...}
],
"meta": {
"total": 7,
"limit": 10,
"page": 1,
"pages": 1
}
}
Метод поддерживает пагинацию. Если параметр page не указан, то будут возвращены все карты.
При включенной пагинации по умолчанию отдаётся 10 объектов на страницу. Вы можете изменить это через параметр limit .
Объект карты по ID
GET
https://api.growcards.ru/v2/passes/:passId
Получение данных выпущенной карты.
Path Parameters
200 Тело ответа содержит данные запрашиваемой карты 400 Неверно указан ID карты 404 Карта с заданным ID не найдена
Copy {
"_id": "5e468c805d8d34644ebb34e6",
"formDataFields": [
{
"key": "email",
"value": "wavemeup1@gmail.com"
}
],
"name": "Вячеслав Осадчий",
"phone": "79218678737",
"serialNumber": "1282295653",
"company": {
"name": "2MOOD"
},
"template": {
"name": "Карта 2MOOD"
},
"created_at": "2020-02-14T12:03:12.891Z",
"devices": [
{
"os": "ios",
"application": "apple wallet",
"created_at": "2020-02-14T12:05:32.194Z"
}
],
"fields": [
{
"key": "discount",
"label": "Ваша скидка",
"value": "10%",
"enabled": true,
"changeMessage": "У вас новая скидка: %@"
},
{
"key": "levelname",
"label": "Уровень",
"value": "Welcome",
"enabled": true,
"changeMessage": "У вас новый уровень: %@"
}
]
}
Copy {
"statusCode" : 400 ,
"message" : "Invalid ID" ,
"error" : "Bad Request"
}
Copy {
"statusCode" : 404 ,
"message" : "Not Found"
}
Объект карты по серийному номеру
GET
https://api.growcards.ru/v2/passes/s/:serialNumber
Получение данных выпущенной карты по серийному номеру.
Path Parameters
200 Тело ответа содержит данные запрашиваемой карты 400 Неверно указан ID карты 404 Карта с заданным серийным номером не найдена
Copy {
"_id": "5e468c805d8d34644ebb34e6",
"formDataFields": [
{
"key": "email",
"value": "wavemeup1@gmail.com"
}
],
"name": "Вячеслав Осадчий",
"phone": "79218678737",
"serialNumber": "1282295653",
"company": {
"name": "2MOOD"
},
"template": {
"name": "Карта 2MOOD"
},
"created_at": "2020-02-14T12:03:12.891Z",
"devices": [
{
"os": "ios",
"application": "apple wallet",
"created_at": "2020-02-14T12:05:32.194Z"
}
],
"fields": [
{
"key": "discount",
"label": "Ваша скидка",
"value": "10%",
"enabled": true,
"changeMessage": "У вас новая скидка: %@"
},
{
"key": "levelname",
"label": "Уровень",
"value": "Welcome",
"enabled": true,
"changeMessage": "У вас новый уровень: %@"
}
]
}
Copy {
"statusCode" : 400 ,
"message" : "Invalid ID" ,
"error" : "Bad Request"
}
Copy {
"statusCode" : 404 ,
"message" : "Not Found"
}
Создание карты
POST
https://api.growcards.ru/v2/passes
Создание клиентской карты на основе шаблона.
Request Body
201 Тело ответа содержит ID созданной карты и её серийный номер 400 Не указаны необходимые параметры для создания карты или неверно указан ID шаблона 404 Шаблон не найден 409 Карта с заданным номером телефона уже создана в системе
Copy {
"id" : "6058f4c296d7dc2fb8b6ea52" ,
"serialNumber" : "9024585895"
}
Required fields Wrong Template ID
Copy {
"statusCode" : 400 ,
"message" : [
"surname should not be empty" ,
"name should not be empty" ,
"phone should not be empty" ,
"template should not be empty"
] ,
"error" : "Bad Request"
}
Copy {
"statusCode" : 400 ,
"message" : "Invalid ID" ,
"error" : "Bad Request"
}
Copy {
"statusCode" : 404 ,
"message" : "Template Not Found" ,
"error" : "Not Found"
}
Copy {
"statusCode" : 409 ,
"message" : "Card with phone 79218678737 already exists" ,
"error" : "Conflict"
}
Пример тела запроса
Copy {
"phone" : "79211234567" ,
"name" : "Иван" ,
"surname" : "Иванов" ,
"template" : "604fde02f8a4763d25469445"
}
Обновление данных карты по ID
PUT
https://api.growcards.ru/v2/passes/:passId
Метод для обновления информации на карте клиента по ID карты. После каждого обновления на устройство пользователя, где установлена карта отправляется PUSH уведомление.
Серийный номер карты содержится в данных штрих-кода на электронной карте клиента.
Path Parameters
Request Body
200 Карта успешно обновлена. Если к карте привязано устройство, то на него отправлено уведомление. 400 Для обновления отправлены несуществующие поля в карте или не заданы необходимые параметры в теле запроса 404 Карта не найдена
Copy {
"id" : "604fe30a25e0573d50bd131a" ,
"serialNumber" : "5064375019"
}
Unknown Fields Validation Error
Copy {
"statusCode" : 400 ,
"message" : "Unknown fields: someField, anotherField" ,
"error" : "Bad Request"
}
Copy {
"statusCode" : 400 ,
"message" : [
"fields should not be empty"
] ,
"error" : "Bad Request"
}
Copy {
"statusCode" : 404 ,
"message" : "Not Found"
}
Обновление данных карты по серийному номеру
PUT
https://api.growcards.ru/v2/passes/s/:serialNumber
Метод для обновления карты клиента по серийному номеру
Path Parameters
Request Body
200 Карта успешно обновлена. Если к карте привязано устройство, то на него отправлено уведомление. 400 Для обновления отправлены несуществующие поля в карте или не заданы необходимые параметры в теле запроса. 404 Карта не найдена
Copy {
"id" : "604fe30a25e0573d50bd131a" ,
"serialNumber" : "5064375019"
}
Unknown Fields Validation Error
Copy {
"statusCode" : 400 ,
"message" : "Unknown fields: someField, anotherField" ,
"error" : "Bad Request"
}
Copy {
"statusCode" : 400 ,
"message" : [
"fields should not be empty"
] ,
"error" : "Bad Request"
}
Copy {
"statusCode" : 404 ,
"message" : "Not Found"
}
Пример тела запроса
Copy {
"name" : "Иван Иванов" ,
"phone" : "79211234567" ,
"fields" : {
"bonuses" : "220"
}
}
Если в объекте fields переданы ключи полей, отсутствующие в шаблоне, то сервис вернет ошибку 400 и список ошибочных полей.
В теле запроса обязателен как минимум один параметр. При отправке обновления с несколькими параметрами в PUSH-уведомлении отобразится сообщение "Данные карты обновлены", поэтому мы рекомендуем отправлять обновление с одним параметром для отображения в уведомлении уникального сообщения с обновленными данными.
Обратите внимание
Если обновляемые данные совпадают с текущими данными на карте пользователя, то PUSH-уведомление не придет, т.к. в карте не будет обновлений.
Отправка PUSH-уведомления по ID карты
POST
https://api.growcards.ru/v2/passes/:passId/notification
Отправка текстового PUSH-уведомления на карту по ID карты.
Path Parameters
Request Body
200 Уведомление успешно отправлено 400 Не задан текст уведомления или неверно указан ID карты 404 Карта не найдена
Copy {
"id" : "604fe30a25e0573d50bd131a" ,
"serialNumber" : "5064375019" ,
"message" : "Текстовое уведомление!"
}
Required FIelds Invalid ID
Copy {
"statusCode" : 400 ,
"message" : [
"message must be a string" ,
"message should not be empty"
] ,
"error" : "Bad Request"
}
Copy {
"statusCode" : 400 ,
"message" : "Invalid ID" ,
"error" : "Bad Request"
}
Copy {
"statusCode" : 404 ,
"message" : "Not Found"
}
Отправка PUSH-уведомления по серийному номеру
POST
https://api.growcards.ru/v2/passes/s/:serialNumber/notification
Отправка текстового PUSH-уведомления на карту по серийному номеру карты.
Path Parameters
Request Body
200 Уведомление успешно отправлено 400 Не задан текст уведомления или неверно указан ID карты 404 Карта не найдена
Copy {
"id" : "604fe30a25e0573d50bd131a" ,
"serialNumber" : "5064375019" ,
"message" : "Текстовое уведомление!"
}
Required FIelds Invalid ID
Copy {
"statusCode" : 400 ,
"message" : [
"message must be a string" ,
"message should not be empty"
] ,
"error" : "Bad Request"
}
Copy {
"statusCode" : 400 ,
"message" : "Invalid ID" ,
"error" : "Bad Request"
}
Copy {
"statusCode" : 404 ,
"message" : "Not Found"
}
Обратите внимание
Если отправляемое сообщение полностью совпадает с последним отправленным сообщением, то PUSH-уведомление не придет, т.к. в карте не будет обновлений.
Групповая отправка PUSH-уведомлений
POST
https://api.growcards.ru/v2/templates/:templateId/notification
Отправка текстового PUSH-уведомления всем картам в заданном шаблоне, либо выбранным картам
Path Parameters
Request Body
200 Уведомления успешно отправлены 400 Неверно указан один из ID карт, либо неверно заполнены требуемые поля 404 Карты не найдены
Copy {
"count" : 7 , // количество карт
"message" : "Групповое уведомление"
}
Invalid ID Required Fields
Copy {
"statusCode" : 400 ,
"message" : "Invalid ID" ,
"error" : "Bad Request"
}
Copy {
"statusCode" : 400 ,
"message" : [
"message must be a string" ,
"message should not be empty"
] ,
"error" : "Bad Request"
}
Copy {
"statusCode" : 404 ,
"message" : "Not Found"
}
Если переданный массив cards пустой, то уведомление будет отправлено всем картам в шаблоне.