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

# Create an event subscription

> Créer un nouvel abonnement aux événements pour l'application spécifiée.

export const SupportedProducts = ({marketing, sales, service, cms, marketingLevel, salesLevel, serviceLevel, cmsLevel}) => {
  const translations = {
    header: "Produits pris en charge",
    description: "Exige l'un des produits suivants ou un produit supérieur.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Gratuit",
      starter: "Starter",
      professional: "Pro",
      enterprise: "Entreprise"
    }
  };
  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/2026-03/{appId}/subscriptions
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/2026-03/{appId}/subscriptions:
    post:
      tags:
        - Basic
      summary: Créer un abonnement à un événement
      description: Créer un nouvel abonnement aux événements pour l'application spécifiée.
      operationId: post-/webhooks/2026-03/{appId}/subscriptions_create
      parameters:
        - name: appId
          in: path
          description: L'identifiant de l'application.
          required: true
          style: simple
          explode: false
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionCreateRequest'
        required: true
      responses:
        '201':
          description: successful operation
          headers:
            Location:
              description: URL of the newly created resource
              style: simple
              explode: false
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionResponse'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - developers-write
        - oauth2:
            - private-apps-write
components:
  schemas:
    SubscriptionCreateRequest:
      required:
        - active
        - eventType
      type: object
      properties:
        active:
          type: boolean
          description: Un booléen indiquant si l'abonnement est actif.
        eventType:
          type: string
          description: >-
            Une chaîne représentant le type d'événement auquel s'abonner. Les
            valeurs valides incluent diverses modifications de propriétés,
            créations, suppressions, fusions, restaurations, modifications
            d'associations et achèvements d'événements.
          enum:
            - company.associationChange
            - company.creation
            - company.deletion
            - company.merge
            - company.propertyChange
            - company.restore
            - contact.associationChange
            - contact.creation
            - contact.deletion
            - contact.merge
            - contact.privacyDeletion
            - contact.propertyChange
            - contact.restore
            - conversation.creation
            - conversation.deletion
            - conversation.newMessage
            - conversation.privacyDeletion
            - conversation.propertyChange
            - deal.associationChange
            - deal.creation
            - deal.deletion
            - deal.merge
            - deal.propertyChange
            - deal.restore
            - event.completed
            - line_item.associationChange
            - line_item.creation
            - line_item.deletion
            - line_item.merge
            - line_item.propertyChange
            - line_item.restore
            - object.associationChange
            - object.creation
            - object.deletion
            - object.merge
            - object.propertyChange
            - object.restore
            - product.creation
            - product.deletion
            - product.merge
            - product.propertyChange
            - product.restore
            - ticket.associationChange
            - ticket.creation
            - ticket.deletion
            - ticket.merge
            - ticket.propertyChange
            - ticket.restore
        eventTypeName:
          type: string
          description: >-
            Une chaîne fournissant un nom lisible par l'homme pour le type
            d'événement.
        objectTypeId:
          type: string
          description: Une chaîne représentant l'ID du type d'objet associé à l'abonnement.
        propertyName:
          type: string
          description: >-
            Une chaîne indiquant le nom de propriété spécifique lié au type
            d'événement, le cas échéant.
    SubscriptionResponse:
      required:
        - active
        - createdAt
        - eventType
        - id
      type: object
      properties:
        active:
          type: boolean
          description: Un booléen indiquant si l'abonnement est actuellement actif.
        createdAt:
          type: string
          description: La date et l'heure de création de l'abonnement, au format ISO 8601.
          format: date-time
        eventType:
          type: string
          description: >-
            Le type d'événement qui déclenche l'abonnement. Les valeurs valides
            incluent diverses modifications de propriétés, créations,
            suppressions, fusions, restaurations et modifications d'associations
            pour différents objets HubSpot.
          enum:
            - company.associationChange
            - company.creation
            - company.deletion
            - company.merge
            - company.propertyChange
            - company.restore
            - contact.associationChange
            - contact.creation
            - contact.deletion
            - contact.merge
            - contact.privacyDeletion
            - contact.propertyChange
            - contact.restore
            - conversation.creation
            - conversation.deletion
            - conversation.newMessage
            - conversation.privacyDeletion
            - conversation.propertyChange
            - deal.associationChange
            - deal.creation
            - deal.deletion
            - deal.merge
            - deal.propertyChange
            - deal.restore
            - event.completed
            - line_item.associationChange
            - line_item.creation
            - line_item.deletion
            - line_item.merge
            - line_item.propertyChange
            - line_item.restore
            - object.associationChange
            - object.creation
            - object.deletion
            - object.merge
            - object.propertyChange
            - object.restore
            - product.creation
            - product.deletion
            - product.merge
            - product.propertyChange
            - product.restore
            - ticket.associationChange
            - ticket.creation
            - ticket.deletion
            - ticket.merge
            - ticket.propertyChange
            - ticket.restore
        eventTypeName:
          type: string
          description: Le nom du type d'événement pour l'abonnement.
        id:
          type: string
          description: >-
            L'identifiant unique de l'abonnement. Il s'agit d'un entier formaté
            en int64.
        objectTypeId:
          type: string
          description: >-
            L'identifiant du type d'objet associé à l'abonnement. Il s'agit
            d'une chaîne de caractères.
        propertyName:
          type: string
          description: >-
            Le nom de la propriété associée à l'événement d'abonnement, le cas
            échéant.
        updatedAt:
          type: string
          description: >-
            La date et l'heure de la dernière mise à jour de l'abonnement, au
            format ISO 8601.
          format: date-time
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: La catégorie d'erreur.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Contexte de la condition d'erreur, représenté sous la forme d'un
            objet avec des propriétés supplémentaires.
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Un identifiant unique pour la requête, formaté comme un UUID.
            Celui-ci doit être inclus dans tous les rapports d'erreur ou tickets
            d'assistance.
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: >-
            Un tableau fournissant des informations supplémentaires sur
            l'erreur, chaque élément étant un objet ErrorDetail.
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Une carte des noms de liens vers les URI associées contenant de la
            documentation sur l'erreur ou les étapes de correction recommandées.
            La carte est représentée sous forme d'objet avec des propriétés de
            chaîne.
        message:
          type: string
          description: >-
            Un message lisible par l'utilisateur décrivant l'erreur ainsi que
            les mesures correctives à prendre, le cas échéant. Il s'agit d'une
            chaîne de caractères.
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Une catégorie spécifique qui contient des détails plus précis sur
            l'erreur, représentée sous forme de chaîne de caractères.
      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: >-
            Le code de statut associé au détail de l'erreur. Cette chaîne
            fournit un code d'erreur standardisé à titre de référence.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Contexte de la condition d'erreur, représenté sous forme d'objet où
            chaque clé est un nom de contexte et la valeur est un tableau de
            chaînes de caractères fournissant des détails supplémentaires.
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: >-
            Le nom du champ ou du paramètre dans lequel l'erreur a été détectée.
            Il s'agit d'une chaîne de caractères qui permet d'identifier la
            source de l'erreur.
        message:
          type: string
          description: >-
            Un message lisible par l'utilisateur décrivant l'erreur ainsi que
            les mesures correctives à prendre, le cas échéant. Ce champ est
            obligatoire.
        subCategory:
          type: string
          description: >-
            Une catégorie spécifique qui contient des détails plus précis sur
            l'erreur. Cette chaîne de caractères permet de mieux classer
            l'erreur.
  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: ''

````