Defines the exact ERPNext document types, flows, and account structures Finance uses to record income and expenses. Covers four transaction types: income (Quotation → Sales Order → Sales Invoice → Payment Entry, or Sales Invoice directly in some cases), expenses (Purchase Invoice → Payment Entry), owner/investor-funded transactions (Journal Entry), and salary (HR module → Journal Entry). Finance owns all ERPNext data entry.
This guide defines how Finance records income and expenses in ERPNext using the correct document types and flows. It ensures that the ERPNext ledger is accurate, consistent, and auditable.
Outcome
Every income and expense is recorded in ERPNext using the correct document type, with supporting proof linked, so financial reports reflect actual transactions.
Chart of accounts configuration or ERPNext system setup
Definitions
Term
Definition
Sales Order
An ERPNext document that records a confirmed order when the client accepts a quotation. Created from Quotation; Sales Invoice is typically created from Sales Order. In some cases Sales Invoice may be created directly.
Sales Invoice
An ERPNext document that records income owed by a client. Used for all billable services and products. Typically created from Sales Order; may be created directly in some cases.
Purchase Invoice
An ERPNext document that records an expense owed to a supplier. Used for all business purchases.
Payment Entry
An ERPNext document that records the actual movement of money (bank transfer, cash). Always linked to a Sales Invoice or Purchase Invoice to mark it as paid.
Journal Entry (JE)
An ERPNext double-entry accounting document used for transactions that do not follow the standard invoice-payment flow, such as owner/investor funding or salary accruals.
Owner/Investor-Funded Transaction
A business expense or income event where an owner or investor directly pays or receives money on behalf of the company, without going through the company bank account. Recorded via Journal Entry.
Salary Slip
An ERPNext HR module document that computes an employee’s monthly salary, deductions, and net pay.
GL Entry
A General Ledger entry auto-generated by ERPNext when a document is submitted. The source of truth for financial reports.
Operating Model
Operating Model
1
Asana is the system of record for work tracking, approvals, and handoffs.
2
Use checkpoints and decision points: don’t move forward until the previous step is “done”, and branches are explicit.
ERPNext uses a chart of accounts to classify every transaction. Finance must post to the correct account type.
Income Accounts
Account
Used For
Sales - K
Revenue from product sales to clients
Service - K
Revenue from service delivery (design, development, consulting)
Indirect Income - K
Other income not from core operations
Expense Accounts (Common)
Account
Used For
Cost of Goods Sold - K
Direct costs of products sold (hardware, software licenses resold)
Salaries - K
Employee base salary
Overtime Expense - K
Employee overtime pay
Staff Welfare - K
Staff meals, welfare, and team benefits
Office Supplies - K
Consumables and stationery
Hosting and Domain - K
Server hosting, domain registration and renewal
Software Subscription - K
SaaS tools and platform subscriptions
Communication Expense - K
Phone, internet, and communication costs
Travel and Transportation - K
Business travel, fuel, and transport
Training Expense - K
Staff training and courses
Bank Charges - K
Bank transfer fees and service charges
Round Off - K
Minor rounding adjustments from bank transactions
Key Rule
#
Rule
1
Income is recorded as a credit to an income account via Sales Invoice
2
Expenses are recorded as a debit to an expense account via Purchase Invoice
3
Journal Entries must always balance (total debits = total credits)
Transaction Type 1: Income
Use this flow when Kiluth receives payment from a client for services or products.
Sales flow (typical): Quotation → Sales Order (on client acceptance) → Sales Invoice → Payment Entry. In some cases Sales Invoice may be created directly (e.g. scoping fee, MA, hosting).
Flow
Step
ERPNext Action
1
Client payment is confirmed
—
2
Create and submit Sales Invoice
Selling → Sales Invoices → New (from Sales Order when one exists, or directly)
3
Create Payment Entry from the submitted Sales Invoice
Open invoice → Create → Payment Entry
4
Submit Payment Entry
Marks invoice as paid in the ledger
Key Fields (Sales Invoice)
Field
What to Enter
Customer
Select or create the client
Posting Date
Date the income is recognized
Items
Add line items (description, quantity, rate) mapped to correct income account
Currency
THB (default) unless otherwise agreed
Key Fields (Payment Entry)
Field
What to Enter
Payment Type
Receive
Party
The client (Customer)
Paid Amount
Amount received
Reference
The Sales Invoice number
Payment Date
Actual date payment was received in bank
Outcome
Sales Invoice is submitted and marked as paid. Income GL entry is created under the correct income account.
Transaction Type 2: Expense
Use this flow when Kiluth pays a supplier or vendor for a business expense.
Flow
Step
ERPNext Action
1
Purchase or expense is confirmed
—
2
Create and submit Purchase Invoice
Buying → Purchase Invoices → New
3
Create Payment Entry from the submitted Purchase Invoice
Open invoice → Create → Payment Entry
4
Submit Payment Entry
Marks invoice as paid in the ledger
Key Fields (Purchase Invoice)
Field
What to Enter
Supplier
Select or create the vendor
Posting Date
Date the expense is recognized
Items
Add line items mapped to the correct expense account (e.g. Cost of Goods Sold - K, Software Subscription - K)
Is Return
Check this if recording a purchase return or credit note
Key Fields (Payment Entry)
Field
What to Enter
Payment Type
Pay
Party
The supplier
Paid Amount
Amount paid
Reference
The Purchase Invoice number
Payment Date
Actual date payment left the bank account
Purchase Returns
If a purchase is returned or a credit note is issued:
Rule
1
Create a new Purchase Invoice with Is Return checked
2
Link to the original invoice using the Return Against field
3
The return reduces the net expense in the GL automatically
Outcome
Purchase Invoice is submitted and marked as paid. Expense GL entry is created under the correct expense account.
Transaction Type 3: Owner/Investor-Funded Transaction
Use this flow when an owner or investor directly pays a business expense or receives a business income on behalf of the company — without the money passing through the company’s bank account. This does not replace the standard invoice flow; it records the funding event as an internal obligation.
When to Use
Scenario
Example
Owner pays a supplier directly from personal funds
Owner pays a software subscription with a personal card
Owner receives a client payment on behalf of the company
Client transfers money to owner’s personal account
Expense is incurred but not yet paid by the company
Accruing a cost the company owes to the owner
Flow
Step
ERPNext Action
1
Confirm the transaction details and amount
—
2
Create a Journal Entry
Accounts → Journal Entry → New
3
Add the debit line (what was spent or received)
Debit the relevant expense or income account
4
Add the credit line (who funded it)
Credit the owner/investor’s loan or capital account
5
Attach the supporting proof (receipt, screenshot, bank record)
Short description: what the transaction is and why it was owner-funded
Reference
Link to Asana task or supporting document in the remark field
Outcome
The expense or income is recorded in the correct GL account. The company’s obligation to (or from) the owner/investor is tracked in the loan/capital account.
Transaction Type 4: Salary
Use this flow when recording monthly employee salary. ERPNext uses the HR module for payroll computation, which then generates accounting entries via Journal Entry.
Flow
Step
ERPNext Action
1
Ensure employee records and salary structures are set up in HR
HR → Employee, Salary Structure
2
Process payroll for the month
HR → Process Payroll → Create Salary Slips
3
Review and submit Salary Slips for each employee
HR → Salary Slips
4
Submit the payroll Journal Entry
ERPNext auto-generates a JE on submission; review and submit
5
If salary is paid from owner/investor funds (not company bank), record a separate JE
See Transaction Type 3
Key Fields (Salary Slip)
Field
What to Enter
Employee
Select the employee
Posting Date
Last day of the salary month
Salary Structure
The applicable structure for this employee
Earnings / Deductions
Verify computed amounts before submitting
GL Impact
Account
Debit
Credit
Salaries - K (or Overtime Expense - K)
Net salary amount
—
Payable / Bank Account
—
Net salary amount
Outcome
Salary is recorded in the Salaries expense account. The payroll Journal Entry reflects the correct debit to salary accounts and credit to payable or bank.
Checklist (Finance Use)
Transaction Type 1: Income
Checklist
1
☐ Sales Invoice is created with correct customer, date, items, and income account
2
☐ Sales Invoice is submitted
3
☐ Payment Entry is created and linked to the Sales Invoice
4
☐ Payment Entry is submitted with correct payment date and amount
Transaction Type 2: Expense
Checklist
1
☐ Purchase Invoice is created with correct supplier, date, items, and expense account
2
☐ Purchase Invoice is submitted
3
☐ If return: Is Return is checked and Return Against is linked
4
☐ Payment Entry is created and linked to the Purchase Invoice
5
☐ Payment Entry is submitted with correct payment date and amount
Transaction Type 3: Owner/Investor-Funded Transaction
Checklist
1
☐ Journal Entry debit and credit lines are correct and balanced
2
☐ Posting date matches the actual transaction date
3
☐ Supporting proof is attached (receipt, screenshot, bank record)
4
☐ User remark describes the transaction clearly
5
☐ Journal Entry is submitted
Transaction Type 4: Salary
Checklist
1
☐ Salary Slips are generated for all employees for the correct month
2
☐ Earnings and deductions are verified before submission
3
☐ Salary Slips are submitted
4
☐ Payroll Journal Entry is submitted
5
☐ If owner/investor-funded: separate JE is recorded per Transaction Type 3