Passteam

Описание

API позволяет создавать, изменять данные и отправлять push-уведомления на электронные карты Wallet. Используя нижеуказанные методы можно получать подробную информацию о шаблонах, картах и их состоянии. Получать необходимую информацию для отправки карт через систему учета или CRM.


					

Формат запроса

Все методы API доступны с помощью POST запросов. Каждый метод доступен по следующему URL: [server_address]oapi/[version_number]/[method_name]

В качестве server_address используется следующий URL: https://getpass.passteam.ru/

Так как параметры version_number и method_name не могут быть переданы в теле POST запроса, передавайте их как параметры URL.

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

server_address
URL https://getpass.passteam.ru/
version_number
URL v1
method_name
URL getatoken,gettemplates,createcard,updatecards
Authorization
Headers {токен полученный методом getatoken}
     

https://getpass.passteam.ru/oapi/v1/getatoken
     

Формат ответа

Ответ можно получить в формате JSON.

Поля ответа

result
object Результат выполнения метода
message
string Сообщение об ошибке
code
integer Код ответа сервера
error
boolean Флаг наличия ошибки
{
	"result": true,
	"message": "OK",
	"code": 200,
	"error": false
}

Авторизация

Для получения доступа к управлению шаблоном (шаблон- это определенная графическая и текстовая форма, согласно которой генерируются все электронные карты) необходимо пройти авторизацию используя метод getatoken . Данные для входа в систему вы получите после регистрации.

Входные параметры

nickname:
string Никнейм пользователя
password:
string Пароль пользователя

Ответные параметры

accessToken:
sstring (64) Токен авторизации
# Запрос
curl --data 'nickname=YOU_NICKNAME_HERE&password=YOU_PASSWORD_HERE' https://getpass.passteam.ru/oapi/v1/getatoken
# Ответ
{
	"result": {
		"accessToken": "YOU_ACCESS_TOKEN_HERE"
	},
	"message": "OK",
	"code": 200,
	"error": false
}	

Информация о шаблонах

Структура шаблона для выдавемых карт задается в личном кабинете. В случае использования нескольких шаблонов, вы можете получить подробную информацию используя метод gettemplates

Ответные параметры

templateId:
string (24) Идентификатор шаблона
title:
sstring Название шаблона
type:
sstring Тип шаблона
cardsCount:
int Количество созданных карт
fields:
mixed Список доступных полей (с указанием наименования, типа и возможных значений)
devicesCounter:
mixed Счётчики устройств
alias:
boolean Наличие алиаса
qrUrl:
sstring Ссылка на QR-код (NULL, если алиас отсутствует)
# Запрос
curl --header 'Authorization: YOU_ACCESS_TOKEN_HERE' https://getpass.passteam.ru/oapi/v1/gettemplates
# Ответ
{
	"result": [{
		"templateId": "TEMPLATE_ID",
		"title": "TEMPLATE_TITLE",
		"cardsCount": CARDS_COUNT,
		"devicesCounter": {
			"summ": SUMM_DEVICES,
			"0": SUMM_IOS,
			"1": SUMM_ANDROID,
			"2": SUMM_WINDOWS_PHONE
		},
		"fields": [{
			"title": "FIELD_TITLE",
			"name": "FIELD_NAME",
			"type": "text"
		}, ...],
		"alias": null,
		"qrUrl": null
	}],
	"message": "OK",
	"code": 200,
	"error": false
}	

Создание карты

Создание карты по указанному шаблону. Метод createcard

Входные параметры

templateId:
string (24) Идентификатор шаблона
values:
array/mixed Массив значений карты
cardCode:
string (9) Девятизначный код карты с ведущими нулями (Необязательно)
sendSms
int Отправка SMS после создания карты, 1 или 0 (Необязательно)
sendEmail
int Отправка Email после создания карты, 1 или 0 (Необязательно)

Ответные параметры

cardId:
string (9) Идентификатор карты
cardCode:
string Код карты
cardUrl:
string Ссылка на карту
qrcodeUrl:
sstring (64) Ссылка на QR-код карты
values:
mixed Коллекция значений карты
deviceRegistered:
boolean Наличие зарегистрированных устройств
# Запрос
curl --header 'Authorization: YOU_ACCESS_TOKEN_HERE' --data 'templateId=TEMPLATE_ID&values[FIELD_NAME1]=FIELD_VALUE1&values[FIELD_NAME2]=FIELD_VALUE2&cardCode=1&sendSms=1&sendEmail=1' https://getpass.passteam.ru/oapi/v1/createcard
# Ответ
{
	"result": {
		"cardId": "CARD_ID",
		"cardUrl": "CARD_URL",
		"qrcodeUrl": "QR_CODE_URL"
	},
	"message": "OK",
	"code": 200,
	"error": false
}	

Информация о карте

Для получения информации о карте для указанного шаблона используется метод getcard

Входные параметры

cardId:
string (24) Уникальный ID карты (Необязательно). Поиск производится сначала по cardId, если он указан. Если нет, то поиск осуществляется по связке templateId и cardCode.
templateId:
string (24) Идентификатор шаблона (Необязтельно)
cardCode:
string (9) Девятизначный код карты с ведущими нулями (Необязательно)

Ответные параметры

cardId:
string (24) Идентификатор карты
cardCode:
string (9) Код карты
cardUrl:
string Ссылка на карту
qrcodeUrl:
sstring Ссылка на QR-код карты
values:
mixed Коллекция значений карты
deviceRegistered:
boolean Наличие зарегистрированных устройств
# Запрос
curl --header 'Authorization: YOU_ACCESS_TOKEN_HERE' --data 'templateId=TEMPLATE_ID&cardCode=CARD_CODE' https://getpass.passteam.ru/oapi/v1/getcard
# Ответ
{
	"result": {
		"cardId": "CARD_ID",
		"cardCode": "CARD_CODE",
		"cardUrl": "CARD_URL",
		"qrcodeUrl": "QRCODE_URL",
		"values": {
			FIELD_NAME1: FIELD_VALUE1,
			FIELD_NAME2: FIELD_VALUE2,
			...
		}
	},
	"message": "OK",
	"code": 200,
	"error": false
}	

Информация о картах

Для получения информации о картах для указанного шаблона используется метод getcards

Входные параметры

templateId:
string (24) Идентификатор шаблона

Ответные параметры

cardId:
string (24) Идентификатор карты
cardCode:
string (9) Код карты
cardUrl:
string Ссылка на карту
qrcodeUrl:
sstring Ссылка на QR-код карты
values:
mixed Коллекция значений карты
deviceRegistered:
boolean Наличие зарегистрированных устройств
# Запрос
curl --header 'Authorization: YOU_ACCESS_TOKEN_HERE' --data 'templateId=TEMPLATE_ID' https://getpass.passteam.ru/oapi/v1/getcards
# Ответ
{
	"result": [{
		"cardId": "CARD_ID",
		"cardCode": "CARD_CODE",
		"cardUrl": "CARD_URL",
		"qrcodeUrl": "QRCODE_URL",
		"values": {
			FIELD_NAME1: FIELD_VALUE1,
			FIELD_NAME2: FIELD_VALUE2,
			...
		}
	}, ...],
	"message": "OK",
	"code": 200,
	"error": false
}	

Обновление карт

Для обновления информации на картах используется метод updatecards. Изменяемые поля задаются в конструкторе шаблона, во вкладке API. Обновляемое поле не будет изменено, если в настройках телефона отключено автообновление карты.

Входные параметры

templateId:
string (24) Идентификатор шаблона
cards:
array Массив карт со значениями
cards[n].cardId:
string (24) Идентификатор карты
cards[n].values:
array/mixed Массив значений карты
cards[n].expirationDate:
string Срок действия карты в формате дд.мм.гггг чч:мм
cards[n].voided:
int Деактивация карты 1 или 0
cards[n].logo:
string id изображения, который был задан при редактировании дизайна Шаблона
cards[n].icon:
strig id изображения, который был задан при редактировании дизайна Шаблона
cards[n].strip:
string id изображения, который был задан при редактировании дизайна Шаблона

Ответные параметры

Возвращает значение типа boolean

# Запрос
curl --header 'Authorization: YOU_ACCESS_TOKEN_HERE' --data 'templateId=TEMPLATE_ID&cards[0][cardId]=CARD_ID&cards[0][values][FIELD_NAME1]=FIELD_VALUE1&cards[0][values][FIELD_NAME2]=FIELD_VALUE2' https://getpass.passteam.ru/oapi/v1/updatecards
# Ответ
{
	"result": true,
	"message": "OK",
	"code": 200,
	"error": false
}	

Отправка уведомления

Вы можете отправить push-уведомление на все карты. После отправки push-уведомления, на заблокированном экране устройства, на котором установлена электронная карта, появится сообщение с текстом уведомления (задается в конструкторе шаблона) и текстом, который вы отправили. Значение изменяемого поля также заменится на текст, который вы отправили. Для отправки уведомлений используется метод sendpush

Входные параметры

templateId:
string (24) Идентификатор шаблона
recipients:
array Получатели уведомления (массив идентификаторов карт cardId)
fields:
mixed Массив обновляемых полей (ключ: значение)
now:
boolean Флаг мгновенной отправки
date:
string (16) Дата отправки в формате (дд-мм-гггг чч:мм) Обязателен при now===FALSE

Ответные параметры

Возвращает значение типа boolean

# Запрос
curl --header 'Authorization: YOU_ACCESS_TOKEN_HERE' --data 'templateId=TEMPLATE_ID&recipients[0]=CARD_ID&fields[%FIELD_NAME%]=NEW_VALUE&now=false&date=DATE' https://getpass.passteam.ru/oapi/v1/sendpush
# Ответ
{
	"result": true,
	"message": "OK",
	"code": 200,
	"error": false
}	

Удаление карт

При удалении карты, карта больше не будет отображаться в базе данных в личном кабинете, при этом электронная карта не удаляется с устройства, на которое она была установлена. После удаления карты, её не возможно будет обновить, отравить уведомления или изменить информацию на карте. Для удаления карты используется метод deletecard

Входные параметры

templateId:
string (24) Идентификатор шаблона
cardCode:
string (9) Девятизначный код карты с ведущими нулями

Ответные параметры

Возвращает значение типа boolean

# Запрос
curl --header 'Authorization: YOU_ACCESS_TOKEN_HERE' --data 'templateId=TEMPLATE_ID&cardCode=CARD_CODE' https://getpass.passteam.ru/oapi/v1/deletecard
# Ответ
{
	"result": true,
	"message": "OK",
	"code": 200,
	"error": false
}	

Распространение карт

Для распространения ссылок на карты с помощью SMS и Email используется метод distribute. Шаблоны Email и SMS задаются в личном кабинете.

Входные параметры

templateId:
string (24) Идентификатор шаблона
cards[n].cardId:
string (24) Идентификатор карты
cards[n].type:
email/sms Способ отправки ссылки для установки карты

Ответные параметры

Возвращает значение типа boolean

# Запрос
curl --header 'Authorization: YOU_ACCESS_TOKEN_HERE' --data 'templateId=TEMPLATE_ID&cards[0][cardId]=CARD_ID&cards[0][type][0]=email&cards[0][type][1]=sms' https://getpass.passteam.ru/oapi/v1/distribute
# Ответ
{
	"result": true,
	"message": "OK",
	"code": 200,
	"error": false
}	

Обработка ошибок

Если сервер не может обработать запрос, заголовок HTTP ответа будет содержать код ошибки. Кроме того, ответ содержит подробную информацию в формате JSON.

Коды ошибок

Код:
200 Успешный запрос
Код:
400 Ошибка передачи параметров
Код:
401 Ошибка авторизации
Код:
403 Ошибка доступа
Код:
404 Запрошенный ресурс не найден
Код:
409 Попытка дублирования записи
Код:
500, 502, 503, 504 Внутренняя ошибка сервера
# Ответ
{
  "result": true,
  "message": "OK",
  "code": 200,
  "error": false
}