Transactions
Transactions are the fundamental records in SuperFast. Every debt and every payment is stored as a transaction. This page explains all transaction types and entry methods.
Transaction Typesโ
| Type | Who It Applies To | Effect on Balance |
|---|---|---|
| Debt (Customer) | Customers | Balance increases โ customer owes more |
| Payment (Customer) | Customers | Balance decreases โ customer paid back |
| Purchase (Supplier) | Suppliers | Balance increases โ you owe more |
| Payment (Supplier) | Suppliers | Balance decreases โ you paid the supplier |
Quick Entry Modalโ
The Quick Entry modal is the fastest way to log a transaction without navigating to a specific customer or supplier profile.
Opening Quick Entryโ
- Tap the + floating button on the Dashboard, or
- Tap Record Transaction in the quick links grid
Using Quick Entryโ
- Select entity type: Customer or Supplier
- Search for the entity: Type a name or phone number
- Select transaction type: Debt / Payment (customers) or Purchase / Payment (suppliers)
- Enter amount
- Add description (optional)
- Set date (defaults to today)
- Tap Save
The transaction is immediately written to the local SQLite database and added to the sync queue.
Bulk Entryโ
Bulk entry allows you to record multiple transactions in a single session โ useful at end of day when you have many customers who bought on credit.
- Open Quick Entry.
- Tap Bulk Mode toggle (top-right of the modal).
- For each transaction:
- Search customer โ enter amount โ tap Add
- All entries appear in a staging list below.
- When done, tap Save All to commit all transactions at once.
Bulk entry is ideal for market day or end-of-shift reconciliation when you have 10โ30 debts to enter quickly.
Invoice Modalโ
For more formal transaction entry with line items:
- Open a customer or supplier profile.
- Tap Add Transaction โ Invoice.
- Add line items:
- Item name (with autocomplete from your product templates)
- Quantity
- Unit price
- The total is calculated automatically.
- Add an invoice number for reference.
- Tap Save โ creates a single transaction with the total amount and attaches the itemized list.
Printing a Receiptโ
After recording any transaction:
- Tap the transaction row in the profile's history list.
- Tap Print Receipt (printer icon).
- A receipt-sized print view opens:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Ahmed's Supermarket โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ
โ Date: 21/07/2026 โ
โ Ref: TXN-20260721-004 โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ
โ Customer: Mohammed โ
โ Type: Debt โ
โ Amount: 5,000 YER โ
โ Desc: Groceries โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ
โ Balance: 12,500 YER โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ - Print or save to PDF.
Transaction Historyโ
On a Customer / Supplier Profileโ
The profile's Transaction History tab shows:
- All transactions in reverse chronological order
- Running balance after each transaction
- Filter by date range (tap the calendar icon)
- Filter by type (All / Debts only / Payments only)
Global Transactions Viewโ
From the Dashboard โ Recent Transactions, you see the last 20 transactions across all entities.
Editing a Transactionโ
Editing a transaction changes the historical record and re-calculates all subsequent balances. Use with care.
- Open the customer or supplier profile.
- Tap the transaction row.
- Tap Edit (pencil icon).
- Modify the amount, description, or date.
- Tap Save.
Deleting a Transactionโ
Deleting a transaction permanently removes it and recalculates the current balance. The deletion is synced to all devices.
- Open the transaction detail (tap the row).
- Tap Delete (trash icon).
- Confirm deletion.
Transaction Reference Numbersโ
Every transaction is automatically assigned a unique reference number in the format:
TXN-YYYYMMDD-NNN
For example: TXN-20260721-042 โ the 42nd transaction created on 21 July 2026.
These reference numbers are included in printed receipts and WhatsApp statements for traceability.
Offline Behaviorโ
All transaction entry works fully offline. Transactions written while offline are:
- Saved immediately to the local SQLite database
- Added to the
sync_queuetable with statuspending - Automatically pushed to the server the next time a connection is available
See Offline Mode for details.