> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aps-store.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Server Exports

> Server exports of aps_banking for money, accounts, shared members, freezing and credit score, with signatures and the error codes they return.

`target` is a player server id, an identifier (ESX `identifier` / QBCore & Qbox `citizenid`), an IBAN, or `'job:police'` / `'gang:ballas'`, so most exports also work for offline players.

Amounts must be whole numbers above 0. Calls go through the same checks and logging as the UI. Functions returning `boolean, error` give one of the error codes listed at the end.

***

## Money

### addMoney / removeMoney

```lua theme={null}
---@return boolean success, string? error
exports['aps_banking']:addMoney(target, amount, reason)
exports['aps_banking']:removeMoney(target, amount, reason)
```

### transfer

```lua theme={null}
---@return boolean success, string? error
exports['aps_banking']:transfer(from, to, amount, note)
```

### getBalance

```lua theme={null}
---@return number|nil
exports['aps_banking']:getBalance(target)
```

### logTransaction

Adds a row to the history. No money moves.

```lua theme={null}
---@param direction 'in' | 'out'
---@return boolean
exports['aps_banking']:logTransaction(target, direction, amount, action, note)
```

***

## Accounts

### getAccount / getAccountByIban

```lua theme={null}
---@return { id, iban, type, label, owner, society, balance, frozen }|nil
exports['aps_banking']:getAccount(target)
exports['aps_banking']:getAccountByIban(iban)
```

### getPlayerAccounts

Personal, savings and shared accounts of a player.

```lua theme={null}
exports['aps_banking']:getPlayerAccounts(target)
```

### createJobAccount / createGangAccount

```lua theme={null}
exports['aps_banking']:createJobAccount('mechanic', 'Mechanic')
exports['aps_banking']:createGangAccount('ballas', 'Ballas')
```

### createSavingsAccount

```lua theme={null}
exports['aps_banking']:createSavingsAccount(target)
```

### freezeAccount / unfreezeAccount / isFrozen

```lua theme={null}
exports['aps_banking']:freezeAccount(target, reason)
exports['aps_banking']:unfreezeAccount(target)
---@return boolean
exports['aps_banking']:isFrozen(target)
```

***

## Shared accounts

```lua theme={null}
---@return table|nil account, string? error
exports['aps_banking']:createSharedAccount(target, label)
---@return boolean success, string? error
exports['aps_banking']:addSharedMember(account, member)
exports['aps_banking']:removeSharedMember(account, member)
---@return { identifier, name, owner }[]
exports['aps_banking']:getSharedMembers(account)
```

***

## Other

### openBank

Opens the bank for a player anywhere on the map. That session skips the location check.

```lua theme={null}
---@return boolean
exports['aps_banking']:openBank(playerId)
```

### getCreditScore / changeCreditScore

```lua theme={null}
---@return number|nil
exports['aps_banking']:getCreditScore(target)

-- ref makes the change one-time: the same ref is ignored after that
---@return number|nil new score
exports['aps_banking']:changeCreditScore(target, delta, reason, ref)
```

***

## Error codes

`invalid_amount`, `insufficient_funds`, `account_not_found`, `account_frozen`, `same_account`, `savings_cap`, `savings_locked`, `duplicate`, `database_error`, `payout_failed`, `shared_limit`, `member_limit`, `already_member`, `member_not_found`, `invalid_name`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.