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

---
id: 2185e6d4-20cb-4037-b60e-6c848da054f8
---

# CRM API | Fees

> Learn how you can create and manage fees that can be included in invoices and legacy quotes.

export const Tag = ({children, type = 'default', className = ''}) => {
  return <span className={`tag tag-${type} ${className}`.trim()}>
      {children}
    </span>;
};

export const PostmanCard = ({title, collectionId}) => {
  return <div className="card-condensed-cta">
      <Card title={title ? title : "Postman collection"} href={`https://app.getpostman.com/run-collection/${collectionId}`} horizontal={true} cta="Run in Postman" icon={<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>} />
    </div>;
};

export const ScopesList = ({scopes = [], description = "This API requires one of the following scopes:"}) => {
  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>;
};

<PostmanCard collectionId="26126890-c219b56f-eced-444c-aa55-6bfe301aeafb" />

<Accordion title="Scope requirements">
  <ScopesList
    scopes={[
  'crm.objects.line_items.read',
  'crm.objects.line_items.write'
]}
  />
</Accordion>

Use the fees API to create and manage fees that can be included in [invoices](/api-reference/legacy/crm/objects/invoices/guide) and [legacy quotes](/api-reference/legacy/crm/objects/quotes/guide).

Fees are used in conjunction with [discounts](/api-reference/legacy/crm/objects/discounts/guide) and [taxes](/api-reference/legacy/crm/objects/taxes/guide) when determining the pricing totals. Any discounts you associate with your quote will be applied first, followed by associated fees, then any associated taxes.

## Create fees

Fees can be created individually or in batches:

* To create one fee, make a `POST` request to `/crm/v3/objects/fees`.
* To create multiple fees, make a `POST` request to `/crm/v3/objects/fees/batch/create`.

In the request body, include your fee data in a [`properties`](#create-fees-with-property-values) object. You can also add an [`associations`](#create-fees-with-associations) object to associate the fee with existing objects (e.g., invoices, quotes).

<Note>
  For batch create actions, you can enable multi-status errors which tell you which records were successfully created and which were not. Learn more about [setting up multi-status error handling](/api-reference/error-handling#multi-status-errors).
</Note>

### Create fees with property values

When creating a fee, you must include a set of fee properties to store the fee's details.

For example, to create a new fee, your request may look similar to the following:

```json theme={null}
{
  "properties": {
    "hs_label": "Processing fee",
    "hs_type": "FIXED",
    "hs_value": "25"
  }
}
```

The following properties are required when creating a fee:

| Parameter                                   | Type   | Description                                                                                                                                          |
| ------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `hs_label` <Tag type="error">Required</Tag> | String | The label of the fee, displayed in HubSpot.                                                                                                          |
| `hs_type` <Tag type="error">Required</Tag>  | String | The type of the fee (either `PERCENT` or `FIXED`).                                                                                                   |
| `hs_value` <Tag type="error">Required</Tag> | Number | The value of the fee. For a percentage-based fee, the value should be a number between `0` and `100`. For a fixed fee, the value should be a number. |

For example, the following request body would create a 10% fee:

```json theme={null}
{
  "properties": {
    "hs_label": "A percentage-based fee of 10%",
    "hs_type": "PERCENT",
    "hs_value": "10"
  }
}
```

The response will include the created fee with its ID and properties.

```json theme={null}
{
  "id": "512",
  "properties": {
    "hs_label": "A percentage-based fee of 10%",
    "hs_type": "PERCENT",
    "hs_value": "10",
    "hs_createdate": "2024-04-11T20:42:01.734Z",
    "hs_lastmodifieddate": "2024-04-11T20:42:01.734Z",
    "hs_object_id": "512"
  },
  "createdAt": "2024-04-11T20:42:01.734Z",
  "updatedAt": "2024-04-11T20:42:01.734Z",
  "archived": false
}
```

### Create fees with associations

To associate a fee with another object at the time of creation, you can include an `associations` array in the request body. In the `associations` array, include an object for each association you want to create, which will specify the type of object you want to associate the fee with and the type of association.

You can also associate fees with other objects at a later time by [updating the fee's associations](#associate-existing-fees).

The following request body would create a fee and associate it with a quote (ID of `123456`):

```json theme={null}
{
  "properties": {
    "hs_label": "Flat processing fee",
    "hs_type": "FIXED",
    "hs_value": "25"
  },
  "associations": [
    {
      "to": {
        "id": "123456"
      },
      "types": [
        {
          "associationCategory": "HUBSPOT_DEFINED",
          "associationTypeId": 363
        }
      ]
    }
  ]
}
```

| Parameter                                | Type   | Description                                                                                                                                                                                                                                                                                                                                                                                                     |
| ---------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `to` <Tag type="error">Required</Tag>    | Object | The object you want to associate the fee with, specified by its ID.                                                                                                                                                                                                                                                                                                                                             |
| `types` <Tag type="error">Required</Tag> | Array  | The type of association between the fee and the object. This array contains the following fields: `associationCategory` (the [type of association](/api-reference/legacy/crm/associations/associate-records/guide#association-type-id-values), either `HUBSPOT_DEFINED` or `USER_DEFINED`) and `associationTypeId` (a unique identifier to indicate the association type between the fee and the other object). |

### Create a batch of fees

To create multiple fees with one request, make a `POST` request to `/crm/v3/objects/fees/batch/create`.

In the request body, include an `inputs` array with each fee's properties and [associations](#create-fees-with-associations). For example, the following request body would batch create two fees, one fixed fee of \$25 and one percentage-based fee of 5%:

```json theme={null}
{
  "inputs": [
    {
      "properties": {
        "hs_label": "Processing fee",
        "hs_type": "FIXED",
        "hs_value": "25"
      },
      "associations": []
    },
    {
      "properties": {
        "hs_label": "Service fee",
        "hs_type": "PERCENT",
        "hs_value": "5"
      },
      "associations": []
    }
  ]
}
```

The response will include all created fees:

```json theme={null}
{
  "status": "COMPLETE",
  "results": [
    {
      "id": "513",
      "properties": {
        "hs_label": "Processing fee",
        "hs_type": "FIXED",
        "hs_value": "25",
        "hs_createdate": "2024-04-11T20:42:01.734Z",
        "hs_lastmodifieddate": "2024-04-11T20:42:01.734Z",
        "hs_object_id": "513"
      },
      "createdAt": "2024-04-11T20:42:01.734Z",
      "updatedAt": "2024-04-11T20:42:01.734Z",
      "archived": false
    },
    {
      "id": "514",
      "properties": {
        "hs_label": "Service fee",
        "hs_type": "PERCENT",
        "hs_value": "5",
        "hs_createdate": "2024-04-11T20:42:01.734Z",
        "hs_lastmodifieddate": "2024-04-11T20:42:01.734Z",
        "hs_object_id": "514"
      },
      "createdAt": "2024-04-11T20:42:01.734Z",
      "updatedAt": "2024-04-11T20:42:01.734Z",
      "archived": false
    }
  ],
  "startedAt": "2024-04-11T20:42:01.500Z",
  "completedAt": "2024-04-11T20:42:01.900Z"
}
```

## Retrieve fees

The fees API provides endpoints for retrieving [individual fees](#retrieve-a-single-fee), [all fees](#retrieve-all-fees), and [batches of fees](#retrieve-a-batch-of-fees). You can also [search for fees](#search-for-fees) that meet a specific set of criteria.

When retrieving fees, you can include the parameters below in the request. When retrieving all fees or individual fees, include them as query parameters in the request URL. When retrieving batches of fees, include them in the request body.

| Parameter               | Description                                                                                                                                                                                                                                                                    |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `properties`            | A comma separated list of the properties to be returned in the response. If a requested property isn't defined, it won't be included in the response. If a requested property is defined but a fee doesn't have a value, it will be returned as `null`.                        |
| `propertiesWithHistory` | A comma separated list of the current and historical properties to be returned in the response. If a requested property isn't defined, it won't be included in the response. If a requested property is defined but a fee doesn't have a value, it will be returned as `null`. |
| `associations`          | A comma separated list of objects to retrieve associated IDs for. Any specified associations that don't exist will not be returned in the response. Learn more about the [associations API.](/api-reference/legacy/crm/associations/associate-records/guide)                   |

### Retrieve a single fee

To retrieve an individual fee, make a `GET` request to `/crm/v3/objects/fees/{feeId}`, where `{feeId}` is the ID of the fee you want to retrieve.

The response will include a set of default properties, including the create date and last modified date.

```json theme={null}
{
  "id": "512",
  "properties": {
    "hs_createdate": "2024-04-10T18:59:32.441Z",
    "hs_lastmodifieddate": "2024-04-10T18:59:32.441Z",
    "hs_object_id": "512"
  },
  "createdAt": "2024-04-10T18:59:32.441Z",
  "updatedAt": "2024-04-10T18:59:32.441Z",
  "archived": false
}
```

To return specific properties, include a `properties` query parameter in the request URL along with comma-separated property names. For example:

`/crm/v3/objects/fees/512?properties=hs_label,hs_type,hs_value`

```json theme={null}
{
  "id": "512",
  "properties": {
    "hs_createdate": "2024-04-10T18:59:32.441Z",
    "hs_label": "Processing fee",
    "hs_lastmodifieddate": "2024-04-10T18:59:32.441Z",
    "hs_object_id": "512",
    "hs_type": "FIXED",
    "hs_value": "25"
  },
  "createdAt": "2024-04-10T18:59:32.441Z",
  "updatedAt": "2024-04-10T18:59:32.441Z",
  "archived": false
}
```

### Retrieve all fees

To retrieve all fees, make a `GET` request to `/crm/v3/objects/fees`.

You can retrieve up to 100 fees in one request.

* To retrieve a specific amount under 100, add a value to the `limit` parameter (e.g., `?limit=50`).
* To retrieve additional fees in subsequent requests (i.e. the fees after the limit was reached in your request), include the `after` parameter with the `after` value returned from the previous request (e.g., `?after=123456`).

For example, to retrieve 50 fees, your request URL would be `GET` `/crm/v3/objects/fees?limit=50`. In your response, under the `paging` object below the list of returned fees, the `after` value is the `id` of the next fee that would've been returned. To request 50 more fees, starting with the next returned value, make a `GET` request to `/crm/v3/objects/fees?limit=50&after={id}`.

```json theme={null}
{
  "results": [
    {
      "id": "42037508740",
      "properties": {
        "hs_createdate": "2022-11-03T14:24:02.602Z",
        "hs_lastmodifieddate": "2022-11-03T14:24:02.602Z",
        "hs_object_id": "42037508740"
      },
      "createdAt": "2022-11-03T14:24:02.602Z",
      "updatedAt": "2022-11-03T14:24:02.602Z",
      "archived": false
    }
  ],
  "paging": {
    "next": {
      "after": "33452",
      "link": "https://api.hubspot.com/crm/v3/objects/fees/?limit=1&after=33452"
    }
  }
}
```

### Retrieve a batch of fees

To retrieve multiple fees by their IDs, make a `POST` request to `/crm/v3/objects/fees/batch/read`.

In the request body, include the IDs of the fees you want to retrieve along with the properties you want returned:

```json theme={null}
{
  "inputs": [
    { "id": "512" },
    { "id": "513" }
  ],
  "properties": ["hs_label", "hs_type", "hs_value"],
  "propertiesWithHistory": []
}
```

### Search for fees

You can use the search endpoint to retrieve fees that meet a specific set of [filter criteria](/api-reference/legacy/crm/search-the-crm#filter-search-results). Make a `POST` request to `/crm/v3/objects/fees/search` and include your filter criteria in the request body.

For example, to search for all percentage-based fees:

```json theme={null}
{
  "filterGroups": [
    {
      "filters": [
        {
          "propertyName": "hs_type",
          "value": "PERCENT",
          "operator": "EQ"
        }
      ]
    }
  ],
  "properties": ["hs_label", "hs_type", "hs_value"]
}
```

The response will include matching fees and the total count:

```json theme={null}
{
  "total": 2,
  "results": [
    {
      "id": "512",
      "properties": {
        "hs_createdate": "2024-04-10T18:59:32.441Z",
        "hs_label": "Service fee",
        "hs_lastmodifieddate": "2024-04-10T18:59:32.441Z",
        "hs_object_id": "512",
        "hs_type": "PERCENT",
        "hs_value": "5"
      },
      "createdAt": "2024-04-10T18:59:32.441Z",
      "updatedAt": "2024-04-10T18:59:32.441Z",
      "archived": false
    }
  ]
}
```

## Update fees

You can update fees individually or in batches.

### Update a single fee

To update an individual fee, make a `PATCH` request to `/crm/v3/objects/fees/{feeId}`. In the request body, include a `properties` object containing the properties that you want to update.

Note that you cannot update the fee's associations using this endpoint. Instead, you'll need to use the [associations API](/api-reference/legacy/crm/associations/associate-records/guide#associate-records) to [update the fee's associations](#associate-existing-fees).

For example, to update a fee's value:

```json theme={null}
{
  "properties": {
    "hs_value": "15"
  }
}
```

The response will include a set of default properties along with the property that you updated:

```json theme={null}
{
  "id": "512",
  "properties": {
    "hs_createdate": "2024-04-11T20:42:01.734Z",
    "hs_label": "A percentage-based fee of 10%",
    "hs_lastmodifieddate": "2024-04-11T21:00:00.234Z",
    "hs_object_id": "512",
    "hs_type": "PERCENT",
    "hs_value": "15"
  },
  "createdAt": "2024-04-11T20:42:01.734Z",
  "updatedAt": "2024-04-11T21:00:00.234Z",
  "archived": false
}
```

### Update a batch of fees

To update multiple fees at once, make a `POST` request to `/crm/v3/objects/fees/batch/update`.

In the request body, include an `inputs` array with the ID and updated properties for each fee:

```json theme={null}
{
  "inputs": [
    {
      "id": "512",
      "properties": {
        "hs_value": "12"
      }
    },
    {
      "id": "513",
      "properties": {
        "hs_label": "Updated processing fee",
        "hs_value": "30"
      }
    }
  ]
}
```

The response will include all updated fees:

```json theme={null}
{
  "status": "COMPLETE",
  "results": [
    {
      "id": "512",
      "properties": {
        "hs_label": "A percentage-based fee of 10%",
        "hs_type": "PERCENT",
        "hs_value": "12",
        "hs_createdate": "2024-04-11T20:42:01.734Z",
        "hs_lastmodifieddate": "2024-04-11T21:05:00.234Z",
        "hs_object_id": "512"
      },
      "createdAt": "2024-04-11T20:42:01.734Z",
      "updatedAt": "2024-04-11T21:05:00.234Z",
      "archived": false
    },
    {
      "id": "513",
      "properties": {
        "hs_label": "Updated processing fee",
        "hs_type": "FIXED",
        "hs_value": "30",
        "hs_createdate": "2024-04-11T20:42:01.734Z",
        "hs_lastmodifieddate": "2024-04-11T21:05:00.234Z",
        "hs_object_id": "513"
      },
      "createdAt": "2024-04-11T20:42:01.734Z",
      "updatedAt": "2024-04-11T21:05:00.234Z",
      "archived": false
    }
  ],
  "startedAt": "2024-04-11T21:05:00.000Z",
  "completedAt": "2024-04-11T21:05:00.500Z"
}
```

## Associate existing fees

To associate an existing fee with other objects, you can set the association via the [associations API](/api-reference/legacy/crm/associations/associate-records/guide#associate-records) by making a `PUT` request to:

`/crm/v4/objects/fees/{feeId}/associations/default/{toObjectType}/{toObjectId}/`

| Parameter      | Description                                                               |
| -------------- | ------------------------------------------------------------------------- |
| `feeId`        | The ID of the fee you want to associate.                                  |
| `toObjectType` | The type of object that you want to associate the fee with (e.g., quote). |
| `toObjectId`   | The ID of the individual object that you want to associate the fee with.  |

For example, if you wanted to associate a fee with a specific quote, your request URL would look like the following:

<code>/crm/v4/objects/fees/<Tooltip tip="The ID of the fee you want to associate.">8675309</Tooltip>/associations/default/quote/<Tooltip tip="The ID of the quote you want to associate the fee with.">123456</Tooltip></code>

The response will return the details of the association, including the association details of each direction (quote-to-fee and fee-to-quote).

```json theme={null}
{
  "completedAt": "2026-01-07T19:12:31.789Z",
  "status": "COMPLETE",
  "startedAt": "2026-01-07T19:12:31.695Z",
  "results": [
    {
      "from": {
        "id": "8675309"
      },
      "to": {
        "id": "123456"
      },
      "associationSpec": {
        "associationCategory": "HUBSPOT_DEFINED",
        "associationTypeId": 363
      }
    },
    {
      "from": {
        "id": "123456"
      },
      "to": {
        "id": "8675309"
      },
      "associationSpec": {
        "associationCategory": "HUBSPOT_DEFINED",
        "associationTypeId": 364
      }
    }
  ]
}
```

### Remove an association

To remove an association between a fee and another object, make a `DELETE` request to `/crm/v3/objects/fees/{feeId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`.

To retrieve the `associationTypeId` value, refer to [this list](/api-reference/legacy/crm/associations/associate-records/guide#association-type-id-values) of default values, or make a `GET` request to /crm/v4/associations/{fromObjectType}/{toObjectType}/labels.

| Parameter           | Description                                                                    |
| ------------------- | ------------------------------------------------------------------------------ |
| `feeId`             | The ID of the fee you want to remove the association from.                     |
| `toObjectType`      | The type of object that you want to remove the association from (e.g., quote). |
| `toObjectId`        | The ID of the individual object that you want to remove the association from.  |
| `associationTypeId` | The ID of the association type you want to remove.                             |

## Delete fees

To delete a fee, make a `DELETE` request to `/crm/v3/objects/fees/{feeId}`.

A successful request returns a `204` response with no body.

### Delete a batch of fees

To delete multiple fees with one request, make a `POST` request to `/crm/v3/objects/fees/batch/archive`.

In the request body, include an `inputs` array with the IDs of the fees you want to delete:

```json theme={null}
{
  "inputs": [
    { "id": "512" },
    { "id": "513" }
  ]
}
```

A successful request returns a `204` response with no body.
