Bank movements are operations imported from the bank and used for reconciliation with your accounting.
Each record combines data returned by the banking connection (amount, dates, reference, labels) with Sage Active processing state (link status, suggested matches, and links to bank accounting entries).
BankMovements
Quick Links
Accounts Accounting Entries Products Customers Sales quotes Sales invoices Suppliers Purchase invoices| HTTP | Operation | Type | Object |
|---|---|---|---|
| Query | bankMovements filtered by id Why? |
||
| Query | bankMovements |
Description
Scope: the list only includes movements for bank accounts that are actually connected to their financial institution.
Accounts without a live banking connection do not supply rows; you will not see movements for purely local or disconnected payment methods.
How to query bank movements?
You can restrict the list to a single bank account by passing a where filter on bankAccountId.
Only movements whose bankAccountId matches the given payment method / bank account id are returned.
Use this to show the same scope as if you had picked one bank in the product.
GraphQL Query
query {
bankMovements(
first: 20,
where: { bankAccountId: { eq: "2c6e8a4e-0d1a-4f0b-9a3b-1e2d3c4b5a60" } }
) {
edges {
node {
bankAccountId
id
linkStatus
linkStatusDate
dateFundsAvailable
datePosted
narrative1
referenceNumber
transactionAmount
transactionNarrative
transactionStatus
transactionType
linkedAccountingEntries {
accountingEntryId
bankJournalTypeId
date
description
documentNumber
id
isClosed
number
status
}
proposalItems {
bankAccountingEntryId
bankBillOfExchangeId
bankingRuleId
id
itemAmount
ponderationScore
}
reconciledItems {
bankAccountingEntryId
bankBillOfExchangeId
bankingRuleId
bankingRuleRejected
id
linked
originProposalItemId
reconciledBy
suggestedBy
}
}
}
}
}
Example Response
{
"data": {
"bankMovements": {
"edges": [
{
"node": {
"bankAccountId": "2c6e8a4e-0d1a-4f0b-9a3b-1e2d3c4b5a60",
"id": "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d",
"linkStatus": "PENDING",
"linkStatusDate": "2025-04-20T14:00:00Z",
"dateFundsAvailable": "2025-04-19T00:00:00Z",
"datePosted": "2025-04-19T00:00:00Z",
"narrative1": "WIRE TRANSFER",
"referenceNumber": "REF-2025-00042",
"transactionAmount": 150.75,
"transactionNarrative": "Payment received",
"transactionStatus": "BOOKED",
"transactionType": "CREDIT",
"linkedAccountingEntries": [
{
"accountingEntryId": "c0d1e2f3-a4b5-4c6d-7e8f-0a1b2c3d4e5f",
"bankJournalTypeId": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
"date": "2025-04-20T00:00:00Z",
"description": "Bank receipt",
"documentNumber": "BANK-1024",
"id": "e2f3a4b5-c6d7-4e8f-9a0b-1c2d3e4f5a6b",
"isClosed": false,
"number": 1,
"status": "DRAFT"
}
],
"proposalItems": [
{
"bankAccountingEntryId": null,
"bankBillOfExchangeId": null,
"bankingRuleId": "f3a4b5c6-d7e8-4f9a-0b1c-2d3e4f5a6b7c",
"id": "a4b5c6d7-e8f9-4a0b-1c2d-3e4f5a6b7c8d",
"itemAmount": 150.75,
"ponderationScore": 90
}
],
"reconciledItems": [
{
"bankAccountingEntryId": "b5c6d7e8-f9a0-4b1c-2d3e-4f5a6b7c8d9e",
"bankBillOfExchangeId": null,
"bankingRuleId": "c6d7e8f9-a0b1-4c2d-3e4f-5a6b7c8d9e0f",
"bankingRuleRejected": false,
"id": "d7e8f9a0-b1c2-4d3e-4f5a-6b7c8d9e0f1a2b",
"linked": true,
"originProposalItemId": "a4b5c6d7-e8f9-4a0b-1c2d-3e4f5a6b7c8d",
"reconciledBy": "USER",
"suggestedBy": "BANKING_RULE"
}
]
}
}
]
}
}
}
Header
| Key | Value |
|---|---|
Authorization |
Bearer Current access Token How to find? |
X-TenantId |
Current tenant id Why deprecated ? |
X-OrganizationId |
Current organization Id How to find? |
x-api-key |
Primary or secondary subscription key of your app How to find? |
bankMovements
| Fields | Type | Description | Length |
|---|---|---|---|
| id |
UUID | Unique identifier of the bank transaction | |
| bankAccountId | UUID | Bank account (payment method) the movement belongs to |
|
| Data from the bank | |||
| transactionAmount | Decimal | Transaction amount as reported by the bank | |
| datePosted |
DateTime | Value date or posting date from the bank | |
| dateFundsAvailable |
DateTime | Date from which funds are available (when provided by the bank) | |
| transactionNarrative | String | Main narrative or label for the operation | |
| narrative1 | String | Additional narrative from the bank | |
| referenceNumber | String | Bank reference (e.g. end-to-end or operation reference) | |
| transactionType | String | Type of operation as provided by the bank (provider-specific) | |
| transactionStatus | String | Status of the operation on the bank side (provider-specific) | |
| Reconciliation in Sage Active | |||
| linkStatus |
|
State of the link between this movement and accounting | |
| linkStatusDate |
DateTime | When the current link status was last set | |
| linkedAccountingEntries[] | Array | Bank journal entries associated with this movement | |
| proposalItems[] | Array | Suggested matches (e.g. rules) pending validation | |
| reconciledItems[] | Array | Reconciled or rejected links between this movement and accounting or other documents |
Info
- linkStatus indicates how far the movement is in the matching flow with accounting (for example not yet processed, in progress, linked, or dismissed).
Values are listed in the Type column; you can also resolve localized labels via the Get localized enum values API when available for this enum. - proposalItems represent candidates (amount, banking rules, or targets) that Sage Active suggests before you confirm reconciliation.
- reconciledItems represent outcomes (confirmed link, rejected banking rule, etc.), including optional references to an originating proposal.
- linkedAccountingEntries are the bank journal entries tied to this movement, not a replacement for the full accounting entry list API.
bankMovements/linkedAccountingEntries
| Fields | Type | Description |
|---|---|---|
| id |
UUID | Identifier of the bank accounting entry line |
| accountingEntryId | UUID | Related accounting entry |
| bankJournalTypeId | UUID | Bank journal type |
| date |
DateTime | Entry date |
| number | Int | Line or sequence number |
| documentNumber | String | Document number |
| description | String | Description |
| status | String | Status of the bank accounting entry |
| isClosed | Boolean | Whether the entry is closed |
bankMovements/proposalItems
| Fields | Type | Description |
|---|---|---|
| id |
UUID | Identifier of the proposal item |
| itemAmount | Decimal | Proposed amount for this match |
| ponderationScore | Int | Internal score for ranking proposals |
| bankAccountingEntryId | UUID | Target bank accounting entry, if any |
| bankBillOfExchangeId | UUID | Target bill of exchange, if any |
| bankingRule |
BankingRule | Fields of BankingRule |
| bankingRuleId | UUID | Id of BankingRule that generated this proposal |
bankMovements/reconciledItems
| Fields | Type | Description |
|---|---|---|
| id |
UUID | Identifier of the reconciled item |
| linked | Boolean | Whether the item is currently linked |
| bankingRuleRejected | Boolean | Whether a suggested banking rule was rejected |
| bankingRule |
BankingRule | Fields of BankingRule |
| bankingRuleId | UUID | Id of related BankingRule, if any |
| bankAccountingEntryId | UUID | Resulting or related accounting entry, if any |
| bankBillOfExchangeId | UUID | Resulting or related bill of exchange |
| originProposalItemId | UUID | Source proposal item when the reconciliation was confirmed from a proposal |
| reconciledBy | String | Who or what applied the reconciliation (product-specific) |
| suggestedBy | String | Who or what suggested the link (product-specific) |