Payloads - Beispiele

Prev Next

Die folgenden Callbacks werden von Frisbii Media ausgelöst:

Callback Typ

Entity Typ

Entity

Beschreibung

CREATION

APP_STORE_ORDER

AppStoreOrder

Erstellen oder Aktualisieren einer bestehenden Bestellung über einen App-Store (Apple oder Google)

CHANGE

APP_STORE_SUBSCRIPTION

AppStoreSubscription

Gesendet beim Aktivieren oder Deaktivieren des App-Store-Abonnements

CREATION

APP_STORE_SUBSCRIPTION

AppStoreSubscription

Gesendet bei der Erstellung eines App-Store-Abonnements

CHANGE

CUSTOMER

Customer

Gesendet bei der Änderung von kundenbezogenen Daten - zum Beispiel Benutzername, Passwort, E-Mail, Name, Anrede, Status oder andere Daten oder Token-Verifizierung

CREATION

CUSTOMER

Customer

Gesendet bei der Kundenerstellung oder Registrierung

DELETION

CUSTOMER

-

Benachrichtigt über Kundenlöschung

CHANGE

CUSTOMER_OPT_IN

OptIns

Gesendet bei der Erstellung oder Aktualisierung des Kundenoptins

PAYMENT_FAILED

FAILED_PAYMENT

FailedPaymentNotification

Gesendet im Falle einer fehlgeschlagenen Zahlung

CHANGE

INVOICE

Invoice

Gesendet im Falle einer Rechnungsänderung - Stornierung, Korrektur, Statusänderung

CREATION

INVOICE

Invoice

Gesendet bei der Rechnungserstellung

CREATION

INVOICE_CANCELLATION

Invoice

Gesendet bei Rechnungsstornierung

CREATION

INVOICE_CORRECTION

Invoice

Gesendet bei Rechnungskorrektur

CANCELLATION

MULTIUSER_SUBSCRIPTION

MultiuserSubscription

Gesendet bei Kündigung eines Multi-User-Abonnements

CREATION

MULTIUSER_SUBSCRIPTION

MultiuserSubscription

Gesendet bei Erstellung eines Multi-User-Abonnements

UNDO_CANCELLATION

MULTIUSER_SUBSCRIPTION

MultiuserSubscription

Gesendet bei Kündigungsrücknahme eines Multi-User-Abonnements

CREATION

ORDER

Order

Gesendet bei Bestellung

CONDITIONS_FULFILLED

PURCHASED_ADDON

PurchasedAddon

Gesendet bei der Bestellung, wenn es gekaufte Add-ons gibt

CANCELLATION

SUBSCRIPTION

Subscription

Gesendet, wenn das Abonnement gekündigt wird

CHANGE

SUBSCRIPTION

Subscription

Gesendet, wenn das Abonnement geändert wird

CREATION

SUBSCRIPTION

Subscription

Gesendet bei der Erstellung des Abonnements

ENDED

SUBSCRIPTION

Subscription

Gesendet, wenn das Abonnement endet

UNDO_CANCELLATION

SUBSCRIPTION

Subscription

Gesendet bei Kündigungsrücknahme

CREATION

CALLBACK_RENEWAL

ApiAccessTokenCallback

Gesendet, wenn das API-Zugangstoken erneuert wurde

💡 Alle Schemas befinden sich im angehängten Dokument.

Hinweis: Die folgenden Beispiele sollen einen exemplarischen Eindruck von den zu erwartenden Daten liefern. Der Umfang der Daten kann allerdings variieren. Vor der produktiven Inbetriebnahme sollten die Callbacks auf dem Stage-System geprüft werden.

Allgemeiner Aufbau eines Callbacks:

{
  „entityType“: „CUSTOMER“, -> die Entität, für die der Callback erstellt wurde (Kunde/Rechnung/Abonnement/etc.)
  „callbackType“: „CREATION“, -> der entsprechende Callback-Typ (erstellen/ändern/löschen/etc.) „entityId“: „29", - entityID entspricht der Kundennummer/Rechnungsnummer/Abonummer/etc., abhängig vom EntityType.)
  „entityId“: „29", -> entityID entspricht der Kundennummer/Rechnungsnummer/Abonummer/etc., abhängig vom EntityType
  „entity“: {-> die Daten der Entität gemäß der API-Dokumentation
     xxxx
 }
}

Kunde erstellen

{
  "entityType": "CUSTOMER",
  "callbackType": "CREATION",
  "entityId": "29",
  "entity": {
    "ageVerificationPinEnabled": false,
    "birthday": null,
    "changedBy": "10001",
    "changedByType": "MERCHANT",
    "changedDate": "2024-08-27T11:49:41.389622Z",
    "createdBy": "10001",
    "createdByType": "MERCHANT",
    "createdDate": "2024-08-27T11:49:41.389622Z",
    "customerId": "29",
    "email": "plenigo+callback@plenigo.com",
    "externalSystemId": "",
    "firstName": "Test",
    "invoiceEmail": "",
    "language": "de",
    "lastName": "",
    "miscellaneousData": {},
    "mobileNumber": "",
    "registrationDate": "2024-08-27T11:49:41.389622Z",
    "registrationSource": "Supporter",
    "salutation": "",
    "ssoLoginProviders": null,
    "status": "ACTIVATED",
    "twoFactorEnabled": false,
    "username": "Test"
  }
}

Rechnung erstellen

{
  "entityType": "INVOICE",
  "callbackType": "CREATION",
  "entityId": "223",
  "entity": {
    "accumulatedPrice": 0.5,
    "analogInvoice": false,
    "cancellationInvoiceId": 0,
    "changedDate": "2024-08-28T00:08:51.914437Z",
    "currency": "EUR",
    "customerEmail": "plenigo@plenigo.com",
    "invoiceAddress": {
      "businessAddress": false,
      "city": "Kempten",
      "country": "DE",
      "firstName": "Test",
      "lastName": "User",
      "postbox": "48576525",
      "postcode": "87435",
      "salutation": "NONE",
      "type": "INVOICE"
    },
    "invoiceCustomerId": "23",
    "invoiceDate": "2024-08-28T00:08:51.868510Z",
    "invoiceId": 223,
    "items": [
      {
        "changedDate": "2024-08-28T00:08:51.916800Z",
        "createdDate": "2024-08-28T00:08:51.916800Z",
        "deliveryAddress": {
          "businessAddress": false,
          "country": "DE",
          "salutation": "NONE",
          "type": "DELIVERY"
        },
        "deliveryCustomerId": "23",
        "discountPercentage": 0,
        "periodEndDate": "2024-08-29T23:59:59.000000Z",
        "periodStartDate": "2024-08-28T00:00:00.000000Z",
        "plenigoOfferId": "O_D0SO735QL1AXZH7FTG",
        "plenigoProductId": "P_DSQ20PV66PNWGK0LPV",
        "plenigoStepId": "S_O38DOOQI9ZE6DESDWC",
        "position": 1,
        "price": 0.5,
        "productId": "P_DSQ20PV66PNWGK0LPV",
        "purchasedAddonId": 0,
        "quantity": 1,
        "subscriptionItemId": 1230101,
        "tax": 7,
        "taxCountry": "DE",
        "taxType": "DIGITALNEWSPAPER",
        "title": "Angebot A kurzes Abo-Intervall Leistungszeitraum 28.08.2024 - 29.08.2024"
      }
    ],
    "orderId": 0,
    "paymentChangedToBilling": false,
    "paymentMethod": "BILLING",
    "paymentMethodId": 0,
    "precursorId": 0,
    "status": "NOT_PAID",
    "successorId": 0,
    "type": "INVOICE"
  }
}

Abonnement ändern

{
  "entityType": "SUBSCRIPTION",
  "callbackType": "CHANGE",
  "entityId": "1230116",
  "entity": {
    "accessBlocked": false,
    "accountingPeriod": 0,
    "accountingPeriodTimeSpan": "NONE",
    "activePartners": null,
    "analogInvoice": false,
    "cancellationDate": null,
    "cancellationPeriod": 5,
    "cancellationPeriodTimeSpan": "DAY",
    "cancellationReasonUniqueId": "",
    "cancellationType": "ISSUE_BASED_REGULAR",
    "chainId": 1230116,
    "changedBy": "PLENIGO",
    "changedByType": "SYSTEM",
    "changedDate": "2024-08-28T00:00:07.717485Z",
    "chargeableDeliveries": 8,
    "connectedOffer": false,
    "connectedOfferInfo": null,
    "createdBy": "8",
    "createdByType": "CUSTOMER",
    "createdDate": "2024-08-02T09:43:13.41412Z",
    "currency": "EUR",
    "customerCancellationBlocked": false,
    "customerCancellationReasonId": 0,
    "deliveries": 8,
    "deliveryAddressId": 1230037,
    "deliveryCustomerId": "8",
    "deliveryPaused": null,
    "durationPeriod": 0,
    "durationPeriodTimeSpan": "NONE",
    "endDate": null,
    "externalBilling": false,
    "externalSystemId": "",
    "finishedDeliveries": 4,
    "firstBookingDate": "2024-08-02T09:43:13.348227Z",
    "invoiceAddressId": 1230038,
    "invoiceCustomerId": "8",
    "items": null,
    "lastBookingDate": "2024-08-02T09:43:13.348227Z",
    "managedBy": "PLENIGO",
    "managedExternal": false,
    "nextBookingDate": null,
    "openDeliveries": 4,
    "paused": null,
    "paymentMethod": "CREDIT_CARD",
    "paymentMethodDetails": {
      "brand": "AMERICAN_EXPRESS"
    },
    "paymentMethodId": 1230005,
    "paymentPaused": null,
    "paymentTriesDone": 0,
    "plenigoOfferId": "O_628IU8F9CB7I6EH5ZG",
    "precursorId": 0,
    "precursorReason": "",
    "precursorReasonDetail": "",
    "purchaseOrderIndicator": "",
    "recurringDeliveries": false,
    "referenceStartDate": "2024-08-02T00:00:00Z",
    "startDate": "2024-08-02T09:43:13.348191Z",
    "status": "ACTIVE",
    "subscriptionId": 1230116,
    "subscriptionType": "ISSUE_BASED",
    "successorId": 0,
    "successorReason": "",
    "successorReasonDetail": "",
    "suppressInvoiceSending": false,
    "term": 0,
    "termTimeSpan": "NONE"
  }
}

Kunde löschen

{
  "entityType": "CUSTOMER",
  "callbackType": "DELETION",
  "entityId": "33",
  "entity": null 
}

entityId ist die Kundennummer. Entity = bearbeitete Daten, hier null, da die betroffenen Daten gelöscht wurden.

In-App Abonnement erstellen

{
  "entityType": "APP_STORE_SUBSCRIPTION",
  "callbackType": "CREATION",
  "version": "3.0",
  "entityId": "1230306",
  "entity": { 
    "accessRightUniqueId": "inappsub",
    "appStoreSubscriptionId": 1230206,
    "cancellationDate": "null",
    "chainId": 1230206,
    "changedBy": "2VYpOnyFbem8IWY9DyoVaLgOAuG", 
    "changedByType": "API",
    "changedDate": 2023-12-29T15:02:05.353082Z",
    "customerId": "29",
    "endDate": "2023-12-29T15:06:32.364Z",
    "externalSystemId: "subscription_1_app_2",
    "startDate": "2023-12-29T15:01:34.393Z",
    "status": "ACTIVE"
   }

}

Callback-Beispiele Vertriebsregeln

Die folgenden Beispiele zeigen die Felder, anhand derer sich regelbasierte Abonnement-Callbacks von regulären Nutzerkündigungen unterscheiden lassen.

Altersbedingte Regel: ENDED-Callback (Vorgängerabonnement zum Wechseldatum)

{
  "entityType": "SUBSCRIPTION",
  "callbackType": "ENDED",
  "entityId": "1230200",
  "entity": {
    "subscriptionId": 1230200,
    "status": "INACTIVE",
    "cancellationDate": null,
    "endDate": "2025-03-15T00:00:00Z",
    "successorReason": "AGE",
    "successorReasonDetail": "",
    "successorId": 1230201,
    "precursorReason": "",
    "precursorId": 0,
    "plenigoOfferId": "O_UNDER25_OFFER",
    "startDate": "2022-03-15T00:00:00Z",
    "changedBy": "PLENIGO",
    "changedByType": "SYSTEM",
    "changedDate": "2025-03-15T00:00:01Z"
  }
}

successorReason: "AGE" und die befüllte successorId, die auf das Folgeabonnement verweist, sind die entscheidenden Signale. Es ist kein cancellationDate gesetzt.

Cross-Selling-Regel: CANCELLATION-Callback beim automatisch gekündigten Abhängigkeitsabonnement

{
  "entityType": "SUBSCRIPTION",
  "callbackType": "CANCELLATION",
  "entityId": "1230310",
  "entity": {
    "subscriptionId": 1230310,
    "status": "ACTIVE",
    "cancellationDate": "2025-06-01T10:00:00Z",
    "endDate": "2025-07-01T00:00:00Z",
    "successorReason": "",
    "successorReasonDetail": "",
    "successorId": 0,
    "precursorReason": "",
    "precursorId": 0,
    "plenigoOfferId": "O_DISCOUNTED_OFFER",
    "startDate": "2024-06-01T00:00:00Z",
    "changedBy": "PLENIGO",
    "changedByType": "SYSTEM",
    "changedDate": "2025-06-01T10:00:01Z"
  }
}

Dieser Payload ist strukturell identisch mit einer Nutzerkündigung — cancellationDate ist gesetzt, successorReason ist leer. Eine durch eine Cross-Selling-Regel ausgelöste automatische Kündigung lässt sich anhand des Payloads allein nicht zuverlässig von einer manuellen Kündigung unterscheiden.

Up-/Down-Selling: CHANGE-Callback beim alten Abonnement (Übergang: NOW / END_OF_TERM / NEXT_BOOKING)

{
  "entityType": "SUBSCRIPTION",
  "callbackType": "CHANGE",
  "entityId": "1231822",
  "entity": {
    "accessBlocked": false,
    "accountingPeriod": 1,
    "accountingPeriodTimeSpan": "DAY",
    "activePartners": null,
    "analogInvoice": false,
    "cancellationDate": null,
    "cancellationPeriod": 1,
    "cancellationPeriodTimeSpan": "DAY",
    "cancellationReasonUniqueId": "",
    "cancellationType": "TIME_BASED",
    "chainId": 1231822,
    "changedBy": "66666668260",
    "changedByType": "CUSTOMER",
    "changedDate": "2026-06-03T07:41:50.242229Z",
    "chargeableDeliveries": 0,
    "connectedOffer": false,
    "connectedOfferInfo": null,
    "createdBy": "66666668260",
    "createdByType": "CUSTOMER",
    "createdDate": "2026-06-03T07:41:15.892031Z",
    "currency": "EUR",
    "customerCancellationBlocked": false,
    "customerCancellationReasonId": 0,
    "deliveries": 0,
    "deliveryAddressId": 1230755,
    "deliveryCustomerId": "66666668260",
    "deliveryPaused": null,
    "durationPeriod": 0,
    "durationPeriodTimeSpan": "MONTH",
    "endDate": "2026-06-05T00:00:00Z",
    "externalBilling": false,
    "externalSystemId": "",
    "finishedDeliveries": 0,
    "firstBookingDate": "2026-06-03T07:41:15.815532Z",
    "invoiceAddressId": 0,
    "invoiceCustomerId": "66666668260",
    "items": [
      {
        "accessRightUniqueId": "time-misc",
        "chainItemId": 1232077,
        "changedBy": "66666668260",
        "changedByType": "CUSTOMER",
        "changedDate": "2026-06-03T07:41:50.247454Z",
        "connectedOfferInfo": null,
        "corporateAccountId": 0,
        "costCenter": "",
        "createdBy": "66666668260",
        "createdByType": "CUSTOMER",
        "createdDate": "2026-06-03T07:41:15.892031Z",
        "creditCount": 0,
        "creditWalletUniqueId": "",
        "discountPercentage": 0,
        "discountSettings": null,
        "internalTitle": "Test",
        "multiuserSettings": null,
        "packageCancellationLocked": false,
        "packageId": "",
        "packageTitle": "",
        "plenigoProductId": "P_NWM7KKEIW1970TR1NS",
        "plenigoStepId": "S_O0AHMK0A2862NKMSB0",
        "price": 1,
        "priceIssueId": 100041,
        "productContractId": 100080,
        "productId": "P_NWM7KKEIW1970TR1NS",
        "purchaseNumber": "",
        "quantity": 1,
        "status": "ACTIVE",
        "subscriptionItemId": 1232077,
        "taxType": "DIGITALPRODUCT",
        "title": "Test"
      }
    ],
    "lastBookingDate": "2026-06-03T07:41:15.815532Z",
    "managedBy": "PLENIGO",
    "managedExternal": false,
    "multiuserSettings": null,
    "nextBookingDate": "2026-06-04T00:00:00Z",
    "openDeliveries": 0,
    "paused": null,
    "paymentMethod": "CREDIT_CARD",
    "paymentMethodDetails": {
      "brand": "VISA"
    },
    "paymentMethodId": 1230295,
    "paymentPaused": null,
    "paymentTriesDone": 0,
    "plenigoOfferId": "O_MSNCU5I4FL4K08QXKJ",
    "precursorId": 0,
    "precursorReason": "",
    "precursorReasonDetail": "",
    "purchaseOrderIndicator": "",
    "recurringDeliveries": false,
    "referenceStartDate": "2026-06-03T00:00:00Z",
    "startDate": "2026-06-03T07:41:15.815512Z",
    "status": "ACTIVE",
    "subscriptionId": 1231822,
    "subscriptionType": "TIME_BASED",
    "successorId": 1231823,
    "successorReason": "CROSS_SELLING",
    "successorReasonDetail": "END_OF_TERM",
    "successorReasonMerchant": "",
    "suppressInvoiceSending": false,
    "term": 2,
    "termTimeSpan": "DAY"
  }
}

successorReason: "CROSS_SELLING" und die befüllte successorId kennzeichnen dies als regelbasierten Angebotsübergang. successorReasonDetail gibt die konfigurierte Übergangsoption wieder (NOW, END_OF_TERM oder NEXT_BOOKING).

Up-/Down-Selling: CANCELLATION-Callback beim alten Abonnement (Übergang: LAST_BOOKING / NOW_WITH_INVOICING)

{
  "entityType": "SUBSCRIPTION",
  "callbackType": "CANCELLATION",
  "entityId": "1231820",
  "entity": {
    "accessBlocked": false,
    "accountingPeriod": 1,
    "accountingPeriodTimeSpan": "DAY",
    "activePartners": null,
    "analogInvoice": false,
    "cancellationDate": null,
    "cancellationPeriod": 1,
    "cancellationPeriodTimeSpan": "DAY",
    "cancellationReasonUniqueId": "",
    "cancellationType": "TIME_BASED",
    "chainId": 1231820,
    "changedBy": "PLENIGO",
    "changedByType": "SYSTEM",
    "changedDate": "2026-06-03T07:36:28.184834Z",
    "chargeableDeliveries": 0,
    "connectedOffer": false,
    "connectedOfferInfo": null,
    "createdBy": "66666668260",
    "createdByType": "CUSTOMER",
    "createdDate": "2026-06-03T07:35:53.851576Z",
    "currency": "EUR",
    "customerCancellationBlocked": false,
    "customerCancellationReasonId": 0,
    "deliveries": 0,
    "deliveryAddressId": 1230755,
    "deliveryCustomerId": "66666668260",
    "deliveryPaused": null,
    "durationPeriod": 0,
    "durationPeriodTimeSpan": "MONTH",
    "endDate": "2026-06-03T07:35:53.778014Z",
    "externalBilling": false,
    "externalSystemId": "",
    "finishedDeliveries": 0,
    "firstBookingDate": "2026-06-03T07:35:53.778031Z",
    "invoiceAddressId": 0,
    "invoiceCustomerId": "66666668260",
    "items": [
      {
        "accessRightUniqueId": "time-misc",
        "chainItemId": 1232074,
        "changedBy": "66666668260",
        "changedByType": "CUSTOMER",
        "changedDate": "2026-06-03T07:36:28.192109Z",
        "connectedOfferInfo": null,
        "corporateAccountId": 0,
        "costCenter": "",
        "createdBy": "66666668260",
        "createdByType": "CUSTOMER",
        "createdDate": "2026-06-03T07:35:53.851576Z",
        "creditCount": 0,
        "creditWalletUniqueId": "",
        "discountPercentage": 0,
        "discountSettings": null,
        "internalTitle": "Test",
        "multiuserSettings": null,
        "packageCancellationLocked": false,
        "packageId": "",
        "packageTitle": "",
        "plenigoProductId": "P_VFQFK5I7XLL2OW03BA",
        "plenigoStepId": "S_XP3FJQH32LX3WVWRHC",
        "price": 1,
        "priceIssueId": 100041,
        "productContractId": 100080,
        "productId": "P_VFQFK5I7XLL2OW03BA",
        "purchaseNumber": "",
        "quantity": 1,
        "status": "ACTIVE",
        "subscriptionItemId": 1232074,
        "taxType": "DIGITALPRODUCT",
        "title": "Test"
      }
    ],
    "lastBookingDate": "2026-06-03T07:35:53.778031Z",
    "managedBy": "PLENIGO",
    "managedExternal": false,
    "multiuserSettings": null,
    "nextBookingDate": null,
    "openDeliveries": 0,
    "paused": null,
    "paymentMethod": "CREDIT_CARD",
    "paymentMethodDetails": {
      "brand": "VISA"
    },
    "paymentMethodId": 1230295,
    "paymentPaused": null,
    "paymentTriesDone": 0,
    "plenigoOfferId": "O_9MDKAABUM8FG7TT5KB",
    "precursorId": 0,
    "precursorReason": "",
    "precursorReasonDetail": "",
    "purchaseOrderIndicator": "",
    "recurringDeliveries": false,
    "referenceStartDate": "2026-06-03T00:00:00Z",
    "startDate": "2026-06-03T07:35:53.778014Z",
    "status": "ACTIVE",
    "subscriptionId": 1231820,
    "subscriptionType": "TIME_BASED",
    "successorId": 1231821,
    "successorReason": "CROSS_SELLING",
    "successorReasonDetail": "LAST_BOOKING",
    "successorReasonMerchant": "",
    "suppressInvoiceSending": false,
    "term": 2,
    "termTimeSpan": "DAY"
  }
}

Bei LAST_BOOKING und NOW_WITH_INVOICING lautet der Callback-Typ CANCELLATION statt CHANGE. Die entscheidenden Unterscheidungsmerkmale sind successorReason: "CROSS_SELLING" und die befüllte successorId — diese Felder sind bei einer reinen Nutzerkündigung nie vorhanden.


Fehlgeschlagene Zahlung

Dieser Callback (entityType: FAILED_PAYMENT, callbackType: PAYMENT_FAILED) wird bei jedem einzelnen fehlgeschlagenen Zahlungsversuch eines Abonnements gesendet — also auch bei jedem automatischen Wiederholungsversuch der Prozesssteuerung, nicht nur beim letzten.

{
  "entityType": "FAILED_PAYMENT",
  "callbackType": "PAYMENT_FAILED",
  "entityId": "0",
  "entity": {
    "paymentRetry": 3,
    "subscription": {
      "accessBlocked": false,
      "accountingPeriod": 1,
      "accountingPeriodTimeSpan": "MONTH",
      "activePartners": null,
      "analogInvoice": false,
      "cancellationDate": null,
      "cancellationPeriod": 7,
      "cancellationPeriodTimeSpan": "DAY",
      "cancellationReasonUniqueId": "",
      "cancellationType": "TIME_BASED",
      "chainId": 1230391,
      "changedBy": "10013",
      "changedByType": "MERCHANT",
      "changedDate": "2026-05-30T00:01:13.240032Z",
      "chargeableDeliveries": 0,
      "connectedOffer": false,
      "connectedOfferInfo": null,
      "createdBy": "10013",
      "createdByType": "MERCHANT",
      "createdDate": "2026-05-21T09:20:02.599792Z",
      "currency": "EUR",
      "customerCancellationBlocked": false,
      "customerCancellationReasonId": 0,
      "deliveries": 0,
      "deliveryAddressId": 1230174,
      "deliveryCustomerId": "97",
      "deliveryPaused": null,
      "durationPeriod": 0,
      "durationPeriodTimeSpan": "MONTH",
      "endDate": null,
      "externalBilling": false,
      "externalSystemId": "",
      "finishedDeliveries": 0,
      "firstBookingDate": "2026-05-21T09:20:02.395838Z",
      "invoiceAddressId": 1230175,
      "invoiceCustomerId": "97",
      "items": [
        {
          "accessRightUniqueId": "Digi",
          "chainItemId": 1230477,
          "changedBy": "10013",
          "changedByType": "MERCHANT",
          "changedDate": "2026-05-21T09:20:02.599792Z",
          "connectedOfferInfo": null,
          "corporateAccountId": 0,
          "costCenter": "",
          "createdBy": "10013",
          "createdByType": "MERCHANT",
          "createdDate": "2026-05-21T09:20:02.599792Z",
          "creditCount": 0,
          "creditWalletUniqueId": "",
          "discountPercentage": 0,
          "discountSettings": null,
          "internalTitle": "Monthly Subscription",
          "multiuserSettings": null,
          "packageCancellationLocked": false,
          "packageId": "",
          "packageTitle": "",
          "plenigoProductId": "P_A81TR7E86V3QTZ88NT",
          "plenigoStepId": "S_P3PBYAXRG2ZKCIS02N",
          "price": 17.99,
          "priceIssueId": 100001,
          "productContractId": 100001,
          "productId": "P_A81TR7E86V3QTZ88NT",
          "purchaseNumber": "",
          "quantity": 1,
          "status": "ACTIVE",
          "subscriptionItemId": 1230477,
          "taxType": "DIGITALNEWSPAPER",
          "title": "Monthly Subscription"
        }
      ],
      "lastBookingDate": "2026-05-21T09:20:02.395838Z",
      "managedBy": "PLENIGO",
      "managedExternal": false,
      "multiuserSettings": null,
      "nextBookingDate": "2026-06-01T00:00:00Z",
      "openDeliveries": 0,
      "paused": null,
      "paymentMethod": "CREDIT_CARD",
      "paymentMethodId": 1230037,
      "paymentPaused": null,
      "paymentTriesDone": 3,
      "plenigoOfferId": "O_B6AN8XIDB96XXQDT7Y",
      "precursorId": 0,
      "precursorReason": "",
      "precursorReasonDetail": "",
      "purchaseOrderIndicator": "",
      "recurringDeliveries": false,
      "referenceStartDate": "2026-05-26T00:00:00Z",
      "startDate": "2026-05-26T00:00:00Z",
      "status": "ACTIVE",
      "subscriptionId": 1230391,
      "subscriptionType": "TIME_BASED",
      "successorId": 0,
      "successorReason": "",
      "successorReasonDetail": "",
      "successorReasonMerchant": "",
      "suppressInvoiceSending": false,
      "term": 1,
      "termTimeSpan": "MONTH"
    }
  }
}

Die wichtigsten Felder

Feld

Bedeutung

entityId

Bei diesem Callback-Typ immer 0. Die betroffene Abonnementnummer steht in entity.subscription.subscriptionId.

entity.paymentRetry

Der wievielte Wiederholungsversuch als nächstes eingeplant wurde — keine Zählung der bereits unternommenen Versuche. Beim finalen Versuch wird kein weiterer eingeplant, der Wert wiederholt daher die vorherige Zahl.

entity.subscription.paymentTriesDone

Anzahl der für die aktuelle Abrechnungsperiode bereits unternommenen Zahlungsversuche.

entity.subscription.accessBlocked

Ob der Produktzugriff zum Zeitpunkt des Callbacks gesperrt ist.

entity.subscription.status

Status des Abonnements. Bleibt während der Wiederholungsversuche ACTIVE — ein fehlgeschlagener Zahlungsversuch ändert den Status für sich genommen nicht.

entity.subscription.changedBy / changedByType

Beziehen sich auf die letzte Änderung am Abonnement, nicht auf den Auslöser des Zahlungsversuchs. Im Beispiel oben steht hier MERCHANT, obwohl der Zahlungsversuch systemseitig durch die Prozesssteuerung ausgelöst wurde.

Was Du mit diesem Callback bauen kannst

Typischer Anwendungsfall ist eine eigene Erinnerungs- oder Warn-Mail an Deine Kunden, zusätzlich zu den Systemmails von Frisbii Media. Dafür musst Du wissen, welcher Callback der letzte in einer Wiederholungsserie ist — und das ist anhand von paymentRetry allein nicht erkennbar, weil sich der höchste Wert wiederholt. Im obigen Beispiel steht paymentRetry: 3; bei vier konfigurierten Zahlungsversuchen tritt dieser Wert sowohl beim vorletzten als auch beim finalen Callback auf.

Zwei zuverlässige Wege:

  1. Trigger trennen (empfohlen) — Nutze FAILED_PAYMENT ausschließlich für Warn-Mails und steuere die "Abonnement gekündigt"-Mail über den Kündigungs-Callback SUBSCRIPTION / CANCELLATION.

  2. Callbacks pro Abrechnungsperiode zählen — Du erhältst pro Abrechnungsperiode genau einen FAILED_PAYMENT-Callback je konfiguriertem Zahlungsversuch. Der zweite Callback mit der höchsten paymentRetry-Zahl ist der finale.

Hinweis: Nach dem letzten fehlgeschlagenen Versuch wird der Wiederholungszähler zurückgesetzt. Eine neue Abrechnungsperiode beginnt daher wieder bei 1. Eine erneute „1" bedeutet also nicht, dass der vorherige Mahnzyklus noch läuft.

In drei Fällen bricht die Prozesssteuerung sofort ab und der FAILED_PAYMENT-Callback wird nicht ausgelöst: gesperrte Zahlungsart, nicht implementierte Zahlungsart und nicht verfügbarer PSP. Verlasse Dich in diesen Fällen nicht auf den Callback, sondern auf das Transaktionslog.

→ Fehlgeschlagene Zahlungen


Kündigung durch die Prozesssteuerung erkennen

Kündigt die Prozesssteuerung ein Abonnement nach ausgeschöpften Zahlungsversuchen, sendet Frisbii Media SUBSCRIPTION / CANCELLATION und zusätzlich SUBSCRIPTION / ENDED, sobald das Abonnement inaktiv wird. Es gibt kein dediziertes Feld, das einen Zahlungsausfall als Kündigungsgrund ausweist.

Im ersten Schritt unterscheidest Du anhand von changedByType und changedBy, aus welcher Richtung die Kündigung kam:

Kündigung ausgelöst durch

changedByType

changedBy

Systemseitig — Prozesssteuerung oder Vertriebsregel

SYSTEM

PLENIGO

Kunde (Self Service)

CUSTOMER

Kunden-ID

Kundenservice (Merchant Backend)

MERCHANT

Benutzer-ID

Da auch Kündigungen durch Vertriebsregeln SYSTEM und PLENIGO tragen (siehe die Beispiele oben), brauchst Du für systemseitige Kündigungen ein zweites Unterscheidungsmerkmal:

Merkmal

Vertriebsregel

Prozesssteuerung (Zahlungsausfall)

successorReason

Gefüllt, z. B. AGE oder CROSS_SELLING

Leer

successorId

Verweist auf das Folgeabonnement

0

Vorangehender FAILED_PAYMENT-Callback für dasselbe Abonnement

Nein

Ja

Hinweis: Die zuverlässigste Methode ist die Korrelation: Ordne den SUBSCRIPTION / CANCELLATION-Callback einem vorangehenden FAILED_PAYMENT-Callback für dieselbe subscriptionId zu. Beide werden als Teil desselben Prozesssteuerungsvorgangs gesendet.