Exports & Developer API

Other scripts interact with finals_banking through server exports (Lua) and client exports (mainly ox_inventory item hooks). Call them only after finals_banking has started (e.g. ensure finals_banking

Player / loan identity (borrowerKey, storageKey)

FrameworkValue to pass
QB / QBXcitizenid (string)
ESXidentifier / users.identifier as used by this resource
ox_coreCharacter id as stored in banking tables (e.g. string charId)

Offline helpers use the same storage key as online (QB citizenid, ESX identifier). ox_core does not support the offline bank money exports in developer_exports.lua (they return false / no-op).


Server — society / job accounts

Implemented in server/society/society_banking_exports.lua. Job name is normalized (e.g. lowercased). Society balance storage follows Config.SocietyBanking.jobBalanceStorage on QB/QBX; ESX uses finals_banking_esx_society; ox_core uses finals_banking_ox_society.

ExportArgumentsReturns
AddMoneyjobName, amount (int ≥ 1), reason (any, optional)boolean
RemoveMoneyjobName, amount (int ≥ 1), reason (any, optional)boolean
GetAccountBalancejobNamenumber (balance, 0 if missing)
GetBalancejobNamesame as GetAccountBalance
CreateJobAccountjobName, label (optional display label)boolean
GetAccountjobName{ account_name, account_balance, money } (compat for older scripts)

Example

Lua
exports['finals_banking']:AddMoney('banker', 5000, 'branch deposit')
local bal = exports['finals_banking']:GetBalance('banker')

Server — credit, loans, player bank (developer API)

Implemented in server/dev/developer_exports.lua.

ExportArgumentsReturns / notes
GetBankingFramework—Framework id string (e.g. 'ox', 'qb', 'esx_legacy', 'esx_finals_v1') or nil
GetCreditProfileborrowerKeyRow from finals_banking_credit or nil
GetCreditScoreborrowerKeynumber (defaults to config default if no row)
EnsureCreditProfileborrowerKeyboolean
AdjustCreditScoreborrowerKey, delta (int)boolean
GetActiveLoansForBorrowerborrowerKeyarray of { ... } loan rows (status = 'active')
CountActiveLoansborrowerKeynumber
IsLoanWithdrawLockedborrowerKey, accountId (number)boolean
GetPlayerPrimaryAccountIdsource (player id)Primary UI account id or nil
GetPlayerBankBalancesource, accountId (optional)Bank balance or nil
AddPlayerBankMoneysource, amount (int ≥ 1), reason (string, optional)boolean
RemovePlayerBankMoneysource, amount (int ≥ 1), reason (string, optional)boolean
AddOfflineBankMoneystorageKey, amount, reasonQB / ESX only — boolean
RemoveOfflineBankMoneystorageKey, amount, reasonQB / ESX only — boolean
GetPrimaryBankAccountIdFromCitizenIdstorageKeyQB / ESX only — primary account id or nil

Example

Lua
local fw = exports['finals_banking']:GetBankingFramework()
local ok = exports['finals_banking']:AddPlayerBankMoney(src, 500, 'paycheck')
local score = exports['finals_banking']:GetCreditScore(citizenid)

Client — ox_inventory (item client.export)

Register these export names on items in ox_inventory (see installation.md and GitBook):

ExportTypical itemPurpose
useDebitCardItemConfig.DebitCard.itemOpens debit card preview UI
useBankerTabletBankerConfig.TabletItemOpens banker tablet (loan officer)
useLoanAgreementItemBankerConfig.LoanAgreementItemOpens loan agreement viewer

Example

Lua
['bankcard_fleeca'] = {
    client = { export = 'finals_banking.useDebitCardItem' },
},

Notes

  • Errors or nil usually mean wrong framework, player not loaded, or invalid source / key.
  • For society behaviour (who can open the company tab), see shared/config.lua → Config.SocietyBanking and framework job SQL examples under sql/ox/, sql/qb/, sql/esx/.