Complete a sale
| Field | Value |
|---|---|
| Workflow ID | POS-FLW-001 |
| Roles | Cashier, Manager, Owner |
| Platforms | Android, Web |
| Entry | POS-SCR-001 / POS-SCR-002 |
| Result | Paid invoice and receipt |
Preconditions
- User is authenticated and has a selected counter.
- An open shift and at least one sellable product exist.
- The product, tax, and payment configuration are available for the selected location.
Happy path
- Open Sell/POS and search or scan for a product.
- Add the product; repeated adds increase quantity without leaving the selling surface.
- Review the cart and apply only an in-policy discount. Approval-required discounts enter the appropriate queue.
- Start payment, select cash, card, UPI, mixed, or split payment, and confirm only once.
- Confirm the permanent invoice identifier and open the receipt.
Recovery
If invoice creation fails, preserve the cart and show a retryable error. If a request times out, do not automatically re-submit a financial action; determine whether an invoice was created first. A receipt/print/share failure is distinct from a successful sale and must offer a safe retry.
Automated evidence
- Web:
apps/web/tests/e2e/pos-checkout.spec.ts - Android: add the checkout capture flow named in the screen inventory before publishing POS screenshots.