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

Google Wallet API

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

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

Базовый URL

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

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

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

Anchor link to

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

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Настроенный Issuer 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 изображения логотипа. Обязательно для карт лояльности и проездных.
heroImageUrlstringПубличный HTTPS URL широкого баннерного изображения.
barcodeobjectОбъект штрих-кода, отображаемый на карте.
textModulesarrayТекстовые модули, отображаемые в детальном представлении.
linksarrayМодули ссылок, отображаемые в детальном представлении.
expirationTimestringВремя в формате ISO 8601, когда Google автоматически аннулирует карту. Пустое значение означает отсутствие срока действия.
appLinkobjectСсылка на приложение: кнопка CTA на лицевой стороне карты.
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 object)

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

Объект штрих-кода (Barcode object)

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

Объект текстового модуля (Text module object)

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

Объект местоположения (Location object)

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

Объект записи карты (Pass record object)

Anchor link to

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

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