For the complete documentation index, see llms.txt. This page is also available as Markdown.

Commit Batch

Starts processing a batch. The platform reads manifest.json from the root of the batch prefix, accepts it and moves the batch from OPEN or CHANGE_REQUESTED to CLOSED. Row validation, customer creation and submission for review then run asynchronously.

Before the state changes, the platform checks the manifest envelope. If manifest.json is missing or too large, is not valid JSON, has trailing content, contains no items, has more than 10,000 rows, or carries a schema_version from another batch, the commit is rejected with 422. The batch stays editable and nothing is processed.

Errors inside individual rows do not block the commit: those rows become invalid and all other rows are processed.

Endpoint

POST /v2/compliance/batch/{batch_id}/commit

Link

Request

Path Parameters

Parameter
Type
Description
Required
Example

batch_id

string

Batch ID returned by Create Batch.

Yes

"01a0af8b-831f-7dbe-8eaf-459f81998958"

Headers

Key
Value
Required

Authorization

<JWT>

Yes

Accept

application/json

Yes

Body

No request body.

Response (202 Accepted)

The manifest was accepted and processing has started. Returns the Batch object. See Create Batch → Response Fields for every field and the counters object.

Response (200 OK) — the batch was already CLOSED: a repeated or concurrent commit returns the batch without accepting its own manifest. The manifest accepted by the first successful commit is the one being processed.

Example Response:

Right after the commit, counters may still be 0: rows appear in the counters as the platform ingests and validates the manifest.


Examples

Request


Error Responses

Errors are returned as {"code", "message", "details"}, where code is a gRPC status code. Use the HTTP status for error handling.

Batch Cannot Be Committed (409) — the batch is CANCELLED, or a newer editable version of the batch exists. Check the batch status before retrying:

Manifest Rejected (422) — missing, oversized, malformed or trailing JSON, empty items, too many rows, or a foreign schema_version. The batch stays editable:

Batch Not Found (404) — the batch does not exist or belongs to another partner:

Authorization fail (401):


Notes

  • Upload everything first: all documents and the final manifest.json must be fully uploaded before you commit.

  • Serialize uploads and commits: do not upload files and commit in parallel, and do not send several commits at once.

  • Do not touch the manifest after commit: the platform verifies the content of the accepted manifest; if it has been overwritten, processing stops. To change data, call Request Batch Changes first.

  • schema_version: optional in the manifest. If omitted or empty, the batch's frozen schema is used.

  • Retries: if the commit request timed out, call Get Batch before retrying. A CLOSED batch means the commit went through.

Typical Workflow:

  1. Upload documents and manifest.json to the batch prefix.

  2. Call POST /v2/compliance/batch/{batch_id}/commit.

  3. On 422, fix the manifest, upload it again and repeat step 2.

  4. On 202, poll Get Batch until processed is true.

  5. Review problems with Get Batch Status.

Last updated