SellVia Docs — menu
DocsEdge CasesBusiness Edge Cases

Business Edge Cases

Edge Cases/Business Edge Cases.md
sharedUpdated Aug 23, 2026

Business Edge Cases

Purpose

Situations specific to the Merchant side that fall outside the happy path.

Cases

  • Merchant changes commission rate mid-campaign — resolved default (State Machines): existing approved creators keep their locked-in rate, new applicants get the new rate. No re-consent flow needed as a result.
  • Merchant pauses or ends a campaign with active creators — resolved default (State Machines): paused campaigns keep honoring in-flight attribution within the 30-day window; ended campaigns stop attributing new clicks immediately but honor pre-end clicks within the window.
  • Merchant's Paddle account gets restricted/flagged by Paddle (e.g. Paddle's own risk systems flag unusual activity) — not addressed in any prior doc. Needs a defined SellVia-side response: likely auto-pause all of that merchant's live campaigns until resolved, to avoid creators promoting a merchant who currently can't receive funds.
  • Merchant never completes Paddle onboarding after creating campaigns — campaigns should not be able to go live (draft → live transition) until Paddle onboarding is verified complete; this should be an explicit gate in the Campaign State Machine.

Open Questions

  • Merchant Paddle-restriction handling (see above) — genuinely unaddressed until now, worth a real decision before launch given it's not a rare edge case for any platform processing real payments at scaleRESOLVED, see Update (2026-08-07) below.

Update (2026-08-07): RESOLVED — Auto-Pause Immediately

Founder-confirmed: on seller.updated webhook indicating a Paddle restriction (04. Event-Driven Architecture already tracks this event type), all of that merchant's live Campaigns transition to paused automatically — no manual Admin step required to trigger it. Existing creators keep their in-flight attribution honored within the 30-day window per the standard "paused" behavior already defined in 01. State Machines; no new applications accepted while restricted. Merchant is notified (01. Notification Logic) explaining why, and campaigns can resume once Paddle lifts the restriction (detected via a subsequent seller.updated event).

Update (2026-08-23): Paddle Removed, Swich Confirmed — Offer Replaces Campaign

Founder decisions, full reasoning in 02. Architecture Decision Log.

  • Every "campaign"/"Campaign" above means "offer"/"Offer" — no separate Campaign entity (01. Domain Model).
  • "Merchant's Paddle account gets restricted/flagged""Merchant's Swich billing gets restricted/flagged." The auto-pause response above is unchanged in principle — all of that merchant's live Offers transition to paused automatically — but the trigger event is now whatever Swich's equivalent restriction/risk-flag webhook is, not Paddle's seller.updated. Exact Swich event name/shape unconfirmed pending real integration.
  • "Merchant never completes Paddle onboarding""Merchant never completes Swich billing connect." Same gate logic (Offer cannot go draft → live until this is complete), different processor. See 05. Payment Flow, 03. State Machines' Offer State Machine.