> ## 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.

# Upsert deal splits

> Créer ou remplacer les répartitions de transactions pour les transactions avec les ID fournis. Les pourcentages de répartition de transactions pour chaque transaction doivent s'additionner à 1,0 (100 %) et peuvent avoir jusqu'à 8 décimales.

> **Supported products**

> **Required Scopes**


## OpenAPI

````yaml specs/2026-03/crm-deal-splits-v2026-03.json POST /deal-splits/2026-03/batch/upsert
openapi: 3.0.1
info:
  title: CRM Deal Splits
  description: Basepom for all HubSpot Projects
  version: 2026-03
  x-hubspot-product-tier-requirements:
    marketing: FREE
    sales: ENTERPRISE
    service: FREE
    cms: FREE
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
  x-hubspot-api-use-case: >-
    When two sales reps work together to close a deal, add a split to the deal
    to reflect that the credit and commission are being shared.
  x-hubspot-introduction: >-
    Use the deal splits API to split existing deals between owners when credit
    and/or commission are shared between them. 
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Batch
paths:
  /deal-splits/2026-03/batch/upsert:
    post:
      tags:
        - Batch
      summary: "Créer ou remplacer les répartitions de transactions pour les transactions avec les ID fournis. Les pourcentages de répartition de transactions pour chaque transaction doivent s'additionner à\_1,0 (100\_%) et peuvent avoir jusqu'à 8\_décimales."
      description: "Créer ou remplacer les répartitions de transactions pour les transactions avec les ID fournis. Les pourcentages de répartition de transactions pour chaque transaction doivent s'additionner à\_1,0 (100\_%) et peuvent avoir jusqu'à 8\_décimales."
      operationId: >-
        post-/deal-splits/2026-03/batch/upsert_/crm/objects/v3/deals/splits/batch/upsert
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicDealSplitsBatchCreateRequest'
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchResponseDealToDealSplits'
        '207':
          description: multiple statuses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchResponseDealToDealSplitsWithErrors'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - crm.dealsplits.read_write
components:
  schemas:
    PublicDealSplitsBatchCreateRequest:
      required:
        - inputs
      type: object
      properties:
        inputs:
          type: array
          description: Un tableau d'entrées de répartition de transactions
          items:
            $ref: '#/components/schemas/PublicDealSplitsCreateRequest'
    BatchResponseDealToDealSplits:
      required:
        - completedAt
        - results
        - startedAt
        - status
      type: object
      properties:
        completedAt:
          type: string
          description: >-
            L'horodatage indiquant la date et l'heure auxquelles l'opération par
            lots a été effectuée, au format date-heure.
          format: date-time
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Une carte des noms de liens vers les URI associés pour des
            ressources ou de la documentation supplémentaires.
        requestedAt:
          type: string
          description: >-
            L'horodatage indiquant la date et l'heure auxquelles l'opération par
            lots a été demandée, au format date-heure.
          format: date-time
        results:
          type: array
          description: >-
            Un tableau d'objets de répartition de transaction par transaction
            représentant les résultats de l'opération par lots.
          items:
            $ref: '#/components/schemas/DealToDealSplits'
        startedAt:
          type: string
          description: >-
            L'horodatage indiquant la date et l'heure auxquelles l'opération par
            lots a commencé, au format date-heure.
          format: date-time
        status:
          type: string
          description: "Statut actuel de l'opération par lots, avec les valeurs possibles suivantes\_: ANNULÉ, TERMINÉ, EN ATTENTE, EN COURS DE TRAITEMENT."
          enum:
            - CANCELED
            - COMPLETE
            - PENDING
            - PROCESSING
    BatchResponseDealToDealSplitsWithErrors:
      required:
        - completedAt
        - results
        - startedAt
        - status
      type: object
      properties:
        completedAt:
          type: string
          description: >-
            L'horodatage indiquant la date et l'heure auxquelles l'opération par
            lots a été effectuée, au format date-heure.
          format: date-time
        errors:
          type: array
          description: >-
            Tableau d'objets d'erreur détaillant les erreurs survenues pendant
            l'opération par lots.
          items:
            $ref: '#/components/schemas/StandardError'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Une carte des noms de liens vers les URI associés pour des
            ressources ou de la documentation supplémentaires.
        numErrors:
          type: integer
          description: Le nombre total d'erreurs rencontrées pendant l'opération par lot.
          format: int32
        requestedAt:
          type: string
          description: >-
            L'horodatage indiquant la date et l'heure auxquelles l'opération par
            lots a été demandée, au format date-heure.
          format: date-time
        results:
          type: array
          description: >-
            Un tableau d'objets de répartition de transaction par transaction
            représentant les résultats de l'opération par lots.
          items:
            $ref: '#/components/schemas/DealToDealSplits'
        startedAt:
          type: string
          description: >-
            L'horodatage indiquant la date et l'heure auxquelles l'opération par
            lots a commencé, au format date-heure.
          format: date-time
        status:
          type: string
          description: "Statut actuel de l'opération par lots, avec les valeurs possibles suivantes\_: ANNULÉ, TERMINÉ, EN ATTENTE, EN COURS DE TRAITEMENT."
          enum:
            - CANCELED
            - COMPLETE
            - PENDING
            - PROCESSING
    PublicDealSplitsCreateRequest:
      required:
        - id
        - splits
      type: object
      properties:
        id:
          type: integer
          description: L'identifiant unique de la transaction.
          format: int64
        splits:
          type: array
          description: >-
            Un tableau d'entrées de répartition de transactions, chacune
            contenant un ID de propriétaire et un pourcentage de la répartition
            de transaction.
          items:
            $ref: '#/components/schemas/PublicDealSplitInput'
    DealToDealSplits:
      required:
        - id
        - splits
      type: object
      properties:
        id:
          type: string
          description: >-
            L'identifiant unique de la transaction associée à la répartition de
            transaction.
        splits:
          type: array
          description: >-
            Un tableau d'objets de répartition des transactions, chacun
            représentant une partie de la transaction attribuée à un
            propriétaire.
          items:
            $ref: '#/components/schemas/SimplePublicObject'
    StandardError:
      required:
        - category
        - context
        - errors
        - links
        - message
        - status
      type: object
      properties:
        category:
          type: string
          description: La catégorie d'erreur
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexte concernant la condition d'erreur
        errors:
          type: array
          description: >-
            Un tableau d'objets ErrorDetail fournissant des informations
            supplémentaires sur l'erreur.
          items:
            $ref: '#/components/schemas/ErrorDetail'
        id:
          type: string
          description: L'ID de l'erreur
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Une carte des noms de liens vers les URI associés contenant de la
            documentation sur l'erreur ou les mesures correctives recommandées
        message:
          type: string
          description: Le message d'erreur
        status:
          type: string
          description: >-
            Un message lisible par la personne décrivant l'erreur ainsi que les
            mesures correctives possibles, le cas échéant
        subCategory:
          type: object
          properties: {}
          description: >-
            Une catégorie spécifique qui contient des détails plus précis sur
            l'erreur
      description: Ye olde error
    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 concernant la condition d'erreur
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Un identifiant unique pour la demande. Incluez cette valeur dans
            tous les rapports d'erreurs ou tickets d'assistance
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: informations supplémentaires à propos de l'erreur
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Une carte des noms de liens vers les URI associés contenant de la
            documentation sur l'erreur ou les mesures correctives recommandées
        message:
          type: string
          description: >-
            Un message lisible par la personne décrivant l'erreur ainsi que les
            mesures correctives possibles, le cas échéant
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Une catégorie spécifique qui contient des détails plus précis sur
            l'erreur
      description: >-
        Représente une réponse d'erreur renvoyée par l'API lorsqu'une opération
        échoue. Ce composant est utilisé dans divers points de terminaison pour
        fournir des informations détaillées sur l'erreur rencontrée.
      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
    PublicDealSplitInput:
      required:
        - ownerId
        - percentage
      type: object
      properties:
        ownerId:
          type: integer
          description: >-
            L'identifiant unique du propriétaire bénéficiant de la répartition
            de transaction.
          format: int32
        percentage:
          type: number
          description: "La part de la transaction attribuée au propriétaire, exprimée en pourcentage. Le pourcentage total de toutes les répartitions d'une transaction doit être égal à 1,0 (100\_%) et peut comporter jusqu'à 8\_décimales."
    SimplePublicObject:
      required:
        - archived
        - createdAt
        - id
        - properties
        - updatedAt
      type: object
      properties:
        archived:
          type: boolean
          description: Un booléen indiquant si cet objet est archivé.
        archivedAt:
          type: string
          description: La date et l'heure d'archivage de cet objet, au format ISO 8601.
          format: date-time
        createdAt:
          type: string
          description: La date et l'heure de création de cet objet, au format ISO 8601.
          format: date-time
        id:
          type: string
          description: >-
            L'identifiant unique de cet objet, représenté sous forme de chaîne
            de caractères.
        objectWriteTraceId:
          type: string
          description: >-
            Un identifiant de chaîne utilisé pour tracer les opérations
            d'écriture sur cet objet.
        properties:
          type: object
          additionalProperties:
            type: string
          description: >-
            Une carte des noms de propriétés et de leurs valeurs, où chaque
            valeur est une chaîne de caractères.
        propertiesWithHistory:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ValueWithTimestamp'
          description: >-
            Une carte des noms de propriétés vers des tableaux de valeurs
            historiques, chacun contenant une valeur et son horodatage associé.
        updatedAt:
          type: string
          description: >-
            La date et l'heure de la dernière mise à jour de cet objet, au
            format ISO 8601.
          format: date-time
        url:
          type: string
          description: Chaîne de caractères représentant l'URL associée à cet objet.
      description: A simple public object.
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: Le code du statut associé au détail de l'erreur
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexte concernant la condition d'erreur
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: Le nom du champ ou du paramètre dans lequel l'erreur a été trouvée.
        message:
          type: string
          description: >-
            Un message lisible par la personne décrivant l'erreur ainsi que les
            mesures correctives possibles, le cas échéant
        subCategory:
          type: string
          description: >-
            Une catégorie spécifique qui contient des détails plus précis sur
            l'erreur
      description: >-
        Représente des informations détaillées sur une erreur survenue dans
        l'API. Ce composant est utilisé pour fournir un contexte et des
        spécificités supplémentaires sur les erreurs, généralement dans le cadre
        d'une réponse d'erreur.
    ValueWithTimestamp:
      required:
        - sourceType
        - timestamp
        - value
      type: object
      properties:
        sourceId:
          type: string
          description: Une chaîne représentant l'identifiant unique de la source.
        sourceLabel:
          type: string
          description: >-
            Une chaîne fournissant une étiquette lisible par l'être humain pour
            la source.
        sourceType:
          type: string
          description: Une chaîne indiquant le type de source d'où provient la valeur.
        timestamp:
          type: string
          description: >-
            Une chaîne au format date-heure indiquant quand la valeur a été
            enregistrée.
          format: date-time
        updatedByUserId:
          type: integer
          description: >-
            Un nombre entier représentant l'ID de l'utilisateur ayant mis à jour
            la valeur pour la dernière fois.
          format: int32
        value:
          type: string
          description: Une chaîne de caractères représentant la valeur principale suivie.
      description: Property model that includes timestamp.
  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:
            crm.dealsplits.read_write: ''

````