A direct-expense voucher for petty-cash / non-PO spend, separate from the employee claim flow: posting writes a balanced journal debiting each line's expense GL account and crediting the payment GL account for the total. glPostingType decides the credit leg: Cash/Bank (or empty) means paid at posting with no open item, while Credit is a pay-later voucher that requires a party (supplier) account, tags the credit line with it and raises an Accounts-Payable open item that Record Payment settles. Payment tracking on credit vouchers mirrors Invoice/Bill: payments tagged with the voucher roll into amountPaid, credit-note-style PaymentAdjustments into adjustedAmount, leaving openAmount. Status runs Draft, Posted, Reversed; a Posted or Reversed voucher cannot be posted again.
Fields
| Field | Label | Type | Required | What it does |
AdjustedAmount | Adjusted Amount | Currency | | Total of credit-note-style PaymentAdjustments applied to the voucher; each application is validated against the remaining openAmount and recomputes it. Undoing an adjustment posting subtracts it back. |
AmountPaid | Amount Paid | Currency | | Sum of Payment rows tagged with this voucher, maintained automatically by the payment rollup - only meaningful for Credit vouchers. |
BranchId | Branch | Lookup → Branch | | |
BusinessUnitId | Business Unit | Lookup → BusinessUnit | | |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
EmployeeId | Employee | Lookup → Employee | | |
GLId | GL | Lookup → Journal | | |
GLPostingType | GL Posting Type | PickList | | Drives the credit leg at posting: Cash or Bank (or empty, the backward-compatible default) means paid at posting with openAmount 0; Credit is a pay-later voucher - it requires a party (supplier) account, tags the credit journal line with it, and raises an Accounts-Payable open item that Record Payment settles. Values: Cash, Bank, Credit. |
Id | Id | Guid | Yes | |
IsGLPosted | Is GL Posted | Boolean | | |
IsGLPostingApproved | Is GL Posting Approved | Boolean | | |
JournalId | Journal | Lookup → Journal | | |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text, unique | Yes | |
Narration | Narration | Text | | |
OpenAmount | Open Amount | Currency | | Unpaid balance of a credit voucher: totalAmount minus adjustedAmount, maintained by the payment-adjustment rollup; payments tagged to the voucher roll into amountPaid. Stays 0 for cash/bank vouchers, which are settled at posting. |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PartnerAccountId | Partner Account | Lookup → Account | | |
PartyAccountId | Party Account | Lookup → Account | | The payee/supplier Account. Mandatory for Credit (pay-later) vouchers - posting refuses a credit voucher without it, since the payable open item must be tagged to a party. |
PaymentGLAccountId | Payment GL Account | Lookup → GLAccount | Yes | |
RecordTypeId | Record Type | Guid, hidden | | |
Status | Status | Text | | Draft, Posted or Reversed (journal-status vocabulary). Validation refuses to post a voucher already Posted (correct with a reversal) or Reversed. |
TotalAmount | Total Amount | Calculated (calculated) | | |
UIProps | UI Props | Text | | |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |
VoucherDate | Voucher Date | Date | 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 | EditInline | EditInLine |
EditListRow | Edit | Edit | EditListRow |
GetOpenDocuments | Get Open Documents | ServerAction (GetOpenDocuments) | Read-only helper for the payment-recording UI: lists open documents via the shared payment service so a payment can be allocated. Requires the voucher's tenant partner account to be set; creates nothing and changes nothing. |
GetPaymentAmountSummary | Payment | ServerAction (GetPaymentAmountSummary) | Read-only helper for the payment-recording UI: returns the voucher's payment amount summary (paid/open figures) via the shared payment service. Creates nothing and changes nothing. |
New | New | New | New |
PerformGLPosting | Post | ServerAction (PerformGLPosting) | Posts the voucher: one journal debiting each line's expense head (amount+tax) and crediting the payment GL account for the total, stamping glId, isGLPosted, totalAmount and status Posted. A Credit (pay-later) voucher must carry a party account - the credit line is tagged with it and an Accounts-Payable open item is raised for Record Payment to settle; cash/bank vouchers are settled at posting. Validation refuses vouchers already Posted or Reversed, and posting requires a payment GL account and at least one postable line. |
PostAdjustments | Post Adjustments | ServerAction (PostAdjustments) | PostAdjustments |
PostGeneralLedger | Post General Ledger | ServerAction (PostGeneralLedger) | Alternate name for the voucher posting operation - identical behaviour to PerformGLPosting: same validation (not already Posted/Reversed), same journal (Dr expense heads / Cr payment account) and same credit-voucher payable handling. |
Validations
| Validation | Applies to | Error message | Notes |
| Voucher Date Validation | VoucherDate, Error | Voucher Date can not be future date ! | Voucher Date can not be future date ! |
Lookup filters
| Filter | Lookup field | Notes |
| Branch For Partner Account | BranchId | |
| Customer Account Filter | PartyAccountId | |
| Partner Account Filter | PartnerAccountId | |