Zum Inhalt springen

Google Wallet API

Mit der Google Wallet API können Sie Google Wallet-Pässe programmgesteuert erstellen, aktualisieren, auflisten und verwalten. Sie unterstützt dieselben Operationen, die der Pass-Builder im Control Panel durchführt.

Verwenden Sie sie, um Kundenkarten, Angebote, Geschenkkarten, Veranstaltungstickets, Flug-Bordkarten, Fahrkarten und generische Pässe auszustellen und um Live-Updates an Pässe zu senden, die bereits auf den Geräten Ihrer Benutzer gespeichert sind.

https://apple-passkit.svc-nue.pushwoosh.com

Alle Endpunkte werden über HTTPS bereitgestellt. Anfragen und Antworten verwenden application/json, sofern nicht anders angegeben.

Authentifizierung

Anchor link to

Jede Anfrage muss einen Authorization-Header mit Ihrem Pushwoosh API-Zugriffstoken enthalten:

Authorization: Token <api-token>

Das Konto, dem das Token gehört, muss auch Eigentümer der Anwendung sein, auf die sich applicationCode bezieht. Eine Anfrage für eine Anwendung, die zu einem anderen Konto gehört, gibt 403 Forbidden zurück.

Konventionen

Anchor link to
  • Feldnamen: JSON-Felder verwenden lowerCamelCase (zum Beispiel serialNumber, hexBackgroundColor, logoUrl).
  • Nicht ausgefüllte Felder: Antworten enthalten alle Felder, auch wenn sie leer oder null sind.
  • Identität: Die serialNumber wird immer vom Server zugewiesen, wenn ein Pass erstellt wird. Jeder Wert, den Sie bei der Erstellung senden, wird ignoriert. Die vollständige Google Wallet-Objekt-ID lautet {issuerId}.{serialNumber}.
  • Bilder: logoUrl und heroImageUrl sind öffentliche HTTPS-URLs zu Bildern, die Google abruft – keine hochgeladenen Dateien.
  • Pass-Stil: Genau ein Stilobjekt (generic, offer, loyalty, eventTicket, giftCard, flight oder transit) muss für einen Pass festgelegt werden. Der Stil kann nach der Erstellung nicht mehr geändert werden.

Fehlerantworten

Anchor link to
HTTP-StatusBedeutung
400 Bad RequestUngültiges Argument – ein erforderliches Feld fehlt oder ist fehlerhaft.
401 UnauthorizedFehlender oder ungültiger Authorization-Header.
403 ForbiddenDie Anwendung gehört nicht zum Konto des Aufrufers.
404 Not FoundDer Pass, die Vorlage oder die Anwendung wurde nicht gefunden.
503 Service UnavailableDer Dienst ist ausgelastet oder vorübergehend nicht verfügbar.
MethodePfadBeschreibung
POST/api/google/pass/validateEine Pass-Konfiguration validieren
POST/api/google/pass/createEin neues Pass-Objekt erstellen und einen Speicherlink erhalten
POST/api/google/pass/update/{serialNumber}Einen bestehenden Pass aktualisieren; Google liefert die Änderung aus
GET/api/google/pass/{applicationCode}/{serialNumber}/save-linkEinen „Zu Google Wallet hinzufügen“-Speicherlink erhalten
GET/api/google/pass/{applicationCode}/{serialNumber}Einen einzelnen Pass abrufen
GET/api/google/passesAlle Pässe für eine Anwendung auflisten
POST/api/google/pass/{applicationCode}/{serialNumber}/stateEinen Pass aktivieren oder für ungültig erklären
DELETE/api/google/pass/{applicationCode}/{serialNumber}Einen Pass löschen
GET/api/google/configDie Google Wallet-Konfiguration der Anwendung abrufen
GET/api/google/templatesVerfügbare Pass-Vorlagen auflisten
GET/api/google/templates/{filename}Eine einzelne Vorlage abrufen

Einen Pass erstellen

Anchor link to

Erstellt die Pass-Klasse und das Objekt in Google Wallet und gibt dann die vom Server zugewiesene Seriennummer, die vollständige Objekt-ID und einen „Zu Google Wallet hinzufügen“-Speicherlink zurück.

POST /api/google/pass/create

Anfragekörper

Anchor link to
ParameterTypErforderlichBeschreibung
passobjectJaDas Pass-Objekt, das den Pass beschreibt. Genau ein Stil muss festgelegt sein.
userIdstringJaDie Pushwoosh User-ID, für die der Pass ausgestellt wird.
applicationCodestringJaDer Pushwoosh-Anwendungscode.
Beispiel für eine Anfrage
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"
}
}
}
FeldTypBeschreibung
serialNumberstringVom Server zugewiesene eindeutige Identität des erstellten Passes.
objectIdstringVollständige Google Wallet-Objekt-ID: {issuerId}.{serialNumber}.
saveLinkstring„Zu Google Wallet hinzufügen“-Link: https://pay.google.com/gp/v/save/{jwt}.
messagestringErgebnismeldung.
Beispiel für eine Antwort
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"
}

Einen Pass validieren

Anchor link to

Überprüft eine Pass-Konfiguration anhand der Anforderungen von Google, ohne ihn zu erstellen. Nützlich vor dem Aufruf von create.

POST /api/google/pass/validate

Anfragekörper

Anchor link to
ParameterTypErforderlichBeschreibung
passobjectJaDas zu validierende Pass-Objekt.
FeldTypBeschreibung
validbooleanOb der Pass die Validierung besteht.
errorsarray of stringsBlockierende Probleme, die behoben werden müssen.
warningsarray of stringsNicht blockierende Hinweise.

Einen Pass aktualisieren

Anchor link to

Patcht das Pass-Objekt mit neuem Inhalt. Google liefert dann die aktualisierte Version an jedes Gerät, das den Pass gespeichert hat. Sendet optional eine Android-Benachrichtigung mit dem Update.

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

Pfadparameter

Anchor link to
ParameterTypBeschreibung
serialNumberstringDie Seriennummer, die bei der Erstellung des Passes zurückgegeben wurde.

Anfragekörper

Anchor link to
ParameterTypErforderlichBeschreibung
updatesobjectJaDas Pass-Objekt mit dem neuen Inhalt. Der Stil kann nicht geändert werden.
applicationCodestringJaDer Pushwoosh-Anwendungscode.
notifyMessagestringNeinWenn nicht leer, wird eine Android-Benachrichtigung mit diesem Text an alle gesendet, die den Pass gespeichert haben. Ein leerer Wert bedeutet ein stilles Update.
notifyOnUpdatebooleanNeinFordert eine Benachrichtigung über eine Feldaktualisierung an. Nur loyalty-, eventTicket- und flight-Pässe benachrichtigen tatsächlich; andere Stile akzeptieren das Flag, senden aber nie eine Benachrichtigung. Benachrichtigungen werden nur innerhalb von 3 Stunden vor einer relevanten Startzeit ausgelöst, und Google begrenzt sie auf 3 Benachrichtigungen pro Pass pro 24 Stunden.
FeldTypBeschreibung
successbooleanOb die Aktualisierung erfolgreich war.
messagestringErgebnismeldung.
Anchor link to

Gibt einen „Zu Google Wallet hinzufügen“-Speicherlink für einen bereits erstellten Pass zurück. Das Pass-Objekt muss bereits existieren (erstellt über Einen Pass erstellen).

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

FeldTypBeschreibung
saveLinkstringhttps://pay.google.com/gp/v/save/{jwt}.

Einen Pass abrufen

Anchor link to

Gibt einen einzelnen gespeicherten Pass zurück, einschließlich seines vollständigen Pass-Objekts.

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

Gibt { "pass": { ... } } zurück, einen einzelnen Pass-Datensatz.

Pässe auflisten

Anchor link to

Gibt eine paginierte, sortierte Liste der für eine Anwendung gespeicherten Pässe zurück.

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

Abfrageparameter

Anchor link to
ParameterTypErforderlichBeschreibung
applicationCodestringJaDer Pushwoosh-Anwendungscode.
orderBystringNeinSortierfeld: UPDATED (Standard) oder CREATED.
orderDirectionstringNeinSortierrichtung: DESC (Standard, neueste zuerst) oder ASC.
pageintegerNeinNullbasierter Seitenindex. Standard ist 0.
perPageintegerNeinSeitengröße. 0 oder weggelassen verwendet den Server-Standard.
FeldTypBeschreibung
passesarray of objectsDie aktuelle Seite der Pass-Datensätze.
pageintegerDer zurückgegebene Seitenindex.
perPageintegerDie für diese Antwort verwendete Seitengröße.
totalintegerGesamtzahl der Pässe für die Anwendung über alle Seiten hinweg.

Pass-Status festlegen

Anchor link to

Aktiviert oder erklärt einen Pass für ungültig. Ein ungültiger (inaktiver) Pass wird in den Bereich Abgelaufene Pässe des Benutzers in Google Wallet verschoben; der Datensatz wird aufbewahrt, damit er reaktiviert werden kann.

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

Anfragekörper

Anchor link to
ParameterTypErforderlichBeschreibung
activebooleanJatrue setzt den Pass auf ACTIVE; false erklärt ihn für ungültig (INACTIVE).

Gibt bei Erfolg ein leeres Objekt {} zurück.

Einen Pass löschen

Anchor link to

Erklärt den Pass in Google für ungültig und entfernt seinen gespeicherten Datensatz in Pushwoosh.

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

Gibt bei Erfolg ein leeres Objekt {} zurück.

Konfiguration abrufen

Anchor link to

Gibt den Konfigurationsstatus von Google Wallet für eine Anwendung zurück.

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

FeldTypBeschreibung
hasServiceAccountbooleanOb ein Dienstkontoschlüssel konfiguriert ist.
issuerIdstringDie konfigurierte Google Pay & Wallet Console Issuer ID.
serviceAccountEmailstringDie client_email des konfigurierten Dienstkontos.

Listen Sie die verfügbaren Beispiel-Pass-Vorlagen auf oder rufen Sie eine als Pass-Objekt ab, das Sie als Ausgangspunkt verwenden können.

GET /api/google/templates – gibt { "templates": [ { "filename", "name", "description", "style" } ] } zurück.

GET /api/google/templates/{filename} – gibt { "template": { ...pass object... } } zurück.

Objektreferenz

Anchor link to

Pass-Objekt

Anchor link to
FeldTypBeschreibung
serialNumberstringWird vom Server bei der Erstellung zugewiesen; identifiziert den Pass.
generic / offer / loyalty / eventTicket / giftCard / flight / transitobjectDer Pass-Stil. Genau einer muss festgelegt sein. Siehe die Stilobjekte unten.
hexBackgroundColorstringKartenhintergrundfarbe, #rrggbb.
logoUrlstringÖffentliche HTTPS-URL des Logobildes. Erforderlich für Loyalty und Transit.
heroImageUrlstringÖffentliche HTTPS-URL eines breiten Bannerbildes.
barcodeobjectBarcode, der auf dem Pass angezeigt wird.
textModulesarrayTextmodule, die in der Detailansicht angezeigt werden.
linksarrayLinkmodule, die in der Detailansicht angezeigt werden.
expirationTimestringISO 8601-Zeit, zu der Google den Pass automatisch ablaufen lässt. Leer bedeutet kein Ablaufdatum.
appLinkobjectApp-Link: ein CTA-Button auf der Vorderseite des Passes.
locationsarrayStandorte, die eine Geofence-Benachrichtigung auslösen (max. 10).
holdersPolicystringWer den Pass speichern darf: ONE_USER_ALL_DEVICES (Standard), ONE_USER_ONE_DEVICE oder MULTIPLE_HOLDERS.

Generisches Objekt

Anchor link to
FeldTypBeschreibung
cardTitlestringErforderlich. Der Name des Ausstellers/Programms oben auf der Karte.
headerstringErforderlich. Der Haupttitel der Karte.
subheaderstringSekundärer Titel.
cardFieldsarrayBis zu 6 Textmodule, die auf der Vorderseite angeheftet sind (bis zu 3 Reihen mit je 2).

Angebotsobjekt

Anchor link to
FeldTypBeschreibung
titlestringErforderlich. Zum Beispiel 20% auf alles.
providerstringErforderlich. Der Name des Händlers.
detailsstringAngebotsdetails.
finePrintstringAllgemeine Geschäftsbedingungen.
redemptionChannelstringONLINE, INSTORE, BOTH (Standard) oder TEMPORARY_PRICE_REDUCTION.
issuerNamestringWird auf den „ausgestellt von“-Oberflächen von Google angezeigt; Standard ist provider.

Loyalty-Objekt

Anchor link to
FeldTypBeschreibung
programNamestringErforderlich. Erfordert logoUrl auf dem Pass.
accountNamestringMitgliedsname, der auf der Karte angezeigt wird.
accountIdstringMitglieds-ID, die auf der Karte angezeigt wird.
pointsLabelstringZum Beispiel Punkte. Wird nur mit einem Guthaben angezeigt.
pointsBalancestringDas Punktguthaben.
rewardsTierstringZum Beispiel Gold.
rewardsTierLabelstringBezeichnung neben der Stufe; Standard ist Stufe.
issuerNamestringStandard ist programName.

Veranstaltungsticket-Objekt

Anchor link to
FeldTypBeschreibung
eventNamestringErforderlich.
venueName / venueAddressstringDetails zum Veranstaltungsort.
startDateTime / endDateTimestringISO 8601 mit Offset (zum Beispiel 2026-07-01T19:30:00+02:00).
ticketHolderName / ticketNumber / ticketTypestringDetails zum Inhaber und Ticket.
section / row / seat / gatestringSitzplatzdetails.
issuerNamestringStandard ist eventName.

Geschenkkartenobjekt

Anchor link to
FeldTypBeschreibung
merchantNamestringErforderlich.
cardNumberstringErforderlich.
pinstringKarten-PIN.
balancestringDezimalbetrag, zum Beispiel 25.00. Erfordert balanceCurrency.
balanceCurrencystringISO 4217 Währungscode, zum Beispiel USD.
issuerNamestringStandard ist merchantName.

Flugobjekt

Anchor link to
FeldTypBeschreibung
carrierIataCodestringErforderlich. 2-stelliger IATA-Code, zum Beispiel LX.
airlineNamestringAnzeigename der Fluggesellschaft.
flightNumberstringErforderlich. Nur Ziffern, zum Beispiel 113.
originAirportCode / destinationAirportCodestringErforderlich. 3-stellige IATA-Codes.
originTerminal / originGate / destinationTerminalstringDetails zu Terminal und Gate.
departureDateTimestringErforderlich. Lokale Zeit des Abflughafens, ISO 8601 ohne Offset (zum Beispiel 2026-09-01T06:30:00).
boardingTime / arrivalDateTimestringGleiches lokales Format. arrivalDateTime ist die lokale Zeit am Zielort.
passengerNamestringErforderlich.
confirmationCode / seatNumber / seatClass / boardingGroupstringPassagierdetails.
issuerNamestringStandard ist airlineName, dann der Carrier-Code.

Transit-Objekt

Anchor link to
FeldTypBeschreibung
transitTypestringErforderlich. BUS, RAIL, TRAM, FERRY oder OTHER.
transitOperatorNamestringErforderlich. Erfordert logoUrl auf dem Pass.
passengerNamestringErforderlich.
ticketNumberstringTicketnummer.
tripTypestringONE_WAY (Standard) oder ROUND_TRIP.
legsarrayEine oder mehrere Transit-Etappen in der Reihenfolge der Reise.
issuerNamestringStandard ist transitOperatorName.

Transit-Etappen-Objekt

Anchor link to
FeldTypBeschreibung
originName / destinationNamestringErforderlich.
departureDateTime / arrivalDateTimestringISO 8601; Offset optional (lokale Zeit, wenn weggelassen).
platform / coach / seatstringEinstiegsdetails.
fareNamestringZum Beispiel Anytime Single.

Barcode-Objekt

Anchor link to
FeldTypBeschreibung
formatstringQR_CODE, PDF_417, AZTEC, CODE_128, EAN_13 und andere Google Wallet-Barcode-Typen.
valuestringIm Barcode kodierte Daten.
altTextstringText, der unter dem Barcode angezeigt wird.

Text-Modul-Objekt

Anchor link to
FeldTypBeschreibung
idstringBezeichner des Moduls.
headerstringÜberschrift des Moduls.
bodystringText des Moduls.
Anchor link to
FeldTypBeschreibung
uristringExterne Link-URL.
descriptionstringLink-Bezeichnung, die in der Detailansicht angezeigt wird.
Anchor link to
FeldTypBeschreibung
uristringWeb-URL oder Deep-Link-Ziel-URI.
androidPackageNamestringOptional. Wenn festgelegt, wird die Android-App geöffnet.
descriptionstringInterne Beschreibung der Ziel-URI (keine sichtbare Button-Bezeichnung); Standard ist die URI.

Standort-Objekt

Anchor link to
FeldTypBeschreibung
latitudenumber-90.0 bis +90.0.
longitudenumber-180.0 bis +180.0.

Pass-Datensatz-Objekt

Anchor link to

Wird von list/get-Endpunkten zurückgegeben.

FeldTypBeschreibung
serialNumberstringPass-Seriennummer.
objectIdstringVollständige Google Wallet-Objekt-ID {issuerId}.{serialNumber}.
cardTitlestringAnzeigetitel/Überschrift für den Pass.
headerstringSekundärer Anzeigetitel.
userIdstringPushwoosh User-ID, für die der Pass ausgestellt wurde.
createdAt / updatedAtstringZeitstempel der Erstellung und der letzten Aktualisierung.
statestringACTIVE oder INACTIVE.
stylestringgeneric, offer, loyalty, eventTicket, giftCard, flight oder transit.
passobjectDas vollständige Pass-Objekt zur Bearbeitung.