xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField SalesCRMRewardsClaimsInventoryProcurementWarehouse 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
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/Entity Reference/Payment — entity reference
REFERENCE · Last reviewed

Payment — entity reference

A single money movement in either direction and the only document that settles AR/AP open items: PaymentType 'Payment Taken' is a customer receipt, 'Payment Given' a vendor or employee disbursement. It posts as soon as it is inserted, provided the owning partner Account has GL posting enabled, and again whenever IsGLPostingApproved is turned on: a balanced journal pairing the money account (chosen from ModeOfPayment) against the receivable or payable control, then either a SettlementAllocation that reduces the target open item or, when no target document is identified, a negative 'on account' OpenTransaction standing for an unapplied advance. Cheque-mode payments additionally draw or record a ChequeTransaction so the clearing and bounce lifecycle can run.

Fields

FieldLabelTypeRequiredWhat it does
AccountIdAccountLookup → AccountThe counterparty — the customer paying in or the vendor or employee being paid. It is the party stamped on the control leg of the journal and on any on-account open item, and it is what the open-documents lookup and the bank-file export use to resolve the beneficiary. Distinct from PartnerAccountId, which is the company making or receiving the payment.
AdjustedAmountAdjusted AmountCurrency
AmountAmountCurrencyThe money moved by this document, always recorded as a positive figure — direction comes from PaymentType, never from the sign. Non-positive values are rejected on both insert and edit. Over-allocation is intentionally allowed, because advances legitimately exceed the current outstanding. It is the amount posted and the amount allocated when no explicit split is supplied.
BankNameBank NameText
BillIdBillLookup → BillThe settlement target for an outgoing payment, consulted only after ExpenseVoucherId — a payment tagged to a voucher settles the voucher and ignores this field. When it resolves, posting writes a SettlementAllocation against the bill's payable open item; when nothing resolves the payment becomes a negative on-account open item. Note it does not update the bill's AmountPaid, which no code maintains.
BranchIdBranchLookup → Branch
CardExpiryCard ExpiryDate
CardNumberCard NumberNumber
CardTypeCard TypePickListValues: 3.
ChequeDateCheque DateDate
ChequeNumberCheque NumberNumber
ClaimIdClaimLookup → Claim
ClaimReconciliationIdClaim ReconciliationLookup → ClaimReconciliation
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
CreditNoteIdCredit NoteLookup → CreditNote
DebitNoteIdDebit NoteLookup → DebitNote
ElectronicModeElectronic ModePickListValues: 2.
ExpenseVoucherIdExpense VoucherLookup → ExpenseVoucher
ExternalIdExternalText, unique
GeneralLedgerIdGeneral LedgerLookup → GeneralLedger
GLAccountIdGL AccountLookup → GLAccount
GLAmountGL AmountCalculatedA secondary posting amount used only as a fallback: settlement takes the absolute value of Amount and consults this field only when Amount is zero. It is not a calculated field on this entity and is not maintained in step with Amount, so treat Amount as authoritative.
IdIdGuidYes
InvoiceIdInvoiceLookup → InvoiceThe settlement target for an incoming receipt. When set, posting finds the invoice's open item and writes a SettlementAllocation that reduces it, marking it settled or partially settled; when it is empty and no explicit allocation was supplied, the receipt instead becomes a negative on-account open item representing an unapplied advance. It also causes the invoice's AmountPaid roll-up to be recomputed.
IsGLPostedGL PostedBooleanRecords that a journal exists for this payment. Because the ledger is append-only, reversing a payment (for example on a bounced cheque or when the settled invoice is cancelled) writes a reversing journal rather than clearing this flag, so it does not by itself tell you whether the payment is currently live in the ledger.
IsGLPostingApprovedGL Posting ApprovedBooleanThe posting gate on updates: when it turns true the save pipeline builds the journal, the settlement or on-account open item, and the cheque and withholding side effects. It is not required on insert — a newly created payment posts immediately provided the owning company has GL posting enabled — and the posting code sets it itself for any payment it is about to post.
IsRelatedGLPostedRelated GL PostedBooleanBalanced single-journal posting made it redundant; ignore it when judging posting state.
LastModifiedByIdLastModifiedByGuid
ModeOfPaymentMode Of PaymentPickListChooses the money-side account at posting: 'Cash' or empty posts to Cash, 'Cheque' parks the amount in a cheques-in-hand suspense account until it clears (falling back to Bank when no such account is configured), 'Electronic Transfer' posts to Bank, and 'Card' posts to Credit Card for outgoing or Bank for incoming money. Note the seeded pick list offers a 'Bank' option that the mapping does not recognise and which therefore falls through to Cash, while 'Card' is recognised but is not in the list. Values: Cash, Cheque, Bank, Electronic Transfer.
ModifiedByIdModified ByLookup → UserAccountYes
NameDocument NumberText
Name (dup-9bd92512)Document NumberText
OpenAmountOpen AmountCalculated (calculated)
OrderIdOrderLookup → Order
OwnerIdOwnerLookup → UserAccountYes
PartnerAccountIdPartner AccountLookup → Account
PaymentDateDocument DateDate
PaymentModePaymentModeTextA second, separate mode field with no pick list of its own, and the one the non-posting paths key on: the cheque hook creates a cheque transaction only when this field reads 'Cheque', and the NEFT/RTGS and cheque-register exports read it (falling back to NEFT). Account selection at posting time, by contrast, uses ModeOfPayment — so the two fields must be kept in step or a cheque will post to the wrong account or never be registered.
PaymentTypePayment TypePickListThe direction of the money and the single most important field on the record: 'Payment Taken' is a customer receipt, posting the money account against Accounts Receivable, and 'Payment Given' is a disbursement, posting against Accounts Payable. Comparisons strip spaces, so the stored pick-list values with a space and the space-free forms both match. It also decides which side the withholding hook runs on. Values: Payment Given, Payment Taken.
PayrollRunIdPayroll RunLookup → PayrollRun
PurchaseOrderIdPurchase OrderLookup → PurchaseOrder
RecordTypeIdRecord TypeGuid, hidden
RelatedGeneralLedgerIdRelated General LedgerLookup → GeneralLedger
RelatedGLAccountIdRelated GL AccountLookup → GLAccount
RelatedGLAmountRelated GL AmountCalculatedA leftover from the superseded two-sided posting model, when a payment wrote independent debit and credit rows. No code path writes it, nor the related account and journal fields beside it. Today a payment posts one balanced journal, so this field stays empty and must not be read as the counter-leg amount.
RemarksRemarksLongMultiLineText
ServiceOrderIdService OrderLookup → ServiceOrder
StatusStatusPickListA seeded two-value pick list, Draft and Paid, that no code path assigns or reads. Posting state is carried by IsGLPostingApproved and IsGLPosted, and application state by OpenAmount and AdjustedAmount; do not infer anything from this field. Values: Draft, Posted.
TransactionDateTransaction DateDate
TransactionReferenceTransaction ReferenceText
UIPropsUI PropsText
UpdatedDateTimeModified DateDateAndTimeYes

Actions

ActionLabelTypeWhat it does
BulkDeleteDeleteDeleteDelete the selected records.
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteDelete
DeleteInListDeleteDeleteDelete in a list page
EditEntityEditEditEditEntity
EditInLineEditEditInlineDelete in page.
EditInListEditEditInlineEdit
EditListRowEditEditEditListRow
NewNewNewNew
PostGeneralLedgerPost General LedgerServerAction (PostGeneralLedger)Despite the name, the action body only turns IsGLPostingApproved on and saves. The journal, the settlement allocation or on-account open item, and the cheque, TDS and TCS side effects are all produced afterwards by the payment's save pipeline, which posts whenever that flag becomes true. Payments created through the ordinary insert path already post without this action, so it is mainly a way to post one that was entered while GL posting was withheld.
UIActionUI ActionUIActionA placeholder entry of UI type; the payment handler supports only PostGeneralLedger, so nothing on the server claims this name and invoking it performs no server-side work.

Lookup filters

FilterLookup fieldNotes
BranchFilterBranchId
Customer Account FilterAccountId
PartnerAccountFilterPartnerAccountId