xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField Sales & SFACRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
Auto DMSConsumer Goods DMSSales Force Automation (SFA) FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Finance & Accounting/Bank transfers
HOW-TO · Last reviewed

Bank transfers

A Bank Transfer records money you move between two of your own company's bank accounts, for example a top-up from a collections account to a payments account, and posts it to the ledger as one journal. It sits between the bank accounts it names and the Bank Reconciliation workspace, where the two journal lines it posts are matched against each bank's statement.

Overview

A transfer has no party, income, expense or tax. When you post it, xMatix builds one balanced journal with two lines: a debit to the GL account of the To Bank Account and a credit to the GL account of the From Bank Account, both for the transfer Amount. The transfer then shows Posted and links to that journal.

The record page has a header with the actions, a Details tab and a Transfer Insights panel. The Details tab has two sections:

  • Transfer Information — GL Account Name (the transfer's name), Transfer Date, Status, Reference, From Bank Account, To Bank Account, Partner Account and Branch.
  • GL Information — GL (the posted journal), Branch, Partner Account, Owner, IsGL Posted and IsGL Posting Approved.

The Transfer Insights panel shows the Amount, the From Bank Account and the To Bank Account as three cards. The Amount appears only there, not in the Details sections.

When to use it

  • You move funds between two accounts your company holds, such as sweeping collections into a payments account.
  • You fund a petty-cash or imprest account that is set up as a bank account record with its own GL account.
  • The bank statement of each account shows the movement, and you want the books to show it too, so both accounts reconcile.

Don't use a transfer for money that leaves the company. Pay a supplier, an employee or the tax authority through payments, expense vouchers or the relevant module. Don't use it to move money between two companies either: both accounts must belong to the same company.

How xMatix handles it

  • Approval is a status value. Posting is refused unless Status reads Approved (upper or lower case both work). The Status field is a free-text box on the form, so whoever approves the transfer types Approved into it. No approval process or business rule is shipped for transfers.
  • Posting creates one journal. The journal is a document-posting journal for the transfer, dated on the Transfer Date (today, if the date is empty), under the transfer's Partner Account and Branch. Its narration is the transfer's Reference, and its two lines read Transfer in: and Transfer out: followed by the Reference. Both lines carry the transfer's Branch.
  • Posting stamps the transfer. After a successful post, GL points at the journal, IsGL Posted is ticked and Status becomes Posted. A transfer that has a journal, or has IsGL Posted ticked, can't be posted again.
  • The journal follows the normal posting checks. The journal's date must fall in an open fiscal period of an open financial year, and neither bank GL account may be inactive (see Common problems).
  • There is no unpost. No action on the transfer reverses its journal. To undo a posted transfer, reverse its journal from the Journals list (see Step 6).
  • Two post buttons, one routine. Post and Post General Ledger run exactly the same posting and the same checks. Use either one.
  • Org shape. If your organisation runs one company or one location, the Partner Account and Branch fields are hidden.

Prerequisites

  • Two active bank account records, each linked to its own GL account. The From and To pickers offer active bank accounts only.
  • Both bank accounts belong to the company you post the transfer under, or have no company set.
  • An open fiscal period that covers the transfer date. See Chart of accounts, books and periods.
  • Access to the Banking list (in the Finance app, or the Banking app) and a security profile that can create transfers and run Post (see Permissions).

Procedure

Step 1 — Open the Bank Transfers list

In the Finance app, open Banking, then Bank Transfers. You can also open the Banking app and choose Bank Transfers. The standard view, All Bank Transfer, shows GL Account Name, Transfer Date, Amount, Reference, Status, IsGL Posting Approved and Created On.

Step 2 — Create the transfer

  1. Select New.
  2. Fill in the form:
    • GL Account Name — a unique name for the transfer, such as BT-2026-0042. Transfers are not numbered automatically, so you must type one.
    • From Bank Account — the account the money leaves.
    • To Bank Account — the account the money arrives in. It must be different from the From account.
    • Amount — the amount moved, greater than zero.
    • Transfer Date — the date the bank moved the money. This becomes the journal date.
    • Reference — the bank's transfer reference or your own note. It is copied into the journal narration and both journal lines, so it is the easiest way to find the journal later.
    • Branch — your location, if the journal lines should carry one.
    • Status — leave it as Draft, or empty, while the transfer waits for approval.
    • Leave IsGL Posted, IsGL Posting Approved and GL empty. They are set by posting or are not used (see Fields).
  3. Save. The transfer opens on its record page.

The create form has no Partner Account field. When both Partner Account and Branch are empty on save, xMatix fills them from the record owner's default company and location, if the owner has one. Check Partner Account on the record page and correct it there before you post.

Step 3 — Check the company and accounts

On the record page, open the Details tab and check Partner Account under Transfer Information. It must be the company that holds both bank accounts. If you change it, xMatix checks the two bank accounts again and refuses the save if either belongs to another company. Check the Transfer Insights cards for the amount and the two accounts.

Step 4 — Approve the transfer

The approver sets Status to Approved, either through Edit or by editing the field in place on the record page, and saves. Nothing else changes until the transfer is posted.

Step 5 — Post the transfer

  1. On the record page, select Post (or Post General Ledger).
  2. xMatix checks that Status reads Approved, that the transfer isn't already posted, that the Amount is greater than zero and that both bank accounts have a GL account. It then posts the journal into the fiscal period that contains the Transfer Date.
  3. The transfer now shows Status Posted, IsGL Posted ticked, and GL under GL Information links to the journal. Open it to see the two lines.

The posted journal also appears in Finance → Journals, with Source Entity Name BankTransfer. In the Bank Reconciliation workspace, the debit line appears on the destination account and the credit line on the source account, ready to match against each bank's statement.

Step 6 — Correct or undo a posted transfer

A posted transfer has no reverse action, and editing it does not change its journal. To correct one:

  1. Under GL Information, open the journal from the GL field.
  2. Select Reverse on the journal. xMatix posts a mirror journal dated today and marks the original journal Reversed (see Journals).
  3. The transfer itself still shows Posted and still links to the original journal, and it can't be posted again. If the movement is still needed in a corrected form, create a new transfer with the right details, approve it and post it.

Add a note to the old transfer's Reference (for example "reversed, replaced by BT-2026-0043") so the trail is clear.

Step 7 — Delete a transfer you no longer need

On a Draft transfer, select Delete. You can also delete several transfers from the list. Delete only transfers that were never posted: xMatix does not stop you deleting a posted transfer, but its journal stays posted in the ledger. Reverse the journal first (Step 6).

Fields

The create form shows the fields in this order. The record page groups them as described in Overview.

FieldWhat it meansNotes
IsGL PostedWhether the transfer has been posted.Ticked by posting. Leave it alone: ticking it by hand blocks posting, and clearing it on a posted transfer does not undo the journal.
BranchYour location for the transfer.Copied to the journal header and both journal lines. Not taken from the bank accounts, so an empty Branch posts lines with no branch. Filled from the owner's default when Partner Account and Branch are both empty on save.
AmountThe amount moved.Must be greater than zero. "Transfer amount must be greater than zero." is shown on save. Rounded to two decimals when posted.
IsGL Posting ApprovedA posting-approval flag.Not read by transfer posting. Approval is the Status value Approved.
GLThe journal created by posting.Set by posting. Leave it empty: a value here blocks posting.
To Bank AccountThe destination account.Required. Active bank accounts only. Its GL account is debited. Must differ from From Bank Account.
Transfer DateThe date the money moved.The journal date. If empty, the journal is dated on the day you post.
From Bank AccountThe source account.Required. Active bank accounts only. Its GL account is credited.
GL Account NameThe transfer's name.Required and unique across all transfers. Not numbered automatically. Despite the label, it is not a GL account.
ReferenceThe bank reference or your own note.Copied to the journal narration and to both journal lines.
StatusWhere the transfer is in its life.Free text. Use Draft and Approved. Posting needs Approved and writes Posted. Nothing writes Reversed.
Partner AccountThe company the transfer belongs to.Not on the create form. Filled from the owner's default company when Partner Account and Branch are both empty; edit it on the record page. Both bank accounts must belong to this company, or have no company. The journal posts under it.
OwnerThe user who owns the record.Shown under GL Information.

Business rules

  • Save checks. On every save of a new or changed transfer, xMatix refuses an Amount of zero or less, the same account as both From and To, and a bank account that belongs to a company other than the transfer's Partner Account. A bank account with no company passes the company check.
  • Required fields. GL Account Name, From Bank Account and To Bank Account are required. Amount is not required on save, but an empty Amount can't be posted.
  • Unique name. GL Account Name must be unique. A duplicate is refused with "GL Account Name '…' already exists".
  • Posting checks, in order. Not already posted (no journal, IsGL Posted not ticked); Status reads Approved; Amount greater than zero; From account has a GL account; To account has a GL account. The journal then needs an open fiscal period and financial year for its date, and active GL accounts.
  • Journal. One document-posting journal: debit the To account's GL account, credit the From account's GL account, both for the Amount, under the transfer's Partner Account and Branch, dated on the Transfer Date.
  • After posting. GL is set, IsGL Posted is ticked and Status becomes Posted. The Post buttons stay on the page; a second post is refused.
  • No lock after posting. A posted transfer can still be edited or deleted, and neither changes its journal. Correct through the journal (Step 6).
  • Same GL account. xMatix checks that the two bank accounts are different, not that their GL accounts are. If two bank accounts share one GL account, the transfer posts a debit and a credit to the same account. Give each bank account its own GL account.

Example

A distributor keeps customer collections in "Collections – Current" and pays suppliers from "Payments – Current". Both bank account records belong to the company and have their own Bank-type GL accounts.

  1. On 14 October the treasurer moves 2,50,000.00 from collections to payments in the bank's portal, which gives the reference TRF884120.
  2. In Finance → Banking → Bank Transfers they select New and enter GL Account Name BT-2026-0042, From Bank Account "Collections – Current", To Bank Account "Payments – Current", Amount 250000, Transfer Date 14 October, Reference TRF884120, Branch "Head Office" and Status Draft, then save.
  3. On the record page they check that Partner Account shows their company.
  4. The finance manager reviews it, edits Status to Approved and saves.
  5. The finance manager selects Post. The transfer shows Status Posted, and GL links to a journal dated 14 October: a debit of 2,50,000.00 to the payments bank GL account and a credit of 2,50,000.00 to the collections bank GL account, each with the narration "Transfer in: TRF884120" or "Transfer out: TRF884120".
  6. At month end, in the Bank Reconciliation workspace, the debit line matches the deposit on the payments account's statement and the credit line matches the withdrawal on the collections account's statement.

Training

Practice exercise

In a sandbox with two active bank accounts for the same company, each with its own GL account:

  1. Create a transfer of 1,000.00 between them with Status Draft, and select Post. Expected result: the post is refused with "This bank transfer must be approved before it can be posted to the general ledger."
  2. Try to save a second transfer with the same account as From and To. Expected result: "Source and destination bank accounts must be different."
  3. Set the first transfer's Status to Approved and select Post. Expected result: Status becomes Posted and GL links to a journal with one debit and one credit of 1,000.00.
  4. Select Post again. Expected result: "This bank transfer has already been posted to the general ledger; duplicate posting is not allowed."
  5. Open the journal from GL and select Reverse. Expected result: the journal shows Reversed and a reversal journal is posted today. The transfer still shows Posted.

Quick reference

  • Menu: Finance → Banking → Bank Transfers (or the Banking app).
  • Type a unique GL Account Name: transfers are not numbered automatically.
  • From is credited, To is debited.
  • Approve by setting Status to Approved; posting writes Posted.
  • Post and Post General Ledger do the same thing.
  • The journal date is the Transfer Date; it must be in an open period.
  • Reference goes into the journal narration and both lines.
  • Check Partner Account on the record page: it isn't on the create form.
  • To undo, reverse the journal. The transfer keeps its Posted status.

Permissions

Bank transfers follow the normal entity and action permissions in security profiles:

TaskWhat the user needs
See the Bank Transfers listRead access to Bank Transfer, and an app that shows it. In the shipped profiles, the Banking app is visible to System Admin and Sales Executive.
Create, edit and delete transfersCreate, edit and delete access to Bank Transfer. The shipped Standard User, Sales Executive, Sales Manager and System Admin profiles have full access.
Post (either Post button)The Post and Post General Ledger action grants on Bank Transfer. In the shipped profiles only Standard User and System Admin have them.

A user without the action grant can't post. There is no separate permission for approving: anyone who can edit the transfer can set Status to Approved, so if approval matters, limit edit access or use field permissions on Status.

Configuration

  • Bank accounts. Each account needs an active record with its own GL account and the right Partner Account. See Bank accounts.
  • Fiscal periods. The transfer date must fall in an open period of an open financial year. See Chart of accounts, books and periods.
  • User defaults. The record owner's default company and location fill Partner Account and Branch on a new transfer when both are empty. If transfers keep landing under the wrong company, check that user's company access (see User accounts and Tenants and companies).
  • Numbering. No document-name setting is shipped for bank transfers, so users type the name. An administrator can add a numbering series for Bank Transfer in Setup → Design Studio → Entities → Bank Transfer → Logic → Document Settings.
  • Form layout. The shipped create form shows IsGL Posted, IsGL Posting Approved and GL, which users should not fill, and omits Partner Account. An administrator can adjust the form in Design Studio (see Design a form layout): remove the system fields, add Partner Account, or change Status to a list with Draft and Approved values.
  • Approval. No approval process is shipped for transfers. To route them for approval, an administrator can set up an approval process that writes Approved to Status on final approval (see Approvals).
  • Validation. The shipped validation "To Bank Account Validation" is inactive. The same-account check is built in, so there is no need to turn it on.

Common problems

"This bank transfer must be approved before it can be posted to the general ledger."

Status doesn't read Approved. Edit the transfer, set Status to Approved (check the spelling), save and post again.

"This bank transfer has already been posted to the general ledger; duplicate posting is not allowed."

The transfer already has a journal, or IsGL Posted is ticked. Open the journal from GL to see it. If the transfer was never really posted and someone ticked IsGL Posted by hand, clear it and post again.

"Source bank account has no GL account configured." or "Destination bank account has no GL account configured."

The named bank account record has no GL Account. Open it in Finance Setup → Books & Posting → Bank Accounts, set its GL account and post the transfer again.

"The bank account belongs to another company. A bank transfer moves money between two banks of the same company."

One of the bank accounts belongs to a company other than the transfer's Partner Account. Check Partner Account on the record page; it may have been filled from your default company. Change it to the company that holds both accounts. Money moved between two companies is not a bank transfer.

"Transfer amount must be greater than zero." or "Bank transfer amount must be greater than zero."

The first appears on save when Amount is zero or negative. The second appears on posting when Amount is empty. Enter the positive amount moved.

"Fiscal period '…' is Closed — posting is not allowed."

The Transfer Date falls in a closed or locked period, or the financial year is closed. Ask finance to reopen the period, or change the Transfer Date to a date in an open period if that is correct for the books.

"GL Account '…' is inactive."

The GL account of one of the bank accounts has been deactivated. Reactivate it, or link the bank account to an active GL account, then post.

"GL Account Name '…' already exists"

Another transfer has the same name. Use a different name.

The Amount isn't in the Details tab

On the record page, the Amount is shown in the Transfer Insights panel, not in the Details sections. Use Edit to change it.

Common questions

Who approves a bank transfer?

Anyone who can edit the transfer. Approval is simply the Status value Approved; no approval process or approver list is shipped. Posting then checks only that value. If your organisation needs a separate approver, ask an administrator to limit who can edit Status, or to set up an approval process that sets Status to Approved when the transfer is approved.

What is the difference between Post and Post General Ledger?

None. Both buttons run the same posting with the same checks and create the same journal. Once one has posted the transfer, the other is refused with the duplicate-posting message, so you can't create two journals by pressing both.

Can I move money between two companies?

No. Both bank accounts must belong to the transfer's company (or have no company), and the save is refused otherwise. Record an inter-company movement as a payment out of one company and a receipt into the other, or with journals under each company.

Does posting a transfer update the bank account balance?

It posts to the two bank GL accounts. The book balance in the Bank Reconciliation workspace and the trial balance come from those GL accounts, so both move as soon as the transfer posts. The bank account record has no balance field of its own.

Can I edit a transfer after posting?

The form still opens and saves, but the journal does not change. Editing Amount, accounts or date on a posted transfer only makes the transfer disagree with its journal. Reverse the journal and post a new transfer instead (Step 6).