Skip to content

Test cases: POS & payments

VersionDate (UTC)Summary
1.0.02026-05-13Initial POS + webhook catalogue
1.1.02026-05-13Expanded tenders, stock, discounts, webhooks, idempotency matrix


IDClassScenarioAutomation
TC-POS-001HappyCash tender: place order, stock decrements, response includes receipt payloadUnit + E2E✓ (apps/vendor-web/e2e/pos-place-order-surfaces.spec.ts)
TC-POS-002UnhappyLane required but unset → guard before submitUnit + E2E*
TC-POS-003UnhappyMembership SKU without CRM customer context → rejectionUnit
TC-POS-004HappyWalk-in customer + CRM resolution completes membership lineUnit + E2E*
TC-POS-005UnhappyEmpty cart submit → validationUnit + E2E*
TC-POS-006UnhappyItem quantity exceeds available stock → reject or cap per policyUnit
TC-POS-007HappyMixed cart: taxable + exempt lines; totals match serverUnit
IDClassScenarioAutomation
TC-POS-010HappyCard tender initiates relay; await terminal result pathManual + integration
TC-POS-011HappySplit tender cash + card amounts sum to grand totalManual + E2E*
TC-POS-012UnhappySplit amounts do not match total → 400Unit
TC-POS-013UnhappyPartial authorization then void (PSP-dependent)Manual
TC-POS-014HappyChange given calculated for cash overpayE2E*
IDClassScenarioAutomation
TC-POS-020HappyLine-level discount applies; tax recomputedUnit
TC-POS-021UnhappyCoupon expired → remove or block per UXUnit + E2E*
TC-POS-022UnhappyOrder-level discount exceeds subtotal guardUnit
TC-POS-023HappyStore default tax from settings applied when line tax absentUnit
IDClassScenarioAutomation
TC-POS-030UnhappyWebhook signature invalid → 401/403; body not processedUnit
TC-POS-031HappyValid webhook updates payment state exactly onceUnit
TC-POS-032UnhappyReplay same event id → idempotent no-op (no duplicate ledger)Unit
TC-POS-033UnhappyUnknown event type → logged, no crashUnit
TC-POS-034UnhappyAmount mismatch vs order total → reject or quarantineUnit
IDClassScenarioAutomation
TC-POS-040HappyAuth then capture within windowManual
TC-POS-041UnhappyCapture after expiry → failure pathManual
TC-POS-042HappyPartial capture then final capture totals match orderManual
TC-POS-043UnhappyDouble capture attempt rejectedManual
IDClassScenarioAutomation
TC-POS-050UnhappyDB timeout during place order → transactional rollback; client sees retryable errorUnit
TC-POS-051HappyIdempotency-Key header (if API) prevents duplicate order on double POSTUnit

  • Webhook matrix (provider × event type) filled in appendix row or linked runbook
  • Bridge failures (timeout, LAN down) reviewed with Shared packages & desktop
  • PAX vs CodePay paths: PAX · CodePay

Parent index: System test cases (index)