> For the complete documentation index, see [llms.txt](https://jiffyjrdevelopment.gitbook.io/jiffyjrdevelopmentdocs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jiffyjrdevelopment.gitbook.io/jiffyjrdevelopmentdocs/jiffy-jr-development-docs/jiffy-banking-v1/features/banking.md).

# banking

Personal banking covers checking accounts, savings accounts, ATM access, and the bank card item.

***

## Accounts

Every player gets a **checking account** automatically on first join (`Config.Banking.CreateAccountOnLoad = true`). A **savings account** is created alongside it when `Config.Banking.SavingsEnabled = true`.

Account balances are kept in sync with the framework's native `money.bank` value at all times — jiffy-banking is the source of truth.

***

## Opening the Bank

Players can open the bank UI in three ways:

* Walking up to a bank teller ped or location and pressing the 3rd-eye / E key
* Running `/bank`
* Using the keybind set in `Config.Keybinds.Bank` (blank by default — player sets it in GTA Key Bindings)

***

## Deposit & Withdraw

Standard deposit and withdraw from the checking account. Limits are configurable:

```lua
Config.Banking.Fees = {
    Transfer = 0.0,
    Withdraw = 0.0,
    Deposit  = 0.0,
}
```

***

## Transfers

Players can transfer money to any other player by:

* Selecting them from the **online player dropdown** (appears when you click the Recipient field)
* Typing a citizen ID manually for offline players
* Typing a server ID

An optional **note** field is included and saved to the transaction history.

```lua
Config.MaxTransfer  = 1000000
Config.TransferLimit = false   -- set to a number to cap per-transfer amount
```

***

## Savings

Savings accounts earn configurable interest automatically:

```lua
Config.Banking.SavingsInterestRate        = 0.005   -- 0.5% per interval
Config.Banking.SavingsInterestInterval    = 60      -- minutes
Config.Banking.SavingsInterestMinBalance  = 100     -- minimum balance to earn
```

Set `SavingsInterestRate = 0` to disable interest without disabling savings.

***

## ATM Access

ATMs are detected automatically from prop models defined in `Config.ATMModels`. Players must have their bank card in their inventory to interact with an ATM.

```lua
Config.Banking.ATM = {
    AllowDeposit        = true,
    AllowWithdraw       = true,
    AllowTransfer       = true,
    AllowInvoicePayment = true,
    Fee                 = 0.0,
    MaxWithdraw         = 2500,
}
```

***

## Bank Card

The `banking_card` item is given automatically when a player's account is first created. If a player loses their card, they can request a replacement from inside the banking UI on the home dashboard — no admin required.

{% hint style="info" %}
The card item name is configurable: `Config.BankCard.ItemName = 'banking_card'`. If you change it, update your item registration files to match.
{% endhint %}

***

## Account Freeze

Admins and bankers with manager permission can freeze a player's checking account. Frozen accounts cannot send or receive transfers, pay invoices, or be used at ATMs.

When an account is frozen:

* The home dashboard shows a red **Account Frozen** banner
* The freeze reason (entered by the admin/banker) is displayed to the player
* The freeze state persists across sessions

***

## Transaction History

Every deposit, withdrawal, transfer, invoice payment, payroll, and wash transaction is logged. Players can view their full history from the **Transactions** page with search and type filter.

```lua
Config.TransactionHistoryLimit = 100   -- number of records returned per query
Config.Banking.LogTransactions = true
```
