# Bank Rules

`GET /banking/bank-rules`

Group: Banking › Bank Rules · Operation ID: `bankRules`

List bank rules with structured filters. GET data-set exposing filter[field][op]= (eq/ne/gt/gte/lt/lte/in/notIn/between/like), sort=-lastModifiedDate, sparse fields=, and page[size]/page[cursor] cursor pagination. Returns the header only; the criteria, watched bank accounts and action object come from GET banking/bank-rules/:id or POST banking/bank-rules/search. Every request must carry the Api-Version header.

[Open in the interactive reference](https://docs.api.lensing.ai/?op=bankRules)

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Api-Version` | header | `"v1"` | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version `v1`. |

## Query surface

- `id` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `bankRuleNumber` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `rule` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `action` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `status` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `priority` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `lastModifiedDate` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- Orderable: id, bankRuleNumber, rule, action, status, priority, lastModifiedDate
- Selectable: id, bankRuleNumber, rule, action, status, priority, description, lastModifiedDate

## Response

`200` Success

Under `data`, an array of bankRulesRow:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | Stable, platform-assigned id (a UUID) of the bank rule — the public identifier used by GET banking/bank-rules/:id. Filter e.g. filter[id][in]=<id1>,<id2>. |
| `bankRuleNumber` | string or null | no | Human-readable document number assigned from the BankRule number range, e.g. BR-000014. Filter target: filter[bankRuleNumber][eq]=BR-000014. |
| `rule` | string | no | Name of the rule, unique across the tenant. Filter target: filter[rule][like]=Stripe. |
| `action` | string | no | What the rule does when a transaction matches (createBankEntry, createCreditCardEntry). Filter target: filter[action][eq]=createBankEntry. |
| `status` | string | no | Whether the rule is in force (active, inactive). Only an active rule can be run. Filter target: filter[status][eq]=active. |
| `priority` | number | no | Evaluation order relative to other rules; lower runs first. Filter target: filter[priority][lte]=10. |
| `description` | string or null | no | Free-text note on what the rule is for. |
| `lastModifiedDate` | string (date-time) | no | Instant the rule last changed, as ISO 8601 UTC (YYYY-MM-DDTHH:mm:ss.sssZ). Poll on this to sync incrementally rather than re-reading the whole collection. |

## Statuses

- `400` — Invalid request or business failure
- `401` — Missing or invalid access token
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests
- `500` — Internal server error
