> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.de/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create or update a subscription

> Erstellen oder aktualisieren Sie ein vorhandenes Abonnement, indem Sie die Felder und Formen der Events angeben, die Sie überwachen möchten. Eine vollständige Dokumentation zu potenziellen Abonnementtypen finden Sie auf der Übersichtsseite der Dokumentation. 

export const SupportedProducts = ({marketing, sales, service, cms, marketingLevel, salesLevel, serviceLevel, cmsLevel}) => {
  const translations = {
    header: "Unterstützte Produkte",
    description: "Erfordert eines der folgenden Produkte oder höher.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Kostenlos",
      starter: "Starter",
      professional: "Professional",
      enterprise: "Enterprise"
    }
  };
  const translateTier = tier => {
    if (!tier) return '';
    const lowerTier = tier.toLowerCase();
    return translations.tiers[lowerTier] || tier;
  };
  const products = [{
    name: marketing ? translations.productNames.marketing : '',
    level: translateTier(marketingLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/marketing-bolt.svg",
    alt: "Marketing Hub"
  }, {
    name: sales ? translations.productNames.sales : '',
    level: translateTier(salesLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/sales-star.svg",
    alt: "Sales Hub"
  }, {
    name: service ? translations.productNames.service : '',
    level: translateTier(serviceLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/service-heart.svg",
    alt: "Service Hub"
  }, {
    name: cms ? translations.productNames.cms : '',
    level: translateTier(cmsLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/content-play.svg",
    alt: "Content Hub"
  }].filter(product => product.name && product.level);
  if (products.length === 0) return null;
  return <div>
      <div className="text-sm mb-2">{translations.description}</div>
      <div className={`grid ${products.length === 1 ? 'grid-cols-1' : 'grid-cols-2'} gap-1.5`}>
        {products.map((product, index) => <div key={index} style={{
    display: 'flex',
    alignItems: 'center'
  }}>
            <img src={product.icon} alt={product.alt} className="w-3.5 h-3.5 mr-1.5 mt-2.5 mb-2.5 flex-shrink-0 align-middle" />
            <span className="font-medium mr-1 text-sm">{product.name} -</span>
            <span className="text-sm">{product.level}</span>
          </div>)}
      </div>
    </div>;
};

<Accordion title="Supported products" defaultOpen="true" icon="cubes">
  <SupportedProducts marketing={true} sales={true} service={true} cms={true} marketingLevel="FREE" salesLevel="FREE" serviceLevel="FREE" cmsLevel="FREE" />
</Accordion>


## OpenAPI

````yaml specs/2026-03/webhooks-webhooks-v2026-03.json POST /webhooks-journal/subscriptions/2026-03
openapi: 3.0.1
info:
  title: Webhooks Webhooks
  description: Basepom for all HubSpot Projects
  version: 2026-03
  x-hubspot-product-tier-requirements:
    marketing: FREE
    sales: FREE
    service: FREE
    cms: FREE
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Advanced
  - name: Basic
  - name: Batch
paths:
  /webhooks-journal/subscriptions/2026-03:
    post:
      tags:
        - Basic
      summary: Upsert für ein Abonnement durchführen
      description: >-
        Erstellen oder aktualisieren Sie ein vorhandenes Abonnement, indem Sie
        die Felder und Formen der Events angeben, die Sie überwachen möchten.
        Eine vollständige Dokumentation zu potenziellen Abonnementtypen finden
        Sie auf der Übersichtsseite der Dokumentation. 
      operationId: >-
        post-/webhooks-journal/subscriptions/2026-03_/webhooks-journal/subscriptions/2026-03
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionUpsertRequest'
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionResponse_1'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - webhooks-journal-subscription-management
components:
  schemas:
    SubscriptionUpsertRequest:
      properties: {}
      oneOf:
        - $ref: '#/components/schemas/ObjectSubscriptionUpsertRequest'
        - $ref: '#/components/schemas/AssociationSubscriptionUpsertRequest'
        - $ref: '#/components/schemas/AppLifecycleEventSubscriptionUpsertRequest'
        - $ref: '#/components/schemas/ListMembershipSubscriptionUpsertRequest'
        - $ref: '#/components/schemas/GdprPrivacyDeletionSubscriptionUpsertRequest'
    SubscriptionResponse_1:
      required:
        - actions
        - appId
        - createdAt
        - id
        - objectTypeId
        - subscriptionType
        - updatedAt
      type: object
      properties:
        actionOverrides:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ActionOverrideRequest'
          description: >-
            Ein Objekt, das Aktionsüberschreibungen enthält, wobei jeder
            Schlüssel eine Aktion und der Wert ein ActionOverrideRequest-Objekt
            ist.
        actions:
          type: array
          description: >-
            Eine Liste von Aktionen, die das Abonnement auslösen. Mögliche Werte
            sind „CREATE“, „UPDATE“, „DELETE“, „MERGE“, „RESTORE“,
            „ASSOCIATION_ADDED“, „ASSOCIATION_REMOVED“, „SNAPSHOT“,
            „APP_INSTALL“, „APP_UNINSTALL“, „ADDED_TO_LIST“, „REMOVED_FROM_LIST“
            und „GDPR_DELETE“.
          items:
            type: string
            enum:
              - CREATE
              - UPDATE
              - DELETE
              - MERGE
              - RESTORE
              - ASSOCIATION_ADDED
              - ASSOCIATION_REMOVED
              - SNAPSHOT
              - APP_INSTALL
              - APP_UNINSTALL
              - ADDED_TO_LIST
              - REMOVED_FROM_LIST
              - GDPR_DELETE
        appId:
          type: integer
          description: >-
            Die eindeutige ID für die App, die dem Abonnement zugeordnet ist. Es
            handelt sich um eine Ganzzahl im int64-Format.
          format: int64
        associatedObjectTypeIds:
          type: array
          description: >-
            Eine Liste der IDs der zugeordneten Objekttypen. Jede ID ist eine
            Zeichenfolge.
          items:
            type: string
        createdAt:
          type: string
          description: >-
            Der Zeitpunkt (Datum und Uhrzeit), zu dem das Abonnement im
            ISO-8601-Format erstellt wurde.
          format: date-time
        createdBy:
          type: integer
          description: >-
            Die ID des Benutzers, der das Abonnement erstellt hat. Es handelt
            sich um eine Ganzzahl im int64-Format.
          format: int64
        deletedAt:
          type: string
          description: >-
            Der Zeitpunkt (Datum und Uhrzeit), zu dem das Abonnement im
            ISO-8601-Format gelöscht wurde, falls zutreffend.
          format: date-time
        id:
          type: integer
          description: >-
            Die eindeutige ID für das Abonnement. Es handelt sich um eine
            Ganzzahl im int64-Format.
          format: int64
        listIds:
          type: array
          description: >-
            Eine Liste der Listen-IDs, die dem Abonnement zugeordnet sind. Jede
            ID ist eine Ganzzahl im int64-Format.
          items:
            type: integer
            format: int64
        objectIds:
          type: array
          description: >-
            Eine Liste der Objekt-IDs, die dem Abonnement zugeordnet sind. Jede
            ID ist eine Ganzzahl im int64-Format.
          items:
            type: integer
            format: int64
        objectTypeId:
          type: string
          description: >-
            Die ID für den Objekttyp, der mit dem Abonnement verknüpft ist. Es
            handelt sich um eine Zeichenfolge.
        portalId:
          type: integer
          description: >-
            Die eindeutige ID für das Portal, das mit dem Abonnement verknüpft
            ist. Es handelt sich um eine Ganzzahl im int64-Format.
          format: int64
        properties:
          type: array
          description: >-
            Eine Liste der Eigenschaftsnamen, die dem Abonnement zugeordnet
            sind. Jede Eigenschaft ist eine Zeichenfolge.
          items:
            type: string
        subscriptionType:
          type: string
          description: >-
            Der Abonnementtyp. Folgende Typen sind zulässig: „OBJECT“,
            „ASSOCIATION“, „EVENT“, „APP_LIFECYCLE_EVENT“, „LIST_MEMBERSHIP“
            oder „GDPR_PRIVACY_DELETION“.
          enum:
            - APP_LIFECYCLE_EVENT
            - ASSOCIATION
            - EVENT
            - GDPR_PRIVACY_DELETION
            - LIST_MEMBERSHIP
            - OBJECT
        updatedAt:
          type: string
          description: >-
            Der Zeitpunkt (Datum und Uhrzeit), zu dem das Abonnement im
            ISO-8601-Format zuletzt aktualisiert wurde.
          format: date-time
    ObjectSubscriptionUpsertRequest:
      required:
        - actions
        - objectIds
        - objectTypeId
        - portalId
        - properties
        - subscriptionType
      type: object
      properties:
        actions:
          type: array
          description: >-
            Ein Array von Zeichenfolgen, das die Aktionen angibt, die das
            Abonnement auslösen. Gültige Aktionen sind „CREATE“, „UPDATE“,
            „DELETE“, „MERGE“, „RESTORE“.
          items:
            type: string
            enum:
              - CREATE
              - UPDATE
              - DELETE
              - MERGE
              - RESTORE
              - ASSOCIATION_ADDED
              - ASSOCIATION_REMOVED
              - SNAPSHOT
              - APP_INSTALL
              - APP_UNINSTALL
              - ADDED_TO_LIST
              - REMOVED_FROM_LIST
              - GDPR_DELETE
        objectIds:
          type: array
          description: >-
            Ein Array von Ganzzahlen, das die IDs der an dem Abonnement
            beteiligten Objekte darstellt. Leer bedeutet, dass alle Objekt-IDs
            überwacht werden.
          items:
            type: integer
            format: int64
        objectTypeId:
          type: string
          description: >-
            Eine Zeichenfolge, die den Objekttyp identifiziert, für den das
            Abonnement erstellt oder aktualisiert wird. Zum Beispiel „0–1“ für
            Kontakte.
        portalId:
          type: integer
          description: >-
            Eine Ganzzahl, die die Portal-ID darstellt, die dem Abonnement
            zugeordnet ist.
          format: int64
        properties:
          type: array
          description: >-
            Ein Array von Zeichenfolgen, das die für das Abonnement relevanten
            Eigenschaften der Objekte auflistet. Eine leere Liste bedeutet, dass
            alle Eigenschaften überwacht werden.
          items:
            type: string
        subscriptionType:
          type: string
          description: >-
            Eine Zeichenfolge, die den Abonnementtyp angibt. Der Standard- und
            einzig gültige Wert ist „OBJECT“.
          default: OBJECT
          enum:
            - OBJECT
      x-hubspot-sub-type-impl: true
    AssociationSubscriptionUpsertRequest:
      required:
        - actions
        - associatedObjectTypeIds
        - objectIds
        - objectTypeId
        - portalId
        - subscriptionType
      type: object
      properties:
        actions:
          type: array
          description: >-
            Ein Array von Zeichenfolgen, das die Aktionen angibt, die das
            Abonnement auslösen. Gültige Aktionen sind „ASSOCIATION_ADDED“ und
            „ASSOCIATION_REMOVED“.
          items:
            type: string
            enum:
              - CREATE
              - UPDATE
              - DELETE
              - MERGE
              - RESTORE
              - ASSOCIATION_ADDED
              - ASSOCIATION_REMOVED
              - SNAPSHOT
              - APP_INSTALL
              - APP_UNINSTALL
              - ADDED_TO_LIST
              - REMOVED_FROM_LIST
              - GDPR_DELETE
        associatedObjectTypeIds:
          type: array
          description: >-
            Ein Array von Zeichenfolgen, das die Typ-IDs der zugeordneten
            Objekte darstellt, die am Abonnement beteiligt sind. Falls
            vorhanden, werden Events nur ausgelöst, wenn die TO-objectTypeId in
            der Zuordnung in diesem Array enthalten ist.  
          items:
            type: string
        objectIds:
          type: array
          description: >-
            Ein Array von Ganzzahlen, das die eindeutigen IDs der an dem
            Abonnement beteiligten Objekte darstellt.
          items:
            type: integer
            format: int64
        objectTypeId:
          type: string
          description: >-
            Eine Zeichenfolge, die die Typ-ID des an dem Abonnement beteiligten
            Objekts darstellt. Zum Beispiel „0–1“ für Kontakte. Dies entspricht
            der FROM-Seite der Zuordnung. Eine objectTypeId von „0-1“ würde
            einer Änderung der Zuordnung CONTACT_TO_COMPANY entsprechen.  
        portalId:
          type: integer
          description: Eine Ganzzahl, die die eindeutige ID des HubSpot-Portals darstellt.
          format: int64
        subscriptionType:
          type: string
          description: >-
            Eine Zeichenfolge, die den Abonnementtyp angibt, der standardmäßig
            „ASSOCIATION“ ist.
          default: ASSOCIATION
          enum:
            - ASSOCIATION
      x-hubspot-sub-type-impl: true
    AppLifecycleEventSubscriptionUpsertRequest:
      required:
        - eventTypeId
        - properties
        - subscriptionType
      type: object
      properties:
        eventTypeId:
          type: string
          description: >-
            Eine Zeichenfolge, die die eindeutige ID für den Event-Typ
            darstellt, auf den sich das Abonnement bezieht. Dieser Wert
            entspricht einer internen Event-Klassifizierung bei HubSpot.


            4-1909196: App-Installations-Event

            4-1916193: App-Deinstallations-Event
        properties:
          type: array
          description: >-
            Ein Array von Zeichenfolgen, das die Eigenschaften des dem
            Abonnement zugeordneten Events angibt.
          items:
            type: string
        subscriptionType:
          type: string
          description: >-
            Eine Zeichenfolge, die den Abonnementtyp angibt, der standardmäßig
            „APP_LIFECYCLE_EVENT“ ist.
          default: APP_LIFECYCLE_EVENT
          enum:
            - APP_LIFECYCLE_EVENT
      x-hubspot-sub-type-impl: true
    ListMembershipSubscriptionUpsertRequest:
      required:
        - actions
        - listIds
        - objectIds
        - portalId
        - subscriptionType
      type: object
      properties:
        actions:
          type: array
          description: >-
            Ein Array von Zeichenfolgen, das die Aktionen angibt, die das
            Abonnement auslösen. Gültige Aktionen sind „ADDED_TO_LIST“ und
            „REMOVED_FROM_LIST“
          items:
            type: string
            enum:
              - CREATE
              - UPDATE
              - DELETE
              - MERGE
              - RESTORE
              - ASSOCIATION_ADDED
              - ASSOCIATION_REMOVED
              - SNAPSHOT
              - APP_INSTALL
              - APP_UNINSTALL
              - ADDED_TO_LIST
              - REMOVED_FROM_LIST
              - GDPR_DELETE
        listIds:
          type: array
          description: >-
            Ein Array von Ganzzahlen, das die IDs der an dem Abonnement
            beteiligten Listen darstellt. Leer bedeutet, alle Listen zu
            überwachen.
          items:
            type: integer
            format: int64
        objectIds:
          type: array
          description: >-
            Ein Array von Ganzzahlen, das die IDs der dem Abonnement
            zugeordneten Objekte darstellt. Leer bedeutet, dass alle Objekt-IDs
            überwacht werden.
          items:
            type: integer
            format: int64
        portalId:
          type: integer
          description: >-
            Eine Ganzzahl, die die ID des Portals darstellt, in dem das
            Abonnement verwaltet wird.
          format: int64
        subscriptionType:
          type: string
          description: >-
            Eine Zeichenfolge, die den Abonnementtyp angibt. Der Standardwert
            und einzig gültige Wert ist „LIST_MEMBERSHIP“.
          default: LIST_MEMBERSHIP
          enum:
            - LIST_MEMBERSHIP
      x-hubspot-sub-type-impl: true
    GdprPrivacyDeletionSubscriptionUpsertRequest:
      required:
        - actions
        - objectTypeId
        - portalId
        - subscriptionType
      type: object
      properties:
        actions:
          type: array
          description: >-
            Ein Array von Zeichenfolgen, das die Aktionen angibt, die das
            Abonnement auslösen. Eine gültige Aktion ist „DSGVO_DELETE“. 
          items:
            type: string
            enum:
              - CREATE
              - UPDATE
              - DELETE
              - MERGE
              - RESTORE
              - ASSOCIATION_ADDED
              - ASSOCIATION_REMOVED
              - SNAPSHOT
              - APP_INSTALL
              - APP_UNINSTALL
              - ADDED_TO_LIST
              - REMOVED_FROM_LIST
              - GDPR_DELETE
        objectTypeId:
          type: string
          description: >-
            Eine Zeichenfolge, die die eindeutige ID für den Objekttyp
            darstellt, der dem Abonnement zugeordnet ist.
        portalId:
          type: integer
          description: >-
            Eine Ganzzahl, die die eindeutige ID für das HubSpot-Portal
            darstellt, das auf Änderungen überwacht wird. 
          format: int64
        subscriptionType:
          type: string
          description: >-
            Eine Zeichenfolge, die den Abonnementtyp angibt.
            DSGVO_PRIVACY_DELETION ist die einzige gültige Option für
            GdprPrivacyDeletionSubscriptionUpsertRequest. 
          default: GDPR_PRIVACY_DELETION
          enum:
            - GDPR_PRIVACY_DELETION
      x-hubspot-sub-type-impl: true
    ActionOverrideRequest:
      type: object
      properties:
        associatedObjectTypeIds:
          type: array
          description: >-
            Ein Array von Zeichenfolgen, die jeweils eine zugeordnete
            Objekttyp-ID darstellen, die für die Aktionsüberschreibung relevant
            ist.
          items:
            type: string
        listIds:
          type: array
          description: >-
            Ein Array von Ganzzahlen, die Listen-IDs darstellen, die der
            Aktionsüberschreibung zugeordnet sind. Die Ganzzahlen liegen im
            int64-Format vor.
          items:
            type: integer
            format: int64
        objectIds:
          type: array
          description: >-
            Ein Array von Ganzzahlen, die jeweils eine Objekt-ID darstellen, für
            die die Aktionsüberschreibung anwendbar ist. Die Ganzzahlen liegen
            im int64-Format vor.
          items:
            type: integer
            format: int64
        properties:
          type: array
          description: >-
            Ein Array von Zeichenfolgen, die die Eigenschaften darstellen, die
            in der Aktion überschrieben werden sollen. Jede Zeichenfolge
            entspricht einem Eigenschaftsnamen.
          items:
            type: string
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: Die Fehlerkategorie.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Kontext zur Fehlerbedingung, dargestellt als Objekt mit zusätzlichen
            Eigenschaften.
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Eine eindeutige ID für die Anfrage, formatiert als UUID.
            Berücksichtigen Sie diesen Wert in Fehlerberichten oder
            Support-Tickets.
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: >-
            Ein Array mit weiteren Informationen zum Fehler, wobei jedes Element
            ein ErrorDetail-Objekt ist.
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Eine Zuordnung von Link-Namen zu zugeordneten URIs, die
            Dokumentation über den Fehler oder empfohlene Abhilfemaßnahmen
            enthalten, dargestellt als Objekt mit Zeichenfolgeneigenschaften.
        message:
          type: string
          description: >-
            Eine für Menschen lesbare Nachricht mit einer Beschreibung des
            Fehlers und ggf. Abhilfemaßnahmen. Es ist eine Zeichenfolge.
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Eine spezifische Kategorie, die detailliertere Informationen zum
            Fehler enthält, dargestellt als Zeichenfolge.
      example:
        message: Invalid input (details will vary based on the error)
        correlationId: aeb5f871-7f07-4993-9211-075dc63e7cbf
        category: VALIDATION_ERROR
        links:
          knowledge-base: https://www.hubspot.com/products/service/knowledge-base
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: >-
            Der Statuscode, der mit den Fehlerdetails verknüpft ist. Diese
            Zeichenfolge enthält einen standardisierten Fehlercode zur Referenz.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Kontext zur Fehlerbedingung, dargestellt als Objekt, bei dem jeder
            Schlüssel ein Kontextname und der Wert ein Array von Zeichenfolgen
            mit weiteren Details ist.
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: >-
            Der Name des Feldes oder Parameters, in dem der Fehler gefunden
            wurde. Diese Zeichenfolge hilft, die Fehlerquelle zu identifizieren.
        message:
          type: string
          description: >-
            Eine für Menschen lesbare Nachricht mit einer Beschreibung des
            Fehlers und ggf. Abhilfemaßnahmen. Dies ist ein Pflichtfeld.
        subCategory:
          type: string
          description: >-
            Eine spezifische Kategorie, die detailliertere Informationen zum
            Fehler enthält. Diese Zeichenfolge hilft, den Fehler weiter zu
            klassifizieren.
  responses:
    Error:
      description: An error occurred.
      content:
        '*/*':
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.hubspot.com/oauth/authorize
          tokenUrl: https://api.hubapi.com/oauth/v1/token
          scopes:
            developers-read: ''
            developers-write: ''
            private-apps-read: ''
            private-apps-write: ''
            webhooks-journal-data-access: ''
            webhooks-journal-snapshot-management: ''
            webhooks-journal-subscription-management: ''
            webhooks-journal-subscription-read: ''

````