Search bank entries

Operation ID: searchBankEntry

Group: Banking › Bank Entries

Open in the interactive reference

POST /banking/bank-entries/search

Read-only: A read that takes its filters in the body. Changes nothing, and ignores Idempotency-Key.

Searches bank entries. Each bank entry in the response includes its lines.

Parameters

Name In Type Required Description
Api-Version header string · 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.

Request body

Required, application/json: searchBankEntryInput.

Field Type Required Description
filters object no The filters to apply. A bank entry must match every filter you send. Omit to return all bank entries. Example: {"status":"unmatched"}.
filters.id string no Limits results to the bank entry with this identifier.
filters.bankEntryNumber string no Limits results to the bank entry with this number. The match is exact.
filters.journalEntryNumber string no Limits results to entries that posted to the journal entry with this number. The match is exact.
filters.status string no Limits results to entries in this status. Accepted values: 'matched', 'unmatched', 'voided', 'integrated'. Any other value matches nothing.
filters.currency string no Limits results to entries denominated in this currency. Format ISO 4217, for example 'USD'.
filters.bankAccountId string no Limits results to entries recorded against this bank general-ledger account. See id on GET accounting/accounts/:id.
filters.entityId string no Limits results to entries posted under this legal entity. See id on GET base/entities.
filters.origin string no Limits results to entries created by this source system. The match is exact.
page object no The pagination controls. Omit for the first page. Example: {"size":50}.
page.cursor string no The cursor from the previous response's pagination.nextCursor. Omit for the first request.
page.size number no The number of bank entries per page. Defaults to 50. A value above 200 is treated as 200, not rejected.
{
  "filters": {
    "status": "unmatched"
  },
  "page": {
    "size": 50
  }
}

Response

200 Success

Under data (searchBankEntryOutput):

Field Type Required Description
items array<object> yes The bank entries on this page, most recently created first. An empty array when nothing matches.
items[].id string yes The unique identifier for the bank entry.
items[].bankEntryNumber string no The bank entry number. Absent until one has been assigned.
items[].name string no The display name of the bank entry.
items[].description string no A free-form description of the entry.
items[].transactionDate date yes The date of the transaction this entry records. Format YYYY-MM-DD.
items[].serviceDate date no The date the goods or services were delivered. Format YYYY-MM-DD.
items[].currency string no The currency the entry is denominated in. Format ISO 4217, for example 'USD'. It governs every line amount.
items[].status string yes The reconciliation status of the entry. Possible values: 'matched', 'unmatched', 'voided', 'integrated'.
items[].journalEntryNumber string no The number of the journal entry this entry posted to, when it has been posted.
items[].origin string no A label for the source system the entry was created from.
items[].externalUrl string no A link to the source document in an external system.
items[].bankAccountId string no The bank general-ledger account this entry is recorded against. See id on GET accounting/accounts/:id.
items[].bankAccountName string no The name of the bank general-ledger account.
items[].entityId string no The legal entity this entry is posted under. See id on GET base/entities.
items[].lastModifiedDate date-time yes The date and time the bank entry last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
items[].lines array<object> no The posting lines of the entry, one per general-ledger posting. An empty array when the entry has none.
items[].lines[].id string yes The unique identifier for the line.
items[].lines[].lineNumber string no The line number.
items[].lines[].description string no A free-form description of the line.
items[].lines[].lineType string no The kind of line. Possible values: 'oneTime', 'prepaid'.
items[].lines[].amount decimal no The gross line amount, including VAT, in the entry currency.
items[].lines[].currency string no The currency of the line. Format ISO 4217. It always matches the entry currency.
items[].lines[].netAmount decimal no The line amount excluding VAT, in the entry currency.
items[].lines[].vatAmount decimal no The VAT amount on the line, in the entry currency.
items[].lines[].vatPercentage decimal no The VAT rate applied, as a percentage. For example, 19 means 19%.
items[].lines[].origin string no A label for the source system, copied onto the line from the entry.
items[].lines[].accountId string no The general-ledger account this line posts to. See id on GET accounting/accounts/:id.
items[].lines[].departmentId string no The department this line is charged to. See id on GET people/departments/:id.
items[].lines[].amortizationSchedules array<object> no The amortization schedules this line is deferred over, one per accounting book. Absent when the line is not amortized, which is every line whose lineType is not 'prepaid'. To read the schedule lines, use GET accounting/amortization-schedule-lines and filter on amortizationScheduleHeaderId.
items[].lines[].amortizationSchedules[].id string yes The unique identifier for the amortization schedule. To read its schedule lines, pass it as amortizationScheduleHeaderId to GET accounting/amortization-schedule-lines.
items[].lines[].amortizationSchedules[].bookId string no The accounting book this schedule posts into. It is what distinguishes the entries of this array. See id on GET accounting/books/:id.
items[].lines[].amortizationSchedules[].bookName string no The name of the accounting book this schedule posts into.
items[].lines[].amortizationSchedules[].status string no How far the schedule has progressed. Values include 'notStarted', 'inProgress', 'completed' and 'voided'. A schedule created alongside an unposted entry reads 'notStarted' until the entry posts.
items[].lines[].amortizationSchedules[].amortizationMethod string no How the schedule spreads its total. Values include 'exactDays', 'pointInTime', 'straightLine', 'straightLineProRateFirstLast' and 'usageBased'.
items[].lines[].amortizationSchedules[].amortizationStartDate date no The first day the schedule amortizes over. Format YYYY-MM-DD.
items[].lines[].amortizationSchedules[].amortizationEndDate date no The last day the schedule amortizes over, inclusive. Format YYYY-MM-DD.
items[].lines[].amortizationSchedules[].term decimal no The number of months the schedule spreads over. A count, not an amount, so it carries no currency.
items[].lines[].amortizationSchedules[].description string no The note recorded against the schedule, where one was given.
items[].lines[].amortizationSchedules[].deferredAccountId string no The general ledger account the deferred balance sits on until it is recognized. See id on GET accounting/accounts/:id.
items[].lines[].amortizationSchedules[].recognitionAccountId string no The general ledger account where each schedule line recognizes the expense. See id on GET accounting/accounts/:id. Absent on a schedule that has no schedule lines yet.
items[].lines[].amortizationSchedules[].totalRecognized decimal no The amount recognized so far by the schedule lines whose journal entries are posted, in the entry currency. Zero until the first schedule line's journal entry is posted.
pagination object yes The pagination cursor for this page.
pagination.nextCursor string no The cursor to pass as page.cursor for the next page. Absent on the last page.
pagination.hasMore boolean yes Whether more matches remain beyond this page.
{
  "data": {
    "items": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "bankEntryNumber": "<bankEntryNumber>",
        "name": "<name>",
        "description": "<description>",
        "transactionDate": "2026-01-15",
        "serviceDate": "2026-01-15",
        "currency": "<currency>",
        "status": "<status>",
        "journalEntryNumber": "<journalEntryNumber>",
        "origin": "<origin>",
        "externalUrl": "<externalUrl>",
        "bankAccountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "bankAccountName": "<bankAccountName>",
        "entityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "lastModifiedDate": "2026-01-15T09:30:00.000Z",
        "lines": [
          {
            "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "lineNumber": "<lineNumber>",
            "description": "<description>",
            "lineType": "<lineType>",
            "amount": "19.99",
            "currency": "<currency>",
            "netAmount": "19.99",
            "vatAmount": "19.99",
            "vatPercentage": "19.99",
            "origin": "<origin>",
            "accountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "departmentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "amortizationSchedules": [
              null
            ]
          }
        ]
      }
    ],
    "pagination": {
      "nextCursor": "<nextCursor>",
      "hasMore": true
    }
  },
  "diagnostics": [
    {
      "code": "<code>",
      "message": "<message>",
      "severity": "error",
      "path": [
        "<path>"
      ],
      "details": "<details>"
    }
  ]
}

Statuses