Skip to content

Pay a supplier balance

The Record Payment dialog is how every cash movement on a supplier’s account gets logged: settling a PO you already received, paying down an opening balance, accruing a charge that arrived without a PO, or correcting an over-payment. Each entry is a row in supplier_payments with a type of paid or owed, and each one posts a journal entry to AP (2010) on the spot.

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

Reaching the dialog

Three entry points, all opening the same dialog:

  • Suppliers list — overflow menu on any row → Record Payment.
  • Supplier detail page — Overview tab, Record Payment button (or Record Owed for the reverse direction).
  • PO receive flow — when you flip a PO to received and pick Paid in full or Partial, the dialog runs inline. See Receive a PO.

Permission-gated on suppliers:manage_payments — cashiers won’t see the menu items by default; managers will.

The two transaction types

The dialog has one Type picker with two options. The choice changes which direction the balance moves and which journal entry posts:

  • paid — you handed cash (or its equivalent) to the supplier. The balance you owe goes down. JE: DR 2010 AP / CR 1010-xxx (active shift cash sub-account).
  • owed — you accrued a charge from the supplier without paying yet. The balance you owe goes up. JE: DR 1200 Inventory / CR 2010 AP (or DR 5xxx expense / CR 2010 if the charge isn’t inventory — e.g. a freight invoice that arrived after the goods).

paid is the everyday button. owed is for corrections and out-of-band charges — the supplier emailed an invoice for last month’s freight, or you’re back-loading a manual opening balance, or a credit note from a previous over-payment needs to be reversed.

The payment flow

1

Pick the type

Default is paid. Switch to owed only if you’re recording an accrual you haven’t paid yet.

2

Enter the amount

In the store’s primary currency. Validated against the current balance for paid entries — the dialog warns (but does not block) if the amount exceeds what’s owed, since over-payment is sometimes deliberate. For owed entries no upper bound applies.

3

Pick a payment method

Cash, card, bank transfer, mobile wallet — whatever is configured under Settings → Sales → Payment Methods. The choice routes the cash leg of the JE to the right sub-account (cash to 1010-001, bank to 1010-010, etc., per your chart-of-accounts wiring).

4

Add notes (optional but advised)

Free-text. Use this for cheque numbers, transfer references, the supplier’s invoice number, or any context the next person opening the supplier history will want — “settled May invoice #4711”, “advance against July order”.

5

Confirm — two-step

Press Record Payment. A confirmation modal recaps the amount, type, supplier, and method. Confirm again. The transaction posts; the balance pill on the supplier list updates immediately.

suppliers · record payment dialog · two-step confirm

What posts to the books

Every paid entry is a DR 2010 / CR 1010-xxx block. Every owed entry is a DR <expense or 1200> / CR 2010. Both are written inside a single database transaction along with the supplier_payments row insert and the recomputed balance — if any step fails, none of it lands. There’s no half-state where the balance moved but the JE didn’t, or vice versa.

The active shift’s cash sub-account is whatever the user is signed into right now (e.g. 1010-006 for AboYahya’s drawer, 1010-002 for Osama’s). Moving money between sub-accounts is a separate Cash Transfer flow on the cash drawer, not a supplier payment.

Tying a payment to a restock

If the payment is settling a specific restock — an ad-hoc one or a PO — the dialog has a Link to product / variant picker that scopes the payment to the relevant inventory line. The link doesn’t change the JE; it just shows up on the supplier history row and on the product’s history timeline so future audits can connect “this restock” to “this payment.”

The per-supplier ledger

Every payment, owed entry, and PO-driven posting lives on the supplier’s Payment History tab in reverse chronological order. Columns: date, type (paid / owed), amount, payment method, optional product/variant link, notes. Above the table sits a running balance card that recomputes at every page load.

Mistakes happen. To correct one, post a reversing entry of the opposite type for the same amount. Don’t edit or delete the original — the audit trail is the point.