---
title: "Create or replace deal splits for deals with the provided IDs. Deal split percentages for each deal must sum up to 1.0 (100%) and may have up to 8 decimal places"
method: POST
path: "/deal-splits/2026-03/batch/upsert"
tags: ["Batch"]
---

# Create or replace deal splits for deals with the provided IDs. Deal split percentages for each deal must sum up to 1.0 (100%) and may have up to 8 decimal places

`POST /deal-splits/2026-03/batch/upsert`

## Request

- Base URL: `https://api.hubapi.com`
- URL: `https://api.hubapi.com/deal-splits/2026-03/batch/upsert`
- Auth: one of:
  - HTTP bearer
  - API key in query parameter `hapikey`
  - none

Create or replace deal splits for deals with the provided IDs. Deal split percentages for each deal must sum up to 1.0 (100%) and may have up to 8 decimal places

## Request body

- CrmDealSplitsPublicDealSplitsBatchCreateRequest
  - `inputs` CrmDealSplitsPublicDealSplitsCreateRequest[], required: An array of deal split inputs
    - `id` integer, required: The unique identifier for the deal.
    - `splits` CrmDealSplitsPublicDealSplitInput[], required: An array of deal split inputs, each containing an owner ID and a percentage of the deal split.
      - `ownerId` integer, required: The unique identifier of the owner receiving the deal split.
      - `percentage` number, required: The portion of the deal assigned to the owner, expressed as a percentage. The total percentage for all splits in a deal must sum up to 1.0 (100%) and can have up to 8 decimal places.

## Response `200`

successful operation

- CrmDealSplitsBatchResponseDealToDealSplits
  - `completedAt` string, date-time, required: The timestamp indicating when the batch operation was completed, in date-time format.
  - `links` object: A map of link names to associated URIs for additional resources or documentation.
  - `requestedAt` string, date-time: The timestamp indicating when the batch operation was requested, in date-time format.
  - `results` CrmDealSplitsDealToDealSplits[], required: An array of deal-to-deal split objects representing the results of the batch operation.
    - `id` string, required: The unique identifier for the deal associated with the deal splits.
    - `splits` CrmSimplePublicObject[], required: An array of deal split objects, each representing a portion of the deal assigned to an owner.
      - `archived` boolean, required: Whether the object is archived.
      - `archivedAt` string, date-time: The timestamp when the object was archived, in ISO 8601 format.
      - `createdAt` string, date-time, required: The timestamp when the object was created, in ISO 8601 format.
      - `id` string, required: The unique ID of the object.
      - `objectWriteTraceId` string: An identifier used for tracing the write request for the object.
      - `properties` object, required: Key-value pairs representing the properties of the object.
      - `propertiesWithHistory` object: Key-value pairs representing the properties of the object along with their history.
      - `updatedAt` string, date-time, required: The timestamp when the object was last updated, in ISO 8601 format.
      - `url` string: The URL associated with the object.
  - `startedAt` string, date-time, required: The timestamp indicating when the batch operation started, in date-time format.
  - `status` 'CANCELED' | 'COMPLETE' | 'PENDING' | 'PROCESSING', required: The current status of the batch operation, with possible values: CANCELED, COMPLETE, PENDING, PROCESSING.

## Other responses

- `207`: multiple statuses
- `default`: An error occurred.

## Changes

> 14 revisions in range; 1 not diffed, 2 could not be searched.

- **2026-04-08** `b0d8bc008db9`: 1 info
  - api operation id `post-/deal-splits/2026-03/batch/upsert_/crm/objects/v3/deals/splits/batch/upsert` removed and replaced with `post-/deal-splits/2026-03/batch/upsert`
- **2026-04-01** `e0403341222c`: 2 warning, 1 info
  - removed the optional property `errors` from the response with the `200` status
  - removed the optional property `numErrors` from the response with the `200` status
  - added the success response with the status `207`
- **2026-03-30** `dc2fdad57f7f`: 1 info
  - api operation id `post-/deal-splits/2026-03/batch/upsert_/deal-splits/2026-03/batch/upsert` removed and replaced with `post-/deal-splits/2026-03/batch/upsert_/crm/objects/v3/deals/splits/batch/upsert`
- **2026-03-25** `62586336cea2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hubspot/apis/hubspot-api-specification/changes/deal-splits/2026-03/batch/upsert/post.md)

---

[API](https://skmtc.dev/hubspot/apis/hubspot-api-specification.md) - [All operations](https://skmtc.dev/hubspot/apis/hubspot-api-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/hubspot/apis/hubspot-api-specification/revisions/f9c7181056c5?raw)
