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

# API du CRM | Transactions

> Une transaction stocke des données sur une transaction en cours. Les points de terminaison des transactions vous permettent de gérer ces données et de les synchroniser entre HubSpot et d'autres systèmes. 

export const postmanIcon = <svg xmlns="http://www.w3.org/2000/svg" width={25} height={25} preserveAspectRatio="xMidYMid" viewBox="0 0 256 256">
    <path fill="#FF6C37" d="M254.953 144.253c8.959-70.131-40.569-134.248-110.572-143.206C74.378-7.912 10.005 41.616 1.047 111.619c-8.959 70.003 40.569 134.248 110.572 143.334 70.131 8.959 134.248-40.569 143.334-110.7Z" />
    <path fill="#FFF" d="m174.2 82.184-54.007 54.007-15.229-15.23c53.11-53.11 58.358-48.503 69.236-38.777Z" />
    <path fill="#FF6C37" d="M120.193 137.47c-.384 0-.64-.128-.895-.384l-15.358-15.229a1.237 1.237 0 0 1 0-1.792c54.007-54.006 59.638-48.887 71.028-38.649.255.256.383.512.383.896s-.128.64-.383.896l-54.007 53.878c-.128.256-.512.384-.768.384Zm-13.437-16.509 13.437 13.438 52.087-52.087c-9.47-8.446-15.87-11.006-65.524 38.65Z" />
    <path fill="#FFF" d="m135.679 151.676-14.718-14.718 54.007-54.006c14.46 14.59-7.167 38.265-39.29 68.724Z" />
    <path fill="#FF6C37" d="M135.679 152.956c-.384 0-.64-.128-.896-.384l-14.718-14.718c-.256-.256-.256-.512-.256-.896s.128-.64.384-.895L174.2 82.056a1.237 1.237 0 0 1 1.791 0 15.58 15.58 0 0 1 4.991 11.902c-.256 14.206-16.38 32.25-44.28 58.614-.383.256-.767.384-1.023.384Zm-12.926-15.998c8.19 8.319 11.646 11.646 12.926 12.926 21.5-20.476 42.36-41.464 42.488-55.926.128-3.327-1.152-6.655-3.327-9.214l-52.087 52.214Z" />
    <path fill="#FFF" d="m105.22 121.345 10.878 10.878c.256.256.256.512 0 .768-.128.128-.128.128-.256.128l-22.524 4.863c-1.152.128-2.175-.64-2.431-1.791-.128-.64.128-1.28.512-1.664l13.053-13.054c.256-.256.64-.384.768-.128Z" />
    <path fill="#FF6C37" d="M92.934 139.262c-1.92 0-3.327-1.536-3.327-3.455 0-.896.384-1.792 1.024-2.432l13.053-13.054c.768-.64 1.792-.64 2.56 0l10.878 10.878c.768.64.768 1.792 0 2.56-.256.256-.512.384-.896.512l-22.524 4.863c-.256 0-.512.128-.768.128Zm11.902-16.51-12.542 12.543c-.256.256-.383.64-.128 1.024.128.383.512.511.896.383l21.116-4.607-9.342-9.342Z" />
    <path fill="#FFF" d="M202.739 52.238c-8.191-7.935-21.373-7.679-29.307.64-7.935 8.318-7.679 21.372.64 29.306A20.678 20.678 0 0 0 199.155 85l-14.59-14.59 18.174-18.172Z" />
    <path fill="#FF6C37" d="M188.405 89.223c-12.158 0-22.012-9.854-22.012-22.012 0-12.158 9.854-22.012 22.012-22.012 5.631 0 11.134 2.176 15.23 6.143.255.256.383.512.383.896s-.128.64-.384.895L186.357 70.41l13.566 13.566c.512.512.512 1.28 0 1.792l-.256.256c-3.327 2.047-7.295 3.199-11.262 3.199Zm0-41.337c-10.75 0-19.452 8.703-19.324 19.453 0 10.75 8.702 19.452 19.452 19.324 2.944 0 5.887-.64 8.575-2.047l-13.438-13.31c-.256-.256-.384-.512-.384-.896s.128-.64.384-.895l17.149-17.15c-3.456-2.943-7.807-4.479-12.414-4.479Z" />
    <path fill="#FFF" d="m203.122 52.622-.255-.256-18.301 18.044 14.461 14.462c1.408-.896 2.816-1.92 3.967-3.072a20.51 20.51 0 0 0 .128-29.178Z" />
    <path fill="#FF6C37" d="M199.155 86.28c-.384 0-.64-.128-.896-.384l-14.589-14.59c-.256-.256-.384-.512-.384-.896s.128-.64.384-.895l18.173-18.173a1.237 1.237 0 0 1 1.791 0l.384.256c8.575 8.574 8.575 22.396.128 31.098-1.28 1.28-2.687 2.432-4.223 3.328-.384.128-.64.256-.768.256Zm-12.798-15.87 12.926 12.926c1.024-.64 2.048-1.536 2.816-2.304 7.294-7.294 7.678-19.196.64-26.875L186.357 70.41Z" />
    <path fill="#FFF" d="M176.375 84.488a7.879 7.879 0 0 0-11.134 0l-48.247 48.247 8.063 8.063 51.062-44.792c3.328-2.816 3.584-7.807.768-11.134-.256-.128-.384-.256-.512-.384Z" />
    <path fill="#FF6C37" d="M124.929 142.077c-.384 0-.64-.128-.896-.383l-8.063-8.063a1.237 1.237 0 0 1 0-1.792l48.247-48.247a9.115 9.115 0 0 1 12.926 0 9.115 9.115 0 0 1 0 12.926l-.384.384-51.063 44.792c-.128.255-.384.383-.767.383Zm-6.143-9.342 6.27 6.271 50.167-44.024c2.816-2.304 3.072-6.527.768-9.342-2.303-2.816-6.526-3.072-9.342-.768-.128.128-.256.256-.512.384l-47.351 47.48Z" />
    <path fill="#FFF" d="M80.009 187.637c-.512.256-.768.768-.64 1.28l2.175 9.214c.512 1.28-.256 2.816-1.663 3.2-1.024.384-2.176 0-2.816-.768l-14.077-13.95 45.943-45.943 15.87.256 10.75 10.75c-2.56 2.175-18.045 17.149-55.542 35.961Z" />
    <path fill="#FF6C37" d="M78.985 202.61c-1.024 0-2.048-.383-2.688-1.151l-13.95-13.95c-.255-.256-.383-.512-.383-.896 0-.383.128-.64.384-.895l45.944-45.944c.256-.256.64-.384.895-.384l15.87.256c.383 0 .64.128.895.384l10.75 10.75c.256.256.384.64.384 1.024s-.128.64-.512.896l-.895.767c-13.566 11.902-31.995 23.804-54.902 35.194l2.175 9.086c.384 1.664-.384 3.456-1.92 4.352-.767.384-1.407.512-2.047.512Zm-14.078-15.997 13.182 13.054c.384.64 1.152.896 1.792.512.64-.384.896-1.152.512-1.792l-2.176-9.214c-.256-1.152.256-2.176 1.28-2.688 22.652-11.39 40.952-23.163 54.39-34.81l-9.47-9.47-14.718-.256-44.792 44.664Z" />
    <path fill="#FFF" d="m52.11 197.62 11.006-11.007 16.38 16.381-26.107-1.791c-1.151-.128-1.92-1.152-1.791-2.304 0-.512.128-1.024.512-1.28Z" />
    <path fill="#FF6C37" d="m79.497 204.146-26.236-1.791c-1.92-.128-3.199-1.792-3.071-3.712.128-.768.384-1.535 1.024-2.047L62.22 185.59a1.237 1.237 0 0 1 1.792 0l16.38 16.38c.385.385.512.897.257 1.408-.256.512-.64.768-1.152.768Zm-16.381-15.74-10.11 10.11c-.384.255-.384.895 0 1.151.127.128.255.256.511.256l22.652 1.536-13.053-13.054ZM104.452 146.557c-.768 0-1.28-.64-1.28-1.28 0-.384.128-.64.384-.896l12.414-12.414a1.237 1.237 0 0 1 1.792 0l8.062 8.063c.384.384.512.768.384 1.28-.128.384-.512.767-1.023.895l-20.477 4.352h-.256Zm12.414-11.902-8.446 8.446 13.821-2.943-5.375-5.503Z" />
    <path fill="#FFF" d="m124.8 140.926-14.077 3.071c-1.024.256-2.048-.384-2.303-1.408-.128-.64 0-1.28.511-1.791l7.807-7.807 8.063 7.935Z" />
    <path fill="#FF6C37" d="M110.467 145.277a3.168 3.168 0 0 1-3.2-3.2c0-.895.385-1.663.897-2.303l7.806-7.807a1.237 1.237 0 0 1 1.792 0l8.062 8.063c.384.384.512.768.384 1.28-.128.384-.512.767-1.023.895l-14.078 3.072h-.64Zm6.399-10.622-6.91 6.91c-.257.257-.257.512-.129.768s.384.384.768.384l11.774-2.56-5.503-5.502ZM203.25 64.907c-.256-.767-1.151-1.151-1.92-.895-.767.255-1.151 1.151-.895 1.92 0 .127.128.255.128.383.768 1.536.512 3.455-.512 4.863-.512.64-.384 1.536.128 2.048.64.512 1.536.384 2.048-.256 1.92-2.432 2.303-5.503 1.023-8.063Z" />
  </svg>;

export const ScopesList = ({scopes = [], description = "Cette API requiert l'une des portées suivantes :"}) => {
  if (!scopes || scopes.length === 0) {
    return null;
  }
  const sortedScopes = scopes.sort((a, b) => a.localeCompare(b));
  return <div>
      <div className="text-sm mb-2">{description}</div>
      <div>
        {sortedScopes.map((scope, index) => <div key={index}>
            <code>
              <span className="text-xs">{scope}</span>
            </code>
          </div>)}
      </div>
    </div>;
};

<Card title="Run in Postman" href="https://app.getpostman.com/run-collection/8b5f74a661b06f5a54bd" icon={postmanIcon} horizontal={true} />

<RelatedApiLink />

<Accordion title="Exigences de portée">
  <ScopesList
    scopes={[
  'crm.objects.deals.read',
  'crm.objects.deals.write'
]}
  />
</Accordion>

Dans HubSpot, les transactions représentent des transactions avec des contacts ou des entreprises. Les transactions sont suivies tout au long de votre processus de vente via des [phases de pipeline](https://knowledge.hubspot.com/fr/object-settings/set-up-and-customize-pipelines) jusqu'à ce qu'elles soient gagnées ou perdues. Les points de terminaison des transactions vous permettent de créer et de gérer des fiches d'informations de transaction ainsi que de synchroniser des données de transaction entre HubSpot et d'autres systèmes.

Découvrez-en davantage sur les API d'objets, de fiches d'informations, de propriétés et d'associations dans le [guide Comprendre le CRM](/docs/guides/crm/understanding-the-crm). Pour plus d'informations générales sur les objets et les fiches d'informations dans HubSpot, [découvrez comment gérer votre base de données CRM](https://knowledge.hubspot.com/fr/get-started/manage-your-crm-database).

## Créer des transactions

Pour créer de nouvelles transactions, effectuez une requête `POST` à `/crm/v3/objects/deals`.

Dans le corps de la requête, incluez les données de votre transaction dans un objet `properties`. Vous pouvez également ajouter un objet `associations` pour associer votre nouvelle transaction à des fiches d'informations existantes (par exemple, des contacts ou des entreprises) ou à des activités (par exemple, des réunions ou des notes).

### Propriétés

Les détails de la transaction sont stockés dans des propriétés de transaction. HubSpot fournit un ensemble de [propriétés de transaction par défaut](https://knowledge.hubspot.com/fr/properties/hubspots-default-deal-properties), mais vous pouvez également [créer des propriétés personnalisées](https://knowledge.hubspot.com/fr/properties/create-and-edit-properties).

Lorsque vous créez une nouvelle transaction, vous devez inclure les propriétés suivantes dans la requête : `dealname`, `dealstage` et, si vous disposez de plusieurs pipelines, `pipeline`. Si aucun pipeline n'est spécifié, le pipeline par défaut sera utilisé.

Pour afficher toutes les propriétés disponibles, vous pouvez récupérer une liste des propriétés de transactions de votre compte en effectuant une requête `GET` à `/crm/v3/properties/deals`. Découvrez-en davantage sur l'[API des propriétés](/docs/api-reference/crm-properties-v3/guide).

<Warning>
  ### Remarque :

  Vous devez utiliser l'ID interne d'une phase de transaction ou d'un pipeline lors de la création d'une transaction via l'API. L'ID interne sera également retourné lorsque vous récupérerez des transactions via l'API. Vous pouvez trouver l'ID interne d'une phase de transaction ou d'un pipeline dans les [paramètres de votre pipeline de transactions.](https://knowledge.hubspot.com/fr/object-settings/set-up-and-customize-pipelines#edit-or-delete-pipelines)
</Warning>

Par exemple, pour créer une nouvelle transaction, votre requête peut ressembler à ce qui suit :

```json theme={null}
{
  "properties": {
    "amount": "1500.00",
    "closedate": "2019-12-07T16:50:06.678Z",
    "dealname": "New deal",
    "pipeline": "default",
    "dealstage": "contractsent",
    "hubspot_owner_id": "910901",
    "hs_all_collaborator_owner_ids": ";12345678;9101112"
  }
}
```

### Associations

Lorsque vous créez une nouvelle transaction, vous pouvez également associer la transaction à des [fiches d'informations](https://knowledge.hubspot.com/fr/records/associate-records) ou [activités](https://knowledge.hubspot.com/fr/records/associate-activities-with-records) existantes dans un objet `associations`. Par exemple, pour associer une nouvelle transaction à un contact et une entreprise existants, votre requête ressemblerait à ce qui suit :

```json theme={null}
{
  "properties": {
    "amount": "1500.00",
    "closedate": "2019-12-07T16:50:06.678Z",
    "dealname": "New deal",
    "pipeline": "default",
    "dealstage": "contractsent",
    "hubspot_owner_id": "910901"
  },
  "associations": [
    {
      "to": {
        "id": 201
      },
      "types": [
        {
          "associationCategory": "HUBSPOT_DEFINED",
          "associationTypeId": 5
        }
      ]
    },
    {
      "to": {
        "id": 301
      },
      "types": [
        {
          "associationCategory": "HUBSPOT_DEFINED",
          "associationTypeId": 3
        }
      ]
    }
  ]
}
```

Dans l'objet `associations`, vous devez ajouter les éléments suivants :

| Paramètre | Description |
| - | - |
| `to` | La fiche d'informations ou l'activité à laquelle vous souhaitez associer la transaction, en fonction de sa valeur unique `id`. |
| `types` | Le type d'association entre la transaction et la fiche d'informations/l'activité. Inclut `associationCategory` et `associationTypeId`. Les ID de types d'association par défaut sont répertoriés [ici](/docs/api-reference/crm-associations-v4/guide#association-type-id-values), ou vous pouvez récupérer la valeur des types d'associations personnalisés (c'est-à-dire les libellés) via l'[API des associations](/docs/api-reference/crm-associations-v4/guide#retrieve-association-types). |

## Récupérer des transactions

Vous pouvez récupérer des transactions individuellement ou par lots.

* Pour récupérer une transaction individuelle, effectuez une requête `GET` à `/crm/v3/objects/deals/{dealId}`.
* Pour demander une liste de toutes les transactions, effectuez une requête `GET` à `/crm/v3/objects/deals`.

Pour ces points de terminaison, vous pouvez inclure les paramètres suivants dans l'URL de la requête :

| Paramètre | Description |
| - | - |
| `properties` | Une liste séparée par des virgules des propriétés à renvoyer dans la réponse. Si la transaction demandée n'a pas de valeur pour une propriété, elle n'apparaîtra pas dans la réponse. |
| `propertiesWithHistory` | Une liste séparée par des virgules des propriétés actuelles et historiques à renvoyer dans la réponse. Si la transaction demandée n'a pas de valeur pour une propriété, elle n'apparaîtra pas dans la réponse. |
| `associations` | Une liste séparée par des virgules des objets pour lesquels récupérer les ID associés. Les associations spécifiées qui n'existent pas ne seront pas renvoyées dans la réponse. Découvrez-en davantage sur l'[API des associations.](/docs/api-reference/crm-associations-v4/guide) |

* Pour récupérer un lot de transactions spécifiques par ID de fiche d'informations ou selon une [propriété d'identifiant unique personnalisée](/docs/api-reference/crm-properties-v3/guide#create-unique-identifier-properties), effectuez une requête `POST` à `crm/v3/objects/deals/batch/read`.
  * Le point de terminaison du lot <u>ne peut pas</u> récupérer les associations. Découvrez comment lire par lots les associations avec l'API [des associations](/docs/api-reference/crm-associations-v4/guide).
  * Pour récupérer les transactions en fonction d'une [propriété d'identification unique](/docs/api-reference/crm-properties-v3/guide#create-unique-identifier-properties) personnalisée plutôt que de l'ID de la transaction, incluez le paramètre `idProperty` dans le corps de la requête afin de spécifier le nom de la propriété. Ensuite, dans le tableau `inputs`, incluez les valeurs de la propriété de l'identifiant unique plutôt que l'ID.

Par exemple, pour récupérer un lot de transactions, votre requête peut ressembler à ce qui suit :

<CodeGroup>
  ```text get by id.txt theme={null}
  {
  "properties": ["dealname", "dealstage", "pipeline"],
  "inputs": [
  {
  "id": "7891023"
  },
  {
  "id": "987654"
  }
  ]
  }
  ```

  ```text get by unique property.txt theme={null}
  {
  "properties": ["dealname", "dealstage", "pipeline"],
  "idProperty": "uniqueordernumber",
  "inputs": [
  {
  "id": "0001111"
  },
  {
  "id": "0001112"
  }
  ]
  }
  ```
</CodeGroup>

Pour récupérer les transactions contenant les valeurs actuelles et historiques d'une propriété spécifique, vous pouvez inclure le paramètre `propertiesWithHistory` dans le corps de la requête, comme indiqué ci-dessous.

```json theme={null}
{
  "propertiesWithHistory": ["dealstage"],
  "inputs": [
    {
      "id": "7891023"
    },
    {
      "id": "987654"
    }
  ]
}
```

## Mettre à jour des transactions

Vous pouvez mettre à jour des transactions individuellement ou par lots. Pour les transactions existantes, l'ID de transaction est une valeur unique par défaut que vous pouvez utiliser pour mettre à jour la transaction via l'API, mais vous pouvez aussi identifier des transactions en utilisant des [propriétés d'identifiant unique personnalisées.](/docs/api-reference/crm-properties-v3/guide#create-unique-identifier-properties)

* Pour mettre à jour une transaction individuelle avec son ID de fiche d'informations, effectuez une requête `PATCH` à `/crm/v3/objects/deals/{dealId}` et incluez les données que vous souhaitez mettre à jour.
* Pour mettre à jour plusieurs transactions, effectuez une requête `POST` dans `/crm/v3/objects/deals/batch/update`. Dans le corps de la requête, incluez un tableau avec les identifiants des transactions et les propriétés que vous souhaitez mettre à jour.

### Associer des transactions existantes à des fiches d'informations ou activités

Pour associer une transaction à d'autres fiches d'informations de CRM ou à une activité, effectuez une requête `PUT` à `/crm/v3/objects/deals/{dealId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`.

<Info>
  Pour récupérer la valeur `associationTypeId`, reportez-vous à [cette liste](/docs/api-reference/crm-associations-v4/guide#association-type-id-values) de valeurs par défaut ou effectuez une requête `GET` à `/crm/v4/associations/{fromObjectType}/{toObjectType}/labels`.
</Info>

Découvrez-en davantage sur l'association de fiches d'informations avec l'[API des associations](/docs/api-reference/crm-associations-v4/guide).

### Supprimer une association

Pour supprimer une association entre une transaction et une fiche d'informations ou une activité, effectuez une requête `DELETE` à l'URL suivante : `/crm/v3/objects/deals/{dealId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`.

## Épingler une activité à une fiche d'informations de transaction

Vous pouvez épingler une activité à une fiche d'informations de transaction via l'API en incluant le paramètre `hs_pinned_engagement_id` dans la requête. Pour la valeur du paramètre, incluez l'ID de l'activité à épingler, qui peut être récupéré via les [API d'engagement](/docs/api-reference/overview). Vous pouvez épingler une activité par fiche d'informations, et l'activité doit déjà être associée à la transaction avant l'épinglage.

Pour définir ou mettre à jour l'activité épinglée d'une transaction, votre requête peut ressembler à :

```json theme={null}
{
  "properties": {
    "hs_pinned_engagement_id": 123456789
  }
}
```

Vous pouvez également créer une transaction, l'associer à une activité existante et épingler l'activité dans la même requête. Par exemple :

```json theme={null}
{
  "properties": {
    "dealname": "New deal",
    "pipelines": "default",
    "dealstage": "contractsent",
    "hs_pinned_engagement_id": 123456789
  },
  "associations": [
    {
      "to": {
        "id": 123456789
      },
      "types": [
        {
          "associationCategory": "HUBSPOT_DEFINED",
          "associationTypeId": 213
        }
      ]
    }
  ]
}
```

## Supprimer des transactions

Vous pouvez supprimer des transactions individuellement ou par lots, ce qui placera la transaction dans la corbeille dans HubSpot. Vous pourrez ensuite [restaurer la transaction dans HubSpot](https://knowledge.hubspot.com/fr/records/restore-deleted-records).

* Pour [supprimer une transaction individuelle](/docs/api-reference/crm-deals-v3/guide#delete-%2Fcrm%2Fv3%2Fobjects%2Fdeals%2F%7Bdealid%7D) avec son ID, effectuez une requête `DELETE` à `/crm/v3/objects/deals/{dealId}`. Aucun corps de requête n'est nécessaire pour cette requête.
* Pour [supprimer des transactions par lots](/docs/api-reference/crm-deals-v3/guide#post-%2Fcrm%2Fv3%2Fobjects%2Fdeals%2Fbatch%2Farchive), effectuez une requête `POST` à `/crm/v3/objects/deals/batch/archive`. Dans le corps de la requête, incluez l'ID de la transaction pour les valeurs `id`, comme indiqué dans l'exemple de corps de requête ci-dessous.

```json theme={null}
{
  "inputs": [
    {
      "id": "123456"
    },
    {
      "id": "7891011"
    },
    {
      "id": "12123434"
    }
  ]
}
```

Pour en savoir plus sur la suppression des transactions, consultez la [documentation de référence](/docs/api-reference/crm-deals-v3/guide#delete-%2Fcrm%2Fv3%2Fobjects%2Fdeals%2F%7Bdealid%7D).
