The Bank Account Transaction represents a spend or receive transaction recorded against a bank account in the ledger - the money in and out of an account, with its line items, the coded chart-of-accounts detail, the contact it relates to, and any attached document. Use this data area to monitor account activity, set thresholds on transaction amounts, watch for unreconciled or backdated entries, and check coding against the right account.
The AI will only look back at 12 months' worth of data.
Key Properties:
BankTransactionDate: The date the transaction occurred or was posted in the ledger. Use this for ageing and time-window questions.
BankTransactionCreatedDate: When the transaction was first created in the ledger. Use this (not BankTransactionDate) to detect backdating or posts entered after the lock date.
Status: The lifecycle status of the transaction. Runtime values are AUTHORISED or DELETED. This does NOT indicate reconciliation - use TransactionReconciled for that.
TransactionReconciled: True when the transaction has been reconciled in the ledger. This is the only reconciliation flag - use TransactionReconciled is false to find unreconciled transactions.
StandardBankTransactionType: The normalised transaction direction. Use this for spend-versus-receive logic. Values: Receive, Spend, ReceiveOverpayment, ReceivePrepayment, ReceiveTransfer, SpendOverpayment, SpendPrepayment, SpendTransfer, Unknown.
BankTransactionType: The raw provider-specific transaction type (a larger set including Spend, Receive, SupplierPayment, CustomerPayment, Bill, Invoice, etc.). Prefer StandardBankTransactionType; use this only when the exact provider type matters.
TransactionReference: The transaction reference or memo text (e.g. 'CSV import', 'Spend Money'). For keyword scans, check this together with each line's LineItemDescription and the BankAccountTransaction.Description.
SubTotal: The net amount of the transaction excluding tax (the sum of all line subtotals), in the transaction currency. SubTotal + Tax = Total.
Tax: The total tax amount for the transaction (the sum of all line tax amounts), in the transaction currency.
Total: The total amount including tax (SubTotal + Tax), in the transaction currency. Use the absolute value for threshold checks since spend and receive transactions can differ in sign.
Currency: The ISO currency code of the transaction amounts (e.g. AUD, USD, NZD).
OrganisationName: The receiving ledger's organisation trading name. Compare against an attachment's OwnerName to detect receipt-capture mis-routing (a receipt landing in the wrong client's ledger).
OrganisationLegalName: The receiving ledger's organisation legal name.
OrganisationRegistrationNumber: The receiving ledger's company / ABN registration number.
OrganisationTaxNumber: The receiving ledger's tax registration number.
SourceLink: A deep link to this transaction in the source ledger.
BankAccountTransaction: Details of the bank account the transaction belongs to.
BankAccountName: The display name of the bank account (e.g. 'Main Account').
AccountType: The kind of bank account. Runtime values are BANK, CREDITCARD or PAYPAL.
Status: Whether the bank account is active or archived. Runtime values are ACTIVE, ARCHIVED or EMPTY (unset).
Description: The account-level memo or description of the bank account or feed, distinct from each line's LineItemDescription and from TransactionReference.
CurrencyCode: The ISO currency code of the bank account (e.g. AUD, USD).
SourceLink: A deep link to this bank account in the source ledger.
BankTransactionLines: A list of the line items that make up the transaction.
BankTransactionLine
LineItemDescription: A free-text description of this line. Scan this (with TransactionReference and BankAccountTransaction.Description) for keyword detections.
LineItemQuantity: The quantity for this line. Quantity × UnitAmount = LineItemSubTotal.
LineItemUnitAmount: The per-unit price for this line, in the transaction currency.
LineItemSubTotal: The net amount for this line excluding tax (Quantity × UnitAmount).
LineItemTaxAmount: The tax amount for this line. The transaction-level Tax is the sum of these.
LineItemTotalAmount: The total for this line including tax (LineItemSubTotal + LineItemTaxAmount).
LineItemTaxType: The tax type / rate applied to this line, as a code+name pair (e.g. code 'GST'). Match against the tenant's declared tax types.
TaxRate: The tax rate percentage applied to this line (e.g. 10 for 10% GST).
AccountClassification: The chart-of-accounts classification of the coded account (e.g. 'Expense', 'Revenue').
AccountType: The free-text account-type classification of the coded ledger account (e.g. 'Office Expense'). Not the bank-account kind - see BankAccountTransaction.AccountType for that.
AccountCode: The chart-of-accounts code the line is coded to (e.g. 'EXP123').
AccountName: The chart-of-accounts name the line is coded to (e.g. 'Office Supplies').
TrackingCategories: The tracking categories assigned to this line, used for departmental or regional analysis.
TrackingCategoryItem
TrackingCategoryName: The name of the tracking category (e.g. 'Region', 'Department').
TrackingCategoryOption: The selected option within the tracking category (e.g. 'North', 'Sales').
Contact: Details about the contact (supplier or customer) the transaction relates to.
BusinessName: The contact's name as entered in the ledger (supplier, customer, vendor or business). Also referred to as Supplier, Contact or Vendor.
RegistryMatchedBusinessName: The official/legal name returned by the external business registry (ABN/ABR or equivalent) when the tax number was matched. Compare against BusinessName to detect ledger-vs-registry name mismatches. Note: not currently populated, so it is always null at present.
ContactTaxNumber: The contact's tax number (ABN/VAT/GST) exactly as entered in the ledger. This is the value to validate for data-entry errors (blank, malformed or invalid numbers).
TaxNumber: The contact's canonical tax number as matched against the external business registry. Null/empty when no registry match was found. Use as the authoritative identifier, not for data-entry validation.
CompanyNumber: The contact's company / registration number (e.g. ACN, Companies House number), distinct from the tax number.
ContactStatus: The contact's status in the accounting ledger. Values: ACTIVE, ARCHIVED, GDPRREQUEST. Distinct from the registry status (BusinessRegistrationStatus).
ContactType: Whether the contact is a Customer, Supplier, Both or Unknown. Use the receivable fields for customers and the payable fields for suppliers.
AccountsReceivable: Total outstanding amount owed by this contact to you (relevant for customer contacts), in the ledger's base currency. Includes amounts not yet overdue.
AccountsReceivableOverdue: The portion of accounts receivable that is past its due date (for customer contacts). Use this for receivable-overdue detection.
AccountsPayable: Total outstanding amount you owe to this contact (relevant for supplier contacts), in the ledger's base currency. Includes amounts not yet overdue.
AccountsPayableOverdue: The portion of accounts payable that is past its due date (for supplier contacts). Use this for payable-overdue detection.
AccountsReceivableTaxType: The default tax type code applied to receivable (sales) transactions for this contact.
AccountsPayableTaxType: The default tax type code applied to payable (purchase) transactions for this contact.
BusinessPaymentTerms: The contact's default payment terms as configured in the ledger (free text, e.g. number of days or a terms description).
BusinessHasBankAccount: Whether the contact has at least one bank account recorded in the ledger (true/false).
BankAccountDetails: The contact's saved bank account from the ledger, as a single raw string that may combine bank/BSB/branch and account number with dashes or spaces. Null/empty when none is on file. Comparing this against the bank account printed on an attachment helps detect payment-redirection fraud (normalise both sides by removing spaces and dashes first).
PriorBankAccountDetails: The contact's previous (last-acknowledged) saved bank account, i.e. the baseline before the current BankAccountDetails value. Null/empty for most contacts. Compare against BankAccountDetails to see what the account changed from.
BankAccountDetailsChanged: True when the saved bank account has changed from a non-empty prior baseline (a first-time recording does not count). This is the bank-detail-change signal behind "supplier bank account changed since last payment" checks. There is no timestamp for when it changed.
SupplierBankMatchesActiveEmployee: True when this supplier's saved bank account matches the bank account of an active payroll employee in this tenant — a related-party / paying-an-employee-through-accounts-payable signal. Legitimate staff-reimbursement suppliers also match, so corroborate before acting.
SupplierNameMatchesActiveEmployee: True when this supplier's ledger name matches the full name of an active payroll employee in this tenant. A weaker corroborator for the employee-as-payee signal than SupplierBankMatchesActiveEmployee.
UnappliedCreditTotal: Total unapplied (open) supplier credit available to offset against future bills for this supplier, in the ledger base currency. A positive value while AccountsPayable is greater than 0 means credits should be applied before paying (overpayment risk).
UnappliedCreditCount: Number of open (unallocated/partially-allocated, non-voided) credit notes held against this supplier. Pairs with UnappliedCreditTotal; 0 when there is no open credit.
SupplierStreetAddress: The contact's street address from the ledger, as a single concatenated string (address lines, city, region, postcode, country). Null/empty when none is on file. Useful for comparing against the supplier address printed on an attachment.
BusinessDiscount: The contact's default discount percentage as configured in the ledger (e.g. 10 means 10%).
MultiCodedCount: The number of distinct account codes this contact has been coded to across its transactions. A high value can indicate inconsistent account coding.
AccountNames: Names of the ledger account(s) this contact transacts against (free text; may contain multiple comma-separated names).
BusinessType: Entity type text. Note: currently derived from the owning tenant's own ABN, not the individual contact, so do not use it to classify a contact's own entity type.
BusinessRegistrationStatus: The entity's registration status from the external business registry (ABN/Companies House/NZBN/CIPC). Values are registry- and country-specific (e.g. AU "Active"/"Cancelled"; GB "active"/"dissolved"). Null when there is no registry match. Compare case-insensitively and treat anything not clearly "active" as inactive/cancelled.
BusinessRegistrationStatusDate: The date the registration status was last recorded/effective per the external registry. Null when there is no registry match.
IsTaxRegistered: Whether the contact is registered for GST/VAT per the external registry (true/false/null). Null means unknown/not-checked (includes all GB/ZA/CA contacts and any contact not matched). Do not treat null as false.
TaxRegistrationStatusDate: The date the GST/VAT registration status was last recorded/effective per the external registry. Null when unknown or no registry match.
TaxRegistrationNumber: GST/VAT registration number from the external registry. Currently only populated for New Zealand contacts (NZBN GST number); null for AU/GB/ZA/CA. For the contact's tax identifier use TaxNumber or ContactTaxNumber instead.
LastActivity: The date of the contact's most recent activity in the ledger (e.g. last transaction or update). This is the last time the contact transacted — it is NOT when the contact was created.
CreatedDate: The date this contact was first recorded in XBert (the ledger-sync ingest time). Use this — not LastActivity — to detect newly created contacts/suppliers. Note: every contact that already existed when the ledger was first connected shares that one connection date, so treat contacts as "new" only well after the initial connection, and treat null as unknown.
StreetAddresses: A list of the contact's street (physical) addresses, each with AddressLine1–4, City, Region, Postcode and Country.
PostalAddresses: A list of the contact's postal (mailing) addresses, using the same fields as StreetAddresses.
BusinessGroups: A list of the contact groups this contact belongs to, each with BusinessGroupName and BusinessGroupStatus (ACTIVE or ARCHIVED).
SourceLink: A deep link back to the contact record in the source ledger.
Attachments: A list of documents attached to the transaction (e.g. a captured receipt).
XDIAttachment
OriginalFileName: The original file name of the attachment.
IssueDate: The issue date on the document.
DueDate: The due date on the document.
PaymentDate: The payment date on the document.
Subtotal: The document subtotal before tax.
TaxAmount: The tax amount on the document.
TaxAmountType: The tax type shown on the document.
TotalAmount: The total amount on the document.
FreightAmount: The freight amount on the document.
CurrencyCode: The currency code on the document.
DocumentType: The kind of document (e.g. 'Invoice', 'Receipt').
ReferenceNumber: The reference / invoice number on the document.
Code: A code on the document.
AmountDue: The amount due shown on the document.
AmountPaid: The amount paid shown on the document.
AmountCredited: The amount credited shown on the document.
SupplierName: The supplier name extracted from the document.
SupplierAddress: The supplier address extracted from the document.
SupplierAddressObject: The supplier address extracted from the document as structured parts (AddressLine1–4, City, Region, Postcode, Country), rather than the single SupplierAddress string.
SupplierTaxNumber: The supplier tax number (ABN/VAT) extracted from the document.
SupplierTaxNumberType: The kind of supplier tax number (e.g. 'ABN').
SupplierARN: The supplier's Australian Business Register ARN (Australian Registration Number) extracted from the document, where present.
SupplierEmail: The supplier email extracted from the document.
SupplierPhoneNumber: The supplier phone number extracted from the document.
SupplierWebsite: The supplier website extracted from the document.
SupplierCountryCode: The supplier country code extracted from the document.
OwnerName: The owner / recipient name extracted from the document. Compare against the transaction's OrganisationName to detect mis-routing.
OwnerTaxNumber: The owner / recipient tax number extracted from the document.
OwnerTaxNumberType: The kind of owner / recipient tax number (e.g. 'ABN').
OwnerCountryCode: The owner / recipient country code extracted from the document.
OwnerAddress: The owner / recipient address extracted from the document.
BranchNumber: The bank branch / BSB extracted from the document.
AccountNumber: The bank account number extracted from the document.
AccountHolder: The bank account holder name extracted from the document.
DocumentDescription: A description of the document.
DocumentSummary: A summary of the document.
WordCount: The number of words extracted from the document. A very low count can indicate a blank, image-only or poorly captured document.
Lines: The line items extracted from the document.
XDIAttachmentLines
Description: The description of the document line.
UnitCost: The unit cost of the document line.
Quantity: The quantity of the document line.
AmountPayable: The amount payable for the document line.
TaxPayable: The tax payable for the document line.
TaxAmountType: The tax type for the document line.
📝 Example Alerts
Alert me when the total amount for a transaction exceeds $10,000.
Alert me when no transaction has posted to the account named "Rent" in the last month
Let me know if I have any unreconciled transactions older than 60 days.
