How to Automate Bank Reconciliation in SAP Business One - Featured Image

Publications

How to Automate Bank Reconciliation in SAP Business One

Hector Pincheira

Hector Pincheira

CIO | CTO
Digital Strategy & Technology Innovation

items

The accounting black hole nobody wants to face

In most companies running SAP Business One, bank reconciliation is that process everyone knows has to be done but nobody wants to do. The accounting team spends hours matching lines on the bank statement against system records. The result: delays in the monthly close, accumulated errors and a distorted financial picture.

SAP Business One includes tools for bank reconciliation that can automate much of this work. In this tutorial you'll learn to configure and optimize the process to shorten the close and improve the accuracy of your financial information. I've also included diagnostic queries in versions for SQL Server and SAP HANA.

The three types of bank reconciliation in SAP Business One

External reconciliation (Bank Reconciliation): Compares the movements in SAP B1 against the actual bank statement. It identifies differences between what your system says and what the bank says. It's the most common process and the one that eats the most time when done manually.

Internal reconciliation (Internal Reconciliation): Links related documents inside SAP B1, such as a customer invoice against its matching payment. It's essential for keeping clean balances by business partner. It also lets you identify unapplied payments or invoices that were already paid but never linked.

Automatic reconciliation by rules: SAP B1 can apply predefined rules to automatically reconcile transactions that meet certain criteria (exact amount, reference, date). As a result, the accounting team only steps in for the exceptions.

Step 1: Set up the bank accounts correctly

Before automating bank reconciliation in SAP Business One, you have to verify that the accounts are configured correctly. Go to Administration → Setup → Banking → House Bank Accounts and check:

Linked G/L account: Each bank account has to be tied to a specific G/L account. If you have several accounts at the same bank, each one needs its own G/L account.

Statement format: Define the format of the file you receive from the bank (BAI2, MT940, CSV, OFX). SAP B1 supports several formats, but you need to configure the field mapping correctly.

Currency: The bank account's currency has to match the statement's. If you work with multiple currencies, each account has to be properly defined to avoid exchange-rate differences.

Step 2: Configure Bank Statement Processing (BSP)

BSP is the module that turns your bank statement into movements SAP B1 can reconcile automatically. To configure it, go to Banking → Bank Statement Processing.

Field mapping: Define which column of the file corresponds to date, amount, reference and description. Correct mapping is the foundation of successful automated reconciliation.

Assignment rules: Create rules that automatically identify the transaction type. For example, if the description contains «TRANSFER», assign it as a transfer between accounts. Be specific in the rules, though, to avoid false positives.

Default offsetting accounts: For recurring transactions (bank fees, interest, taxes), define the offsetting account so they post automatically.

Step 3: The automated bank reconciliation flow

Once BSP is configured, the daily flow gets considerably simpler. First, import the bank statement in Banking → Bank Statement → Process Statement. SAP B1 applies the configured rules and generates automatic journal entries for the recognized transactions.

Second, review the unrecognized transactions. These are the ones that need manual intervention and represent the exceptions in the process. So your work comes down to handling exceptions instead of processing every line.

Third, run the reconciliation. Go to Banking → Bank Reconciliation, select the account and the period. SAP B1 proposes automatic matches based on amount, reference and date. Accept the correct ones and work manually only on the differences.

Step 4: Optimize internal reconciliation

Internal reconciliation cleans up open balances for customers and suppliers. Go to Banking → Internal Reconciliations → Reconciliation and select the business partner. SAP B1 shows every open transaction and proposes the links.

To automate it, use Internal Reconciliation → Reconciliation Wizard. This wizard can reconcile invoices against payments in bulk when the amounts match exactly. You can also configure tolerances for minor differences such as rounding cents.

Diagnostic query: bank reconciliation status by account

This query gives you an X-ray of the reconciliation status of each bank account, showing how many transactions are pending and their amounts. It's essential for prioritizing the accounting team's work.

SQL Server version

SELECT
 T0.AcctCode AS 'Account',
 T0.AcctName AS 'Account Name',
 COUNT(CASE WHEN T1.IsCredit = 'C' THEN 1 END)
 AS 'Open Credits',
 COUNT(CASE WHEN T1.IsCredit = 'D' THEN 1 END)
 AS 'Open Debits',
 CAST(SUM(CASE WHEN T1.IsCredit = 'C' THEN T1.SrcSum ELSE 0 END) AS DECIMAL(15,2))
 AS 'Total Credits',
 CAST(SUM(CASE WHEN T1.IsCredit = 'D' THEN T1.SrcSum ELSE 0 END) AS DECIMAL(15,2))
 AS 'Total Debits',
 CAST(SUM(CASE WHEN T1.IsCredit = 'D' THEN T1.SrcSum ELSE -T1.SrcSum END) AS DECIMAL(15,2))
 AS 'Net Difference',
 MIN(T1.RefDate) AS 'Oldest Transaction',
 DATEDIFF(DAY, MIN(T1.RefDate), GETDATE())
 AS 'Days Unreconciled'
FROM OACT T0
INNER JOIN JDT1 T1 ON T1.Account = T0.AcctCode
LEFT JOIN ODSC T2 ON T2.AcctCode = T0.AcctCode
WHERE T0.AcctType = 'N'
 AND T0.ExportCode LIKE 'NK%'
 AND T1.MthDate IS NULL
GROUP BY T0.AcctCode, T0.AcctName
HAVING COUNT(*) > 0
ORDER BY COUNT(*) DESC

SAP HANA version

SELECT
 T0."AcctCode" AS "Account",
 T0."AcctName" AS "Account Name",
 COUNT(CASE WHEN T1."IsCredit" = 'C' THEN 1 END)
 AS "Open Credits",
 COUNT(CASE WHEN T1."IsCredit" = 'D' THEN 1 END)
 AS "Open Debits",
 CAST(SUM(CASE WHEN T1."IsCredit" = 'C' THEN T1."SrcSum" ELSE 0 END) AS DECIMAL(15,2))
 AS "Total Credits",
 CAST(SUM(CASE WHEN T1."IsCredit" = 'D' THEN T1."SrcSum" ELSE 0 END) AS DECIMAL(15,2))
 AS "Total Debits",
 CAST(SUM(CASE WHEN T1."IsCredit" = 'D' THEN T1."SrcSum" ELSE -T1."SrcSum" END) AS DECIMAL(15,2))
 AS "Net Difference",
 MIN(T1."RefDate") AS "Oldest Transaction",
 DAYS_BETWEEN(MIN(T1."RefDate"), CURRENT_DATE)
 AS "Days Unreconciled"
FROM "OACT" T0
INNER JOIN "JDT1" T1 ON T1."Account" = T0."AcctCode"
LEFT JOIN "ODSC" T2 ON T2."AcctCode" = T0."AcctCode"
WHERE T0."AcctType" = 'N'
 AND T0."ExportCode" LIKE 'NK%'
 AND T1."MthDate" IS NULL
GROUP BY T0."AcctCode", T0."AcctName"
HAVING COUNT(*) > 0
ORDER BY COUNT(*) DESC

The key differences between the two versions: SAP HANA uses DAYS_BETWEEN instead of DATEDIFF, Current date instead of GETDATE(), and every table and field name goes in double quotes. So make sure you use the right version for your database.

Best practices for bank reconciliation in SAP Business One

Reconcile daily: Don't let transactions pile up. A daily reconciliation takes 15 minutes; a monthly one can take days. Errors are also easier to catch when the information is fresh.

Standardize references: Define a reference convention that both your team and your customers use consistently. Don't rely on that alone, though: back it up with amount and date rules.

Review the tolerances: Define acceptable margins for minor differences (rounding cents, bank fees). As a result, the automatic process will resolve more cases without human intervention.

Monitor with the diagnostic query: Run the status query weekly. If unreconciled transactions are growing, you have a systemic problem to deal with.

Conclusion: bank reconciliation is the pulse of your financial health

Automating bank reconciliation in SAP Business One isn't just about saving time: it's about financial accuracy. Every unreconciled transaction is an unknown in your cash flow, an undetected fraud risk and a potential difference in your financial statements.

With the native SAP B1 tools, a well-configured BSP and the SQL Server and SAP HANA diagnostic queries presented here, you can turn a manual process that takes days into an automated one that takes minutes. Your accounting team will then be able to spend its time analyzing the information instead of just processing it.

Most Read

Pasajero mira un tablero de salidas en un aeropuerto, metafora de la dependencia de proveedores de IA
El Calendario Ajeno: la Dependencia de Proveedores de IA que Nadie Negocia
SAP Business One Procedimientos Almacenados: Reportes Reutilizables - imagen destacada del tutorial
SAP Business One Stored Procedures: Reusable Reports
SAP Business One Pending Orders - featured image of the tutorial
SAP Business One Pending Orders: SQL Query to Control Your Backlog
QlikSense yield analysis: breakdown of the loss
QlikSense Yield Analysis: the Waste Nobody Is Watching
QlikSense mobile dashboard: the three screens
QlikSense Mobile Dashboard: the Three Screens People Actually Open
SAP Business One Bank Deposits - featured image of the tutorial
SAP Business One Bank Deposits: Manage Checks and Collections Step by Step

RELATED ARTICLES