📘 Screen: Bank reconciliation

Bank reconciliation is the check between the bank statement and what is entered in the system: line by line of the statement, which installment, which transfer or which system entry corresponds to the money that came in or went out. In upCampo this check is done from the statement file — you download the statement from the bank, import it here, and the screen shows each bank transaction waiting to be matched with something in the system.

The problem it solves is the one every farm office has: the balance of the bank account in the system does not match the bank's balance, and no one knows whether it is a payment entered twice, a fee that was never recorded or a PIX the manager made without telling anyone. Reconciling is what turns that difference into a list of pending lines, one by one, with a name and an amount.

📍 Location in the system

Menu: Financial > Bank reconciliation

It sits in the month-end review block of the Financial menu, next to Period closing. Like every screen in the web portal, it only appears for those who have permission — access is granted in File > Users.


🧩 Main function

To import the bank statement and resolve each of its lines. Resolving a line can mean four things, and all of them leave the line Reconciled:

  • Matching it with an open installment in Accounts Payable/Receivable — in that case, reconciling is settling the installment.
  • Matching it with a transfer between accounts that already exists in the system — this settles nothing: the transfer already moved the balance when it was entered.
  • Creating the missing entry, for what was never recorded (a fee, a tax paid in online banking) — the document is created already paid.
  • Adding an installment to an existing document, when the bank debited an amount from that document that does not correspond to any of its installments.

Anything that is none of these can be Ignored: the line is cleared out of the way without creating any entry.

💡 Reconciliation has no settlement path of its own. When the line matches an installment, upCampo uses exactly the same path as the Accounts Payable/Receivable screen — the payment you would see if you had paid off the installment there. That is why the account balance moves only once, and what appears in the account's statement is the same entry as always.

🔢 The screen in three steps

The screen is a numbered flow, from top to bottom. Each block shows its number and title, and the current block is highlighted — step 1 while the list is empty, step 3 afterward.

  1. Import the statement — the file you downloaded from the bank.
  2. Account and period — filled in by the file itself.
  3. Review and reconcile — the lines, with the buttons for each one.

Step 1 — Import the statement

The button is Import statement. Download the statement from the bank account and upload the file: upCampo reads four formats, and what decides the format is the file's content, not its extension. That matters because Banco Inter delivers the same CNAB 240 statement under two names — .RET and .TXT — and customers rename files.

FormatWhat the file containsWhat it does not contain
OFX (.ofx, .qfx) Bank and account from the header; the bank's identifier for each transaction (the FITID); the counterparty's name, when the bank sends it. Opening and closing balance — so there is no balance check with this format.
CNAB 240 (.RET or .TXT) Bank, branch and account; the opening and closing balance declared by the bank; its own identifier for each transaction; the debit and credit totals. The counterparty's name. It says "PIX ENVIADO" (PIX sent) and stops there.
CSV (.csv) The account from the header; the balances, from the running balance column; and the counterparty's name, which is why it is supported here even though CNAB exists. A transaction identifier — the duplicate key is generated from the content (see Known limitations).
⚠️ The CNAB 240 here is FEBRABAN's "statement for bank reconciliation", not the payment return file. They are two different files in the same standard: the return file says what happened to the payments you sent; the statement lists all of the account's activity, with opening and closing balance. This screen imports the second one. PDF is not read — on purpose: the CSV carries the same content, structured.

After reading, the screen shows the File read line, with the file name, the format recognized, which bank and account it belongs to and how many transactions it has. The import message says how many lines came in and how many already existed.

💡 Importing the same statement twice does not duplicate lines. Each transaction comes in with a unique key within the account, and the import skips what is already there. Re-importing the month's statement every week is an intended use: only new lines come in, and the message says how many were skipped.

When the file is incomplete or out of standard, the screen warns you instead of making up numbers: a file missing the standard's trailer, declared totals that do not match the transactions read, a number of transactions different from the declared one, a line with no date or no amount (those are skipped). A file no reader recognizes gets "Format not recognized", and not a message about OFX.


Step 2 — Account and period

This is the account the lines go into and the period the list shows. Both are filled in automatically from the file: the file's account is looked up among the farm's bank accounts and, when found, is selected; the start and end dates become the first and last day of the file's transactions.

That fixes two mistakes that used to happen. The first is having to guess the account — exactly what the file knows. The second is quieter: the period used to start as "from the 1st through today", and last month's statement came in without appearing in the list, giving the impression that the import had not worked.

⚠️ A statement from another account is not imported without confirmation. When the chosen account is not the file's, the screen shows a red block stating which account each one is and requires an explicit Import anyway. The real case that created this check: a Banco Inter statement imported into an account called "CONTA SANTANDER". It is an easy mistake to make and an expensive one to undo — importing that way puts one bank's transactions inside another account, and reconciliation starts settling installments with a statement that is not theirs, which pulls the balance of both accounts away from the bank. The block stays on screen as long as the chosen account is not the file's, including when you change the account after uploading the file.

The comparison is tolerant on purpose: bank, branch and account arrive written in every possible way ("077" and "77", "4461112-9" and "4461112"), so both sides are reduced to digits and compared with and without the check digit. What identifies it is the account number; the bank is only used to break ties, and the branch does not enter the decision — it shows on screen for you to see. And when the bank account record does not have the account number filled in, the screen flags nothing: warning about a mismatch because of a missing record would train anyone to click "Import anyway" without reading.


Step 3 — Review and reconcile

This is where the three tabs are — Statement, History and Summary — and, at the bottom of them, what is not a single-line action: Reload, Auto reconcile and Delete. The first two also appear in a small version at the top of the step, as a shortcut: the statement grid is tall, and anyone who scrolls to the bottom to reload loses the line they were looking at.


📝 Main fields

FieldDescription
Bank accountThe account the statement is imported into and whose lines the list shows. Required. Filled in by the file. When the farm has only one account, it starts selected.
Start date / End dateThe period the list shows. It starts at the 1st of the month through today and becomes the file's period after importing. Change it only to look at another period — it changes nothing that is saved.
StatusList filter: All, Pending, Reconciled or Ignored.
Payment method for auto reconcileApplies only to the Auto reconcile button; it starts as Transfer. When reconciling a line through the window, the method is chosen inside it. The methods are the same as in Accounts Payable/Receivable: Cash, Transfer, Credit card, Boleto, PIX and Check.

📋 The Statement tab: the bank's lines

One line per statement transaction, with a filter on every column: Date, Type, Amount, Description (the text the bank wrote), Document, Status, Reconciled with, Reconciled by and Reconciled on.

Reading it is visual, because a statement review is done by scanning:

  • Money in and money out are told apart by arrow and color — a green down arrow for money in, a red up arrow for money out —, and the amount carries a sign, in the same color, right-aligned like on a bank statement.
  • The status is a colored badge: Reconciled in green, Pending in light red, Ignored in gray. The whole line also gets a background in the status color.

Each line's actions

The buttons are on the line itself, and each line shows only those that make sense for its status:

ButtonWhich lines it appears onWhat it does
ReconcilePendingOpens the candidates window (see below). Double-clicking the line does the same.
Create documentPendingCreates the document the line does not have, already paid, and reconciles.
IgnorePendingClears the line out of the way without creating any entry.
ReopenAlready resolvedReturns the line to Pending. It only works on an ignored line — see the alert below.
⚠️ A reconciled line cannot be undone from here. Reopen works for an ignored line; on a reconciled line, upCampo responds that the way is to reverse the installment in Accounts Payable/Receivable (the Remove Payment button, which only appears on a paid installment). That is on purpose: reconciling settled the installment, and returning the line to pending without reversing would leave the payment there and the line free to be reconciled again. For the same reason, the Delete button refuses a reconciled line — it is meant for a line imported by mistake, and the deletion is logical: the event stays in the history.

🔍 The reconcile window: three tabs, one choice

The window shows the statement line at the top and, below it, the candidates for it in three tabs. You choose one candidate across the three: selecting in one clears the others, and the Reconcile button sees the choice from any of them. Switching tabs does not clear the selection — you can choose in the third and go back to the first to compare before confirming.

Installments tab — the candidates by amount

Open installments with the same amount as the statement line (with a one-cent tolerance, matching the installment's net or gross amount). The line's sign decides where to look: money coming into the bank looks in Accounts RECEIVABLE, money going out in Accounts PAYABLE.

The Search option lives inside this tab, because it is the only one it affects:

  • Same date — due on the same day as the statement line;
  • Up to 5 days apart — the leeway for a boleto paid before or after its due date.

Columns: due date, amount, entity, the Accounts Payable/Receivable document and the management account. When the file brought the counterparty's name — CSV and OFX do, CNAB 240 does not —, installments of the entity with that name move to the top of the list. Only the order changes: no candidate is hidden and nothing is chosen automatically.

Transfers tab

The transfers between accounts already entered in the system, with the same amount. Reconciling with one of them settles nothing: the transfer moved the balance when it was entered, and all that's left is to mark that this statement line is that transfer. That is why this tab is the first thing auto reconcile tries.

Payables/receivables of the entity tab

This is the tab for the case the amount does not solve: paid with interest, paid with a discount, two documents in a single PIX, an installment entered with the wrong cents. It lists all of that entity's open installments, with no amount filter and no date filter — you choose by looking at the document, not the amount. The type still follows the line's sign (money in looks in RECEIVABLE, money out in PAYABLE), because that is not search tolerance: it is what the installment is.

The entity comes pre-filled, and can be changed. upCampo recognizes whose line it is from the statement text, comparing it with the names of the registered entities, and pre-selects it. Changing it is expected and common: the PIX comes from one entity and the document belongs to another. When you change it, the list reloads and the selection is cleared, so no installment stays selected for an entity that is no longer on screen.

💡 An amount different from the statement warns, it does not block. When the chosen installment has an amount different from the line's, upCampo asks before finishing — "The installment is X and the statement line is Y. Reconcile anyway?" — and the settlement is still the same one the system already does today. It works this way because the difference is usually legitimate (interest, discount, a built-in fee), and blocking would send the person back to the spreadsheet.
⚠️ When the file did not say whose line it is, the entity starts empty. That is the case with CNAB 240, which does not carry the counterparty's name, and also with a tie — two entities with similar names in the statement text. Then the screen asks you to choose the entity to see its open installments. A tie returns empty on purpose: the recognized entity is the same one that Create document starts with, and a tie settled by chance would become a document under the wrong supplier.

➕ Create document: for what does not exist in the system

The bank fee, the one-off PIX, the tax paid directly in online banking: lines that match nothing because there is no document at all in the system. The Create document button creates the document from the statement line itself — with one installment, the installment is created already paid (the money moved: it is on the statement) and the line becomes Reconciled. All in a single transaction: if the settlement fails, nothing is saved.

It is in two places — on the grid line and inside the reconcile window —, because someone who already knows the line is a fee should not have to open the candidates window to find out there are none.

FieldHow it comes
TypeRead-only. It comes from the line's sign: money leaving the bank creates Accounts PAYABLE, money coming in creates Accounts RECEIVABLE. The sign already says which it is, and letting you choose would only open the door to creating a document on the wrong side.
EntityPre-selected when the statement text made it possible to recognize it.
DescriptionThe statement line's description. Required.
AmountLocked to the line's amount. The installment is created to be paid by that line, and a different amount would make the account balance diverge from the bank.
Due dateThe statement date. Editable, if the real due date is different.
Management accountRequired, with the same filter as in Accounts Payable/Receivable: expense on a payable document, revenue on a receivable document.
Cost centerOptional.
SeasonOptional.
CurrencyAppears only when the farm has a currency set up.
Tax settingsAppears only when the farm has tax settings set up.

The settlement goes into this screen's bank account, with the statement date and the chosen payment method. Create document requires add permission in Accounts Payable/Receivable, which is the screen where the document will live — someone who can reconcile cannot necessarily enter documents.

💡 On a farm that requires batch approval, Create document is still available (decision of October 3, 2026). Approval authorizes a payment before it happens; here the money has already gone out or come in — it is on the statement, and the entry is created already paid, with the bank's date. With the preference turned on, the screen says so instead of refusing. A payment that is still going to happen still goes through the batch.

📎 Add installment to this document

It is the opposite of Create document: the document exists, the installment does not. The bank debited an amount that does not correspond to any installment of that document — the supplier charged an extra amount, the payment went out in two parts, a second charge for the same document came in. The button adds the missing installment to the existing document, settles it with the statement date and marks the line as Reconciled, all in a single transaction.

It is only enabled with a line from the Payables/receivables of the entity tab selected — that line is what tells which document is the target. The fields: Target document (read-only), Amount locked to the statement line's amount, Due date set to the statement date (editable), management account and cost center inherited from the chosen installment and editable. Same permission as Create document: add permission in Accounts Payable/Receivable.

⚠️ Adding an installment INCREASES the document's total amount. The document's total is the sum of its installments, which is why the dialog shows, highlighted, today's total and the total it will have — "Total today X becomes Y" — before you confirm. Use it when the bank paid something extra to this supplier and that amount belongs to this document: the document really became worth more.

Do not use it when the existing installment was paid with interest or with a discount. There the document's total did not change, and adding an installment would increase what is owed to the supplier without anyone noticing. That case is handled with a partial payment in Accounts Payable/Receivable, which has interest and discount fields — and the statement line is reconciled through the entity tab, confirming the different-amount warning.

⚡ Auto reconcile

It scans the pending lines in the period shown and reconciles those that have a single candidate. The order it tries is:

  1. Transfer between accounts with the same amount — the safest, because it involves no settlement.
  2. Open installment with the same amount: first the same date, then up to five days apart. The settlement uses the payment method from the step 2 field.

Three things worth knowing, because they explain the result:

  • A line with two or more candidates stays pending on purpose. Ambiguity is for a person to resolve — the message says how many lines are still pending.
  • One installment does not match two lines in the same run. An installment that has been used drops out.
  • Each line is its own reconciliation. One that fails does not bring down the ones that already worked.

🔒 A closed period blocks reconciliation

Reconciling an installment means settling it, and the settlement is made with the statement date. If that date falls inside the period that Period closing has locked, upCampo does not allow it — and it warns you beforehand, instead of refusing after you confirm:

  • In the grid, that line's Reconcile button starts out disabled, and the explanation appears on hover, saying through when the period is closed.
  • In the reconcile window, the button is re-evaluated with each choice: with an installment selected, it looks at the statement date and the installment's due date. With a transfer selected, nothing is blocked — there only the statement line's status changes.
  • In Auto reconcile, those lines are skipped, and the message says how many and through when the period is closed.
  • Create document and Add installment follow the same rule, for the same reason: the installment is created already paid, with the bank's date.

Ignore, Reopen and Delete are outside this rule: they only touch the statement list, not documents or balances. To reconcile a line in a closed period, reopen the period in Financial > Period closing, reconcile and close it again.


📊 The Summary tab: proof the statement is complete

The first strip has five cards for the period on screen: how many statement lines, how many pending (in red, when there are any), how many reconciled, how many ignored and the period's net activity — the sum of what came in minus what went out on the listed lines. Since they reflect the period and status chosen in step 2, changing the filter changes the cards.

Below comes the Balances declared by the imported file block, which is the part that matters in the review: opening balance, closing balance and the Check, in green when it balances and in red when it doesn't.

opening balance + (money in − money out) = closing balance

That calculation is the proof that the file is complete — that no transaction was lost in the download or in the reading. The balances are the ones the file itself declares, and the check is on the lines read from it: a line skipped because it already existed in the account does not change this calculation, because what is being proven is the file's integrity, not what came in now. When it does not balance, the screen tells you by how much it is off, at import time and on the card.

💡 The balances are not saved. They apply to the file imported in this session, per bank account — leaving the screen and coming back keeps the block, ending the session does not. Before any import, the block says that no file has been imported for this account. And when the format does not report a balance — the case of OFX —, it says so: there is nothing to check, and CNAB 240 and CSV do report it.

🕘 The History tab: who did what, and when

It is an event log: one line per action, not one per statement line. It shows all events for the lines of the account and period chosen in step 2, from the most recent to the oldest, with a filter on every column: When (with time), User, Action, Statement line (date, amount and description, to identify which line the event belongs to), Reconciled with and Notes.

Five actions are recorded: Imported (the notes keep the file name), Reconciled (the notes say which of the four paths was used), Ignored, Reopened and Deleted. Because the same line appears in several rows — it was imported, ignored, reopened and reconciled —, the whole sequence is visible. The event is saved in the same operation as the action: if the action fails, the event does not exist; if the event cannot be saved, the action is undone.

The step 2 Status filter does not apply here: it says how the line is today, and the history is about what happened. And the deletion event stays — importing into the wrong account and deleting afterward is exactly the kind of thing you need to be able to explain months later.

⚠️ The history starts on October 3, 2026, when event logging came into existence. Statement lines that were already in the system before that date have no events, and no retroactive event was made up for them. For those lines, who resolved them is still visible where it always was: in the Reconciled by and Reconciled on columns of the Statement tab, which show the line's current state.

🚧 Known limitations

  • Importing the same period in two different formats duplicates the lines. Each format gives a different key to the same transaction: OFX uses the bank's identifier, CNAB 240 uses its own transaction identifier and CSV carries neither (in that case the key is generated from the line's content). There is no way to cross-match the three. Pick one format per account and stick with it — at import, the screen tells you how many lines had a generated key, which is the sign that this risk exists in that file.
  • OFX does not carry a balance, so the Summary tab check does not happen with that format. When the check matters, CNAB 240 and CSV are the formats to use.
  • CNAB 240 does not carry the counterparty's name, so the entity is not recognized and the entity tab starts by asking you to choose whose line it is. CSV and OFX carry the name.
  • This screen does not produce reports. The review is done on it, through the Summary tab and the Status filter; the financial reports are in the Financial quick guide.
  • There may be pending lines you did not import. The reconciliation in Payment batch, when it checks the bank's file, also saves the file's lines here — those that matched already reconciled and the rest pending. The history of those lines records the file name and the batch number, and that is how you find out where they came from.
✅ Result: with reconciliation up to date:
  • The bank account balance in the system matches the bank's balance, and the difference, when there is one, has a name: it is a list of pending lines.
  • Fees, taxes and one-off PIX payments stop being left out of the results — they come in as already-paid documents, straight from the statement.
  • Installment settlements stop being typed in twice: the bank statement is what settles them.
  • The bank's file is checked on the spot: opening balance plus transactions must equal the closing balance the bank declared.
  • Who reconciled, ignored, reopened or deleted each line, and when, is recorded.
  • The reviewed month can be locked in Period closing without worrying that someone will change it later.

❓ Frequently asked questions

How do I import my bank statement into upCampo?

Download the statement from your bank account as OFX, CNAB 240 (the .RET or .TXT files of the "statement for bank reconciliation") or CSV, open Financial > Bank reconciliation and click Import statement in step 1. upCampo detects the format from the file's content, not its extension, and fills in the step 2 account and period on its own from what the file says. PDF is not read.

I imported the same statement twice. Will it be duplicated?

No. In upCampo's bank reconciliation each transaction comes in with a unique key within the bank account, and the import skips what is already there — the message says how many lines came in and how many already existed. What does duplicate is importing the same period in different formats (the OFX and then the CSV for the same month, for example), because each format identifies the transaction in its own way and there is no way to cross-match the two. Pick one format per account and stick with it.

The screen says the statement is not from the selected account. What do I do?

Check the step 2 account before going on: upCampo read from the file which bank and account it belongs to, and they do not match the chosen account. Usually you just need to change the account in step 2 — or the bank account record is missing the account number. There is an Import anyway, but importing one bank's statement into another's account puts the activity in the wrong account and makes reconciliation settle installments with a statement that is not theirs.

How do I enter the bank fee that shows up on the statement?

Use the Create document button on the fee's line, in Financial > Bank reconciliation. It creates the document from the statement line itself, with one installment, already paid on the bank's date and amount, and marks the line as reconciled. It works for anything that has no document in the system: fees, taxes paid in online banking, one-off PIX payments. It requires add permission in Accounts Payable/Receivable, which is where the document will be kept.

The bank debited an amount different from the installment. How do I reconcile it?

With the Payables/receivables of the entity tab in the reconcile window: it lists all open installments of that supplier or customer, with no amount filter and no date filter, and you choose by looking at the document. upCampo warns that the amount differs from the statement and asks for confirmation — it warns, it does not block. If the difference is interest or a discount on the installment itself, enter the payment with interest or discount in Accounts Payable/Receivable; do not use Add installment to this document, which would increase the document's total.

When should I use "Add installment to this document"?

When the bank paid something extra to that supplier and that amount really belongs to that document — an extra charge, a second charge on the same document. The document becomes worth more, and that is what the highlighted warning shows before you confirm: today's total and the total it will have. Do not use it when the existing installment was paid with interest or with a discount: in that case the document's total did not change, and the way is a partial payment in Accounts Payable/Receivable.

I reconciled the wrong line. How do I undo it?

By reversing the installment, in upCampo's Financial > Accounts Payable/Receivable: open the installment and use Remove Payment, which only appears on a paid installment. The reconciliation's Reopen button only works for an ignored line, and a reconciled line cannot be deleted either — that is on purpose, because reconciling settled the installment, and returning the line to pending without reversing would leave the payment there.

Why is the Reconcile button disabled on that line?

Almost always because that line's date falls in a closed period: reconciling settles the installment with the statement date, and upCampo's financial close does not accept entries inside a locked period. Hover over the button: the explanation says through when the period is closed. The way is to reopen the period in Financial > Period closing, reconcile and close it again. The other possibility is missing edit permission on the screen.

Auto reconcile left lines pending. Why?

It only reconciles what has a single candidate — same amount, first on the same date and then up to five days apart. A line with two or more candidates stays pending on purpose: choosing between identical installments is a decision for someone who knows the payment, not for the system. Lines in a closed period are also skipped, and the message says how many. The rest is resolved line by line, with the Reconcile button.

How do I know whether the statement file came in complete?

With the bank reconciliation's Summary tab: it shows the opening and closing balance the file itself declares and says, in green or red, whether the statement balances — opening balance plus transactions must equal the closing balance. When it does not balance, the screen tells you by how much it is off, and the way forward is to download the statement from the bank again. This check exists for CNAB 240 and CSV; OFX does not report a balance.

How do I find out who reconciled a statement line?

With the History tab, which is an event log: one line for each import, reconciliation, ignore, reopening and deletion, with who did it, the time and which path was used to reconcile the line. This log starts on October 3, 2026 — a line older than that has no events, and for it the trail is in the Reconciled by and Reconciled on columns of the Statement tab, which show the line's current state.

The farm requires payment approval. Does that apply to reconciliation?

No. In upCampo, required approval authorizes a payment before it happens, and bank reconciliation records what the bank has already done — the money is on the statement. So Create document and Add installment remain available, and the entry is created already paid, with the bank's date. A payment that is still going to happen still goes through the approval batch.