Invoice Management: Complete Operations Guide
The Invoice module is your all-in-one solution for generating, managing, and distributing professional, GST-compliant tax invoices.
Whether you are on a desktop workstation or a mobile device in the field, every feature is optimized for speed, clarity, and one-tap execution.
Invoice Creation
The creation form is structured into collapsible cards for focused editing.
Form Sections
- Basic Details — Invoice number (auto or manual), party name, LR number, date, due date, shipment type, route, vehicle number
- Billing, Consignor & Consignee — Name, phone, address, GSTIN, location for both sender and receiver
- Package Details — Total weight, package count, HSN/SAC codes
- Insurance — Dynamic percentage settings for premium or declared value
- Payment & Tax — Freight charges, advance payments, additional charges, discounts, GST type (IGST / CGST+SGST), payment remarks
All values are auto-validated before submission. Totals and GST update in real-time as you type.
Dashboard Statistics
Four stat cards sit above the list, updating automatically as you add, delete, or modify invoices.
Total Invoices
All-time count
Paid
Marked as paid
Unpaid
Pending payment
Total Value
Combined ₹ value
Each card features a distinct color accent and an icon for at-a-glance recognition.
Search & Filtering
Use the search bar above the list to filter invoices in real time.
- Searchable Fields: Bill-to name, phone, origin (move_from), destination (move_to), invoice number, and custom metadata.
- Real-Time Results: Client-side filtering with zero server delay. Result count updates instantly.
- Clear Search: Click the × button or press Escape to reset.
- Case-Insensitive: Typing "mumbai" matches "Mumbai" entries.
Note: Search operates on the already-fetched dataset. Scroll to the bottom to trigger infinite scroll and load older records before searching.
Invoice List View
Invoices are displayed in a high-density table on desktop and collapsible cards on mobile.
Desktop Table Columns
- # — Serial number
- Invoice Details — Number + creation date (green Latest badge on newest)
- Customer Details — Bill-to name, avatar initial, clickable phone link
- Location — Origin city (green) → Destination city (red)
- Amount — Bold, Indian-formatted rupee value
- Status — Interactive paid/unpaid toggle switch
- Actions — Three-dot dropdown menu
Records sort by invoice number descending (newest first). Infinite scroll loads 10 records initially, then auto-fetches the next batch as you scroll.
Payment Status Toggle
Every invoice has a binary status: Paid or Unpaid. Change it directly from the list view.
- Toggle the switch on any row.
- When switching Unpaid → Paid, a confirmation modal appears. Click "Yes, Mark as Paid" to confirm.
- Switching Paid → Unpaid happens instantly without confirmation.
- Dashboard stats recalculate immediately.
Tip: Field agents can update cash or UPI collection status in real time from a mobile device.
View Invoice PDF
Opens the generated PDF in a new browser tab for quick verification.
- Click the three-dot menu on any invoice row.
- Select View Invoice.
- The PDF opens in a new tab with your company branding.
Note: The PDF is generated server-side on demand via /api/invoice/generate-pdf/. It is cached locally for 3 minutes. A duplicate-guard ref prevents double-clicks from opening multiple tabs.
Download / Save PDF
Saves the invoice PDF to your device with a standardized filename.
- Click the three-dot menu on any invoice row.
- Select Save PDF.
- The file downloads as
invoice-{number}.pdf.
Tip:On mobile, if the download does not start automatically, check your browser's download manager or notification shade.
Edit Invoice
Opens the invoice form pre-filled with existing data for quick corrections.
- Click the three-dot menu on any invoice row.
- Select Edit.
- The form opens at
/v1/invoice?edit={number}with all data restored. - Make changes and save. The PDF reflects updates immediately.
Note: The invoice number remains unchanged during an edit, maintaining link consistency for any PDFs already shared.
Delete Invoice
Permanently removes an invoice from your records.
- Click the three-dot menu on any invoice row.
- Select Delete.
- A confirmation dialog appears with the specific invoice number. Click Delete to confirm.
Warning: Deletion is irreversible. The record and its PDF are removed immediately. Export a backup first if needed.
Create New Invoice
Initiate a new invoice from two locations on the list page.
Entry Points
- Hero Button — At the top of the page next to Refresh.
- Floating Action Button (FAB) — Large blue circle with a plus icon, fixed to the bottom-right corner. Stays visible while scrolling.
Both buttons route to /v1/invoice?addnew=true. A toast "Opening new invoice form..." confirms the action.
Refresh Data
Re-fetches the entire dataset from the server. Useful for multi-user synchronization.
- Full Reload: Clears local cache, shows skeleton loading state, and pulls the latest records.
- Search Preserved: Your active search query is not cleared.
- Toast Confirmation: "Refreshing data..." followed by "Loaded N invoices".
Mobile & Desktop Views
The Invoice List adapts its layout based on screen width.
Desktop (md and above)
- Seven-column table with hover row highlighting.
- Dropdown menus with viewport-aware positioning.
- Fixed action columns for easy scanning.
Mobile (below md)
- Card layout with stacked information.
- Thumb-sized tap targets (minimum 44×44 pt).
- Tapping a phone number initiates a native call.
- Floating scroll-to-top arrow after 300px scroll.
Notifications & Feedback
BSTD uses non-blocking toast notifications in the bottom-right corner. Auto-dismiss after 3.5 seconds.
Success (Emerald)
Invoice deleted
Error (Red)
Download failed
Info (Blue)
Opening PDF...
Multiple toasts stack vertically so rapid actions produce a readable queue rather than overlapping noise.
UX Tips & Shortcuts
Maximize efficiency with these built-in interaction patterns.
- Dropdown Auto-Close: Click outside, scroll, or resize to close orphaned menus.
- PDF Preloading: Hover over View for 200ms to trigger a silent fetch.
- Search Clear: Press Escape while focused to clear instantly.
- Phone Links: Tapping a number opens the dialer pre-filled on telephony-enabled devices.
- Color Language: Emerald = paid/success, Amber = unpaid/pending, Rose = monetary, Blue = info.
Troubleshooting
Common issues and their resolutions.
PDF fails to open or download
Ensure popups are allowed from bstd.digital.thugo.in. Verify your company ID is saved in localStorage and your auth token has not expired. Retry after 30 seconds or contact support.
Search returns no results
The search covers only loaded records. Scroll to the bottom to trigger infinite scroll and load older data, then search again.
Status toggle not saving
If the switch reverts after confirming, your auth token may have expired. Refresh the page to re-authenticate and verify write permissions.
Share sheet does not appear on mobile
Native sharing requires HTTPS and a modern browser (Chrome 89+, Safari 13+). BSTD falls back to clipboard copy or direct download if unavailable.
Dashboard stats seem incorrect
Click Refresh to synchronize all records. Total value sums only numeric totals; null or zero amounts are excluded from the sum but counted in quantity.
Duplicate PDF tabs open
The duplicate-guard ref should block double-clicks. If multiple tabs still open, wait 2 seconds between clicks, or use Download instead of View.