Gutschein- und Rabattcodes mit der Booking API einlösen

Last verified
Last verified 28. Sept. 2026

Mit dieser Anleitung fügen Sie Ihrem Warenkorb ein Codefeld hinzu. Eine einzige Mutation verarbeitet Gutscheinnummern, Couponcodes und Aktionscodes, sodass Kunden alle im selben Feld eingeben können.

Bevor Sie beginnen

  • Ein Warenkorb und sein Warenkorb-Token. Der Schnellstart für die Booking API zeigt, wie Sie einen anlegen.
  • Ein Code zum Testen, zum Beispiel die Nummer eines Gutscheins mit Restwert.

Code einlösen

Senden Sie den Code genau so, wie der Kunde ihn eingegeben hat, mit dem Warenkorb-Token als id.

graphql
mutation ApplyCode($input: RequestApplyCodeInput!) {
  requestApplyCode(input: $input) {
    request {
      vouchers {
        number
        value
      }
      discounts {
        label
        value
        coupon {
          number
        }
      }
      totalGrossValue
    }
    followUpProducts {
      id
      name
    }
    followUpPriceValue
    errors {
      key
      message
      messageTranslated
    }
  }
}
json
{ "input": { "id": "<cart token>", "code": "3278598764" } }
json
{
  "data": {
    "requestApplyCode": {
      "request": {
        "vouchers": [{ "number": "3278598764", "value": { "amount": -1000, "currency": "EUR" } }],
        "discounts": [],
        "totalGrossValue": { "amount": 1000, "currency": "EUR" }
      },
      "followUpProducts": null,
      "followUpPriceValue": null,
      "errors": null
    }
  }
}

Zeigen Sie das Ergebnis aus dem zurückgegebenen Warenkorb an:

FeldInhalt
vouchersAls Zahlung eingesetzte Gutscheine. value ist negativ, weil er den zu zahlenden Betrag verringert.
discountsRabatte aus Coupons und Aktionen. coupon.number ist der Code, der den Rabatt gewährt hat.
totalVouchersDie Summe aller eingesetzten Gutscheine.
totalDiscountDie Summe aller Rabatte.
totalGrossValueDer Betrag, den der Kunde noch zahlt.

Kann der Code nicht eingelöst werden, bleibt der Warenkorb unverändert und errors nennt den Grund. Zeigen Sie messageTranslated neben dem Codefeld an, zum Beispiel „Dieser Code kann nicht eingelöst werden“. Wie Ihre Anwendung reagiert, entscheiden Sie anhand von message.

Das Einlösen eines Gutscheins reserviert sein Guthaben nicht. Senden Sie jede Code-Mutation in einer eigenen Anfrage und aktualisieren Sie die angezeigten Summen aus dem zurückgegebenen Warenkorb.

Gutschein gegen einen Artikel einlösen

Manche Gutscheine werden gegen einen bestimmten Artikel eingelöst, zum Beispiel eine Führung. Gibt der Kunde einen solchen Gutschein ein, enthält die Antwort einen Fehler mit dem Schlüssel requestItem und listet in followUpProducts die Artikel auf, gegen die der Gutschein eingelöst werden kann.

Diese erste Antwort fragt nur nach der Auswahl: Der Code ist noch nicht eingelöst, und request kann leer sein. Lassen Sie den Kunden einen dieser Artikel wählen und lösen Sie den Code erneut mit dem Artikel als requestItem ein, mit offerableId, offerableType und pricings mit Preisherkunft und Menge. KORONA Event legt den Artikel als neue Position in den Warenkorb und löst den Gutschein dafür ein.

followUpPriceValue ist der Preis, den der Gutschein auf den gewählten Artikel überträgt. KORONA Event setzt ihn beim Hinzufügen des Artikels, senden Sie also keinen eigenen Preis. Einen Gutschein für eine Position, die bereits im Warenkorb liegt, können Sie über die Booking API nicht einlösen.

json
{
  "input": {
    "id": "<cart token>",
    "code": "3278598764",
    "requestItem": {
      "offerableType": "PRODUCT",
      "offerableId": "<product id>",
      "pricings": [{ "quantity": 1, "priceOriginType": "PRODUCT", "priceOriginId": "<product id>" }]
    }
  }
}

Code entfernen

Entfernen Sie einen Gutschein mit seiner number oder einen Coupon mit seiner coupon.number.

graphql
mutation RemoveCode($input: RequestRemoveCodeInput!) {
  requestRemoveCode(input: $input) {
    request {
      vouchers {
        number
      }
    }
    errors {
      key
      message
      messageTranslated
    }
  }
}
json
{ "input": { "id": "<cart token>", "code": "3278598764" } }

Verwandte Artikel

Bereit loszulegen?

Buchen Sie eine kostenlose Demo oder kontaktieren Sie uns — wir freuen uns auf Sie.