API zur Gutscheineinlösung (Redeem) (v2)
Die Vivoldi Coupon Redeem API markiert einen ausgestellten Gutschein als eingelöst.
Die Einlösung kann automatisch per API erfolgen, ohne manuelle Bearbeitung im Dashboard.
Jeder Aufruf reduziert die verbleibenden Nutzungen, und nach Erreichen des Limits wird die weitere Einlösung blockiert.
Diese API ist ab dem Personal-Tarif verfügbar.
/api/coupon/v2/redeem
{
"cpnNo": "ZJLF0399WQBEQZJM",
"onsiteToken": "QsBkV0ryiCkxiV4KUNJBSWQcR8MzSlvez4ntLh2Tt2M",
"userId": "x77hu",
"memo": "IP Address: 210.123.111.222, Request Page: https://example.com/shop/bags/p112233",
"processStoreIdx": 22
}
Request Parameters
- cpnNo string required
- Coupon-Nummer.
- onsiteToken string
-
Kurzlebiges Austausch-Token. v2 akzeptiert das Klartext-Passwort
(
onsitePwd) nicht.
Hat die RessourceonsiteYn = Y, senden Sie das von der Validate-API zurückgegebeneonsiteTokenunverändert.
Idempotency-Keyist bei Anfragen mit Token erforderlich. Ein erneuter Versuch mit demselben Schlüssel gibt das ursprüngliche Ergebnis zurück; dasselbe Token mit einem anderen Schlüssel wird mit400(Fehlercode1228) abgelehnt.
Wurde bei der Prüfung ein verarbeitendes Geschäft angegeben, muss diese Anfrage dasselbe verwenden. - userId string
-
Benutzer-ID.
Identifiziert den Aussteller oder Nutzer des Coupons.
Muss angegeben werden, wenn das Nutzungslimit des Coupons auf2–5gesetzt ist. - memo string
-
Interne Notiz.
Kann verwendet werden, um Benutzer-IP, Einsatzort des Coupons oder andere Informationen zu dokumentieren.
Wenn die Nutzung des Coupons unbegrenzt ist, kann dieses Feld anstelle von userId genutzt werden, um Benutzer zu unterscheiden. - processStoreIdx integer
-
IDX des Geschäfts, in dem diese Anfrage tatsächlich verarbeitet wird. Bei Angabe prüft der Server Organisationszugehörigkeit, Aktivstatus und Berechtigungen, bevor der Wert im Verarbeitungsverlauf gespeichert wird.
Die verarbeitende Filiale wird nicht aus der Anfrage übernommen, sondern vom Server aus diesem Geschäft abgeleitet. Sie unterscheidet sich vom ausgebenden Geschäft (storeIdx).
{
"code": 0,
"message": "",
"result": null
}
Response Parameters
- code integer
- Antwortcode: 0 = Erfolg, andere Werte = Fehler
- message string
- Antwortnachricht. Wenn der Code nicht 0 ist, wird eine Fehlermeldung zurückgegeben.
- result null
Verarbeitendes Geschäft angeben
| Parameter | Bedeutung | Beschreibung |
|---|---|---|
processStoreIdx |
Verarbeitendes Geschäft | Das Geschäft, in dem diese Anfrage tatsächlich verarbeitet wird. Optional. Bei Angabe prüft der Server Organisationszugehörigkeit, Aktivstatus und Berechtigungen, bevor der Wert im Verarbeitungsverlauf gespeichert wird. |
Die verarbeitende Filiale wird nicht aus der Anfrage übernommen. Der Server leitet sie aus dem angegebenen Geschäft ab und speichert sie.
Bei Nutzungsbereich BRANCH wird nur verarbeitet, wenn die Filiale des geprüften Geschäfts der Nutzungsfiliale entspricht
oder Sie sich mit dem Vor-Ort-Passwort dieser Filiale authentifizieren. Ohne beides wird abgelehnt.
Nicht verwendbare Parameter — branchIdx (ausgebende Filiale),
storeIdx (ausgebendes Geschäft), useScope (Nutzungsbereich) und
useBranchIdx (Nutzungsfiliale) sind bereits gespeicherte Ausgaberichtlinien und können über diese API nicht geändert werden.
Bei Angabe wird mit 400 (Fehlercode 1227) abgelehnt.
Idempotency-Key
Um nach einem Netzwerkfehler sicher erneut zu senden, übermitteln Sie im Header Idempotency-Key
einen pro Anfrage eindeutigen Wert. Alternativ können Sie ihn als requestId im Body senden;
werden beide mit unterschiedlichen Werten gesendet, wird die Anfrage abgelehnt.
Zulässig sind 8–64 Zeichen aus Buchstaben, Ziffern und . _ : -.
Wird dieselbe Anfrage mit demselben Key erneut gesendet, wird das ursprüngliche Ergebnis zurückgegeben, ohne erneut zu verarbeiten. Nichts wird doppelt verarbeitet und Webhooks werden nicht erneut gesendet.
Verwenden Sie denselben Key nur für Wiederholungen derselben logischen Operation.
Für eine andere Operation verwenden Sie stets einen neuen Key.
Derselbe Key mit anderem Anfrageinhalt oder für eine andere Operation kann mit 409 abgelehnt werden.
Verwendung mit der Validierungs-API
Da die Coupon Redeem API den Status ändert, wird empfohlen, vor dem Aufruf die Gültigkeit mit der Validierungs-API zu prüfen.
Durch die vorherige Prüfung können unnötige Verarbeitungen für abgelaufene oder bereits eingelöste Gutscheine vermieden werden.
Der Standardablauf ist: Validierung → Einlösung.
Wann diese API verwenden
Verwenden Sie diese API, wenn Sie einen Gutschein nach der Validierung anwenden möchten.
- Markieren eines Gutscheins als eingelöst nach erfolgreicher Zahlung
- Erfassung der Rabattnutzung bei Bestellbestätigung
- Verarbeitung von Vor-Ort- oder Offline-Nutzung
- Statusaktualisierung zur Vermeidung von Mehrfachnutzung
Kurz gesagt: Dies ist der letzte Schritt, in dem der Gutschein tatsächlich verwendet wird.
Ablauf der Gutscheineinlösung
Der Gutschein wird anhand des Codes (cpnNo) als eingelöst markiert.
- Die Nutzung wird sofort reduziert
- Der Gutschein wird in einen nicht wiederverwendbaren Zustand versetzt
- Die Einlösung wird basierend auf Benutzerdaten (userId) protokolliert
- Zusätzliche Informationen können über das Feld
memogespeichert werden
Dies ist nicht nur eine Statusänderung, sondern eine zentrale Transaktion im Zahlungsprozess.
Benutzeridentifikation und Memo-Nutzung
userId dient zur Identifikation des Nutzers, der den Gutschein einlöst.
Bei einer Nutzung von 2–5 Mal ist dieser Wert erforderlich und verhindert doppelte Nutzung durch denselben Benutzer.
Das Feld memo kann interne Informationen wie IP-Adresse, Nutzungsort oder Anfragequelle speichern.
Bei unbegrenzter Nutzung kann es auch als Alternative zu userId verwendet werden.
Token für die Vor-Ort-Verifizierung (onsiteToken)
v2 akzeptiert das Vor-Ort-Passwort (onsitePwd) nicht im Klartext.
Senden Sie das von der Validate-API zurückgegebene onsiteToken unverändert.
Wird onsitePwd allein oder zusammen mit onsiteToken gesendet, wird die Anfrage mit
400 (Fehlercode 1227) abgelehnt.
Idempotency-Key ist für Anfragen mit Token erforderlich.
Ein erneuter Versuch mit demselben Idempotency-Key gibt das ursprüngliche Verarbeitungsergebnis zurück.
Wird dasselbe Token mit einem anderen Idempotency-Key wiederverwendet, wird die Anfrage mit
400 (Fehlercode 1228) abgelehnt.
Das bei der Validierung verwendete Geschäft muss mit dem Geschäft übereinstimmen, in dem die Verarbeitung erfolgt.
Wurde bei der Validierung processStoreIdx angegeben, muss diese Anfrage dasselbe Geschäft verwenden.
Ein ohne Geschäft validiertes Token kann nachträglich keinem Geschäft zugeordnet werden.
Abgelaufene, manipulierte, bereits verwendete oder falsch gebundene Token geben alle 1228 zurück.
Die Ursachen werden bewusst nicht getrennt ausgewiesen, damit Dritte den internen Zustand nicht mithilfe anderer Token ausforschen können.
Für Ressourcen ohne Vor-Ort-Verifizierung (onsiteYn = N) ist kein Token erforderlich.
v1 akzeptiert onsitePwd weiterhin im Klartext.
Anwendungsfälle
- E-Commerce-Integration: API nach Zahlungsabschluss aufrufen, um Gutscheine automatisch einzulösen und Rabatte zu erfassen
- Vor-Ort-Nutzung: Mitarbeiter scannen den QR-Code, erfassen den Code und lösen ihn sofort per API ein
- Nutzungsanalyse: IP und Anfragequelle in
memospeichern, um Missbrauch oder Auffälligkeiten zu erkennen - Mehrfachnutzung kontrollieren: Mit
userIdverhindern, dass ein Benutzer das Limit überschreitet
Nach dem Löschen kann derselbe Code erneut verwendet werden, um einen neuen Gutschein zu erstellen.
Wichtige Hinweise
- Rufen Sie diese API aus Sicherheitsgründen immer nach der Validierung auf.
- Nach der Einlösung kann der Gutschein nicht erneut verwendet werden.
- Bei fehlgeschlagener Zahlung kann eine Rollback-Strategie erforderlich sein.
- Implementieren Sie Mechanismen zur Vermeidung von doppelten Einlösungen bei wiederholten Anfragen.