Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • A Ahad Mobile
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • holatech
  • Ahad Mobile
  • Merge requests
  • !116

fix: offer cash deposits in usd only

  • Review changes

  • Download
  • Patches
  • Plain diff
Merged Khanh Pham requested to merge fix/deposit-usd-only into develop Oct 12, 2026
  • Overview 0
  • Commits 2
  • Pipelines 1
  • Changes 6

Why

We only operate US Airwallex Global Accounts, and a US Global Account accepts only USD (sandbox: country_code: US with EUR/GBP/HKD/SGD over LOCAL or SWIFT → 400 ensure currency is one of [USD]). The deposit-cash picker still offered EUR/GBP/HKD/SGD, which either failed at Airwallex or hit per-country quota (NO_MORE_VBA_ALLOWED).

What

  • BE airwallex/constants/currency-country.ts: USD-only allow-list isDepositCurrencyEnabled. Country/transfer-method maps unchanged; re-enable a currency by adding it to the list.
  • BE getDepositCurrencies returns only enabled currencies (the FE picker is driven by it, so old app builds get USD only too).
  • BE getOrCreateDepositAccount returns 400 <CODE> deposits are not available. Please deposit in USD. for a disabled currency — after the early return for existing ACTIVE/PROCESSING rows, before the KYC gate, any DB write and any Airwallex call.
  • FE deposit cash amount/account forms show a 400's server message instead of the generic "try again" (amount form: no retry button).

KYC country is intentionally not restricted: a user from any country gets the same US USD account; senders abroad pay in USD over SWIFT.

Notes

  • Staging users with an ACTIVE non-USD account (a few HKD) can no longer reach its details from the picker; incoming deposits still credit. Prod has none.
  • Release: BE first (staging auto-deploy), FE change via OTA.

Tests

  • yarn jest src/modules/airwallex 169/169; pnpm jest src/components/deposit 110/110; mutation-checked.
  • Opus review gate: PASS after 2 rounds (round 1 SHOULD-FIX on FE 400 handling fixed; hard-coded "USD" hint kept by design).

🤖 Generated with Claude Code

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: fix/deposit-usd-only