---
title: "Split an invoice"
method: PUT
path: "/v1/invoices/{invoiceKey}/split"
tags: ["Invoices"]
---

# Split an invoice

`PUT /v1/invoices/{invoiceKey}/split`

Splits a draft invoice into 2 to 20 invoices based on specified amounts or percentages.  The source invoice must be in Draft status. For amount-based splits, the sum of all split  amounts must exactly equal the original invoice total, and each split amount must be at least  the minimum currency unit. For percentage-based splits, the sum of all split percentages must  be exactly 100, up to 9 decimal places. Zuora distributes charges, discounts, tax amounts, and  tax-exempt amounts proportionally across split invoices and uses a Largest Remainder algorithm  to ensure precise rounding at both the line and invoice levels.

In exclusive-tax mode, split amounts can be specified excluding tax, with tax calculated at posting,  or including tax when draft tax is calculated. In inclusive-tax mode, split amounts always represent  tax-inclusive invoice totals, with embedded tax distributed proportionally.

For invoices with a large number of invoice items, this operation might be processed asynchronously. Use the  `jobStatus` field in the response to determine the job status:
- If `jobStatus` is `Completed`, the operation has finished and the response contains the result.
- If `jobStatus` is `Pending`, the operation is still in progress, and you must retrieve the job status later  to confirm completion.

## Path parameters

- `invoiceKey` string, required

## Headers

- `Accept-Encoding` string
- `Content-Encoding` string
- `Zuora-Track-Id` string
- `Zuora-Entity-Ids` string
- `Zuora-Org-Ids` string
- `Zuora-Version` string

## Request body

- SplitInvoiceRequest
  - `splitType` 'Percentage' | 'Amount' — How the split is calculated.
  - `splits` SplitInvoiceResponseSplitItems[] — Array of split configurations.
    - `splitAmount` number — Target invoice total amount (including tax) for this split invoice. Required when `splitType` is `Amount`. The sum of all `splitAmount` values must exactly equal the original invoice total. Each value must be at least the minimum currency unit (for example, 0.01 for USD, 1 for JPY).
    - `splitPercentage` number — Percentage of the original invoice total for this split invoice. Required when `splitType` is `Percentage`. The sum of all `splitPercentage` values must be exactly 100.000000000.
    - `invoiceDate` string, date — Date for the new invoice in YYYY-MM-DD format. Defaults to the original invoice date if not specified.
    - `paymentTerm` string — Payment term name for this split invoice (for example, Due Upon Receipt, Net 30). Must be a valid active payment term on the account.

## Response `200`

OK

- SplitInvoiceResponse
  - `success` boolean — Indicates whether the request was successful.
  - `id` string — Unique identifier for the request.
  - `jobId` string — Identifier of the async job.
  - `jobStatus` 'Pending' | 'Processing' | 'Failed' | 'Completed' — Status of the job. For invoices with a large number of invoice items, this operation might run asynchronously. In this case, the response includes `jobId` and `jobStatus`. The `jobId` identifies the operation job, and `jobStatus` indicates whether the operation is `Completed` or `Pending`. If `jobStatus` is `Pending`, use the "Retrieve an operation job" operation to check the job status until the operation is complete.
  - `invoices` SplitInvoiceInvoiceItems[] — List of generated invoices.
    - `id` string — Invoice ID.
    - `invoiceNumber` string — Invoice number.
    - `invoiceDate` string, date — Invoice date in YYYY-MM-DD format.
    - `amount` number — Invoice amount.

## Other responses

- `500` — Internal Server Error
- `4XX` — Request Errors

---

[API](https://skmtc.dev/zuora/apis/api-reference.md) · [All operations](https://skmtc.dev/zuora/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/zuora/api-reference/revisions/d11e237f3e54/schema)
