AccountId | Account | Lookup → Account | | The 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. |
AdjustedAmount | Adjusted Amount | Currency | | |
Amount | Amount | Currency | | The 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. |
BankName | Bank Name | Text | | |
BillId | Bill | Lookup → Bill | | The 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. |
BranchId | Branch | Lookup → Branch | | |
CardExpiry | Card Expiry | Date | | |
CardNumber | Card Number | Number | | |
CardType | Card Type | PickList | | Values: 3. |
ChequeDate | Cheque Date | Date | | |
ChequeNumber | Cheque Number | Number | | |
ClaimId | Claim | Lookup → Claim | | |
ClaimReconciliationId | Claim Reconciliation | Lookup → ClaimReconciliation | | |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
CreditNoteId | Credit Note | Lookup → CreditNote | | |
DebitNoteId | Debit Note | Lookup → DebitNote | | |
ElectronicMode | Electronic Mode | PickList | | Values: 2. |
ExpenseVoucherId | Expense Voucher | Lookup → ExpenseVoucher | | |
ExternalId | External | Text, unique | | |
GeneralLedgerId | General Ledger | Lookup → GeneralLedger | | |
GLAccountId | GL Account | Lookup → GLAccount | | |
GLAmount | GL Amount | Calculated | | A 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. |
Id | Id | Guid | Yes | |
InvoiceId | Invoice | Lookup → Invoice | | The 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. |
IsGLPosted | GL Posted | Boolean | | Records 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. |
IsGLPostingApproved | GL Posting Approved | Boolean | | The 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. |
IsRelatedGLPosted | Related GL Posted | Boolean | | Balanced single-journal posting made it redundant; ignore it when judging posting state. |
LastModifiedById | LastModifiedBy | Guid | | |
ModeOfPayment | Mode Of Payment | PickList | | Chooses 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. |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Document Number | Text | | |
Name (dup-9bd92512) | Document Number | Text | | |
OpenAmount | Open Amount | Calculated (calculated) | | |
OrderId | Order | Lookup → Order | | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PartnerAccountId | Partner Account | Lookup → Account | | |
PaymentDate | Document Date | Date | | |
PaymentMode | PaymentMode | Text | | A 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. |
PaymentType | Payment Type | PickList | | The 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. |
PayrollRunId | Payroll Run | Lookup → PayrollRun | | |
PurchaseOrderId | Purchase Order | Lookup → PurchaseOrder | | |
RecordTypeId | Record Type | Guid, hidden | | |
RelatedGeneralLedgerId | Related General Ledger | Lookup → GeneralLedger | | |
RelatedGLAccountId | Related GL Account | Lookup → GLAccount | | |
RelatedGLAmount | Related GL Amount | Calculated | | A 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. |
Remarks | Remarks | LongMultiLineText | | |
ServiceOrderId | Service Order | Lookup → ServiceOrder | | |
Status | Status | PickList | | A 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. |
TransactionDate | Transaction Date | Date | | |
TransactionReference | Transaction Reference | Text | | |
UIProps | UI Props | Text | | |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |