Reference
Bank Transactions
Push bank transactions, match them to accounting entries, and reconcile balances.
The bank transactions module is the bridge between a bank feed and Finora Business's books. Push transactions in, match them against invoices/receipts/expenses, and reconcile account balances.
List bank transactions
/v1/bank-transactionsReturns recent transactions across all connected bank accounts.
Query parameters
| Field | Type | Required | Notes |
|---|---|---|---|
businessId | string | yes | |
bankAccountId | string | no | Filter to one account. |
isMatched | boolean | no | Filter by reconciliation status. |
startDate, endDate | ISO 8601 | no | Filter by value date. |
limit | integer | no | Default 50, max 100. |
Response — 200
{
"success": true,
"data": {
"transactions": [
{
"id": "btx_abc",
"bankAccountId": "ba_001",
"date": "2026-04-15T00:00:00.000Z",
"amountKobo": 53750000,
"amount": 537500,
"type": "credit",
"description": "ACME LTD — INV-2026-001",
"reference": "TRF-98765",
"isMatched": true,
"matchedType": "receipt",
"matchedId": "rcp123",
"matchConfidence": 0.98
}
],
"count": 1
}
}Push a transaction
/v1/bank-transactions/pushPushes a single transaction from your bank feed integration.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
bankAccountId | string | yes | |
date | ISO 8601 | yes | |
amount | number | yes | Naira. Positive for credit, negative for debit. |
type | string | yes | credit or debit. |
description | string | yes | Narration from the bank. |
reference | string | no | Bank's transaction reference. |
Batch import
/v1/bank-transactions/batch-importImport many transactions at once (e.g. from a CSV parse or statement OCR).
Body
| Field | Type | Required | Notes |
|---|---|---|---|
bankAccountId | string | yes | |
transactions | array | yes | Up to 500 transactions per call. |
transactions[] | object | yes | Same shape as push body above. |
Match a transaction
/v1/bank-transactions/{id}/matchLinks a bank transaction to an invoice, receipt, expense, or bill.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
matchedType | string | yes | invoice, receipt, expense, bill. |
matchedId | string | yes | The document to link to. |
Unmatch a transaction
/v1/bank-transactions/{id}/unmatchRemoves a match. The original document reverts to unreconciled.
Auto-match
/v1/bank-transactions/auto-matchRuns the matching algorithm across all unmatched transactions. Returns counts of matched and unmatched.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
bankAccountId | string | no | Run against one account, or all if omitted. |
minConfidence | number | no | Defaults to 0.85. Transactions below threshold are left unmatched. |
Response — 200
{
"success": true,
"data": {
"scanned": 42,
"matched": 37,
"unmatched": 5,
"matchesByType": { "invoice": 18, "receipt": 14, "expense": 5 }
}
}Sync account balance
/v1/bank-transactions/sync-balanceUpdates the stored balance on a bank account from the bank feed.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
bankAccountId | string | yes | |
balance | number | yes | Naira. Current balance as of now. |
Related endpoints
Reference index
Back to all modules