Xsolla-logo

Erfolgreiche Bezahlung der BestellungWebhook POST

Xsolla sendet den Webhook order_paid an die angegebene URL, wenn die folgenden Bedingungen erfüllt sind:

  1. Der Benutzer hat die Bestellung erfolgreich bezahlt.
  2. Xsolla hat eine Antwort über die erfolgreiche Verarbeitung vom Webhook payment erhalten.

Der Webhook order_paid enthält Informationen zu den gekauften Artikeln und Transaktionsdetails.

Der Webhook order_paid wird nicht gesendet, wenn:

  • die Zahlung nicht erfolgreich war, zum Beispiel:
    • die Zahlungsmaske geöffnet wurde, aber der Benutzer die Bestellung nicht bezahlt hat
    • die Zahlungsmaske geöffnet wurde, aber während der Zahlung Fehler auftraten
  • die Antwort über die erfolgreiche Verarbeitung des Webhooks payment nicht eingegangen ist.

Es wird empfohlen, den Webhook order_paid in weniger als drei Sekunden zu verarbeiten.

Die erwarteten Antworten sind im Abschnitt Antworten beschrieben. Sie können andere Antwortcodes verwenden. Abhängig vom Antwortcode und je nachdem, ob die automatische Zahlungserstattung aktiviert ist oder nicht, sieht die Webhook-Verarbeitungslogik aufseiten von Xsolla wie folgt aus:

Antwortcode Automatische Zahlungserstattung ist deaktiviert (standardmäßig) Die automatische Zahlungserstattung ist aktiviert
400, 401, 402, 403, 404, 409, 422, 415 Keine Aktionen Benutzer erhält automatische eine Erstattung
200, 201, 204 Keine Aktionen Keine Aktionen
Anderer Code oder keine Antwort auf Webhook Mehrere Webhooks werden innerhalb eines bestimmten Zeitintervalls gesendet: Zwei Versuche im Abstand von 5 Minuten, sieben Versuche im Abstand von jeweils 15 Minuten, zehn Versuche im Abstand von jeweils 60 Minuten. Mehrere Webhooks werden innerhalb eines bestimmten Zeitintervalls gesendet: Zwei Versuche im Abstand von 5 Minuten, sieben Versuche im Abstand von jeweils 15 Minuten, zehn Versuche im Abstand von jeweils 60 Minuten. Wurden alle Webhooks gesendet, ohne eine erfolgreiche Antwort erhalten zu haben, wird dem Benutzer automatisch eine Erstattung ausgestellt.

Wenden Sie sich bitte an den Account Manager des Projekts oder senden Sie eine E-Mail an am@xsolla.com, um die automatische Erstattung zu aktivieren.

Request
Request Body schema: application/json
notification_type
required
string

Benachrichtigungstyp.

required
Array of objects

Liste der vom Benutzer gekauften Artikel.

Array
sku
required
string

Eindeutige ID des Artikels. Bei Artikeln vom Typ game_key wird ein Wert im Format sku_drm verwendet.

type
required
string

Artikeltyp. Folgende Werte sind möglich: virtual_good, virtual_currency, game_key, bundle. Für Artikel vom Typ bundle, einschließlich virtueller Währungspakete, zeigt das Artikel-Array Folgendes an:

  • Parameter des Bundles oder virtuellen Währungspakets
  • im Bundle enthaltene Artikel oder im Paket enthaltene Währungen
Enum: "virtual_good" "virtual_currency" "game_key" "bundle"
quantity
required
integer

Menge der Gegenstände.

amount
required
string

Gesamtkosten der Artikel basierend auf ihrer Menge. Kann aufgrund von Wechselkursen und Provisionen vom Artikelpreis abweichen.

required
Array of objects

Angewandte Werbeaktion. Falls keine Werbeaktion angewandt wurde, wird ein leeres Array im Parameter übermittelt.

Array
amount_with_discount
string

Gesamtkosten der Gegenstände inklusive Rabatt.

amount_without_discount
string

Gesamtkosten der Gegenstände ohne Rabatt.

sequence
integer

Reihenfolge der angewandten Werbeaktionen.

is_pre_order
required
boolean

Ist true festgelegt, kann der Artikel vorbestellt werden.

is_free
required
boolean

Ist true festgelegt, ist der Artikel kostenlos oder er gehört zu einem Bundle.

is_bonus
required
boolean

Ist true festgelegt, ist der Artikel ein Bonus.

is_bundle_content
required
boolean

Ist true festgelegt, gehört der Artikel zu einem Bundle.

custom_attributes
object <json>

Ein JSON-Objekt mit Artikelattributen und ‑werten.

required
object

Bestellinformationen.

id
required
integer

Eindeutige Kennung der Bestellung des Benutzers aufseiten von Xsolla.

mode
required
string

Zahlungsmodus. default wird bei realen Zahlungen verwendet; sandbox bei Testzahlungen.

Enum: "default" "sandbox"
currency_type
required
string

Zahlungswährungstyp. Bei einer kostenlosen Bestellung ist unknown als Wert angegeben.

Enum: Description
real

bei echter Währung

unknown

bei einer kostenlosen Bestellung

virtual

bei virtueller Währung

currency
required
string

Währung der Bestellung. Bei virtuellen Währungen wird die SKU und bei echten Währungen der aus drei Buchstaben bestehende Code gemäß ISO 4217 genutzt.

amount
required
string

Die Gesamtkosten eines Warenkorbs basierend auf der gewählten Währung.

status
required
string

Bestellstatus.

platform
required
string or null

Zahlungsplattform. Bei über Xsolla abgewickelten Zahlungen wird der Wert xsolla verwendet. Bei anderen Zahlungen wird als Wert der Name der entsprechenden Publishing-Plattform verwendet.

Enum: "xsolla" "playstation_network" "xbox_live" "pc_standalone" "nintendo_shop" "google_play" "app_store_ios" "android_standalone" "ios_standalone" "android_other" "ios_other" "pc_other"
comment
required
string or null

Benutzeranmerkung der Bestellung.

invoice_id
required
string or null

Rechnungs-ID bei Zahlungen mit echter Währung. Bei Zahlungen mit virtueller Währung oder bei kostenlosen Artikeln wird der Wert null genutzt.

required
Array of objects

Angewandte Werbeaktion. Falls keine Werbeaktion angewandt wurde, wird ein leeres Array im Parameter übermittelt.

Array
amount_with_discount
string

Gesamtkosten der Gegenstände inklusive Rabatt.

amount_without_discount
string

Gesamtkosten der Gegenstände ohne Rabatt.

sequence
integer

Reihenfolge der angewandten Werbeaktionen.

Array of objects

Angewandte Gutscheine. Wird der Gutschein nicht angewendet, wird kein Array zurückgegeben.

Array
code
string

Der Code eines angewandten Gutscheins.

external_id
string

Externe ID.

Array of objects

Angewandte Promocodes. Wird der Promocode nicht angewandt, wird kein Array zurückgegeben.

Array
code
string

Der Code eines angewandten Promocodes.

external_id
string

Externe ID.

required
object

Benutzerinformationen.

external_id
required
string

Benutzer-ID.

email
required
string

E-Mail-Adresse des Benutzers.

custom_parameters
object

Zusätzliche Informationen.

Responses
200

Zur Signalisierung einer erfolgreiche Verarbeitung.

400

Im Falle eines Fehlers in den bereitgestellten Daten (z. B. fehlender erforderlicher Parameter, fehlgeschlagene Autorisierung usw.).

Request samples
curl -v 'https://your.hostname/your/uri' \
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Signature d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \
-d '{
    "notification_type": "order_paid",
    "items": [
      {
        "sku": "virtual-good-item_test",
        "type": "virtual_good",
        "is_pre_order": false,
        "quantity": 3,
        "amount": "1000",
        "promotions": [
          {
            "amount_without_discount": "6000",
            "amount_with_discount": "5000",
            "sequence": 1
          },
          {
            "amount_without_discount": "5000",
            "amount_with_discount": "4000",
            "sequence": 2
          }
        ]
        "custom_attributes":
          {
            "purchased": 0,
            "attr": "value"
          },
        "is_free": false,
        "is_bonus": false,
        "is_bundle_content": false
      },
      {
        "sku": "virtual-good-item_test_test_new",
        "type": "bundle",
        "is_pre_order": false,
        "quantity": 1,
        "amount": "1000",
        "promotions": [],
        "is_free": false,
        "is_bonus": false,
        "is_bundle_content": false
      },
      {
        "sku": "gold",
        "type": "virtual_currency",
        "is_pre_order": false,
        "quantity": 1500,
        "amount": "[null]",
        "promotions": [],
        "is_free": true,
        "is_bonus": false,
        "is_bundle_content": true
      }
    ],
    "order": {
      "id": 1,
      "mode": "default",
      "currency_type": "virtual",
      "currency": "sku_currency",
      "amount": "2000",
      "status": "paid",
      "platform": "xsolla",
      "comment": null,
      "invoice_id": "1",
      "promotions": [
        {
          "amount_without_discount": "4000",
          "amount_with_discount": "2000",
          "sequence": 1
        }
      ],
      "promocodes": [
        {
          "code": "promocode_some_code",
          "external_id": "promocode_sku"
        }
      ],
      "coupons": [
        {
          "code": "WINTER2021",
          "external_id": "coupon_sku"
        }
      ]
    },
    "user": {
      "external_id": "id_xsolla_login_1",
      "email": "gc_user@xsolla.com"
    }

}'