Перейти к содержанию

Google Wallet API

Google Wallet API позволяет программно создавать, обновлять, получать списки и управлять картами Google Wallet. Он поддерживает те же операции, что и конструктор карт в Панели управления.

Используйте его для выпуска карт лояльности, специальных предложений, подарочных карт, билетов на мероприятия, посадочных талонов на самолет, билетов на общественный транспорт и универсальных карт, а также для отправки обновлений в реальном времени на карты, уже сохраненные на устройствах ваших пользователей.

Базовый URL

Anchor link to
https://apple-passkit.svc-nue.pushwoosh.com

Все эндпоинты обслуживаются по HTTPS. Запросы и ответы используют application/json, если не указано иное.

Аутентификация

Anchor link to

Каждый запрос должен включать заголовок Authorization с вашим токеном доступа к Pushwoosh API:

Authorization: Token <api-token>

Аккаунт, которому принадлежит токен, должен владеть приложением, на которое ссылается applicationCode. Запрос для приложения, принадлежащего другому аккаунту, вернет 403 Forbidden.

Соглашения

Anchor link to
  • Именование полей: Поля JSON используют lowerCamelCase (например, serialNumber, hexBackgroundColor, logoUrl).
  • Незаполненные поля: Ответы включают все поля, даже если они пустые или имеют нулевые значения.
  • Идентификация: serialNumber всегда присваивается сервером при создании карты. Любое значение, которое вы отправляете при создании, игнорируется. Полный идентификатор объекта Google Wallet — {issuerId}.{serialNumber}.
  • Изображения: logoUrl и heroImageUrl — это публичные HTTPS URL-адреса изображений, которые загружает Google, а не загруженные файлы.
  • Стиль карты: Для карты должен быть установлен ровно один объект стиля (generic, offer, loyalty, eventTicket, giftCard, flight или transit). Стиль не может быть изменен после создания.

Ответы об ошибках

Anchor link to
Статус HTTPЗначение
400 Bad RequestНеверный аргумент — обязательное поле отсутствует или имеет неверный формат.
401 UnauthorizedОтсутствует или недействителен заголовок Authorization.
403 ForbiddenПриложение не принадлежит аккаунту вызывающей стороны.
404 Not FoundКарта, шаблон или приложение не найдены.
503 Service UnavailableСервис перегружен или временно недоступен.

Эндпоинты

Anchor link to
МетодПутьОписание
POST/api/google/pass/validateПроверить конфигурацию карты
POST/api/google/pass/createСоздать новый объект карты и получить ссылку для сохранения
POST/api/google/pass/update/{serialNumber}Обновить существующую карту; Google доставит изменение
GET/api/google/pass/{applicationCode}/{serialNumber}/save-linkПолучить ссылку для сохранения “Добавить в Google Wallet”
GET/api/google/pass/{applicationCode}/{serialNumber}Получить одну карту
GET/api/google/passesПолучить список всех карт для приложения
POST/api/google/pass/{applicationCode}/{serialNumber}/stateАктивировать или аннулировать карту
DELETE/api/google/pass/{applicationCode}/{serialNumber}Удалить карту
GET/api/google/configПолучить конфигурацию Google Wallet для приложения
GET/api/google/templatesПолучить список доступных шаблонов карт
GET/api/google/templates/{filename}Получить один шаблон

Создать карту

Anchor link to

Создает класс и объект карты в Google Wallet, затем возвращает присвоенный сервером серийный номер, полный идентификатор объекта и ссылку для сохранения “Добавить в Google Wallet”.

POST /api/google/pass/create

Тело запроса

Anchor link to
ПараметрТипОбязательныйОписание
passobjectДаОбъект карты, описывающий карту. Должен быть установлен ровно один стиль.
userIdstringДаUser ID в Pushwoosh, которому выдается карта.
applicationCodestringДаКод приложения Pushwoosh.
Пример запроса
Anchor link to
{
"applicationCode": "XXXXX-XXXXX",
"userId": "user-123",
"pass": {
"hexBackgroundColor": "#3c414c",
"logoUrl": "https://cdn.acme.com/logo.png",
"loyalty": {
"programName": "Acme Rewards",
"accountName": "Jane Doe",
"accountId": "1234567890",
"pointsLabel": "Points",
"pointsBalance": "1200",
"rewardsTier": "Gold"
},
"barcode": {
"format": "QR_CODE",
"value": "1234567890"
}
}
}

Ответ

Anchor link to
ПолеТипОписание
serialNumberstringУникальный идентификатор созданной карты, присвоенный сервером.
objectIdstringПолный идентификатор объекта Google Wallet: {issuerId}.{serialNumber}.
saveLinkstringСсылка “Добавить в Google Wallet”: https://pay.google.com/gp/v/save/{jwt}.
messagestringСообщение о результате.
Пример ответа
Anchor link to
{
"serialNumber": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"objectId": "XXXXXXXXXXXXXXX.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"saveLink": "https://pay.google.com/gp/v/save/{jwt}",
"message": "Pass created successfully"
}

Проверить карту

Anchor link to

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

POST /api/google/pass/validate

Тело запроса

Anchor link to
ПараметрТипОбязательныйОписание
passobjectДаОбъект карты для проверки.

Ответ

Anchor link to
ПолеТипОписание
validbooleanПроходит ли карта проверку.
errorsarray of stringsБлокирующие проблемы, которые необходимо исправить.
warningsarray of stringsНеблокирующие рекомендации.

Обновить карту

Anchor link to

Обновляет объект карты новым содержимым. Затем Google доставляет обновленную версию на каждое устройство, сохранившее карту. Опционально отправляет уведомление на Android с обновлением.

POST /api/google/pass/update/{serialNumber}

Параметры пути

Anchor link to
ПараметрТипОписание
serialNumberstringСерийный номер, возвращенный при создании карты.

Тело запроса

Anchor link to
ПараметрТипОбязательныйОписание
updatesobjectДаОбъект карты с новым содержимым. Стиль не может быть изменен.
applicationCodestringДаКод приложения Pushwoosh.
notifyMessagestringНетЕсли не пусто, отправляет push-уведомление на Android с этим текстом всем, кто сохранил карту. Пустое значение означает тихое обновление.
notifyOnUpdatebooleanНетЗапросить уведомление об обновлении поля. Фактически уведомляют только карты loyalty, eventTicket и flight; другие стили принимают флаг, но никогда не отправляют уведомление. Уведомления срабатывают только в течение 3 часов до соответствующего времени начала, и Google ограничивает их до 3 уведомлений на карту в сутки.

Ответ

Anchor link to
ПолеТипОписание
successbooleanУспешно ли прошло обновление.
messagestringСообщение о результате.

Получить ссылку для сохранения

Anchor link to

Возвращает ссылку “Добавить в Google Wallet” для уже созданной карты. Объект карты должен уже существовать (создан через Создать карту).

GET /api/google/pass/{applicationCode}/{serialNumber}/save-link

Ответ

Anchor link to
ПолеТипОписание
saveLinkstringhttps://pay.google.com/gp/v/save/{jwt}.

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

Anchor link to

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

GET /api/google/pass/{applicationCode}/{serialNumber}

Ответ

Anchor link to

Возвращает { "pass": { ... } }, одну запись карты.

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

Anchor link to

Возвращает постраничный, отсортированный список карт, сохраненных для приложения.

GET /api/google/passes?applicationCode=XXXXX-XXXXX&page=0&perPage=20

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

Anchor link to
ПараметрТипОбязательныйОписание
applicationCodestringДаКод приложения Pushwoosh.
orderBystringНетПоле для сортировки: UPDATED (по умолчанию) или CREATED.
orderDirectionstringНетНаправление сортировки: DESC (по умолчанию, сначала новые) или ASC.
pageintegerНетИндекс страницы, начиная с нуля. По умолчанию 0.
perPageintegerНетРазмер страницы. 0 или пропущенное значение использует значение по умолчанию сервера.

Ответ

Anchor link to
ПолеТипОписание
passesarray of objectsТекущая страница записей карт.
pageintegerВозвращенный индекс страницы.
perPageintegerРазмер страницы, использованный для этого ответа.
totalintegerОбщее количество карт для приложения на всех страницах.

Установить состояние карты

Anchor link to

Активирует или аннулирует карту. Аннулированная (неактивная) карта перемещается в раздел Просроченные карты пользователя в Google Wallet; запись сохраняется, чтобы ее можно было повторно активировать.

POST /api/google/pass/{applicationCode}/{serialNumber}/state

Тело запроса

Anchor link to
ПараметрТипОбязательныйОписание
activebooleanДаtrue устанавливает состояние карты в ACTIVE; false аннулирует ее (INACTIVE).

Ответ

Anchor link to

Возвращает пустой объект {} в случае успеха.

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

Anchor link to

Аннулирует карту в Google и удаляет ее сохраненную запись в Pushwoosh.

DELETE /api/google/pass/{applicationCode}/{serialNumber}

Ответ

Anchor link to

Возвращает пустой объект {} в случае успеха.

Получить конфигурацию

Anchor link to

Возвращает состояние конфигурации Google Wallet для приложения.

GET /api/google/config?applicationCode=XXXXX-XXXXX

Ответ

Anchor link to
ПолеТипОписание
hasServiceAccountbooleanНастроен ли ключ сервисного аккаунта.
issuerIdstringНастроенный ID эмитента Google Pay & Wallet Console.
serviceAccountEmailstringclient_email настроенного сервисного аккаунта.

Шаблоны

Anchor link to

Получить список доступных примеров шаблонов карт или получить один из них в виде объекта карты, который можно использовать в качестве отправной точки.

GET /api/google/templates — возвращает { "templates": [ { "filename", "name", "description", "style" } ] }.

GET /api/google/templates/{filename} — возвращает { "template": { ...объект карты... } }.

Справочник по объектам

Anchor link to

Объект карты (Pass object)

Anchor link to
ПолеТипОписание
serialNumberstringПрисваивается сервером при создании; идентифицирует карту.
generic / offer / loyalty / eventTicket / giftCard / flight / transitobjectСтиль карты. Должен быть установлен ровно один. См. объекты стилей ниже.
hexBackgroundColorstringЦвет фона карты, #rrggbb.
logoUrlstringПубличный HTTPS URL изображения логотипа. Обязательно для loyalty и transit.
heroImageUrlstringПубличный HTTPS URL широкого баннерного изображения.
barcodeobjectШтрих-код, отображаемый на карте.
textModulesarrayТекстовые модули, отображаемые в детальном представлении.
linksarrayМодули ссылок, отображаемые в детальном представлении.
expirationTimestringВремя в формате ISO 8601, когда Google автоматически делает карту просроченной. Пустое значение означает отсутствие срока действия.
appLinkobjectСсылка на приложение: кнопка призыва к действию на лицевой стороне карты.
locationsarrayМестоположения, которые вызывают уведомление по геозоне (максимум 10).
holdersPolicystringКто может сохранить карту: ONE_USER_ALL_DEVICES (по умолчанию), ONE_USER_ONE_DEVICE или MULTIPLE_HOLDERS.

Объект Generic

Anchor link to
ПолеТипОписание
cardTitlestringОбязательно. Название эмитента/программы в верхней части карты.
headerstringОбязательно. Основной заголовок карты.
subheaderstringВторостепенный заголовок.
cardFieldsarrayДо 6 текстовых модулей, закрепленных на лицевой стороне (до 3 рядов по 2).

Объект Offer

Anchor link to
ПолеТипОписание
titlestringОбязательно. Например, Скидка 20% на все.
providerstringОбязательно. Название продавца.
detailsstringДетали предложения.
finePrintstringУсловия и положения.
redemptionChannelstringONLINE, INSTORE, BOTH (по умолчанию) или TEMPORARY_PRICE_REDUCTION.
issuerNamestringОтображается на поверхностях Google “выпущено”; по умолчанию используется provider.

Объект Loyalty

Anchor link to
ПолеТипОписание
programNamestringОбязательно. Требует logoUrl на карте.
accountNamestringИмя участника, отображаемое на карте.
accountIdstringID участника, отображаемый на карте.
pointsLabelstringНапример, Баллы. Отображается только с балансом.
pointsBalancestringБаланс баллов.
rewardsTierstringНапример, Золотой.
rewardsTierLabelstringМетка рядом с уровнем; по умолчанию Уровень.
issuerNamestringПо умолчанию используется programName.

Объект Event ticket

Anchor link to
ПолеТипОписание
eventNamestringОбязательно.
venueName / venueAddressstringДетали места проведения.
startDateTime / endDateTimestringISO 8601 со смещением (например, 2026-07-01T19:30:00+02:00).
ticketHolderName / ticketNumber / ticketTypestringДетали о владельце и билете.
section / row / seat / gatestringДетали о месте.
issuerNamestringПо умолчанию используется eventName.

Объект Gift card

Anchor link to
ПолеТипОписание
merchantNamestringОбязательно.
cardNumberstringОбязательно.
pinstringPIN-код карты.
balancestringДесятичная сумма, например 25.00. Требует balanceCurrency.
balanceCurrencystringКод валюты ISO 4217, например USD.
issuerNamestringПо умолчанию используется merchantName.

Объект Flight

Anchor link to
ПолеТипОписание
carrierIataCodestringОбязательно. 2-буквенный код IATA, например LX.
airlineNamestringОтображаемое название авиакомпании.
flightNumberstringОбязательно. Только цифры, например 113.
originAirportCode / destinationAirportCodestringОбязательно. 3-буквенные коды IATA.
originTerminal / originGate / destinationTerminalstringДетали о терминале и выходе на посадку.
departureDateTimestringОбязательно. Местное время аэропорта вылета, ISO 8601 без смещения (например, 2026-09-01T06:30:00).
boardingTime / arrivalDateTimestringТот же локальный формат. arrivalDateTime — местное время пункта назначения.
passengerNamestringОбязательно.
confirmationCode / seatNumber / seatClass / boardingGroupstringДетали о пассажире.
issuerNamestringПо умолчанию используется airlineName, затем код перевозчика.

Объект Transit

Anchor link to
ПолеТипОписание
transitTypestringОбязательно. BUS, RAIL, TRAM, FERRY или OTHER.
transitOperatorNamestringОбязательно. Требует logoUrl на карте.
passengerNamestringОбязательно.
ticketNumberstringНомер билета.
tripTypestringONE_WAY (по умолчанию) или ROUND_TRIP.
legsarrayОдин или несколько отрезков пути в порядке следования.
issuerNamestringПо умолчанию используется transitOperatorName.

Объект Transit leg

Anchor link to
ПолеТипОписание
originName / destinationNamestringОбязательно.
departureDateTime / arrivalDateTimestringISO 8601; смещение необязательно (местное время, если опущено).
platform / coach / seatstringДетали о посадке.
fareNamestringНапример, Anytime Single.

Объект Barcode

Anchor link to
ПолеТипОписание
formatstringQR_CODE, PDF_417, AZTEC, CODE_128, EAN_13 и другие типы штрих-кодов Google Wallet.
valuestringДанные, закодированные в штрих-коде.
altTextstringТекст, отображаемый под штрих-кодом.

Объект Text module

Anchor link to
ПолеТипОписание
idstringИдентификатор модуля.
headerstringЗаголовок модуля.
bodystringТекст модуля.
Anchor link to
ПолеТипОписание
uristringURL внешней ссылки.
descriptionstringМетка ссылки, отображаемая в детальном представлении.
Anchor link to
ПолеТипОписание
uristringВеб-URL или URI для диплинка.
androidPackageNamestringНеобязательно. Если установлено, открывает приложение на Android.
descriptionstringВнутреннее описание целевого URI (не видимая метка кнопки); по умолчанию используется URI.

Объект Location

Anchor link to
ПолеТипОписание
latitudenumberот -90.0 до +90.0.
longitudenumberот -180.0 до +180.0.

Объект Pass record

Anchor link to

Возвращается эндпоинтами get/list.

ПолеТипОписание
serialNumberstringСерийный номер карты.
objectIdstringПолный идентификатор объекта Google Wallet {issuerId}.{serialNumber}.
cardTitlestringОтображаемый заголовок/название для карты.
headerstringВторостепенный отображаемый заголовок.
userIdstringUser ID в Pushwoosh, которому была выдана карта.
createdAt / updatedAtstringВременные метки создания и последнего обновления.
statestringACTIVE или INACTIVE.
stylestringgeneric, offer, loyalty, eventTicket, giftCard, flight или transit.
passobjectПолный объект карты для редактирования.