Transaktions-Webhook

Payload-Struktur für Transaktions-Webhooks.

Inhalt

KeyTypeDescription
idintInterne Transaktions-ID
uuidstring
  • Öffentliche Transaktions-ID
  • 8–40 Zeichen lang
amountintVerarbeiteter Betrag
referenceIdstringEigene Referenz
timestringDatum und Uhrzeit der Transaktionserstellung im ISO-8601-Format (2025-10-01T09:36:07+00:00)
statusstringStatuswerte
langstringISO 639-1 der Käufersprache
pspstringZahlungsanbieter-Kennung – Spalte PSP
pspIdintZahlungsanbieter-Kennung – Spalte ID
modestringTEST oder LIVE
typestring
  • Zeigt, wie die Transaktion verarbeitet wurde
  • Einer von E-Commerce, POS-Terminal, Tap to Pay
posSerialNumberstring|null

Abhängig vom Wert von type:

  • POS-Terminal: Seriennummer des verwendeten POS-Geräts
  • E-Commerce oder Tap to Pay: null
posTerminalNamestring|null

Abhängig vom Wert von type:

  • POS-Terminal oder Tap to Pay: Name des verwendeten POS-Geräts/Tap-to-Pay-Terminals
  • E-Commerce: null
refundableboolGibt an, ob eine Rückerstattung möglich ist
partiallyRefundableboolGibt an, ob eine Teilerstattung möglich ist
instanceInstanceInstance
metadataMetadataMetadata
invoiceInvoiceInvoice
paymentPaymentPayment
contactContact|nullContact
subscriptionSubscription|nullSiehe Abonnement-Webhook für weitere Informationen
pageUuidstring|null
  • UUID der Seite, falls vorhanden
  • 8–40 Zeichen lang
feeintGesamtgebühr
preAuthorizationIdint
  • Bei einer Tokenisierungs-Transaktion wird deren ID zurückgegeben
  • Bei einer Belastung einer Tokenisierung wird die ID der Tokenisierung (Quelle) zurückgegeben
  • Andernfalls wird das Feld nicht im Webhook mitgeliefert
originalTransactionIdint
  • Vorhanden, wenn diese Transaktion den Status refunded oder partially-refunded hat
  • ID der belasteten Transaktion
originalTransactionUuidint
  • Vorhanden, wenn diese Transaktion den Status refunded oder partially-refunded hat
  • UUID der belasteten Transaktion
  • 8–40 Zeichen lang
associatedSourceTransactionUuidsarray
  • Nur für Marktplatz-Händler
  • UUIDs aller zugehörigen Quelltransaktionen
associatedSourceTransactionIdsarray
  • Nur für Marktplatz-Händler
  • IDs aller zugehörigen Quelltransaktionen
sourceTransactionUuidstring|null
  • Nur für Marktplatz-Händler
  • UUID der Quelltransaktion, null wenn keine vorhanden
sourceTransactionIdstring|null
  • Nur für Marktplatz-Händler
  • ID der Quelltransaktion, null wenn keine vorhanden
payoutUuidstring|nullUUID der Auszahlung, wenn die Transaktion Teil einer Auszahlung ist. Andernfalls null.

Changelog

2025-04-29

Das Feld time ist jetzt im ISO-8601-Format formatiert. Beispiel: 2025-10-01T09:36:07+00:00 – zuvor 2025-10-01 09:36:07.

Aktualisierung am Payment-Objekt.

2025-04-08

Aktualisierung am Payment-Objekt.

2025-03-03

Neue Felder zu POS-Geräten.

type vom Typ string

  • Zeigt, wie die Transaktion verarbeitet wurde
  • Einer von E-Commerce, POS-Terminal, Tap to Pay

posSerialNumber vom Typ string

  • null, wenn type E-Commerce ist
  • sonst die Nummer des verwendeten POS-Geräts

posTerminalName vom Typ string

  • null, wenn type E-Commerce ist
  • sonst der Name des verwendeten POS-Geräts
2024-11-12

Aktualisierung am Payment-Objekt.

2024-08-16

Neues Feld instance vom Typ object mit Informationen zum Händler, mit zwei Feldern.

name vom Typ string

  • Name des Kontos

uuid vom Typ string

  • 8 Zeichen lange Kennung
2024-06-01

Aktualisierung am Payment-Objekt.

2023-10-20

Neues Feld payoutUuid: UUID der Auszahlung, wenn die Transaktion Teil einer Auszahlung ist. Ist sie noch nicht Teil einer Auszahlung, wird null zurückgegeben.

2022-11-29

Aktualisierung am Payment-Objekt.

2022-10-04

Zwei neue Felder zu Rückerstattungen.

refundable vom Typ bool

  • Gibt an, ob eine Rückerstattung möglich ist

partiallyRefundable vom Typ bool

  • Gibt an, ob eine Teilerstattung möglich ist
2021-10-12

Das Feld metadata wird jetzt als Objekt zurückgegeben.

2020-06-10

Neues Feld amount vom Typ int.

2019-12-19

Webhooks werden jetzt auch für Transaktionen mit Status refund-pending gesendet.

Anpassung am Feld status: Transaktionen mit Status uncaptured werden nicht mehr als confirmed behandelt, sondern unverändert zurückgegeben.

2019-10-15

Neues Feld preAuthorizationId vom Typ int. Bei einer Tokenisierung wird deren ID zurückgegeben. Bei einer Belastung einer Tokenisierung die ID der Tokenisierung (Quelle). Andernfalls fehlt das Feld im Webhook.

2019-02-13

Anpassungen am Feld status: Die Sonderbehandlung der Status chargeback, error und partially-refunded entfällt. Sie werden unverändert zurückgegeben.

2018-08-07

Erste Version. Webhooks werden nicht für Transaktionen mit Status refund-pending gesendet.

Statuswerte

StatusDescription
waitingBestellung wurde aufgegeben
confirmedErfolgreiche Zahlung
cancelledZahlung vom Kunden abgebrochen
declined3-D-Secure fehlgeschlagen oder von der Issuer-Bank abgelehnt
authorizedErfolgreiche Tokenisierung
reservedErfolgreiche Reservierung
refundedVollständige Rückerstattung
partially-refundedTeilerstattung
refund_pendingRückerstattung wird verarbeitet
chargebackKarteninhaber fordert Geld zurück
errorProblem während des Zahlungsprozesses
disputedFür diese Transaktion wurde ein Streitfall eröffnet
expiredZahlung wegen Inaktivität abgebrochen

Beispiel

{
  "transaction": {
    "id": 1234,
    "psp": "Native_PSP",
    "lang": "de",
    "mode": "TEST",
    "time": "2025-10-06 02:34:21",
    "type": "E-Commerce",
    "uuid": "1122aabb",
    "pspId": 44,
    "amount": 1000,
    "status": "confirmed",
    "contact": {
      "id": 1234,
      "uuid": "aabb1122",
      "title": "female",
      "firstname": "Jane",
      "lastname": "Doe",
      "company": "zahls.ch",
      "street": "Burgstrasse 20",
      "zip": "3600",
      "place": "Thun",
      "country": "Switzerland",
      "countryISO": "CH",
      "phone": "0335500010",
      "email": "subscription@test.com",
      "date_of_birth": "01.01.1970",
      "delivery_title": "",
      "delivery_firstname": "",
      "delivery_lastname": "",
      "delivery_company": "",
      "delivery_street": "",
      "delivery_zip": "",
      "delivery_place": "",
      "delivery_country": "",
      "delivery_countryISO": ""
    },
    "invoice": {
      "test": 1,
      "number": "IV_123",
      "currency": "CHF",
      "discount": {
        "code": null,
        "amount": 0,
        "percentage": null
      },
      "products": [
        {
          "sku": null,
          "name": "Product 1",
          "price": 1000,
          "vatRate": "8.1",
          "quantity": 1,
          "description": "sample-email@mail.com"
        }
      ],
      "paymentLink": null,
      "referenceId": "Custom API Reference",
      "custom_fields": [
        {
          "name": "E-Mail",
          "type": "email",
          "value": "sample-email@mail.com"
        }
      ],
      "originalAmount": 1000,
      "refundedAmount": 0,
      "shippingAmount": null,
      "paymentRequestId": null,
      "googleAnalyticProducts": [
        {
          "price": 10,
          "item_id": 112233,
          "quantity": 1,
          "item_name": "Product 1"
        }
      ]
    },
    "payment": {
      "brand": "visa",
      "wallet": null,
      "purchaseOnInvoiceInformation": null
    },
    "instance": {
      "name": "demo",
      "uuid": "aabb1122"
    },
    "metadata": {},
    "pageUuid": "aabb1122",
    "payoutUuid": null,
    "fee": 0,
    "refundable": true,
    "referenceId": "Custom API Reference",
    "subscription": {
      "id": 1234,
      "end": null,
      "uuid": "aabb1122",
      "start": "2026-01-01",
      "status": "active",
      "valid_until": "2026-12-31",
      "paymentInterval": "P1M"
    },
    "posSerialNumber": "",
    "posTerminalName": "",
    "partiallyRefundable": true
  }
}