# Wallet & payments

Connect Nova Wallet to your bank and help players make payments.

## Nova Wallet is the player's bank

Nova Wallet shows and spends the player's **real bank account**. There is no separate phone balance and nothing to deposit or withdraw: a payment in the Wallet moves money in your banking system. Players download Nova Wallet from Nova Store.

The phone never edits banking tables directly. It goes through your banking resource, chosen in `config/banking.lua` or in `server.cfg` (which wins):

```cfg server.cfg
set wd_phone:bank "auto"
```

| Value | Banking system |
| --- | --- |
| `auto` (default) | The first one started of Renewed-Banking, okokBanking and qb-banking; otherwise `esx` on ESX, else `framework` |
| `renewed` | Renewed-Banking |
| `okok` | okokBanking |
| `qb` | qb-banking |
| `esx` | ESX, with society accounts from `esx_addonaccount` |
| `framework` | The framework's own bank money (Qbox, QBCore or ESX), with no banking resource and no job accounts |
| `custom` | Another system, connected by a developer; see [Exports & integrations](#/docs/wd_phone/exports) |

The player's own money always moves through your framework; the banking resource adds job or society accounts and bank history. Start your banking resource before `wd_phone` in `server.cfg`.

## Bank history and job accounts

With Renewed-Banking, qb-banking or okokBanking, the Wallet's **Activity** shows the whole bank history (salary, ATM, shops and phone payments) and business accounts can use job or society accounts. Plain Qbox, QBCore and ESX keep no bank history, so Activity shows phone payments only.

The history is read from the banking resource's own tables, whose names differ between versions. If Activity shows only phone payments with one of those resources, match the table names in `Config.Banking.history.tables` to your version, or set `history.enabled = false`.

## Making payments

Players can send money to, or request money from, a contact, a saved recipient, a phone number, an account, or **someone standing nearby**. They can review history, approve payment requests and invoices, and control their card and daily limit.

- The Wallet needs an internet connection: mobile data, or Wi-Fi. A phone without a SIM can still pay over Wi-Fi.
- If the recipient's bank refuses the money, it goes back to the payer.
- No payment or phone charge takes more than the player's balance.
- Payments to offline players only work on Qbox. On QBCore and ESX, the Wallet says the recipient must be online.
- `nova://pay` links in Messages and Mail open a prefilled payment; the payer still confirms it.

## Payment limits

Edit the existing values in `Config.Banking`:

| Setting | Default | Purpose |
| --- | --- | --- |
| `currencySymbol` | `$` | Displayed currency |
| `minimumTransfer` | `1` | Minimum transfer |
| `maximumTransfer` | `100000` | Maximum individual transfer |
| `defaultDailyLimit` | `25000` | Initial daily card limit |
| `maximumDailyLimit` | `100000` | Highest daily limit |
| `requestExpiryHours` | `72` | Payment request lifetime |

## Carrier, shop and repair charges

Charges outside the Wallet, such as SIM plans, top-ups, carrier shops, repairs and Wi-Fi packages, are paid through `Config.Economy` in `config/banking.lua`, or in `server.cfg`:

```cfg server.cfg
set wd_phone:economy "bank"
```

| Value | Charges are paid |
| --- | --- |
| `bank` (default) | From the same bank as the Wallet |
| `framework` | Through your framework's own money directly, skipping the banking resource |
| `none` | Not at all: everything is free, for testing |
| `custom` | Through another system connected by a developer |

`Config.Economy.account` chooses whether the player's `bank` (default) or `cash` is charged. `none` only affects these charges. Wallet payments still move real money. Payphones charge cash by default (`Config.Payphones.account` in `config/payphones.lua`).

## Other apps that pay through the Wallet

Several apps move money through Nova Wallet, so it shows in Activity and the same balance and limits apply:

- [Rides and Bites](#/docs/wd_phone/city-apps): fares, food orders, refunds and tips.
- [Clips](#/docs/wd_phone/clips): Live gifts, brand deals and the creator fund.
- [Racing](#/docs/wd_phone/racing): buy-ins, payouts and bets.

## Test before launch

1. Install Nova Wallet on a test phone and check that its balance matches the player's bank.
2. Send a small payment to a second player by number and check both balances.
3. Pay someone standing next to you.
4. Create and approve a payment request.
5. Buy a SIM top-up and confirm the bank is charged.

If payments fail, check that your banking resource started before `wd_phone` and that `wd_phone:bank` names it. Do not edit balances in the database by hand to resolve an integration issue.

Business accounts and invoices for jobs are covered in [Exports & integrations](#/docs/wd_phone/exports).
