🏦 Bank App

Financial transaction system for testing account management, money transfers, and balance calculations

Overview

The Bank App simulates a banking backend with accounts, transactions, and balance tracking. Perfect for testing financial workflows and data integrity.

What You Can Test

  • Accounts: Create and manage bank accounts
  • Transactions: Transfers, deposits, withdrawals
  • Balance Tracking: Real-time balance updates
  • Transaction History: View all account activities
  • Validation: Insufficient funds, negative amounts

Requirements & Fields

Account Fields

  • name - string, required, account holder name
  • type - string (checking, savings, business)
  • currency - string (USD, EUR, GBP)
  • balance - decimal, default 0.00
  • is_active - boolean, default true

Transaction Fields

  • from_account_id - UUID, required for transfers
  • to_account_id - UUID, required for transfers
  • amount - decimal, required, min 0.01
  • type - string (transfer, deposit, withdrawal)
  • description - string, optional
  • status - string (pending, completed, failed)

Test Case Examples

TC-001: Create Account with Initial Balance

Objective: Verify account can be created with starting balance

Steps:

  • Send POST request to /api/bank/accounts
  • Include balance = 1000.00
  • Verify response status 201
  • Verify account created with balance = 1000.00

Expected: Account created with correct initial balance

TC-002: Transfer Between Accounts

Objective: Verify money can be transferred between accounts

Steps:

  • Create Account A with balance = 500
  • Create Account B with balance = 200
  • Transfer 100 from Account A to Account B
  • Verify Account A balance = 400
  • Verify Account B balance = 300

Expected: Balances updated correctly after transfer

TC-003: Insufficient Funds Scenario

Objective: Verify transfer fails when insufficient funds

Steps:

  • Create account with balance = 50
  • Attempt to transfer 100
  • Verify response status 400
  • Verify error message indicates insufficient funds
  • Verify balance unchanged

Expected: Transfer rejected, balance unchanged

TC-004: Balance Calculation Accuracy

Objective: Verify balance calculations are precise

Steps:

  • Create account with balance = 1000.00
  • Withdraw 250.50
  • Deposit 100.75
  • Withdraw 50.25
  • Verify final balance = 1000 - 250.50 + 100.75 - 50.25 = 800.00

Expected: Balance calculated accurately with decimals

TC-005: Transaction History

Objective: Verify transaction history is tracked

Steps:

  • Create account
  • Perform 5 different transactions
  • Get transaction history
  • Verify all 5 transactions appear
  • Verify transactions ordered by date (newest first)

Expected: Complete transaction history available

TC-006: Negative Amount Validation

Objective: Verify negative amounts are rejected

Steps:

  • Attempt to create transaction with amount = -50
  • Verify response status 400
  • Verify error message indicates invalid amount

Expected: Negative amounts rejected

TC-007: Currency Consistency

Objective: Verify transfers only between same currency

Steps:

  • Create Account A with currency = USD
  • Create Account B with currency = EUR
  • Attempt transfer from A to B
  • Verify response status 400
  • Verify error indicates currency mismatch

Expected: Cross-currency transfers rejected