---
title: "Matches bank transactions to existing records"
method: POST
path: "/bank-transactions/reconcile/transactions"
tags: ["Cash Matching"]
---

# Matches bank transactions to existing records

`POST /bank-transactions/reconcile/transactions`

## Request

- Base URL: `https://api.rillet.com`
- URL: `https://api.rillet.com/bank-transactions/reconcile/transactions`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/rillet/apis/rillet-accounting-api/docs/bank-transactions/reconcile/transactions/post.ts> (a function with typed inputs; its response is checked against the schema)

Matches bank transactions to existing records. You can include different record types in one request, subject to
the supported match combinations. To book a difference, provide reconciliation_adjustment.account_id.
Optional reconciliation_adjustment.fields are custom field and value IDs applied to the adjustment entry,
not to the matched records. Rillet calculates the difference.

## Request body

- MatchBankTransactionsRequest: Receivables (invoices, credit memos) and payables (bills, charges, reimbursements, vendor credits) cannot be matched together in one request. Journal entries can be combined with either.
  - `transaction_ids` string[], required: IDs of the bank transactions to match. They must all belong to the same subsidiary.
  - `bill_ids` string[]: IDs of existing bills to match to the bank transactions.
  - `reimbursement_ids` string[]: IDs of existing reimbursements to match to the bank transactions.
  - `charge_ids` string[]: IDs of existing expense charges to match to the bank transactions.
  - `invoice_ids` string[]: IDs of existing invoices to match to the bank transactions.
  - `credit_memo_ids` string[]: IDs of existing credit memos to match to the bank transactions.
  - `bill_payment_ids` string[]: IDs of existing bill payments to clear using their cash journal entries. Their cash GL account must match the bank transaction cash account.
  - `invoice_payment_ids` string[]: IDs of existing invoice payments to clear using their cash journal entries. Their cash GL account must match the bank transaction cash account.
  - `journal_entry_ids` string[]: IDs of cash journal entries to clear; their cash GL account must match the bank transaction cash account.
  - `vendor_credit_ids` string[]: IDs of existing vendor credits to match to the bank transactions.
  - `fees_account_id` string, uuid: GL account for bank fees. If omitted, the provider mapped account is used; a fee without either account fails the match.
  - `reconciliation_adjustment` CashMatchAdjustment
    - `account_id` string, uuid, required: GL account on which to book a difference between the bank transaction and matched records.
    - `vendor_id` string, uuid: Optional vendor associated with the adjustment quick entry.
    - `fields` object[]
      - `field_id` string, uuid, required
      - `field_value_id` string, uuid, required

## Response `204`

Bank transactions matched.

## Other responses

- `default`: Error

## Changes

- **2026-11-03** `c393d0102005`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rillet/apis/rillet-accounting-api/changes/bank-transactions/reconcile/transactions/post.md)

---

[API](https://skmtc.dev/rillet/apis/rillet-accounting-api.md) - [All operations](https://skmtc.dev/rillet/apis/rillet-accounting-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rillet/apis/rillet-accounting-api/revisions/c393d0102005?raw)
