Skip to content

Withdraw store credit

A customer with store credit on their account can take it back out as cash from the drawer, or spend it as a payment method at the next sale. Fexl Lite handles both as a single liability draining off the books — 2100 Customer Credits on the credit side, cash sub-account or revenue on the debit side. This page is the mechanics for both paths.

Updated 5 May 2026·For v2.2.0·4 min read

Net balance vs usable credit

Two derived numbers govern what a customer can actually withdraw or spend:

  • netBalance = balance − creditBalance — the single number the badge shows. Negative means you owe the customer.
  • usableCredit = max(0, creditBalance − balance) — the slice of credit available to spend. Zero whenever the customer also has debt.

A customer with balance=200 and creditBalance=500 has netBalance=−300 (cyan badge, “Credit 300”) but usableCredit=300 — only the net is spendable. The other 200 of their credit is logically tied to clearing their debt before it becomes free cash.

The flow

1

Open the customer

From Customers, click the row (or use Withdraw Credit in the row’s overflow menu). A cyan Credit badge confirms the customer has a credit balance to draw from.

2

Click Withdraw Credit

The dialog opens with the customer’s creditBalance and usableCredit both shown. The amount field is capped at usableCredit.

withdraw credit dialog · usable credit displayed · payment method picker
3

Enter the amount and pick a payout method

Pick the method that the credit will be paid through — cash from the drawer, bank transfer, or any other configured payout method. Store credit itself is not a valid method here (the dialog hides it).

4

Confirm

The withdrawal posts atomically. creditBalance decreases by the amount, a type='withdrawal' row lands in customer_credit_transactions, and the journal entry posts.

What posts to the books

For a 300 cash withdrawal:

  • DR 2100 (Customer Credits) — drains the liability
  • CR 1010-xxx (cash sub-account on the active shift)

Both legs at the same amount. No revenue, no COGS — withdrawal is a balance-sheet move, not a P&L event. The credit was already recognised against revenue back at the original return that minted it (DR 4020 / CR 2100), so paying it out doesn’t touch revenue again.

Spending credit on a new sale

The other path: instead of withdrawing as cash, the customer applies their credit to a fresh purchase at the till. When a customer with usableCredit > 0 is attached to the cart, Store credit appears as a payment method in checkout (single or split).

What posts:

  • DR 2100 (Customer Credits) — drains the liability for the credit-applied portion
  • CR 4010 (Revenue) — recognises that portion as revenue (because the sale is happening)
  • Plus the usual COGS / inventory legs

A type='usage' row lands in customer_credit_transactions linked back to the new invoice. The customer’s creditBalance decreases by the applied amount in the same transaction.

This path does affect the P&L (because there’s a real sale), unlike a withdrawal. It’s also the cleanest way to “move” credit toward debt — apply it as a payment method on a partial-paid sale, and the customer’s credit clears against fresh revenue rather than against an old AR row.

Quick decision guide

Customer wants…UseTouches revenue?
Cash back from creditWithdraw credit (cash method)No
Bank-transfer payoutWithdraw credit (transfer method)No
Apply credit to a new purchaseStore credit at POS checkoutYes — as 4010
Apply credit to existing debtPay debt → method = Store creditNo
Refund taken as future store creditThe return wizardReverses 4020

Where it shows up afterwards

  • Customer detail → Statement tab — one row dated to the withdrawal, running balance updated.
  • Customer list — net-balance badge updates (or disappears entirely if balance lands at zero).
  • Cash drawer reportcash_out row on the active shift for the chosen sub-account.
  • Trial balance2100 credit balance shrinks; 1010-xxx debit balance shrinks too.
  • Balance sheet2100 Customer Credits liability drops by the withdrawal amount.