BETA
Please be aware that each bank connection you set up comes with a cost.
Overview
Bank reconciliation automatically matches the payments that arrive in your business bank account against your open offline payments in Frisbii, so you don't have to check your bank statement against unpaid invoices by hand. It's built for merchants who use offline payment methods, such as bank transfer.
You give each invoice a unique reference (for example, the invoice number). The customer writes that reference in their bank transfer, and Frisbii connects the two the moment the money lands in your bank account — no manual tick-off required.
Note
Connecting your bank account only grants Frisbii read access to transaction data, through a secure bank consent flow. Frisbii cannot move money in or out of your account.
Setup at a glance
Before any matching can happen, you set up three building blocks. The reconciliation configuration is the piece that ties them together.
Building block | Where | What it provides |
|---|---|---|
Bank connection | Configurations → Finance and accounting → Bank Connections | Access to your real bank account and its statement lines |
Offline payment agreement | Checkout management → Payment methods → Offline Payments | The reference tag customers quote on their transfer |
Reconciliation configuration | Configurations → Finance and accounting → Bank connections → Reconciliation Configurations | Links one agreement to one bank account, plus the matching rules |
Order matters
Create the bank connection and the offline agreement first — the reconciliation configuration needs to point at both. Each agreement can only have one configuration.

Before you begin
You have permission to manage bank reconciliation on your Frisbii account.
You have online banking access for the business bank account you want to connect.
You have an offline payment agreement (such as bank transfer) already configured, and it's active.
Connect a bank account
Navigate to Configurations → Finance and accounting → Bank Connections.
Connect bank account: Click on Add Connection.
Select your bank's country, and how long the connection should be valid. The validity period is required for security reasons — it's your consent for Frisbii to read the account's transactions, not a one-time permission.
For real banks, a typical validity period is 180 days, and you can request anywhere from 1 to 365 days — but the bank's own maximum consent period always wins if it's lower than what you request.

Log in with your bank — You're redirected to your bank's own login page.
Authenticate with your bank and grant consent to share account and transaction data.
Return to Frisbii — You're redirected back automatically.
A confirmation page appears, and you're returned to the bank connections overview.
When the connection is complete, your bank account appears in the connections table with the status Active.
.png?sv=2026-02-06&spr=https&st=2026-09-05T12%3A50%3A13Z&se=2026-09-05T13%3A11%3A13Z&sr=c&sp=r&sig=1ErRAIQRX5nAhixpXTld0uCe%2F30a8Pu1q0NZ3dzsSmk%3D)
Testing in a sandbox environment?
The demo/sandbox provider caps connection validity at 7 days. Requesting a longer period returns a validity error — just request 7 days or fewer. See Test bank reconciliation with the Demo provider below.
Manage your bank connections
View all active and revoked bank connections on the same page.
Select Renew to extend a connection before it expires.
Select Revoke to disconnect a bank account, or revoke all connections at once. Revoking stops Frisbii from reading further transactions from that account.
Select Delete on a revoked connection to remove it. Deleting is a soft delete — the connection history is retained.

Connection status: active, expired, or revoked
A bank connection is a time-limited consent you gave your bank. It doesn't last forever, and matching only works while the connection is Active.

Status | What it means | Effect on reconciliation |
|---|---|---|
Active | Your consent is valid. | Matching runs normally. |
Expired | The validity period you set (e.g. 180 days) has passed. | Any reconciliation configuration using this connection is automatically suspended until you renew. |
Revoked | Consent was withdrawn — by you, or by your bank. | The configuration is automatically suspended. A revoked connection cannot be renewed. |
To get matching running again:
Expired connection — Open the connection and select Renew. The linked configuration resumes automatically.
Revoked connection — You can't renew it. Create a new bank connection instead, then edit your reconciliation configuration to point at the new connection.
Tip
Because consent expires on a fixed schedule, renew the connection before the validity window runs out so matching never has a gap.
Add a reference tag to your offline payment agreement
Before you can enroll an agreement for reconciliation, its payment instructions need a reference tag. This is what your customer copies into their bank transfer, and what Frisbii searches for on the bank statement line.
Navigate to Checkout management → Payment methods → Offline Payments.
Open the offline bank transfer agreement you want to use for reconciliation, and make sure it's active.
In the payment instructions, click the tag icon and insert one of the following reference tags. If more than one is available on an invoice, Frisbii uses them in this priority order:
Priority | Tag | Meaning |
|---|---|---|
1 (preferred) |
| Accounting number |
2 |
| Invoice handle |
3 |
| Invoice number |
Example instruction:
"Please transfer to bank account 1234-5678, use invoice no.: {{invoice.handle}}"
Renders as:
"Please transfer to bank account 1234-5678, use invoice no.: inv-123456"
Tip
Put the reference tag front and center in your payment instructions so customers actually copy it into the transfer. A reference that's easy to miss is a common cause of transactions staying unmatched.
Enroll an offline agreement for reconciliation
Once your bank account is connected and your agreement has a reference tag, link them together so Frisbii knows which invoices to match against.
Reconciliation configurations — Open the configuration list.
Navigate to Configurations → Finance and accounting → Bank connections → Reconciliation Configurations.
Add configuration — Choose the offline agreement and the bank account to link it to.
If you don't have any offline payment agreement set up yet, you can click the link and get directed to the payment methods setup page.
Set the matching options for this configuration:
Setting | Description | Default | Allowed range |
|---|---|---|---|
Lookback days | How many days of past bank statement history to check when the configuration starts. | 90 | 1–365 |
Overlap days | How many days of overlap to re-check on each scheduled run, to catch late-arriving statement lines. | 1 | 0–365, and must not exceed the lookback value |
Match strategy | Strict requires the invoice reference to appear exactly as configured. Flexible tolerates differences in spacing and punctuation, and can match a long standalone number even without exact formatting. | Strict | Strict / Flexible |
Numeric minimum length | The minimum number of digits a numeric reference must have to be considered for matching. Guards against short numbers matching by coincidence — for example, with a minimum of 6, the year 2026 (4 digits) can never accidentally match. | 6 | 1–32 |

When the configuration is saved, it starts running on the regular reconciliation schedule.
Strict vs. Flexible matching, explained
Both modes are case-insensitive, and both only match the reference as a whole, standalone token — a reference is never matched inside a longer number (for example, inv-001 never matches inv-0012).

If the reference on the invoice is | Strict | Flexible |
|---|---|---|
| Matches | Matches |
| Matches | Matches |
| No match | Matches |
| No match | Matches |
| No match | No match |
| No match | No match |
Good to know
Ambiguity is never auto-matched. If two bank lines could both match one invoice, or two invoices could both match one bank line, at the same amount, Frisbii doesn't guess — the transaction is left Unmatched for you to review manually.
Use Strict if your customers reliably copy the full reference. Use Flexible if they tend to drop dashes and spaces, or paste just the number.
Manage a reconciliation configuration
Enable or disable a configuration to pause or resume automatic matching without deleting it.
Select Synchronize to run matching immediately, outside the regular schedule. Only active configurations can be synchronized.
Select Delete to remove a configuration.
Good to know
Each offline agreement can only have one reconciliation configuration. To change the bank account or matching options it uses, edit the existing configuration rather than creating a new one. If a synchronization is already running when you click Synchronize, you'll get a busy response — just wait a moment and try again.

How bank reconciliation works

Frisbii periodically fetches new bank statement lines from your connected account.
For each configuration, Frisbii checks your open (unpaid) offline invoices and tries to match them against the new statement lines by amount, currency, and reference.
When a match is found, the outcome is recorded and the invoice's transaction is updated from Open to Matched (or, if no match ever arrives, to Closed).
The reconciliation outcome also appears directly on the transaction's detail view.
Three things must line up for an automatic match:
The reference on the invoice appears in the bank statement text.
The amount matches exactly.
The currency matches exactly.
Amount and currency are always a hard requirement — the match strategy (Strict or Flexible, set on the reconciliation configuration) only controls how forgiving the reference text matching is.
Reconciliation states on a transaction

State | Meaning |
|---|---|
Open | The offline transfer has started processing. Frisbii is waiting for a matching bank transaction. |
Matched | A bank line matched on reference, amount, and currency. The payment is reconciled. |
Closed | No match arrived in time. Frisbii stops looking automatically once the invoice's payment due date plus a grace period has passed. |
The grace period comes from the offline agreement; if none is set, it defaults to 1 day after the due date.
View reconciliation outcomes
Navigate to Payments → Bank Reconciliation to see a read-only overview of reconciliation outcomes. This page lists individual matching results, not your bank connections — to manage connections or configurations, use Configurations → Finance and accounting → Bank connections instead.
Column | Description |
|---|---|
UUID | The reconciliation record's unique ID. |
State | Matched, Unmatched, or Sync failed. |
Transaction | The related transaction. Selecting a row opens Payments → Transactions filtered to that transaction. |
Configuration | The reconciliation configuration the outcome belongs to. |
Rule | The match strategy used: Strict or Flexible. |
Provider | The bank connection provider used. |
Entry reference | The bank statement line reference used for matching. |
Created / Updated | Timestamps for the reconciliation record. |
Use the filters above the table to narrow results by date range, state, rule, transaction ID, or configuration ID.
In the Transaction list, you can filter transactions by bank reconciliation status (None, Open, Matched, Closed).

Constraints and limits (quick reference)
Setting | Default | Allowed range |
|---|---|---|
Bank connection validity (requested) | 180 days (real banks) · 7 days (sandbox) | 1–365 days — the bank's own maximum may be lower |
Lookback days | 90 | 1–365 |
Overlap days | 1 | 0–365, and must not exceed lookback |
Numeric minimum length | 6 | 1–32 |
Match strategy | Strict | Strict / Flexible |
Grace period before Closed | 1 day | Set on the offline agreement |
Common errors and how to resolve them
When this happens | What to do |
|---|---|
You request a connection validity longer than your bank allows. | Request fewer days — at or below the bank's own maximum consent period. |
You request more than 7 days of validity in a sandbox/demo environment. | Use a shorter validity period for testing. |
You try to renew a revoked connection. | Revoked connections can't be renewed. Create a new bank connection instead, then point your configuration at it. |
You try to create a second reconciliation configuration for an agreement that already has one. | Edit or delete the existing configuration rather than creating a new one. |
Your configuration points at a bank connection that isn't active. | Reconnect or renew the bank connection, then check the configuration again. |
You set overlap days higher than lookback days. | Lower the overlap, or raise the lookback so overlap no longer exceeds it. |
You try to synchronize a disabled configuration. | Only active configurations can be synchronized — enable it first. |
You synchronize while a run is already in progress. | Wait a few seconds and try again. |
The agreement you select isn't eligible (wrong payment type, or not found). | Choose an active offline bank transfer agreement. |
Test bank reconciliation with the Demo provider
You don't need a real bank to try reconciliation end to end. In a sandbox environment, the Demo provider simulates a bank so you can see matching happen without moving real money.
There's no "send a transfer" button for the demo bank. Instead, it automatically generates a matching bank line based on a special token you put in the invoice handle when you create a test invoice.
The magic token
Add this to the invoice handle when you create the test invoice:
reconcile-demo-<scenario>-<amountMinor>-<currency>
<amountMinor>is the amount in minor units —25000means 250.00.<currency>is 3 letters and must match the demo bank's own currency (for example,dkkfor the Danish demo bank).You can add extra text around the token so the handle stays unique — for example,
inv-2026-001-reconcile-demo-auto-25000-dkkcreates a 250.00 DKK invoice that will auto-match.
Scenarios you can test
Scenario token | What the demo bank does | Expected result |
|---|---|---|
| Creates one exact-amount credit line. | Transaction becomes Matched. |
| Creates two identical lines (ambiguous). | Sent to manual review — stays Unmatched. |
| Creates a line off by 1 minor unit. | No match, because the amount doesn't line up exactly. |
| Creates no line at all. | Stays Open, then becomes Closed after the due date and grace period pass. |
Demo banks
Bank | Country | Currency |
|---|---|---|
| DK | DKK |
| NO | NOK |
| SE | SEK |
| FI | EUR |
Good to know
Keep the invoice currency the same as the demo bank's currency. The synthesized bank line always uses the bank account's currency, and currency always has to match exactly.
Testing scenario: open to matched

Create a test invoice as a pending offline bank transfer, with the token in its handle and the amount and currency matching both the token and the demo bank — for example,
inv-2026-001-reconcile-demo-auto-25000-dkkfor 250.00 DKK.Add the demo bank connection: choose the demo provider, bank
frisbii-test-dk/ countryDK, then open the consent page and select Allow access. You click through once — there's no silent auto-approval.Create the reconciliation configuration, pointing it at the agreement and the demo bank account, and make sure it's active.
Select Synchronize, or wait for the scheduled run. The demo bank generates the matching line and the pipeline matches it.
Check Payments → Transactions — the transaction is now Matched.
Swap the scenario token (review, wrongamt, abandon) to try the other outcomes.
Tips for reliable matching
Keep references unique, and at or above your configured minimum digit length.
Put the reference tag front and center in your payment instructions so customers actually copy it into the transfer.
Use Strict matching if customers reliably copy the full reference; use Flexible if they tend to drop dashes, spaces, or paste just the number.
Remember that amount and currency always have to match exactly — partial payments won't auto-match.
If a transaction should have matched but didn't, select Synchronize and check the transaction filter for Open vs. Matched.