Skip to main content

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

GET/v1/bank-transactions

Returns recent transactions across all connected bank accounts.

Query parameters

FieldTypeRequiredNotes
businessIdstringyes
bankAccountIdstringnoFilter to one account.
isMatchedbooleannoFilter by reconciliation status.
startDate, endDateISO 8601noFilter by value date.
limitintegernoDefault 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

POST/v1/bank-transactions/push

Pushes a single transaction from your bank feed integration.

Body

FieldTypeRequiredNotes
bankAccountIdstringyes
dateISO 8601yes
amountnumberyesNaira. Positive for credit, negative for debit.
typestringyescredit or debit.
descriptionstringyesNarration from the bank.
referencestringnoBank's transaction reference.

Batch import

POST/v1/bank-transactions/batch-import

Import many transactions at once (e.g. from a CSV parse or statement OCR).

Body

FieldTypeRequiredNotes
bankAccountIdstringyes
transactionsarrayyesUp to 500 transactions per call.
transactions[]objectyesSame shape as push body above.

Match a transaction

POST/v1/bank-transactions/{id}/match

Links a bank transaction to an invoice, receipt, expense, or bill.

Body

FieldTypeRequiredNotes
matchedTypestringyesinvoice, receipt, expense, bill.
matchedIdstringyesThe document to link to.

Unmatch a transaction

POST/v1/bank-transactions/{id}/unmatch

Removes a match. The original document reverts to unreconciled.

Auto-match

POST/v1/bank-transactions/auto-match

Runs the matching algorithm across all unmatched transactions. Returns counts of matched and unmatched.

Body

FieldTypeRequiredNotes
bankAccountIdstringnoRun against one account, or all if omitted.
minConfidencenumbernoDefaults 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

POST/v1/bank-transactions/sync-balance

Updates the stored balance on a bank account from the bank feed.

Body

FieldTypeRequiredNotes
bankAccountIdstringyes
balancenumberyesNaira. Current balance as of now.

Related endpoints

  • Receipts — bank credits typically match receipts
  • Expenses — bank debits typically match expenses

Reference index

Back to all modules