Skip to main content

Issue store credit

A supplier gives a customer store credit by hand from the customer's page: a goodwill gesture, a price correction, a credit for damaged goods. The credit is added to the customer's balance at once and appears as a Credit Issued row in their Payment History. It belongs to no invoice.

Who uses it​

  • Supplier staff with full invoice access (Admin, Clerk by default).
  • Restaurants aren't told. No email, SMS or push is sent.

How it works​

  1. Open Customers, then the customer. Click Issue Store Credit in the button row (between View Payment History and Add Payment).
  2. A drawer opens, headed "Issue Store Credit to Restaurant". (The heading always says "Restaurant", not the customer's name. See Known limitations.)
  3. Under "Please enter the amount you'd like to add.", type the amount in the Enter Store Credit Amount field. It takes dollars and cents, two decimals at most, no negatives.
  4. Optionally fill Notes (optional) ("Add a note for your records"). Helper text: "Internal only. Not shown to the customer." Up to 200 characters.
  5. Click Issue Store Credit. While it saves the button shows a spinner and can't be clicked again.
  6. On success the drawer closes, a "Store Credit Issued" toast appears, and the Store Credits box shows the new balance.

Cancel closes the drawer and clears it. Reopening always starts empty.

Validation and errors​

What you didWhat you see
Left the amount emptyThe field turns red (no message text) and nothing is sent
Entered 0.00"Amount must be greater than 0"
The save failed on the serverA "Failed to issue store credit" toast, and the drawer is replaced by: "An error occurred while processing the store credit. Please try again later or contact support." Close and reopen the drawer to try again

The server's own reason is never shown in the drawer. Reasons it can refuse (reachable only through the API, since the drawer always sends the right values): "Store credit can only be issued by a SUPPLIER to a RESTAURANT holder", "Store credit holder not found [id=…]", "Store credit holder … is a SUPPLIER business, not a RESTAURANT", "Issued credit amount must be a positive number".

What gets written​

The balance change and its record are saved together, or not at all. The record:

Field shownValue
Type chipCredit Issued
Payment MethodStore Credits
AmountWhat you typed
Payment DateThe moment you clicked
Invoice ID— (belongs to no invoice)
NotesYour note, or "One-time store credit issuance" when you left it blank
Recorded byYou

Knock-on effects​

Issue $50.00 to Joe's Diner, which held $30.00:

WhatBeforeAfter
Store credit balance$30.00$80.00
Payment History—+ Credit Issued, Store Credits, $50.00, "One-time store credit issuance"
Any invoice's balance due or status—Unchanged. The credit belongs to no invoice
Bookkeeping transactions—None added
Customer payment summary (Net Sales, Payment Received, Store Credits Applied, Outstanding Balance)—Unchanged until the credit is spent
Stock—Unchanged
Messages—None to the restaurant. None to the supplier

Where it shows up​

  • Customer page: Store Credits box.
  • Customer → View Payment History: the Credit Issued row, with Edit and Delete (see Correct or remove).
  • It does not appear in any invoice's Records tab, since it belongs to none.

Permissions​

WhoCan they issue credit?
Admin, Clerk (invoice full access)Yes. The button shows
Driver, Warehouse, Salesperson (invoice read-only)The button is hidden
A custom role without invoice full accessThe button is hidden
Server check is looser than the button

The server only checks that the person works for the supplier issuing the credit. It doesn't check their role, so a team member without invoice access who calls the API directly could still issue credit. Every other credit action (refunds, edits, removals) is checked on the server.

Decisions​

  • Credit and its record are written in one step. Before, the balance moved first and the record followed; a failure in between left credit nobody could see or undo. (#2316)
  • Optional note, with a default when blank. Keeps a reason on the record without forcing one. (#2316)
  • The server confirms the businesses really are a supplier and a restaurant, not just the labels the caller sent. Another supplier's ID can't be credited by mistake. (#2316)
  • No message to the customer. Issuances are treated like corrections and stay quiet. (#2306)

Known limitations​

  • The drawer heading reads "Issue Store Credit to Restaurant" for every customer.
  • The drawer doesn't show the customer's current balance; it's in the Store Credits box behind it.
  • A failure shows a generic message, never the server's reason.
  • Issuing has no duplicate protection on the server (#2318). The drawer blocks a double click, but a network retry of the same request could credit twice.
  • Issuance is offered for inactive customers too.

FAQ​

I issued credit but don't see it on any invoice. Correct: it belongs to no invoice. It sits in the balance until it's applied to an order or used as a payment.

I issued the wrong amount. How do I fix it? Open View Payment History, find the Credit Issued row, and use Edit or Delete. Lowering or removing it is refused if the customer has already spent the credit. See Correct or remove.

Does issuing credit show up as an expense? No. Nothing is booked when credit is issued or spent. See Bookkeeping & reports.