---
title: "Get one bank-feed transaction"
method: GET
path: "/public/v2/bank-match/bank-transactions/{financial_transaction_id}/"
tags: ["Bank Match"]
---

# Get one bank-feed transaction

`GET /public/v2/bank-match/bank-transactions/{financial_transaction_id}/`

## Request

- Base URL: `https://api.dualentry.com`
- URL: `https://api.dualentry.com/public/v2/bank-match/bank-transactions/{financial_transaction_id}/`
- Auth: none declared

Fetch a single bank-feed row by id. Returns `404` if it doesn't exist or belongs to another organization.

## Path parameters

- `financial_transaction_id` integer, required

## Response `200`

OK

- PublicBankTransactionSchemaOut: A single bank-feed row (one debit or credit on a connected bank/credit-card account). Use this to drive matching externally: pick a row, decide which DualEntry transaction it pairs with, then `POST /matches/`.
  - `created_at` string, date-time, required: Date and time the record was created
  - `updated_at` string, date-time, required: Date and time the record was last updated
  - `id` integer, required
  - `financial_account_id` integer, required
  - `financial_account_name` string, nullable: Human-readable name of the bank/credit-card account this row belongs to.
  - `date` string, date-time, required
  - `posted_at` string, date-time, nullable, required
  - `amount` string, required: Signed amount. Positive = debit (money in), negative = credit (money out).
  - `debit_amount` string, required: `max(amount, 0)`. Zero when this row is a credit.
  - `credit_amount` string, required: `abs(min(amount, 0))`. Zero when this row is a debit.
  - `description` string, required
  - `payee` string, nullable: Merchant or counterparty, when the bank reports one.
  - `currency_iso_4217_code` string, nullable, required
  - `source` 'pdf_upload' | 'csv_upload' | 'manual_upload' | 'bai_upload' | 'meld' | 'plaid' | 'waycore' | 'saltedge' | 'dualentry_banking' | 'yapily' | 'finicity' | 'customer_api' | 'sftp' | 'moss' | 'cashpro', required
  - `is_posted` boolean, required
  - `is_expired` boolean, required
  - `matching_status` 'unprocessed' | 'awaiting_setup' | 'deterministic_suggested' | 'awaiting_ai' | 'ai_in_progress' | 'ai_suggested' | 'ai_no_match' | 'no_match' | 'excluded' | 'matched', required
  - `matched_transaction_ids` integer[]: DualEntry transaction IDs currently matched to this row. Empty unless `matching_status == 'matched'`.
  - `matched_entry_ids` integer[]: DualEntry entry IDs currently matched to this row (used for partial matches like journal entries).

## Other responses

- `404`: Not Found

## Changes

- **2026-10-06** `f8de2ceea61d`: 2 warning
  - added the new `cashpro` enum value to the `source` response property for the response status `200`
  - added the new `dualentry_banking` enum value to the `source` response property for the response status `200`
- **2026-09-29** `4b2d6ee0dff6`: 2 info
  - added the optional property `error_code` to the response with the `404` status
  - added the optional property `error_reason` to the response with the `404` status
- **2026-09-22** `80ad0c0dfb37`: 1 warning
  - added the new `finicity` enum value to the `source` response property for the response status `200`
- **2026-09-21** `132d3ca6acd1`: 1 warning
  - added the new `yapily` enum value to the `source` response property for the response status `200`
- **2026-09-17** `eb1551572556`: 1 info
  - removed the `paypal` enum value from the `source` response property for the response status `200`

[Operation history](https://skmtc.dev/dualentry/apis/dualentry-public-api/changes/public/v2/bank-match/bank-transactions/:financial_transaction_id/get.md)

---

[API](https://skmtc.dev/dualentry/apis/dualentry-public-api.md) · [All operations](https://skmtc.dev/dualentry/apis/dualentry-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dualentry/apis/dualentry-public-api/revisions/410c299ab3bb?raw)
