Skip to main content

Transaction List

Filterable / exportable list of SIL transactions. Uses DynamicPredicateBuilder for filters / searchText / searchFields.

Cmd: GetSITTransactionListQuery

Request​

{
"cmd": "GetSITTransactionListQuery",
"data": {
"pageIndex": 0,
"pageSize": 50,
"isExport": false,
"filters": [
{ "field": "Status", "operator": "equals", "value": "Posted" },
{ "field": "TransactionType", "operator": "equals", "value": "Deposit" }
]
}
}

Why account state matters here​

This page lists transactions, but the meaning of many SIL outcomes depends on the account state rules that were in force when posting was attempted.

Active: Normal posting flow. Transaction outcome is driven by amount, limits, approval and replay status.

Dormant: Transaction attempt is rejected with a state conflict. No balance movement is written.

PostNoDebit: Debit operations such as withdrawals and source-leg transfers are rejected.

PostNoCredit: Credit operations such as deposits and beneficiary-leg transfers are rejected.

Frozen: Any posting attempt is rejected.

Closed: Any posting attempt is rejected.

See Account States & Rules for the full state matrix and Enums Reference for the raw enum values.

How to read the list results​

The transaction list is easiest to interpret when you separate three different status dimensions:

Status / StatusCode: The business lifecycle of the SIL transaction itself. Typical values are Pending / 0, Posted / 1, Reversed / 3, Rejected / 5, Cancelled / 6.

ApprovalStatus / ApprovalStatusCode: Whether the item is waiting for supervisor action. Typical values are NotRequired / 0, PendingApproval / 1, Approved / 2, Rejected / 3, Cancelled / 4.

CoreSyncStatus / CoreSyncStatusCode: Whether SIL has replayed the transaction to CBS yet. Typical values are NotQueued / 0, Queued / 1, SyncedToCore / 2, FailedToSync / 3, DeadLettered / 4.

The API returns both the enum name and the underlying integer code for these fields in each row.

Response shape​

{
"data": {
"pageIndex": 0,
"pageSize": 50,
"totalRows": 1,
"items": [
{
"sitTransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"transactionReference": "M226E1M2269165431",
"transactionType": "Deposit",
"channel": "Branch",
"amount": 40.0,
"currency": "NGN",
"narration": "Cash deposit",
"accountNumber": "0900851943",
"counterpartyAccountNumber": null,
"tellerUserId": "bm1@mailinator.com",
"tillId": "T000T03",
"valueDate": "2026-02-20T00:00:00Z",
"transactionDateUtc": "2026-02-20T14:35:00Z",
"status": "Posted",
"statusCode": 1,
"approvalStatus": "NotRequired",
"approvalStatusCode": 0,
"coreSyncStatus": "SyncedToCore",
"coreSyncStatusCode": 2,
"isSync": true,
"coreBankingReference": "CORE-REF-9981",
"syncedToCoreAt": "2026-02-20T14:36:12Z"
}
]
}
}

Important interpretation rules:

  1. A state-rule failure such as Frozen, Dormant, PostNoDebit or PostNoCredit usually results in a 409 conflict at command time, so there may be no posted transaction to list.
  2. Pending does not mean CBS failed. It usually means the transaction was held for approval before any balance impact.
  3. FailedToSync or DeadLettered is a replay problem after SIL accepted the transaction, not an account-state problem.

Common investigation filters include:

Find items waiting for supervisor action: ApprovalStatus = PendingApproval

Find items accepted by SIL but not yet replayed to core: Status = Posted and CoreSyncStatus != SyncedToCore

Review a product flow such as transfers only: TransactionType = Transfer

Review successful postings only: Status = Posted

If an expected transaction is missing from the list entirely, check the source or beneficiary account state first. A blocked state can prevent the transaction from ever being created.