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 Vorgänge, 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 applicationCode verweist. 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 sind oder den Wert Null haben.
  • Identität: Die serialNumber wird immer vom Server zugewiesen, wenn ein Pass erstellt wird. Jeder Wert, den Sie beim Erstellen 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 – es sind 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 übermittelt die Änderung
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 entwerten
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 Pass-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. Es muss genau ein Stil festgelegt werden.
userIdstringJaDie Pushwoosh User ID, für die der Pass ausgestellt wird.
applicationCodestringJaDer Pushwoosh-Anwendungscode.
Anfragebeispiel
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.
Antwortbeispiel
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 sie 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 übermittelt dann die aktualisierte Version an jedes Gerät, das den Pass gespeichert hat. Optional wird eine Android-Benachrichtigung mit dem Update gesendet.

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 beschränkt sie auf 3 Benachrichtigungen pro Pass pro 24 Stunden.
FeldTypBeschreibung
successbooleanOb das Update 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 Serverstandard.
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 entwertet einen Pass. Ein entwerteter (inaktiver) Pass wird in den Bereich Abgelaufene Pässe des Benutzers in Google Wallet verschoben; der Datensatz wird beibehalten, 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 entwertet ihn (INACTIVE).

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

Einen Pass löschen

Anchor link to

Entwertet den Pass in Google 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-Objekt... } } 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. Es muss genau einer festgelegt werden. Siehe die Stilobjekte unten.
hexBackgroundColorstringKartenhintergrundfarbe, #rrggbb.
logoUrlstringÖffentliche HTTPS-URL des Logobildes. Erforderlich für Kundenkarten und Fahrkarten.
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. Ein leerer Wert bedeutet kein Ablaufdatum.
appLinkobjectApp-Link: eine CTA-Schaltfläche 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.

Kundenkartenobjekt

Anchor link to
FeldTypBeschreibung
programNamestringErforderlich. Benötigt logoUrl auf dem Pass.
accountNamestringName des Mitglieds, 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 / gatestringDetails zur Sitzplatzordnung.
issuerNamestringStandard ist eventName.

Geschenkkartenobjekt

Anchor link to
FeldTypBeschreibung
merchantNamestringErforderlich.
cardNumberstringErforderlich.
pinstringKarten-PIN.
balancestringDezimalbetrag, zum Beispiel 25.00. Benötigt 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. Ortszeit des Abflughafens, ISO 8601 ohne Offset (zum Beispiel 2026-09-01T06:30:00).
boardingTime / arrivalDateTimestringGleiches lokales Format. arrivalDateTime ist die Ortszeit am Zielort.
passengerNamestringErforderlich.
confirmationCode / seatNumber / seatClass / boardingGroupstringDetails zum Passagier.
issuerNamestringStandard ist airlineName, dann der Carrier-Code.

Fahrkartenobjekt

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

Fahrtabschnitt-Objekt

Anchor link to
FeldTypBeschreibung
originName / destinationNamestringErforderlich.
departureDateTime / arrivalDateTimestringISO 8601; Offset optional (Ortszeit, wenn weggelassen).
platform / coach / seatstringDetails zum Einstieg.
fareNamestringZum Beispiel Anytime Single.

Barcode-Objekt

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

Textmodul-Objekt

Anchor link to
FeldTypBeschreibung
idstringIdentifikator des Moduls.
headerstringÜberschrift des Moduls.
bodystringText des Moduls.

Linkmodul-Objekt

Anchor link to
FeldTypBeschreibung
uristringURL des externen Links.
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 Schaltflächenbeschriftung); 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
serialNumberstringSeriennummer des Passes.
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.