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

# Create or update a subscription

> Crie ou atualize uma assinatura existente especificando os campos e formatos dos eventos que você precisa monitorar. A documentação completa sobre os tipos de assinatura possíveis pode ser encontrada na página de visão geral da documentação. 

export const SupportedProducts = ({marketing, sales, service, cms, marketingLevel, salesLevel, serviceLevel, cmsLevel}) => {
  const translations = {
    header: "Produtos suportados",
    description: "Requer um dos seguintes produtos ou superior.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Grátis",
      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: Fazer upsert de assinatura
      description: >-
        Crie ou atualize uma assinatura existente especificando os campos e
        formatos dos eventos que você precisa monitorar. A documentação completa
        sobre os tipos de assinatura possíveis pode ser encontrada na página de
        visão geral da documentação. 
      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: >-
            Um objeto que contém substituições de ação, em que cada chave é uma
            ação e o valor é um objeto ActionOverrideRequest.
        actions:
          type: array
          description: >-
            Uma lista de ações que acionam a assinatura. Os valores possíveis
            incluem "CREATE", "UPDATE", "DELETE", "MERGE", "RESTORE",
            "ASSOCIATION_ADDED", "ASSOCIATION_REMOVED", "SNAPSHOT",
            "APP_INSTALL", "APP_UNINSTALL", "ADDED_TO_LIST", "REMOVED_FROM_LIST"
            e "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: >-
            O identificador exclusivo do aplicativo associado à assinatura. É um
            número inteiro formatado como int64.
          format: int64
        associatedObjectTypeIds:
          type: array
          description: Uma lista de IDs de tipo de objeto associados. Cada ID é uma string.
          items:
            type: string
        createdAt:
          type: string
          description: A data e hora em que a assinatura foi criada, no formato ISO 8601.
          format: date-time
        createdBy:
          type: integer
          description: >-
            O ID do usuário que criou a assinatura. É um número inteiro
            formatado como int64.
          format: int64
        deletedAt:
          type: string
          description: >-
            A data e a hora em que a assinatura foi excluída, no formato ISO
            8601, se aplicável.
          format: date-time
        id:
          type: integer
          description: >-
            O identificador exclusivo da assinatura. É um número inteiro
            formatado como int64.
          format: int64
        listIds:
          type: array
          description: >-
            Uma lista de IDs de lista associados à assinatura. Cada ID é um
            número inteiro formatado como int64.
          items:
            type: integer
            format: int64
        objectIds:
          type: array
          description: >-
            Uma lista de IDs de objeto associados à assinatura. Cada ID é um
            número inteiro formatado como int64.
          items:
            type: integer
            format: int64
        objectTypeId:
          type: string
          description: >-
            O identificador para o tipo de objeto associado à assinatura. É uma
            string.
        portalId:
          type: integer
          description: >-
            O identificador exclusivo do portal associado à assinatura. É um
            número inteiro formatado como int64.
          format: int64
        properties:
          type: array
          description: >-
            Uma lista de nomes de propriedades associados à assinatura. Cada
            propriedade é uma string.
          items:
            type: string
        subscriptionType:
          type: string
          description: >-
            O tipo de assinatura, que pode ser um dos seguintes: "OBJECT",
            "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP" ou
            "GDPR_PRIVACY_DELETION".
          enum:
            - APP_LIFECYCLE_EVENT
            - ASSOCIATION
            - EVENT
            - GDPR_PRIVACY_DELETION
            - LIST_MEMBERSHIP
            - OBJECT
        updatedAt:
          type: string
          description: >-
            A data e a hora da última atualização da assinatura, no formato ISO
            8601.
          format: date-time
    ObjectSubscriptionUpsertRequest:
      required:
        - actions
        - objectIds
        - objectTypeId
        - portalId
        - properties
        - subscriptionType
      type: object
      properties:
        actions:
          type: array
          description: >-
            Uma matriz de strings que especifica as ações que acionam o gatilho
            da assinatura. Os gatilhos válidos incluem "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: >-
            Uma matriz de números inteiros que representa os IDs dos objetos
            envolvidos na assinatura. Vazio significa acompanhar todos os
            objectIds.
          items:
            type: integer
            format: int64
        objectTypeId:
          type: string
          description: >-
            Uma string que identifica o tipo de objeto para o qual a assinatura
            está sendo criada ou atualizada. Por exemplo, "0-1" para contatos.
        portalId:
          type: integer
          description: >-
            Um número inteiro que representa o ID do portal associado à
            assinatura.
          format: int64
        properties:
          type: array
          description: >-
            Uma matriz de strings listando as propriedades dos objetos que são
            relevantes para a assinatura. Vazio significa acompanhar todas as
            propriedades.
          items:
            type: string
        subscriptionType:
          type: string
          description: >-
            Uma string que indica o tipo de assinatura. O valor padrão e único
            válido é 'OBJETO'.
          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: >-
            Uma matriz de strings que especifica as ações que acionam a
            assinatura. As ações válidas incluem "ASSOCIATION_ADDED" e
            "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: >-
            Uma matriz de strings que representa os identificadores de tipo dos
            objetos associados envolvidos na assinatura. Se presente, os eventos
            somente serão acionados se objectTypeId TO na associação estiver
            incluído nesta matriz.  
          items:
            type: string
        objectIds:
          type: array
          description: >-
            Uma matriz de números inteiros que representa os identificadores
            exclusivos dos objetos envolvidos na assinatura.
          items:
            type: integer
            format: int64
        objectTypeId:
          type: string
          description: >-
            Uma string que representa o identificador de tipo do objeto
            envolvido na assinatura. Por exemplo, "0-1" para Contatos. Isso
            corresponde ao lado FROM da associação. Um objectTypeId de "0-1"
            corresponderia a uma alteração de associação CONTACT_TO_COMPANY.  
        portalId:
          type: integer
          description: >-
            Um número inteiro que representa o identificador exclusivo do portal
            da HubSpot.
          format: int64
        subscriptionType:
          type: string
          description: >-
            Uma string que indica o tipo de assinatura, que é "ASSOCIATION" por
            padrão.
          default: ASSOCIATION
          enum:
            - ASSOCIATION
      x-hubspot-sub-type-impl: true
    AppLifecycleEventSubscriptionUpsertRequest:
      required:
        - eventTypeId
        - properties
        - subscriptionType
      type: object
      properties:
        eventTypeId:
          type: string
          description: >-
            Uma string que representa o identificador exclusivo para o tipo de
            evento ao qual a assinatura se refere. Este valor corresponde a uma
            classificação de evento interna no HubSpot. 


            4-1909196: Evento de instalação de aplicativo

            4-1916193: Evento de desinstalação de aplicativo
        properties:
          type: array
          description: >-
            Uma matriz de strings que especifica as propriedades do evento
            associado à assinatura.
          items:
            type: string
        subscriptionType:
          type: string
          description: >-
            Uma string que indica o tipo de assinatura, que é
            "APP_LIFECYCLE_EVENT" por padrão.
          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: >-
            Uma matriz de strings que especifica as ações que acionam o gatilho
            da assinatura. As ações válidas incluem "ADDED_TO_LIST" e
            "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: >-
            Uma matriz de números inteiros que representam os IDs das listas
            envolvidas na assinatura. Vazio significa incluir todas as listas.
          items:
            type: integer
            format: int64
        objectIds:
          type: array
          description: >-
            Uma matriz de números inteiros que representa os IDs dos objetos
            associados à assinatura. Vazio significa ouvir todos os objetosIds.
          items:
            type: integer
            format: int64
        portalId:
          type: integer
          description: >-
            Um número inteiro que representa o ID do portal onde a assinatura
            está sendo gerenciada.
          format: int64
        subscriptionType:
          type: string
          description: >-
            Uma string que indica o tipo de assinatura. O valor padrão e único
            válido é "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: >-
            Uma matriz de strings que especifica as ações que acionam a
            assinatura. A ação válida é "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
        objectTypeId:
          type: string
          description: >-
            Uma string que representa o identificador exclusivo para o tipo de
            objeto associado à assinatura.
        portalId:
          type: integer
          description: >-
            Um número inteiro que representa o identificador exclusivo do portal
            da HubSpot que está sendo monitorado quanto a alterações. 
          format: int64
        subscriptionType:
          type: string
          description: >-
            Uma string que indica o tipo de assinatura. GDPR_PRIVACY_DELETION é
            a única opção válida para
            GdprPrivacyDeletionSubscriptionUpsertRequest. 
          default: GDPR_PRIVACY_DELETION
          enum:
            - GDPR_PRIVACY_DELETION
      x-hubspot-sub-type-impl: true
    ActionOverrideRequest:
      type: object
      properties:
        associatedObjectTypeIds:
          type: array
          description: >-
            Uma matriz de strings, cada uma representando um ID de tipo de
            objeto associado relevante para a substituição da ação.
          items:
            type: string
        listIds:
          type: array
          description: >-
            Uma matriz de números inteiros que representa os IDs de lista
            associados à substituição da ação. Os números inteiros estão no
            formato int64.
          items:
            type: integer
            format: int64
        objectIds:
          type: array
          description: >-
            Uma matriz de números inteiros, cada um representando um ID de
            objeto para o qual a substituição da ação é aplicável. Os números
            inteiros estão no formato int64.
          items:
            type: integer
            format: int64
        properties:
          type: array
          description: >-
            Uma matriz de strings que representam as propriedades a serem
            substituídas na ação. Cada string corresponde a um nome de
            propriedade.
          items:
            type: string
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: A categoria de erro.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Contexto sobre a condição de erro, representado como um objeto com
            propriedades adicionais.
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Um identificador exclusivo para a solicitação, formatado como um
            UUID. Deve ser incluído em todos os relatórios de erro ou tickets de
            suporte.
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: >-
            Uma matriz que fornece mais informações sobre o erro, com cada item
            sendo um objeto ErrorDetail.
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Um mapa de nomes de links para URIs associados que contêm
            documentação sobre o erro ou etapas de correção recomendadas,
            representado como um objeto com propriedades de string.
        message:
          type: string
          description: >-
            Uma mensagem legível por humanos que descreve o erro, juntamente com
            as etapas de correção, quando apropriado. É uma string.
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Uma categoria específica que contém detalhes mais específicos sobre
            o erro, representada como uma string.
      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: >-
            O código de status associado ao detalhe do erro. Esta string fornece
            um código de erro padronizado para referência.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Contexto sobre a condição de erro, representado como um objeto em
            que cada chave é um nome de contexto e o valor é uma matriz de
            strings que fornecem mais detalhes.
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: >-
            O nome do campo ou parâmetro em que o erro foi encontrado. É uma
            string que ajuda a identificar a origem do erro.
        message:
          type: string
          description: >-
            Uma mensagem legível por humanos que descreve o erro, juntamente com
            as etapas de correção, quando apropriado. Este é um campo
            obrigatório.
        subCategory:
          type: string
          description: >-
            Uma categoria específica que contém detalhes mais específicos sobre
            o erro. Esta string ajuda a classificar ainda mais o erro.
  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: ''

````