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

# Trigger Batch Reconciliation for Multiple Transactions

> POST /api/v1/reconciliation/batch — re-runs reconciliation for up to 100 transaction IDs. Useful for transactions not matched on initial commit.

The batch reconciliation endpoint re-runs the reconciliation process for a list of transaction IDs. Use it when transactions were posted before their matching settlement expectations were registered, or after you've updated settlement expectations you want matched retroactively.

## Endpoint

```
POST /api/v1/reconciliation/batch
```

## Authorization

Requires an API key with the `RECONCILIATION_WRITE` scope.

## Request Body

<ParamField body="transactionIds" type="array" required>
  Array of transaction UUIDs to re-reconcile. Accepts 1 to 100 IDs per request — the array must not be empty.
</ParamField>

## Request Example

```bash theme={null}
curl -X POST https://api.your-domain.com/api/v1/reconciliation/batch \
  -H "Authorization: Bearer $IDEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "transactionIds": [
      "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
    ]
  }'
```

## Response

Returns a `200 OK` with a flat array of per-transaction results — **not** wrapped in a `results` object.

<ResponseField name="transactionId" type="string">
  UUID of the transaction this result is for, echoed back from the request.
</ResponseField>

<ResponseField name="outcome" type="string">
  One of `SETTLED` (matched to a settlement), `UNMATCHED` (no matching settlement found), `NOT_APPLICABLE` (transaction has no on-chain lines to reconcile), or `NOT_FOUND` (transaction ID does not exist for this tenant).
</ResponseField>

```json theme={null}
[
  {
    "transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "outcome": "SETTLED"
  },
  {
    "transactionId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "outcome": "UNMATCHED"
  }
]
```

## Error Codes

<Tip>
  Process reconciliation in batches at the end of a settlement window rather than per-transaction for best efficiency.
</Tip>

| Code | Meaning                                               |
| ---- | ----------------------------------------------------- |
| 400  | Empty batch or more than 100 transaction IDs provided |
| 401  | Missing or invalid API key                            |
| 403  | API key does not have `RECONCILIATION_WRITE` scope    |
