DEVELOPER GUIDE
Developer Guide / API
Server export: PerformBankTransaction
PerformBankTransaction
This is the official export you can call from other resources to register movements in sleekbank_transactions
and (optionally) move money.
Signature
-- resource: sleek-bank/server/server_open_functions.lua
exports["sleek-bank"]:PerformBankTransaction(
realTransaction, -- boolean: true = move balances + record; false = only record
ibanFrom, -- string: source IBAN or "" for system
ibanTo, -- string: target IBAN or "" for system
amount, -- number: positive integer (cents not supported)
description -- string|nil: up to 500 chars
)
Behavior
When
realTransaction = true
:If
ibanFrom
belongs to an online player, funds are removed via framework APIs. If offline, the DB is updated directly.Same for
ibanTo
: online โ framework add; offline โ DB update.A row is inserted into
sleekbank_transactions
with postโamount snapshots for both sides.
When
realTransaction = false
:Only inserts a transaction row (no money moved). Useful for logging external effects.
Special cases
For system charges/credits use an empty IBAN for one side:
Bank fee:
ibanFrom = playerIban
,ibanTo = ""
.Interest credit:
ibanFrom = ""
,ibanTo = playerIban
.
Example: charge a player and credit a business account
local ok = exports["sleek-bank"]:PerformBankTransaction(
true,
"BANK123456789012", -- player
"BANKFLEECABUS001", -- business
2500, -- $2,500
"Vehicle purchase"
)
Example: log a fine without moving money
exports["sleek-bank"]:PerformBankTransaction(
false,
"BANK123456789012",
"",
500,
"Admin note: unpaid fine recorded"
)
The export does not return a value; it performs the operation (and emits framework notifications where applicable).
Public Events (Safe to Publish)
Security notice For security reasons, serverโside triggers, parameter shapes, auth tokens and antiโabuse checks are intentionally omitted from the public docs. If you need additional events or developer access, open a support ticket and weโll provide vetted guidance for your integration.
Client events (receiveโonly)
These events are emitted to clients and do not grant write access. Itโs safe to list them publicly.
sleek-bank:client:OpenBank (data)
Opens the banking UI with the current account snapshot. Payload (highโlevel): IBAN, balance, totals, recent transactions, card status, whether the session is ATM/bank, and optional savings/loan summary.sleek-bank:client:Update (data)
Refreshes the UI with an updated account snapshot. Payload (highโlevel): same structure as above (balance/totals/transactions).
Result notifications (readโonly)
The UI listens for simple result notifications where the payload is 1
(success) or 0
(failure). Listing these is safe; they do not perform actions by themselves.
UpdateMyIban
DepositMoney
WithdrawMoney
TransferMoney
BuyCreditCard
EnterPin
SetPin
RequestLoan
ActivateSavings
SavingsDeposit
SavingsWithdraw
LoanCompleted
These are notifications only. Business logic runs serverโside with validation (proximity, ownership, balances, rate limits, etc.).
Opening the UI from other scripts
For programmatic UI access (e.g., from another resource), we provide an internal, protected integration. We do not publish the serverโside entrypoint or parameters publicly. ๐ If your resource needs to open the bank UI, open a support ticket with your use case and weโll share the appropriate, secured approach.
Database
Tables are created by sleek-bank.sql
.
sleekbank_accounts
sleekbank_accounts
identifier
varchar(46) PK
ESX license / QB citizenid
iban
varchar(64) UK
Unique IBAN
balance
int unsigned
Bank balance
card_pin
varchar(16)
PIN (optional)
card_activated
tinyint(1)
0/1
sleekbank_transactions
sleekbank_transactions
id
int AI PK
iban_from
varchar(64)
May be ""
(system)
iban_to
varchar(64)
May be ""
(system)
amount
int unsigned
Positive amounts only
description
varchar(500)
Optional
date
datetime
Defaults to CURRENT_TIMESTAMP
iban_from_post_amount
int unsigned NULL
Balance after tx (source)
iban_to_post_amount
int unsigned NULL
Balance after tx (target)
Indexes on
iban_from
,iban_to
,date
and combined (iban_from
,date
) / (iban_to
,date
) enable fast history queries.
sleekbank_loans
sleekbank_loans
Tracks loans, installments, next payment time (ms), penalties, and whether requested or approved.
sleekbank_savings
sleekbank_savings
Tracks savings balance, total growth from interest, and next_interest
timestamp
Last updated