Skip to main content

Self Topup Settings: Max Purchase limit per SKU

Jira: BIF-8787 · Epic: BIF-7797

Part of the Self Top-up Improvement initiative. This is a Self Topup Settings story, separate from the topup-flow stories in self-topup.md (STP-S01–S09). Moved here from adhoc-q3-2026 on 2026-07-16 after confirming BIF-8787 is a child of the self-topup Epic BIF-7797, not the adhoc Epic BIF-8695.

Overview

Add a per-SKU "Max Purchase" limit to Self Topup settings. Once a customer has purchased a SKU up to its limit, that SKU is removed from their Self Topup page so it can't be bought again. Use case: the Voice of Customer SKU can only be purchased once (limit = 1).

Scope Changes

  • Backend — per-SKU max-purchase setting, cumulative purchase enforcement.
  • Frontend — settings input; hide the SKU on the Self Topup page once the limit is reached.

8. User Stories + Acceptance Criteria

User StoryImportanceMockup / Technical NotesAcceptance Criteria
[MAXPUR-S01] — Max Purchase per SKU

As a billing admin configuring Self Topup SKUs, I want to set a Max Purchase limit per SKU, so that limited SKUs (e.g. Voice of Customer) can only be purchased up to that limit — after which the SKU no longer appears on the customer's Self Topup page.
Should HaveLimit reached ⇒ SKU hidden from the Self Topup page.— Happy Path —
• AC-1: Given a SKU in Self Topup settings, when an admin edits it, then a "Max Purchase" limit (positive integer, e.g. 1) can be set per SKU; unset = unlimited.
• AC-3: Given a customer has purchased a SKU up to its Max Purchase limit, when they view the Self Topup page, then the SKU is no longer shown.
• AC-4: Given a customer has purchased fewer than the limit, when they view the Self Topup page, then the SKU still shows and remains purchasable up to the remaining allowance.
— Guard-rail —
• NEG-1 (AC-2): Given a SKU with a Max Purchase limit and a customer who has already purchased up to that limit, when they attempt to purchase it again, then the purchase is not allowed.

Open questions

  1. Is Max Purchase a cumulative lifetime cap per company (CID), or per subscription period? (Assumed: lifetime cumulative per CID.)
  2. Does the count track number of purchases/orders or total quantity of units?
  3. If limit > 1, does a single order's quantity have to respect the remaining allowance?