Transaction Webhook

Payload shape for transaction webhooks.

Content

KeyTypeDescription
idintInternal transaction ID
uuidstring
  • Public transaction ID
  • 8 - 40 characters long
amountintThe processed amount
referenceIdstringCustom reference
timestringDate and time of the transaction creation in the ISO 8601 format (2025-10-01T09:36:07+00:00)
statusstringStatus Values
langstringISO 639-1 of shopper language
pspstringPayment provider Identifier - column PSP
pspIdintPayment provider Identifier - column ID
modestringTEST or LIVE
typestring
  • Shows which way the transaction was processed
  • One of E-Commerce, POS-Terminal, Tap to Pay
posSerialNumberstring|null

Dependent on the value of type :

  • POS-Terminal : the serial number of the used POS device
  • E-Commerce or Tap to Pay: null
posTerminalNamestring|null

Dependent on the value of type :

  • POS-Terminal or Tap to Pay : the name of the used POS device/Tap to Pay Terminal
  • E-Commerce : null
refundableboolStates if a refund can be performed
partiallyRefundableboolStates if a partial refund can be performed
instanceInstance/pages/5ZWPQzoT7JwbFoyIy19N
metadataMetadata/pages/bkti22TPUx08AP7VsNEM
invoiceInvoice/pages/kiQvogNYjBqOH9n5kdI6
paymentPayment/pages/NeKNefZ9GgrlkvRhR7lA
contactContact|null/pages/GsM9BSCi3Dw4KGhI4WBw
subscriptionSubscription|nullSee Subscription for further information
pageUuidstring|null
  • UUID of the page if present
  • 8 - 40 characters long
feeintTotal fee amount
preAuthorizationIdint
  • If the transaction is a tokenization, its ID is returned
  • If the transaction is a charge of a tokenization, the ID of the tokenization (source) is returned
  • Otherwise, the field is not added to the webhook
originalTransactionIdint
  • Present if this transaction is status refunded or partially-refunded
  • ID of the charged transaction
originalTransactionUuidint
  • Present if this transaction is status refunded or partially-refunded
  • UUID of the charged transaction
  • 8 - 40 characters long
associatedSourceTransactionUuidsarray
  • Only for merchants of marketplaces
  • UUIDs of all associated source transactions
associatedSourceTransactionIdsarray
  • Only for merchants of marketplaces
  • IDs of all associated source transactions
sourceTransactionUuidstring|null
  • Only for merchants of marketplaces
  • UUID of the source transaction, null if there is none
sourceTransactionIdstring|null
  • Only for merchants of marketplaces
  • ID of the source transaction, null if there is none
payoutUuidstring|nullReturns the UUID of the payout if the transaction is part of a payout. Otherwise, null is returned.

Changelog

2025-04-29

The field time is now formatted in the ISO 8601 format. Example: 2025-10-01T09:36:07+00:00 - previously 2025-10-01 09:36:07.

An update to the payment object.

2025-04-08

An update to the payment object.

2025-03-03

There are new fields regarding POS devices.

type of type string

  • Shows which way the transaction was processed
  • One of E-Commerce, POS-Terminal, Tap to Pay

posSerialNumber of type string

  • null if type is E-Commerce
  • else, the number of the used POS device

posTerminalName of type string

  • null if type is E-Commerce
  • else, the name of the used POS device
2024-11-12

An update to the payment object.

2024-08-16

There is a new field instance of type object that contains information about the merchant, which contains two fields.

name of type string

  • Name of the account

uuid of type string

  • 8-character-long identifier
2024-06-01

An update to the payment object.

2023-10-20

There is a new field payoutUuid that returns the UUID of the payout if the transaction is part of one. If the transaction is not yet part of a payout, null is returned

2022-11-29

An update to the payment object.

2022-10-04

There are two new fields regarding refunding a transaction.

refundable of type bool

  • States if a refund can be performed

partiallyRefundable of type bool

  • States if a partial refund can be performed
2021-10-12

The field metadata is now returned as an object.

2020-06-10

There is a new field amount of type int.

2019-12-19

Webhooks are now sent for transactions with status refund-pending.

There is an adjustment to the field status. Transactions of status uncaptured are no longer treated as confirmed, but returned as they are.

2019-10-15

There is a new field preAuthorizationId of type int. If the transaction is a tokenization, its ID is returned. If the transaction is a charge of a tokenization, the ID of the tokenization (source) is returned. Otherwise, the field is not added to the webhook.

2019-02-13

There are adjustments to the field status. The exceptional handling of the statuses chargeback, error and partially-refunded is removed. They are returned as they are.

2018-08-07

The first version. Webhooks are not sent for transactions with status refund-pending.

Status Values

StatusDescription
waitingOrder has been placed
confirmedSuccessful payment
cancelledPayment aborted by the customer
declinedFailed 3D secure or declined by the issuer bank
authorizedSuccessful tokenization
reservedSuccessful reservation
refundedFull refund
partially-refundedPartial refund
refund_pendingRefund is being processed
chargebackCardholder returns money
errorAn issue occurred during the payment process
disputedA dispute has been opened for this transaction
expiredPayment aborted due to inactivity

Example

{
  "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
  }
}