Summary
Accept an optional Idempotency-Key header so a retried transfer request does not double-charge.
Scope
Likely files
src/routes/WalletRoutes.js
src/services/WalletService.js
src/models/Transaction.js
Acceptance criteria
- Same key + same payload returns the original result without re-running the transfer
- Keys expire or are scoped per user
- Works within the existing atomic transaction flow
Verification
- Replay an identical transfer with the same key and confirm only one debit
Labels: backend, enhancement, help wanted
Summary
Accept an optional
Idempotency-Keyheader so a retried transfer request does not double-charge.Scope
Likely files
src/routes/WalletRoutes.jssrc/services/WalletService.jssrc/models/Transaction.jsAcceptance criteria
Verification
Labels:
backend,enhancement,help wanted