Loading

Accounting & Bank Feeds

Bring transactions in from accounting packages and banks, stage them for review, code them with rules, and mirror postings back out.

Connecting a Feed Provider

A feed connection brings transactions in from outside: a bank statement file, a bank feed, or an accounting package such as Xero, QuickBooks or Sage. Each connection belongs to one company and one bank or ledger account, and everything it brings in waits in the feed queue to be coded and posted. Connections are set up on the Connections tab of the Bank Feeds & Reconciliation console.

Where to find it

Admin Panel → Finance:

  • Bank Feeds & Reconciliation — the Connections tab: connections, their settings, webhook and authorisation

Architect Panel → ERP - Finance:

  • Feed Queue — the same console for architects, where the site-wide provider settings are also changed
  • Feed Providers — the providers as a datastore
  • Feed Connections — the connections as a datastore
  • Feed Events — webhook deliveries as a datastore

The providers

Bank statement files (CSV / OFX / CAMT.053) works offline and is switched on out of the box. Xero, QuickBooks Online, Sage Accounting, Open Banking, Capita Integra 2 and Capita Integra Centros ship switched off and without credentials. Under Providers (site-wide) an architect switches a provider on and enters settings every connection inherits, such as an app's client ID and secret. On a shared installation this is done from the platform tenant. The live adapters have not yet been verified against real provider accounts, so test any live connection carefully before relying on it.

Creating a connection

  1. Open Bank Feeds & Reconciliation and choose Connections, then press New bank / feed connection (on a new install, Add a bank account).
  2. Give it a Name, choose the Company (fixed once created) and the Provider.
  3. Choose the Bank account in the ledger: bank lines post here, and the reconciliation proves this account. Nothing can post without one.
  4. Enter the Currency (a three-letter code) and, for a bank account, the Bank account number / IBAN: a statement for any other account is refused.
  5. For an accounting package, enter the Provider tenant / realm ID (the Xero connection, QuickBooks realm or Sage business). Leave it blank for statement files.
  6. Leave Status on Active, or Paused to stop it syncing, and press Create connection.

Settings, secrets and authorisation

  • Settings on a connection lists every setting by name with its key underneath, for example Statement drop folder, CSV layout, Mirror documents to this ledger. Settings are stored encrypted; a secret is never shown back. Leave its box empty to keep it, type to replace it, or tick Remove. A connection's own setting wins over the provider's site-wide one.
  • Server folder settings name places on the server, so only an architect can set or change them.
  • For QuickBooks and Sage, register the Redirect URI shown under Authorisation with the provider, put the app's client ID and secret in the settings, then press Authorise with QuickBooks (or Sage). The provider's consent page opens in a new tab. Xero connections use the platform's Xero authorisation; see Google Drive & Xero.

Webhooks

A provider that can push change notifications and sign them gets a Webhook section. Issue webhook URL creates a URL for this connection; the provider's signature, checked with the webhook signing secret or key, proves the sender. A verified notification triggers a sync unless Sync when notified is set to 0. Rotate replaces the URL at once; Revoke stops it. A statement-file connection reads its folder and has no webhook. The Events tab lists every delivery and whether its signature verified, including failures.

Syncing

Sync now on a connection fetches now. On a schedule, the Accounting and Bank Feed Sync task does it hourly once switched on. A sync only brings transactions into the queue; it never codes or posts them.

What goes wrong

  • "Connection created - its provider is switched off": an architect switches the provider on.
  • A sync refused because the connection "has to be authorised by a person first": complete the provider's authorisation.
  • A burst of failed signatures on Events: a wrong signing secret, or someone probing the URL. Rotate it.

Worked example

A company keeps three bank accounts at two banks and imports statement files. The controller creates three connections, all with the Bank statement files provider, each with its own ledger bank account and IBAN. Later the company connects QuickBooks to bring in a subsidiary's history: the architect switches QuickBooks on with the app credentials, and the controller creates a fourth connection, authorises it, and presses Sync now.

Recommendations

  • One connection per bank account, always: the connection decides which ledger account a line posts to.
  • Enter the IBAN, so a statement for the wrong account is refused.
  • Check Events after go-live for any connection with a webhook.
  • Pause a connection rather than deleting it when a bank account closes.

The Feed Inbox and Queue

Incoming bank and accounting transactions never post themselves. They land in the feed queue, where each is coded to an account (by a rule, a suggestion or a person), matched to an open invoice, or ignored, and only then posted. The Queue tab of Bank Feeds & Reconciliation is where that work is done.

Where to find it

Admin Panel → Finance:

  • Bank Feeds & Reconciliation — the Queue tab: code, match, post and ignore incoming lines

Architect Panel → ERP - Finance:

  • Feed Queue — the same console for architects; its badge counts lines not yet posted, ignored or reconciled
  • Feed Inbox — the staged lines as a datastore

Finding what needs doing

Filter by Connection, Search (text, reference or amount), From and To, and Show: Everything outstanding, Uncoded, Suggested, Ready to post, Matched to invoices, Errors, Posted, Reconciled to existing entries, Ignored or Everything. Columns sort, and long lists page.

Working the queue

  1. Press Apply rules to uncoded. Every uncoded line is tested against your coding rules; a match fills in the account, VAT code and analysis.
  2. Optionally press Rules, then ask AI to ask for a suggestion on lines no rule matched (one request per line, up to 100 a run). A suggestion fills in the account for you to accept; it never posts by itself. Suggestions from TypeSafe Jev, where it is set up, are covered in Feed Queue Coding Suggestions.
  3. For each remaining line press Code. Choose the Account, the VAT code (VAT is split out of the amount when it posts) and optional Analysis (up to six dimensions, for example dim1=CC100). Suggest an account asks rules and suggestions for this one line. Press Code, or Code & learn to also write a rule so the same counterparty codes itself next time.
  4. For money in or out that pays an invoice, press Match instead. It lists the open items the line could settle with a score and the reason; press Use this. Posting it settles the invoice, which moves to Paid.
  5. For a customer receipt that pays several invoices or part of one, Match offers Record receipt: it records the receipt against the customer, allocates it to the invoices you choose, leaves any rest on the customer's account, and reconciles the bank line to it.
  6. Tick the lines and press Post selected, or post one at a time. Each posts one journal on the connection's bank account.
  7. Press Ignore on a line that should never post, such as a transfer already entered elsewhere. It stops counting as outstanding and can be restored from the Ignored filter.

Already in the books?

When the bank account already holds an entry of the same amount within a week, not yet on any statement, with evidence it is the same money (a shared reference, the payer's name or code), the line is never matched automatically, and posting asks first. If it is the same money, do not post it: match it to that entry when you reconcile the statement. Press OK only for a genuinely separate payment. Reconciling is covered in Bank Accounts & Reconciliation.

Currency of a bank line

A bank line is in the bank account's currency. A euro receipt into a sterling account is banked as the sterling the bank received, and the euro invoice is settled by allocation, with the exchange difference posted as realised. Moving money between two bank accounts in different currencies goes through a transfer clearing account, one journal per side.

What goes wrong

  • "No rule matched, and the AI was not asked": the AI budget is used up. "the AI gateway had no answer": it may not be set up, which is normal. Either way, code the line by hand, then learn a rule.
  • A line in Errors: the posting was refused, for example for a closed period or an account that cannot be posted to. The message says which.
  • Nothing can be coded: the company's chart has no postable accounts yet.

Worked example

A month's statement brings 340 lines. Apply rules to uncoded codes 300. Twenty-two are customer receipts: Match pairs 18 with invoices, and four that pay several invoices go through Record receipt. Twelve are coded by hand, three with Code & learn. Two transfers are ignored and the last four wait while the bookkeeper asks the office manager. The rest are posted with Post selected.

Recommendations

  • Apply rules first, every time; it leaves only the exceptions for people.
  • Match receipts to invoices rather than coding them to the debtors account, or the invoices stay open.
  • Use Code & learn on the third occurrence of the same counterparty.
  • Never post a line you cannot identify to suspense; leave it in the queue and ask.

Coding Rules

Coding rules turn a recurring bank or feed line into a coded transaction without anybody looking at it. A monthly direct debit to the same supplier for the same purpose should not need twelve human decisions a year. Rules are tested before any AI suggestion, and they are written with pickers on the Rules tab of Bank Feeds & Reconciliation.

Where to find it

Admin Panel → Finance:

  • Bank Feeds & Reconciliation — the Rules tab: write, edit, order and delete coding rules; the Queue tab applies them

Architect Panel → ERP - Finance:

  • Feed Queue — the same console for architects

Writing a rule

  1. Open Rules and press New rule.
  2. Under Applies to, choose Every connection of a company, or one connection only.
  3. Set the Priority: higher runs first.
  4. Under When, choose what the rule tests: Description / narrative, Counterparty (as the bank wrote it), Counterparty reference (customer/supplier code), Payment reference, Transaction type, Currency, Amount (signed) or Bank transaction ID.
  5. Choose how it compares under is (for example contains, starts with, equals, is one of (comma-separated), matches the pattern, is at least) and type the Value, for example AMAZON WEB SERVICES.
  6. Set what it codes to: Code to account, VAT, Analysis (for example dim1=CC100; dim2=SALES) and optionally a Counterparty code, which is used to match invoices.
  7. Leave Post automatically when it matches unticked unless the rule is certain. When ticked, a matching line is posted with no human review, but only when rules are applied from this screen by someone allowed to post.
  8. Press Create rule.

The quicker way is Code & learn on the Queue tab: code one line by hand and a rule for the same counterparty is written for you.

Reading the rule list

The Coding rules list shows each rule's Priority, Applies to, When, Then code to and Used, the number of times it has matched. A rule whose field or operator can no longer be read is flagged for you to edit. Deleting a rule leaves the transactions it already coded as they are.

Why rules come first

A rule you wrote gives the same answer every time and can be pointed at when someone asks why a line was coded that way. A suggestion is a guess, however good. So express anything you can as a rule, and keep suggestions for the ambiguous rest, accepted by a person.

Order and specificity

Give specific rules a higher priority than general ones. A rule catching everything from one supplier will silently swallow the one payment to that supplier that should be coded differently. Review priorities whenever you add a rule. Match on the most stable thing in the line: a supplier's name in the narrative usually outlasts a reference that changes monthly.

What goes wrong

  • A rule never fires: its Used count stays at 0. Check the field and value against a real line on the Queue tab.
  • The wrong rule fires: a general rule has a higher priority than the specific one.
  • Something posted that should not have: an auto-post rule matched more than intended. Untick auto-post and reverse the journal.

Worked example

A business writes eleven rules for rent, utilities, insurance, payroll and its five largest suppliers. The rent rule, Description contains LANDLORD PROPERTIES, codes to 6100 Rent and rates with VAT EX and auto-post ticked. The others code without posting. Together they cover about 80% of bank lines; the rest are worked by hand, and any counterparty coded by hand three times gets Code & learn.

Recommendations

  • Learn a rule on the third manual coding, not the first.
  • Specific before general, and recheck priorities on every addition.
  • Use auto-post only for fixed, certain payments such as rent.
  • Delete rules whose Used count stops rising; an old rule is a trap for a similarly named new supplier.

The Outbound Accounting Mirror

The outbound mirror copies what is posted in ActiveManage out to an accounting package you still run alongside it: Xero, QuickBooks Online, Sage Accounting or Capita Integra. It exists for the period when your accountant, auditor or statutory book still lives in the old system. The ActiveManage ledger stays the system of record; the mirror never hands control over.

Where to find it

Admin Panel → Finance:

  • Bank Feeds & Reconciliation — the Outbox tab (what was queued, sent or failed) and the Connections tab (mirror settings)

Architect Panel → ERP - Finance:

  • Accounting Code Map — translates your account, tax, analysis and counterparty codes into the other system's
  • Accounting Outbox — the queue as a datastore; its badge counts failures

Turning it on

The mirror is off twice over, deliberately: the provider ships switched off, and a connection mirrors nothing until its own setting says so. Reading from Xero is not consent to write to it.

  1. Create and authorise a connection for the package (see the article on connecting a feed provider in this section).
  2. On the connection's Settings, set Mirror documents to this ledger to 1 and Mirror documents dated from to the first day to send, so switching on does not replay history.
  3. For Xero, QuickBooks or Sage, set Mirror payments too to 1 to send receipts and payments allocated against invoices already mirrored.
  4. Map codes in Accounting Code Map: every account you post to needs its code in the other system.
  5. On the Outbox tab press Find new postings and send once, read the result, then switch on the Accounting Outbound Mirror task.

What is sent

  • Journals: posted journals not yet sent. Journals that came in from a feed are never sent back out.
  • Invoices: by default a posted document goes as the journal it produced. A connection can instead name document types to send as invoices, with customer, lines, quantities, prices and tax, so the other system computes its own postings. Invoices go when they post, never as drafts.
  • Payments: with Mirror payments too, a receipt or supplier payment allocated against a mirrored invoice goes as a payment, and its cash journal is then not also sent. A payment waits until its invoice has been sent.

Only documents of the connection's own company are sent through it.

Working the Outbox

Under Show choose Failed or waiting, Failed, Queued, Sent, Cancelled or Everything. Each row shows the document, connection, status, attempts, when it was queued, and the last error or the other system's reference. Send now sends a queued or failed document immediately; Retry puts a failed or cancelled one back in the queue; Cancel stops it being sent. A failed document is retried on each run up to a limit, then stays failed and visible.

What goes wrong

  • An unmapped account: the document is refused, naming the code. Add it to Accounting Code Map. Unmapped analysis and tax codes pass through as they are.
  • QuickBooks or Sage refuses a counterparty: both need the customer or supplier mapped to their own ID; neither creates one silently. Xero creates the contact by name.
  • Xero analysis: Xero has at most two tracking categories, so only the first two analysis codes go.
  • Not verified live: the adapters are built from each vendor's published API and tested without a network. Check the first documents in the other system before trusting the mirror.

Worked example

A charity moves its operations onto ActiveManage but its auditors want Xero to agree until year end. The finance manager sets Mirror documents to this ledger to 1 from 1 April, maps its 40 nominal codes, presses Find new postings and send, and sees April's journals go across with Xero's references. One fails on an unmapped code; they map it and press Retry. The architect then switches on the Accounting Outbound Mirror task.

Recommendations

  • Set a start date before switching on, so history is not replayed.
  • Map every posting account first; an unmapped account stops the document.
  • Switch payments on before receipts are mirrored: a receipt already sent as a journal is never re-sent as a payment.
  • Investigate a second failure rather than pressing Retry again.

Capita Integra

The Capita Integra connector links ActiveManage with Integra 2 (Integra Financials) and Integra Centros in both directions: transactions extracted from Integra come into the feed queue, and postings made here can be mirrored out to Integra while it remains a site's statutory book. It is built for public-sector sites that run operations on ActiveManage but must keep Integra for some years. It has not yet been run against a real Integra system, so treat the first connection as a project, not a switch.

Where to find it

Admin Panel → Finance:

  • Bank Feeds & Reconciliation — the Connections tab (Integra connections and settings), the Queue tab (what came in) and the Outbox tab (what went out)

Architect Panel → ERP - Finance:

  • Feed Queue — the same console, where an architect switches the Integra providers on
  • Accounting Code Map — your codes against Integra's

The two providers

  • Capita Integra 2: customer-hosted with SQL Server behind it. Reached through its SQL interface tables by default, or by file exchange.
  • Capita Integra Centros: hosted by Capita. Reached through its API by default, or by file exchange.

Both ship switched off with no credentials. Nothing about Integra's interface is fixed in the product: endpoint paths, interface table and column names, and file layouts are all settings, because each site's Integra is configured differently.

Setting up a connection

  1. An architect switches the provider on under Providers (site-wide) and enters what is true for the whole Integra system, such as its service address and credentials.
  2. Create a connection per company and ledger with New bank / feed connection, choosing the Integra provider. A site reading both its general ledger and its purchase ledger runs two connections.
  3. Open the connection's Settings and set Transport to file, sql or api. For sql give the Database server, Database name, Database user and Database password; for api the Service address, App client ID, App client secret or API key; for file the inbound, outbound and archive folders (an architect sets folders, inside the server's ERP drop-folder root) and the Date format.
  4. Add any further settings the site needs with New setting name and New setting value; values written as JSON are stored as structured settings. The column mappings in and out are set this way.
  5. Map codes in Accounting Code Map.
  6. Press Sync now and check the first lines on the Queue tab: amounts signed the wrong way round are the first thing to look for.

Inbound

Extracted lines land in the feed queue uncoded, like any bank line, and are coded by your rules or by a person. Integra's own coding travels with the line but is never trusted into the coding: a narrative that says "post this to 4000" is text, not an instruction. Unmapped codes are fine inbound.

Outbound

Outbound uses the generic outbound mirror (see the outbound mirror article in this section), switched on per connection. Unmapped accounts are refused. Writing into Integra 2's interface tables is refused unless the tables are named in an allow-list setting, because a direct write bypasses Integra's own validation, period control and audit. Payments are not mirrored to Integra.

File transfer by SFTP

Integra file pickup can fetch files from an SFTP server into the inbound folder first. This needs the SSH extension on the web server, has not been verified against a live server, and refuses an SFTP-only account (one that may not run commands) with a message saying so.

What goes wrong

  • Every amount is backwards: the site's extract signs amounts the other way. Correct the sign setting before coding anything.
  • Dates a month out: set the Date format, for example d/m/Y.
  • Sync now refuses a folder: the folder does not exist or is outside the server's ERP drop-folder root. The message names the setting; ask an architect to correct it.

Worked example

A council runs purchasing on ActiveManage but files from Integra 2. The architect switches on Capita Integra 2; the finance lead creates a GL connection with the file transport, pointing at folders the platform administrator created, and maps 120 nominal codes. Mirroring is switched on from 1 April. After a week of comparing the first journals in Integra with the originals, the Accounting Outbound Mirror task is enabled.

Recommendations

  • Start with the file transport; it is the only one exercised end to end.
  • Agree interface details with the site's Integra consultant before entering settings.
  • Keep inbound and outbound separate decisions: a site keeping Integra as book of record may run outbound only.
  • Check the first documents in Integra by hand before relying on the mirror.