Skip to content

Payment

The Payment module handles customer and vendor money movement.

Before you start

  • Confirm the related invoice or bill exists.
  • Confirm the deposit or payment account is correct.
  • Confirm the ledger setup is complete.
  • Confirm the user can post payments.

Visual guide

Customer receipt screen

Use receipts for customer money in

Customer receipt is the screen to use when a customer pays an invoice. The grid below shows which invoices get the payment.

What to notice on the receipt screen

The customer, date, and payment type are in the top section. The invoice grid lets the cashier apply money to one or more invoices. Any extra amount can stay unallocated as an advance.

Vendor payment screen

Use vendor payment for money out

Vendor payment records what the business pays to suppliers. Keep the bill allocation and bank details aligned with the payment.

What to notice on the vendor payment screen

The vendor and payment date appear in the header. The bill allocation table shows what is being settled. Bank and cheque details matter when the payment is not cash.

Main routes in the app

Route Purpose
customer-receipt Receive payment from a customer
vendor-payment Pay a vendor

Note on refunds

The backend includes a customer refund DTO. The current top-level payment nav shows customer receipt and vendor payment. If a refund screen is exposed later, it should be documented in this portal.

Customer receipt

The customer payment detail DTO includes:

Field Meaning
invoice_no Invoice being paid
remaining_amount Remaining invoice amount
paid_amount Amount applied to that invoice
is_wh_tax_applied Withholding tax flag
wh_tax_code Withholding tax code
wh_tax_rate Withholding tax rate
wh_tax_amount Withholding tax amount

The customer payment flow typically uses:

Field Meaning
customer Customer name
receipt date Payment date
payment mode Cash, bank, cheque, transfer, or similar
deposit to account Destination account
amount received Total amount received
invoice selection Invoices being settled
unallocated amount Remaining amount kept as advance

Vendor payment

The vendor payment DTO includes:

Field Meaning
payment_no Payment number
vendor_name Vendor name
date Payment date
ledger_name Linked account
payment_amount Amount paid
remaining_balance Remaining balance
currency_name / exchange_rate Currency handling
payment_method Payment method
bank_name / cheque_no / cheque_date Bank or cheque details
account Account label
details Bill allocations

Refund DTO

The customer refund DTO includes:

Field Meaning
party_id Customer
date Refund date
payment_amount Refund amount
payment_method Payment method
bank_name / cheque_no / cheque_date Optional bank details
memo Notes

The DTO enforces that the amount is greater than zero. This is a backend model reference, not a current top-level payment route in the app nav.

Detailed pages

Why it matters

Payments update ledger balances and affect outstanding amounts, cash, and bank reconciliation.