Skip to main content

Receiving Payments and Write-offs

When a customer pays their debt, record the payment in Etalasse. It reduces the invoices, and everything is written to the ledger.

Recording a payment​

Open the customer's account detail then Record payment, or do it from the POS if cashiers are allowed.

Record payment dialog: a Rp 1.500.000 payment applied to the oldest invoices first, with a preview of the invoices it settles and Rp 800.000 still owedRecord paymentToko Kelontong Berkah · Owes Rp 2.300.000Apply toOldest invoices firstAmount received (Rp)1.500.000Pay allMethodTransferReferenceTRF 8812THIS PAYMENT SETTLESS-27-0031Rp 400.000S-27-0038Rp 650.000S-27-0042Rp 450.000Owes afterRp 800.000CancelRecord paymentOldest firstThe earliest due date is filled firstS-27-0031due 22 OctPAIDRp 400.000 paid in fullS-27-0038due 29 OctPAIDRp 650.000 paid in fullS-27-0042due 5 NovPARTIALRp 450.000 of Rp 1.250.000, Rp 800.000 leftStill owedRp 800.000123
A Rp 1.500.000 payment: (1) Oldest invoices first, (2) the preview of the invoices it settles and what is still owed, (3) click Record payment to save.

A Rp 1.500.000 payment: (1) Oldest invoices first, (2) the preview of the invoices it settles and what is still owed, (3) click Record payment to save.

FieldMeaning
Customer and AmountWho paid and how much (whole rupiah)
MethodCASH (default), TRANSFER, or OTHER
ReferenceOptional, for example a transfer number
NoteOptional
Invoice (optional)If empty, the payment is applied to the oldest invoice first. If chosen, only to that invoice

Where the money goes​

  • Oldest first: the invoice with the earliest due date, then the lowest number. One payment can settle several invoices, with the remainder part-paying the next one.
  • Choose an invoice: the payment goes only to that invoice. It must still be open and the amount may not exceed its balance.

Preview​

Before saving, the payment sheet shows a preview: which invoices get how much and the remaining debt afterwards. The preview writes nothing.

Over-payment is refused​

An amount above the total debt is refused (OVERPAYMENT, showing the outstanding amount). Etalasse does not keep customer credit balances or advance payments. If the customer owes nothing the payment is refused (NOTHING_OUTSTANDING), and an invoice that is already settled cannot be paid again (INVOICE_NOT_PAYABLE).

Safe to retry​

Each payment sheet creates a unique key once when it opens. If the save button is pressed twice, or the connection drops and the request is retried, the first result is returned and no payment is duplicated. Reusing the same key for another customer or amount is refused (REQUEST_ID_MISMATCH).

Cash payments and the shift​

A CASH payment while a shift is open on your branch is automatically recorded as a PAY_IN on that shift, so the drawer adds up. TRANSFER and OTHER payments do not touch the drawer. Conversely, cash returned on a refund records a PAY_OUT.

Write-off​

When a debt cannot be collected, the Owner or Admin can write it off (Write off on the invoice detail).

  • A reason is mandatory, for example "customer closed the shop".
  • Partial is allowed: enter the amount to forgive. If left empty, the whole remaining balance is written off.
  • An amount above the invoice balance is refused (AMOUNT_EXCEEDS_DUE).
  • Safe to retry with the same key: no double write-off.
  • Owner and Admin only. Cashiers cannot.
  • A write-off is recorded as a "Bad debt (write-offs)" expense on the Profit & Loss report in the period it is written off.
  • The customer's loyalty points are not reversed.
  • Write-offs are recorded in the activity log.

Write-offs still work after a plan downgrade, so you can always tidy up your receivables.

Invoice statuses​

StatusMeaning
OPENNothing paid yet and not due yet
PARTIALSomething paid, not due yet
OVERDUEPast the due date and still owing
PAIDBalance 0 and money came in
WRITTEN_OFFBalance 0 and some of it was forgiven
CREDITEDBalance 0 only because of a cancel or refund (credit note), so a canceled order is not shown as "paid"

Invoice balance = total - credited - paid - written off, and is never negative. The status shown is always live, based on today's date in the shop's calendar, so the OVERDUE filter is correct even before the daily job has run.