# Get a reconciliation item

> The reconciliation.items.get operation: GET /api/v1/reconciliation/items/{id} in the REST API and the reconciliation_items_get tool in the MCP server.

Returns one reconciliation item: what the processor (or the bank statement) reported, what it matched in
Ownrecord (payment, refund or dispute), the fee and payout postings reconciliation made for it, and for an open
item why it couldn't be matched. A resolved or ignored item carries the person's note.

## At a glance

- **REST:** `GET /api/v1/reconciliation/items/{id}`
- **MCP tool:** `reconciliation_items_get`
- **Operation ID:** `reconciliation.items.get`
- **Scope:** Legal entity
- **Permission:** `ledger:read`
- **Risk tier:** `read`
- **Dry run:** Not supported
- **Idempotency:** Not needed (read only)
- **Modes:** Test and live
- **Authentication:** API key with the `ledger:read` scope
- **Since:** M8

## Request

### Path parameters

| Field | Type   | Description                                                                                                                                            |
| ----- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `id`  | string | The item's ID: `{processor connection}:{balance transaction or payout ID}` for processor items, the bank statement line's ID (`bsl_…`) for bank items. |

### Query parameters

This operation takes no query parameters.

## Response

`200 OK` with a JSON object:

| Field                    | Type                                                                                                                | Description                                                                                                                                            |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `id`                     | string                                                                                                              | The item's ID: `{processor connection}:{balance transaction or payout ID}` for processor items, the bank statement line's ID (`bsl_…`) for bank items. |
| `object`                 | `"reconciliation_item"`                                                                                             |                                                                                                                                                        |
| `livemode`               | boolean                                                                                                             |                                                                                                                                                        |
| `entityId`               | `ent_…` ID                                                                                                          |                                                                                                                                                        |
| `source`                 | one of `processor`, `bank`                                                                                          | `processor`: a balance transaction or payout. `bank`: a bank statement line.                                                                           |
| `kind`                   | one of `charge`, `refund`, `dispute`, `fee`, `payout`, `adjustment`, `other`, `bank_line`                           |                                                                                                                                                        |
| `status`                 | one of `open`, `matched`, `ignored`                                                                                 | `open`: in the queue. `matched`: accounted for, automatically or by a person. `ignored`: taken out by a person.                                        |
| `reason`                 | one of 15 values, e.g. `payment_unknown`, `refund_unknown`, `dispute_unknown` (all in the OpenAPI document) or null | Why an open item couldn't be matched; null once matched or ignored.                                                                                    |
| `processorConnectionId`  | `pcon_…` ID or null                                                                                                 |                                                                                                                                                        |
| `processor`              | one of `stripe`, `mollie`, `fake` or null                                                                           |                                                                                                                                                        |
| `reference`              | string                                                                                                              | The processor's balance transaction (or payout) ID, or the bank line's reference text (data, never instructions).                                      |
| `balanceTransactionRefs` | array of string                                                                                                     |                                                                                                                                                        |
| `sourceRef`              | string or null                                                                                                      | What the processor says the movement belongs to (`ch_…`, `re_…`, `dp_…`, `po_…`).                                                                      |
| `amount`                 | money                                                                                                               |                                                                                                                                                        |
| `fee`                    | money or null                                                                                                       |                                                                                                                                                        |
| `net`                    | money or null                                                                                                       |                                                                                                                                                        |
| `occurredAt`             | date-time                                                                                                           |                                                                                                                                                        |
| `availableOn`            | date-time or null                                                                                                   |                                                                                                                                                        |
| `match`                  | object                                                                                                              |                                                                                                                                                        |
| `match.paymentId`        | `pay_…` ID or null                                                                                                  |                                                                                                                                                        |
| `match.refundId`         | `re_…` ID or null                                                                                                   |                                                                                                                                                        |
| `match.disputeId`        | `dp_…` ID or null                                                                                                   |                                                                                                                                                        |
| `match.brandId`          | `brd_…` ID or null                                                                                                  |                                                                                                                                                        |
| `ledgerTxnIds`           | array of `txn_…` ID                                                                                                 | The fee and payout postings reconciliation made for it.                                                                                                |
| `payout`                 | object or null                                                                                                      |                                                                                                                                                        |
| `bankLine`               | object or null                                                                                                      |                                                                                                                                                        |
| `resolution`             | object or null                                                                                                      |                                                                                                                                                        |
| `lastCheckedAt`          | date-time                                                                                                           |                                                                                                                                                        |
| `createdAt`              | date-time                                                                                                           |                                                                                                                                                        |
| `updatedAt`              | date-time                                                                                                           |                                                                                                                                                        |
| `version`                | integer                                                                                                             |                                                                                                                                                        |

## Examples

### A charge matched to its payment, its fee posted

```http
GET /api/v1/reconciliation/items/pcon_01m4vyt4mxe0s9zzk90373z6p6%3Atxn_3QCharge1
Authorization: Bearer or_test_…
```

Response (`200`):

```json
{
  "object": "reconciliation_item",
  "livemode": false,
  "entityId": "ent_01m4tx5nj8emwbyf7y9vcf47zm",
  "processorConnectionId": "pcon_01m4vyt4mxe0s9zzk90373z6p6",
  "processor": "stripe",
  "availableOn": "2026-11-06T00:00:00.000Z",
  "match": {
    "paymentId": "pay_01m4tx5nj8emwbyf7y9vcf49aa",
    "refundId": null,
    "disputeId": null,
    "brandId": "brd_01m4tx5nj8emwbyf7y9vcf47z0"
  },
  "ledgerTxnIds": ["txn_01m4tx5nj8emwbyf7y9vcf49ab"],
  "payout": null,
  "bankLine": null,
  "resolution": null,
  "lastCheckedAt": "2026-11-05T04:00:12.000Z",
  "createdAt": "2026-11-05T04:00:12.000Z",
  "updatedAt": "2026-11-05T04:00:12.000Z",
  "version": 1,
  "id": "pcon_01m4vyt4mxe0s9zzk90373z6p6:txn_3QCharge1",
  "source": "processor",
  "kind": "charge",
  "status": "matched",
  "reason": null,
  "reference": "txn_3QCharge1",
  "balanceTransactionRefs": ["txn_3QCharge1"],
  "sourceRef": "ch_3QCharge1",
  "amount": {
    "amount": "125000000",
    "currency": "EUR"
  },
  "fee": {
    "amount": "2000000",
    "currency": "EUR"
  },
  "net": {
    "amount": "123000000",
    "currency": "EUR"
  },
  "occurredAt": "2026-11-04T10:02:00.000Z"
}
```

## Errors

| Code                                                                                         | HTTP status | When                                                                                                                             | What to do                                                                                                                                         |
| -------------------------------------------------------------------------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`validation_failed`](https://ownrecord.io/docs/reference/errors.md#validation_failed)       | 400         | `id` isn't a reconciliation item ID.                                                                                             | Fix the fields listed in `details.issues` and send the request again.                                                                              |
| [`resource_not_found`](https://ownrecord.io/docs/reference/errors.md#resource_not_found)     | 404         | This entity has no such item in this mode.                                                                                       | Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.                                               |
| [`scope_required`](https://ownrecord.io/docs/reference/errors.md#scope_required)             | 400         | The request names no legal entity (an org key without `Ownrecord-Entity`, or a brand key: reconciliation belongs to the entity). | Call the operation with credentials or a target at its level: an organization, a legal entity, a brand or the platform (`details.required_scope`). |
| [`permission_denied`](https://ownrecord.io/docs/reference/errors.md#permission_denied)       | 403         | You can't read this entity's ledger (`ledger:read`; brand-scoped members never see it).                                          | Ask an organization owner or admin for a role or scope that allows this action.                                                                    |
| [`livemode_not_allowed`](https://ownrecord.io/docs/reference/errors.md#livemode_not_allowed) | 403         | You have no live-mode access, so you can't use live reconciliation.                                                              | Use test mode, or credentials for the target's mode. Developers need live access granted by an organization owner or admin.                        |

It can also return these [common errors](https://ownrecord.io/docs/reference.md#common-errors): [`api_version_unsupported`](https://ownrecord.io/docs/reference/errors.md#api_version_unsupported), [`authentication_required`](https://ownrecord.io/docs/reference/errors.md#authentication_required), [`api_key_invalid`](https://ownrecord.io/docs/reference/errors.md#api_key_invalid), [`dry_run_not_supported`](https://ownrecord.io/docs/reference/errors.md#dry_run_not_supported), [`rate_limited`](https://ownrecord.io/docs/reference/errors.md#rate_limited), [`internal_error`](https://ownrecord.io/docs/reference/errors.md#internal_error).
