> For the complete documentation index, see [llms.txt](https://docs.delos.financial/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.delos.financial/batchservice/get-batch-item.md).

# Get Batch Item

Returns one batch row by its `row_key`, including the full compliance review: overall rejection reasons and detailed reasons per document, per associated party and per verification step. Use it to understand exactly what to fix for a row in `change_requested` or `rejected`.

**Endpoint**

`GET /v2/compliance/batch/{batch_id}/items/{row_key}`

**Link**

<https://partner.sandbox.delos.financial/openapi/v2.html#/operations/BatchService_GetBatchItem>

**Request**

**Path Parameters**

| Parameter      | Type     | Description                        | Required | Example                                  |
| -------------- | -------- | ---------------------------------- | -------- | ---------------------------------------- |
| **`batch_id`** | `string` | Batch ID returned by Create Batch. | Yes      | `"01a0af8b-831f-7dbe-8eaf-459f81998958"` |
| **`row_key`**  | `string` | Your `row_key` from the manifest.  | Yes      | `"client-001"`                           |

**Headers**

| Key             | Value              | Required |
| --------------- | ------------------ | -------- |
| `Authorization` | `<JWT>`            | Yes      |
| `Accept`        | `application/json` | Yes      |

**Response (200 OK)**

Returns a `BatchItemDetail`: every field of `BatchItem` plus `review` and `review_error`.

**Response Fields**

| Field                      | Type                 | Description                                                                                                      | Example                       |
| -------------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| **`row_key`**              | `string`             | Your row identifier from the manifest.                                                                           | `"client-001"`                |
| **`type`**                 | `string`             | What the row onboards: `individual` or `company`.                                                                | `"individual"`                |
| **`client_id`**            | `string`             | ID of the created customer. Empty for `invalid` rows: they never get one.                                        | `"DNkjZcj-hHJA-yhO8yAX3rBRe"` |
| **`external_customer_id`** | `string`             | Your customer identifier from the manifest, stable across batches.                                               | `"crm-48213"`                 |
| **`status`**               | `string`             | Row status: `invalid`, `valid`, `creating`, `submitted`, `finished`, `rejected`, `change_requested` or `failed`. | `"submitted"`                 |
| **`review_status`**        | `string`             | Current status of the compliance review.                                                                         | `"pending"`                   |
| **`error`**                | `string`             | Reason for `invalid` or `failed`, or the latest temporary error while the row is being retried.                  | `""`                          |
| **`updated_at`**           | `string (date-time)` | Last change of the row.                                                                                          | `"2026-09-28T11:05:12Z"`      |
| **`review`**               | `object`             | `BatchItemReview` — the compliance review of this row. See below.                                                | —                             |
| **`review_error`**         | `string`             | Set if the review details could not be loaded.                                                                   | `""`                          |

**`review` object (`BatchItemReview`)**

| Field                         | Type                 | Description                                         |
| ----------------------------- | -------------------- | --------------------------------------------------- |
| **`uuid`**                    | `string`             | Review ID.                                          |
| **`status`**                  | `string`             | Review status.                                      |
| **`revision`**                | `string (int64)`     | Review revision; increases with every resubmission. |
| **`updated_at`**              | `string (date-time)` | Last review update.                                 |
| **`reject_type`**             | `string`             | Type of rejection (e.g. final or retry allowed).    |
| **`reject_reasons`**          | `array[string]`      | Overall rejection reasons.                          |
| **`reject_comment`**          | `string`             | Reviewer comment.                                   |
| **`button_ids`**              | `array[string]`      | Machine-readable rejection reason codes.            |
| **`details_available`**       | `boolean`            | Whether detailed reasons below are available.       |
| **`document_reject_reasons`** | `array[object]`      | Reasons per document. See below.                    |
| **`party_reject_reasons`**    | `array[object]`      | Reasons per associated party (companies).           |
| **`step_reject_reasons`**     | `array[object]`      | Reasons per verification step.                      |

**`document_reject_reasons[]`**

| Field                                                                           | Type      | Description                                                                 |
| ------------------------------------------------------------------------------- | --------- | --------------------------------------------------------------------------- |
| **`document_uuid`**                                                             | `string`  | Document ID at the provider.                                                |
| **`party_key`**                                                                 | `string`  | Associated party the document belongs to; empty for the row's own document. |
| **`type`**                                                                      | `string`  | Document type from the manifest.                                            |
| **`sub_type`**                                                                  | `string`  | Document sub-type or side.                                                  |
| **`file`**                                                                      | `string`  | File path from the manifest.                                                |
| **`matched`**                                                                   | `boolean` | Whether the rejected document was matched to a manifest entry.              |
| **`question_section`**                                                          | `string`  | For questionnaire files: section id.                                        |
| **`question_item`**                                                             | `string`  | For questionnaire files: question id.                                       |
| **`question_index`**                                                            | `integer` | For questionnaire files: position of the file in `files`.                   |
| **`reject_type`**, **`reject_reasons`**, **`reject_comment`**, **`button_ids`** | —         | Same meaning as in `review`.                                                |

**`party_reject_reasons[]`**

| Field                                                                           | Type     | Description                         |
| ------------------------------------------------------------------------------- | -------- | ----------------------------------- |
| **`party_key`**                                                                 | `string` | Associated party from the manifest. |
| **`status`**                                                                    | `string` | Review status of this party.        |
| **`reject_type`**, **`reject_reasons`**, **`reject_comment`**, **`button_ids`** | —        | Same meaning as in `review`.        |

**`step_reject_reasons[]`**

| Field                                                                           | Type     | Description                                             |
| ------------------------------------------------------------------------------- | -------- | ------------------------------------------------------- |
| **`party_key`**                                                                 | `string` | Associated party; empty for the row's own verification. |
| **`step`**                                                                      | `string` | Verification step.                                      |
| **`reject_type`**, **`reject_reasons`**, **`reject_comment`**, **`button_ids`** | —        | Same meaning as in `review`.                            |

**Example Response:**

```json
{
  "row_key": "client-001",
  "type": "individual",
  "client_id": "DNkjZcj-hHJA-yhO8yAX3rBRe",
  "external_customer_id": "crm-48213",
  "status": "change_requested",
  "review_status": "string",
  "error": "",
  "updated_at": "2026-09-28T11:05:12Z",
  "review": {
    "uuid": "c8b9ad3b-9ca4-4fbb-9cb6-a9aca0ee8e7e",
    "status": "string",
    "revision": "1",
    "updated_at": "2026-09-28T11:05:12Z",
    "reject_type": "string",
    "reject_reasons": ["string"],
    "reject_comment": "The document is blurry. Please upload a clear photo.",
    "button_ids": ["string"],
    "details_available": true,
    "document_reject_reasons": [
      {
        "document_uuid": "string",
        "party_key": "",
        "type": "ID_CARD",
        "sub_type": "FRONT_SIDE",
        "file": "client-001/id-front.jpg",
        "matched": true,
        "reject_type": "string",
        "reject_reasons": ["string"],
        "reject_comment": "Document is not readable",
        "button_ids": ["string"]
      }
    ],
    "party_reject_reasons": [],
    "step_reject_reasons": []
  },
  "review_error": ""
}
```

***

**Examples**

**Request**

```bash
curl --request GET \
  --url <https://partner.sandbox.delos.financial/v2/compliance/batch/01a0af8b-831f-7dbe-8eaf-459f81998958/items/client-001> \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer <JWT>'
```

***

**Error Responses**

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

**Item Not Found (404)** — the batch or the `row_key` does not exist, or the batch belongs to another partner:

```json
{ "code": 5, "message": "item not found", "details": [] }
```

**Authorization fail (401)**:

```json
{ "code": 16, "message": "Unauthorized", "details": [] }
```

***

**Notes**

* **Live review data**: review details are read from compliance in real time and may be newer than the row status.
* **Mapping back to the manifest**: use `file`, `party_key` and `question_section` / `question_item` / `question_index`in `document_reject_reasons` to find the exact manifest entry to fix.
* **Fixing a row**: either correct the data and resubmit via Request Batch Changes, or send the customer a link from Get Item WebSDK Link.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.delos.financial/batchservice/get-batch-item.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
