Skip to main content
GET
List bank transactions
Transactions can be filtered by:

Filtering by categorization status

Transactions can be categorized in three ways: To filter categorized vs. uncategorized transactions (e.g. get all uncategorized transactions), we recommend you use the categorized query parameter. To filter categorized based on their categorization status, we recommend you use the categorization_status query parameter.

Sorting

You can use sort_by query parameter to sort transactions by date, amount, counterparty name, or description. This defaults sorting by date in ascending order. You can use sort_order query parameter to sort transactions in ascending or descending order. This defaults to ascending order.

Pagination

See Pagination for cursor and limit behavior.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

Content-Type
string

Content-Type must be set to application/json.

Path Parameters

businessId
string
required

The UUID of the business to fetch bank transactions for.

Query Parameters

reference_number
string

Filter by exact reference number match. Returns only records with this exact reference number.

reference_numbers
string

Comma-separated list of reference numbers to filter transactions. Only transactions with reference numbers matching any value in this list will be returned.

start_date
string<date-time>

The start date of the transaction range to fetch.

end_date
string<date-time>

The end date of the transaction range to fetch.

direction
enum<string>

The direction of the transaction to fetch.

Available options:
INFLOW,
OUTFLOW
categorization_status
enum<string>

The categorization status of the transaction to fetch. If you wish to see all uncategorized transactions, see categorized=false query parameter.

Available options:
PENDING,
READY_FOR_INPUT,
CATEGORIZED,
SPLIT,
MATCHED
amount_min
integer<int64>

The minimum amount of the transaction to fetch.

amount_max
integer<int64>

The maximum amount of the transaction to fetch.

description_filter
string

Case-insensitive substring to search for in transaction descriptions (contains match, not exact equality).

description_filter_regex
string

Regex to search for in description transactions. Regex will be parsed exactly as given and an error will be returned if the regex is invalid.

external_account_ids
string

Comma-separated list of Layer external account UUIDs (Layer's internal identifier for an external account, e.g. a linked Plaid account). Filters transactions to those within the provided list of accounts. Unlike source_account_ids, these are Layer-assigned IDs rather than the external provider's account IDs.

bank_account_ids
string

Comma-separated list of Layer bank account UUIDs. Filters transactions by their owning bank account. A bank account may back multiple external accounts (Plaid, Unit, Stripe Treasury, or custom), so this provides a higher-level filter than external_account_ids.

source_account_ids
string

Comma-separated list of external provider account IDs. Filters transactions by their source account ID from the external provider (e.g., Plaid account ID, Unit account ID, Stripe financial account ID, or custom account external ID).

memo
string

Filter transactions by exact memo match.

memo_contains
string

Filter transactions where memo contains this substring.

customer_id
string<uuid>

UUID of the customer to filter transactions by.

customer_external_id
string

External ID of the customer to filter transactions by.

vendor_id
string<uuid>

UUID of the vendor to filter transactions by.

vendor_external_id
string

External ID of the vendor to filter transactions by.

is_matched
boolean

Filter transactions by whether they are matched (true) or not matched (false).

category
string

Filter transactions by category identifier or stable name.

categorized
boolean

Filter transactions by whether they are categorized (single categorization, split transactions, or matched transactions) or not categorized (pending, under review, ready for input).

merchant_name_filter
string

Substring to search for in merchant name. Only exact matches will be returned.

merchant_name_filter_regex
string

Regex to search for in merchant name. Regex will be parsed exactly as given and an error will be returned if the regex is invalid.

sort_by
enum<string>
default:date

Sort key used for pagination ordering. name corresponds to transaction description text (for Plaid, this is the Plaid transaction name field). Defaults to date.

Available options:
date,
amount,
counterparty_name,
name
sort_order
enum<string>
default:ASC

Sort direction for sort_by. Use ASC or DESC. Defaults to ASC.

Available options:
ASC,
DESC
external_ids
string

Comma-separated list of external transaction IDs (the upstream provider's identifier). Only transactions whose external ID matches one of the supplied values will be returned.

counterparty_id
string<uuid>

UUID of a bank transaction counterparty. Only transactions associated with this counterparty will be returned.

has_counterparty
boolean

If true, only transactions that have a counterparty assigned are returned. If false, only transactions without a counterparty are returned.

q
string

General-purpose search query. The value is matched against transaction descriptions, and is also parsed for an optional signed amount (e.g. +1234 to find inflows of $12.34, -1234 to find outflows) and category names from the chart of accounts.

tag_key
string

Tag key to filter transactions by. Must be supplied together with tag_values. Only transactions tagged with the given key/value pair will be returned.

tag_values
string[]

Tag values to filter transactions by, paired with tag_key. Provide one or more values by repeating the query parameter (e.g. tag_values=foo&tag_values=bar). Required when tag_key is supplied.

Response

data
object[]
required
meta
object

Request metadata. Present on paginated list responses.