1.1 status
Проверка приватного ключа и статуса аккаунта.
{
"app_key": "приватный_ключ"
}
{
"app": "account_name",
"balance": 15000.00
}
CARDPR соединяет ваш продукт с Apple Wallet и Google Wallet. Выпускайте карты, обновляйте их и отправляйте push из одного API.
Один API для идентификации, состояния карты, push и автоматизации в Apple Wallet и Google Wallet.
Conceptual call
{
"phone": "+79000000001",
"balance": 1250,
"tier": "Gold"
}
CARDPR обновляет Apple Wallet и Google Wallet, показывает текущий статус, может отправить push, применить сегмент и запустить триггер. Клиент видит это в Wallet.
Подключите этот сервер к AI-клиенту: ChatGPT, Claude, Cursor и другим. Агент сможет найти клиента, обновить карту, создать предложение и отправить push. Приватный ключ на вкладке API в разделе Интеграция.
{
"mcpServers": {
"CARDPR": {
"type": "http",
"url": "https://mcp.cardpr.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_PRIVATE_KEY"
}
}
}
}
Создавайте и обновляйте карты Wallet, когда данные меняются в CRM, и читайте данные из
CARDPR. Передавайте app_key, приватный ключ из раздела Интеграция → API. Для тестов
подойдёт Postman.
Проверка приватного ключа и статуса аккаунта.
{
"app_key": "приватный_ключ"
}
{
"app": "account_name",
"balance": 15000.00
}
Создание или обновление клиента в CARDPR. Ключ: номер телефона в формате E.164. Можно
передавать пользовательские переменные. template_uuid смотрите в адресной
строке шаблона.
{
"app_key": "приватный_ключ",
"name": "имя",
"phone": "мобильный телефон клиента",
"email": "электронная почта",
"surname": "фамилия",
"middlename": "отчество",
"birthday": "дата рождения dd.mm.yyyy",
"discount": "размер скидки в %",
"bonus": "размер бонуса в %",
"balance": "количество бонусов",
"card_track": "...",
"template_uuid": "...",
"customerId": "идентификатор клиента в вашей CRM",
"link": "ссылка на форму выдачи карт",
"sms": "Предлагаем установить карту: %link%"
}
Чтобы отправить персональную ссылку на установку, передайте URL формы в
link. В тексте SMS %link% заменится на эту ссылку.
{
"success": true,
"sms_send": true,
"card": true,
"card_number": "номер созданной карты",
"card_track": "трек созданной карты",
"card_url": "персональная ссылка Apple Wallet",
"card_gpay_url": "персональная ссылка Google Wallet",
"form_url": "персональная ссылка на форму",
"user_hash": "hash для персонализации формы"
}
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"phone": "+79111111111",
"email": "",
"name": "Илья",
"surname": "Орлов",
"middlename": "Андреевич",
"birthday": "11.11.1980",
"discount": 0,
"bonus": 3.50,
"balance": 100,
"link": "https://form.cardpr.com/00000000-0000-0000-0000-000000000000",
"sms": "Ваша карта доступна по ссылке: %link%"
}
Ваша карта доступна по ссылке: https://form.cardpr.com/00000000-0000-0000-0000/?hash=2f10171a33f66f3bc425335690ec880c
Если в шаблоне настроен push на изменение баланса, клиент увидит сообщение на экране блокировки. Чтобы начислить или списать сумму, используйте balance/add и balance/deduct.
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"phone": "+79111111111",
"balance": 120
}
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"phone": "79111111111",
"push": "Ваш заказ готов к выдаче!"
}
Нужно подключённое webpush-приложение из Маркетплейса.
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"phone": "+79111111111",
"send_webpush": "Ваш заказ готов к выдаче!"
}
Получение данных клиента по номеру телефона или номеру карты. Телефон в формате E.164.
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"phone": "",
"card": "",
"invites": true,
"installs": true
}
{
"customer": {
"phone": "+79111111111",
"email": "",
"name": "Илья",
"surname": "Орлов",
"middlename": "Андреевич",
"birthday": "11.11.1980",
"cardNumbers": ["120"],
"cardTracks": [{"card": "120", "track": "78374598987"}],
"cardInstalls": [{"card": "120", "install": true}],
"discount": 4.5,
"bonus": 0,
"balance": 0,
"template_uuid": "...",
"remoteId": "6326",
"invitedBy": "+79000000000",
"invites": ["+79000000011", "+79000000012"]
}
}
Список клиентов по дате регистрации.
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"start_date": "01.01.2020",
"end_date": "31.12.2020 23:59:59",
"installed": true,
"offset": 0
}
installed не указан, метод вернёт всех клиентов.true: клиенты с установленной картой.false: клиенты без установленной карты.offset.
{
"customers": ["+79000000011", "+79000000012"]
}
Создать push-рассылку по всей базе или сегменту. Тип: push или
webpush. Для webpush нужно приложение из Маркетплейса. После создания
отправьте рассылку методом push/send. Для одиночного пуша
используйте user_create_or_update.
segment_uuid в адресной строке сегмента.
{
"app_key": "",
"message": "",
"type": "",
"name": "",
"segment_uuid": ""
}
{
"result": {
"name": "Push#0000",
"uuid": "00000000-0000-0000-0000-000000000000",
"message": "Тестовый push!"
}
}
Выполнить push-рассылку. push_uuid в адресной строке кампании или из ответа
push/create.
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"push_uuid": "00000000-0000-0000-0000-000000000000"
}
Отправить событие по клиенту. Обязательны app_key, event и один
идентификатор клиента: phone, card или remoteId.
Ключ event создаётся в разделе «События» кабинета.
value — необязательная строка до 100 символов. Телефон в формате E.164.
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"phone": "+79111111111",
"event": "site_visit",
"value": "promo"
}
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"card": "1000123456",
"event": "site_visit",
"value": "promo"
}
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"remoteId": "crm-42",
"event": "site_visit",
"value": "promo"
}
{
"success": true
}
Начислить бонусный баланс клиента. Та же операция, что кнопка «Начислить» в карточке
клиента. Обязательны app_key, sum и один идентификатор клиента:
phone, card или remoteId.
sum — положительная сумма, которая прибавляется к текущему балансу.
Для своей базы Passquare меняет баланс сам. Если подключена внешняя CRM, Passquare
отправляет ей хук addBalance, как кнопка «Начислить», и затем
обновляет карту по данным CRM.
Телефон в формате E.164. Если в шаблоне к изменению баланса привязан push, клиент
также увидит сообщение на экране блокировки.
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"phone": "+79111111111",
"sum": 50.00
}
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"card": "100099",
"sum": 50.00
}
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"remoteId": "crm-42",
"sum": 50.00
}
{
"success": true,
"balance": 150.00
}
Списать бонусный баланс клиента. Та же операция, что кнопка «Списать» в карточке
клиента. Обязательны app_key, sum и один идентификатор клиента:
phone, card или remoteId.
sum — положительная сумма, которая вычитается из текущего баланса.
Для своей базы Passquare меняет баланс сам. Если подключена внешняя CRM, Passquare
отправляет ей хук addBalance, как кнопка «Списать», и затем
обновляет карту по данным CRM.
Телефон в формате E.164. Если в шаблоне к изменению баланса привязан push, клиент
также увидит сообщение на экране блокировки.
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"phone": "+79111111111",
"sum": 50.00
}
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"card": "100099",
"sum": 50.00
}
{
"app_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"remoteId": "crm-42",
"sum": 50.00
}
{
"success": true,
"balance": 50.00
}
Когда клиент получает карту Wallet, CARDPR отправляет хук на HTTPS URL из настроек интеграции. Обработайте его и сохраните клиента в своей базе. Если баланс или скидка изменятся у вас, отправьте хук обратно: CARDPR обновит карту и может отправить push.
Авторизация: HTTP Basic или crm_key. Для crm_key укажите его в
поле пароля, логин оставьте пустым. Заголовки: X-organization-id,
X-program-id, X-wallet-id. Можно ограничить доступ по IP:
31.31.207.106 и 89.111.172.125. Для отладки:
webhook.site.
Регистрация карты клиентом. Ищите клиента по телефону (E.164). Если нет, создайте его и
карту, верните customerId. Если есть, обновите, добавьте карту (или
замените, если CRM однокарточная), верните customerId. Номера карт выдаёт
CARDPR; в настройках интеграции укажите старт свободного диапазона.
{
"crm_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"method": "createCustomer",
"customer": {
"name": "Илья",
"surname": "Орлов",
"middlename": "Андреевич",
"email": "",
"phone": "+79111111111",
"birthday": "1980-01-25",
"cardNumbers": ["120"],
"cardTracks": [{"card": "120", "track": "876234876234"}],
"extra": {
"gender": "male",
"promo": "BBBBB"
},
"balance": 300.00,
"bonus": 10.00,
"discount": 25.00,
"promo": "AAAAA",
"user_hash": "bdbb6325684284e5fd92dadba33d1275",
"referCustomerPhone": "+79000000000"
}
}
Обязательный ответ: customerId: уникальный идентификатор клиента в вашей
CRM.
{"customerId": "6d2845ff-0a07-11e7-25df-d8d18565926f"}
{"error": "Detailed error description..."}
Запрос баланса для ручного обновления бонусов и скидки на карте.
{
"crm_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"method": "readBalance",
"customer": {
"phone": "+79111111111",
"cardNumbers": ["120"]
}
}
Верните баланс / бонус / скидку по клиенту, которого определили по телефону и номеру карты.
{
"success": true,
"bonus": 12.5,
"balance": 5,
"discount": 17.88
}
Хук на начисление и списание бонусов.
{
"crm_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"method": "addBalance",
"customer": {
"phone": "+79111111111",
"cardNumbers": ["120"],
"sum": 50.00,
"transactionId": "id/guid",
"lifetime": 14
}
}
Начислите бонусы клиенту по телефону и номеру карты. Для списания хук отправляет
отрицательный sum, например -50.00. Если передан
lifetime, начисление сгорит через это число суток (24ч).
{
"success": true
}
Хук на установку процента бонусности и процента скидки. Это ставки в %, а не баланс бонусов.
{
"crm_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"method": "setPrivileges",
"customer": {
"phone": "+79111111111",
"cardNumbers": ["120"],
"bonus": 10.00,
"discount": 5.00
}
}
Запишите клиенту новые ставки: bonus — процент бонусности,
discount — процент скидки. Хук отправляет только изменившиеся поля: один
bonus, один discount или оба сразу. Поле, которого нет в
запросе, не меняйте.
{
"crm_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"method": "setPrivileges",
"customer": {
"phone": "+79111111111",
"cardNumbers": ["120"],
"bonus": 10.00
}
}
{
"crm_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"method": "setPrivileges",
"customer": {
"phone": "+79111111111",
"cardNumbers": ["120"],
"discount": 5.00
}
}
{
"success": true
}
curl -d '{"app_key":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "phone":"+79000000000", "email":"", "name":"Илья", "surname":"Орлов", "middlename":"Андреевич", "birthday":"03.05.1980", "discount":0, "bonus":5, "balance":200}' -H "Content-Type: application/json" -X POST https://core.cardpr.com/api/v2/crm/user_create_or_update
<?php
$url = 'https://core.cardpr.com/api/v2/crm/user_create_or_update';
$post = [
'app_key' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
'phone' => '+79000000000',
'email' => '',
'name' => 'Илья',
'surname' => 'Орлов',
'middlename' => 'Андреевич',
'birthday' => '03.05.1980',
'discount' => 0,
'bonus' => 4.5,
'balance' => 100
];
$data_string = json_encode($post);
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_TIMEOUT => 30,
CURLOPT_POST => 1,
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_POSTFIELDS => $data_string,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Content-Length: '.strlen($data_string)
]
]);
echo curl_exec($ch);
?>
Free start
Вы сможете создать кабинет, настроить форму выдачи карт, оформить внешний вид ваших карт, выпустить несколько электронных карт и отправить на них push-сообщения.
Создать кабинет