Коллекция в Postman
Мы создали коллекцию в Postman с описанными ниже методами и всеми необходимыми параметрами для удобного тестирования запросов.
Список карт
GET
https://api.growcards.ru/v2/passes
Получение списка выпущенных карт. По умолчанию возвращает все карты, созданные в рамках компании. Для получения карт, созданных в рамках шаблона, укажите в параметрах запроса templateId
Query Parameters
Количество карт на страницу (по умолчанию 10)
Интеграционный ключ компании
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 пустой, то уведомление будет отправлено всем картам в шаблоне.