A movement of funds between two of the company's own bank accounts, posted as a single balanced journal that debits the destination bank's GL account and credits the source's — no party, income or tax leg. Posting is gated twice over, in the action's validation and again authoritatively in the posting service: the status must read Approved, the transfer must not already carry a journal, both bank accounts must have a GL account configured, and the amount must be positive. A successful post stamps the journal id, sets the posted flag and overwrites the status with Posted.
Fields
| Field | Label | Type | Required | What it does |
Amount | Amount | Currency | | The transfer value, debited to the destination bank's GL account and credited to the source's in one balanced journal. It must be greater than zero, checked both on save and again at posting time. |
BranchId | Branch | Lookup → Branch | | The company branch stamped onto the posted journal and each of its lines. It is taken from this field rather than from either bank account, so a transfer left blank here posts journal lines with no branch. |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created On | DateAndTime | Yes | |
FromBankAccountId | From Bank Account | Lookup → BankAccount | Yes | The source account, credited when the transfer posts. Its bank account must have a GL account configured or posting fails, and it must differ from the destination or the save is rejected. |
GLId | GL | Lookup → Journal | | The journal created by posting. |
Id | Id | Guid | Yes | |
IsGLPosted | IsGL Posted | Boolean | | Set to true only by a successful posting, alongside the journal link. Together those two are the duplicate-posting guard — the action is refused when either is set — so both would have to be cleared by hand before a second journal could be created. |
IsGLPostingApproved | IsGL Posting Approved | Boolean | | The same-named field is live on sales and purchase documents, which is a common source of confusion. |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | GL Account Name | Text, unique | Yes | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PartnerAccountId | Partner Account | Lookup → Account | | |
RecordTypeId | Record Type | Guid, hidden | | |
Reference | Reference | Text | | Copied into the posted journal's narration and into both journal lines as transfer-in and transfer-out text, making it the main trace from the ledger back to the transfer. |
Status | Status | Text | | Draft, Approved, Posted or Reversed by convention, but stored as plain text rather than a picklist. The value is load-bearing: posting is refused unless it reads Approved (case-insensitive), and a successful post overwrites it with Posted. Nothing in the platform ever writes Reversed. |
ToBankAccountId | To Bank Account | Lookup → BankAccount | Yes | The destination account, debited when the transfer posts. The save is rejected when it equals the source, and posting fails if this account has no GL account configured. |
TransferDate | Transfer Date | Date | | |
UIProps | UI Props | Text | | |
UpdatedDateTime | Updated On | DateAndTime | Yes | |
Actions
| Action | Label | Type | What it does |
BulkDelete | Delete | Delete | Delete the selected records. |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
Delete | Delete | Delete | Delete |
DeleteInList | Delete | Delete | Delete in a list page |
Edit | Edit | Edit | Edit |
EditInline | Edit Inline | EditInline | Edit |
EditListRow | Edit | Edit | EditListRow |
New | New | New | New |
PerformGLPosting | Post | ServerAction (PerformGLPosting) | Posts the transfer as one balanced journal debiting the destination bank's GL account and crediting the source's, then stamps the journal id, sets the posted flag and overwrites the status with Posted. It is refused unless the status reads Approved and the transfer has no journal yet, and it fails when either bank account lacks a GL account or the amount is not positive. |
PostGeneralLedger | Post General Ledger | ServerAction (PostGeneralLedger) | A second entry point onto exactly the same posting routine as the Post action, with the same approval and duplicate guards and the same balanced journal. Having both surfaced means the one operation appears twice in the UI; a second attempt is safely refused by the already-posted guard rather than creating a duplicate journal. |
Validations
| Validation | Applies to | Error message | Notes |
| To Bank Account Validation | ToBankAccountId, Error, inactive | | To Bank Account Validation |
Lookup filters
| Filter | Lookup field | Notes |
| From Bank Filter | FromBankAccountId | |
| To Bank Filter | ToBankAccountId | |