Skip to main content

Edge cases and exception matrix

Status: Operational design input. Final remedies depend on partner API capabilities, scheme rules and merchant agreements.

ScenarioRequired system behaviourOwner / evidence
Same bill submitted twiceReturn idempotent result or explicit conflict; never duplicate collectionBilling; request key and bill version
Bill amended after schedulingVersion change and revalidation; cancel/replan only if no irreversible attemptBilling; audit and notifications
Bill cancelled during in-flight attemptMark cancellation pending; query provider; do not promise reversalOperations; provider reference
Consumer revokes mandate before runBlock new attempts and notify merchantConsent; revocation event
Consumer revokes during pending paymentPrevent new attempts, reconcile submitted attemptPayments; event timeline
Card expires before collectionPrompt update; do not select ineligible methodConsumer notifications
Primary hard declineNo same-method retry; backup only if permittedOrchestration; decline class
Primary soft declineApply bounded, documented retry policyOrchestration; policy version
Provider request timeoutUNKNOWN and lookup; no blind re-chargePayments; correlation ID
Webhook duplicate or out of orderDeduplicate and preserve monotonic stateProvider inbox; event IDs
Provider outage before cutoffBackoff, alert and notify when deadline threatenedOn-call; queue metrics
Settlement less than expectedHold payout and investigate discrepancyFinance; provider statement
Chargeback after payoutOpen risk/finance case and compensating journalsFinance/risk; original collection
Payout rejected/returnedReconcile funds, hold/reallocate and notify merchantFinance; payout return evidence
Merchant payout destination changedReverify and step-up/dual approval; apply hold if neededMerchant risk; approvals
Multiple merchants share consumerPreserve merchant-specific mandates and preferencesIdentity/consent; access tests
Incorrect consumer linkageFreeze affected mandate, investigate and remediateSupport/security; case
Merchant suspended mid-cycleStop new initiation, resolve in-flight items, retain payable recordsRisk/operations
Reconciliation discrepancyCreate aged case, do not force ledger balanceFinance; exception record
Fee rate changes mid-monthApply effective-dated pricing to each qualifying collectionCommercial; agreement version
DST/business day cutoffUse explicit timezone and provider holiday calendarScheduling; deterministic tests
Notification bounceRetain delivery failure; do not infer absence of consentCommunications; delivery log
Data deletion requestApply privacy rights subject to financial retention and legal holdsPrivacy; decision evidence

Exception lifecycle​

DETECTED → TRIAGED → ASSIGNED → INVESTIGATING → ACTION_PENDING → RESOLVED → CLOSED; separate ESCALATED and REOPENED transitions. Every case has severity, owner, due time, source evidence, customer impact, financial exposure, decision and closure verification.

Controls​

No automatic ledger adjustment to make reconciliation pass. No manual retry of UNKNOWN outcomes without provider confirmation. No payout release without eligible funds. No silent changes to mandates, bill amounts or merchant payout destinations.