Features
Exports
Server Exports

Server Exports (Banking)

Below are all available server-side exports provided by bablo-banking. These helpers handle account lookups, balance changes, card checks, and society/default account utilities for ESX/QBCORE/QBOX setups.

Notes:

  • All money mutation functions return { success: boolean, newBalance?: number, message?: string }.
  • message is present when success is false (e.g., ACCOUNT_NOT_FOUND, INSUFFICIENT_FUNDS, CARD_FROZEN).
  • Amounts are numbers; positive values are expected unless otherwise stated.

AddMoney

-- accountId: string - bank account number
-- amount: number - amount to add
-- description?: string - optional transaction text
-- isAtm?: boolean - when true, applies ATM-specific logic for default accounts
-- actorIdentifier?: string - identifier of the actor performing the action (ATM path)
-- return: { success: boolean, newBalance?: number, message?: string }
 
local result = exports["bablo-banking"]:AddMoney(accountId, 2500, "External Credit")

RemoveMoney

-- accountId: string
-- amount: number
-- description?: string
-- isAtm?: boolean
-- actorIdentifier?: string
-- return: { success: boolean, newBalance?: number, message?: string }
 
local result = exports["bablo-banking"]:RemoveMoney(accountId, 500, "External Debit")

RemoveMoneyByCard

-- accountId: string
-- amount: number
-- cardNumber: string
-- descriptionOrOpts?: string | { description?: string, isAtm?: boolean, actorIdentifier?: string, cardNumber?: string, allowNegative?: boolean }
-- return: { success: boolean, newBalance?: number, message?: string }
 
local ok = exports["bablo-banking"]:RemoveMoneyByCard(accountId, 100, cardNumber, "POS Payment")

AddMoneyByCard

-- accountId: string
-- amount: number
-- cardNumber: string
-- description?: string
-- return: { success: boolean, newBalance?: number, message?: string }
 
local res = exports["bablo-banking"]:AddMoneyByCard(accountId, 100, cardNumber, "Card Refund")

AddSocietyMoney

-- jobName: string - e.g. "police", "mechanic"
-- amount: number
-- description?: string
-- return: { success: boolean, newBalance?: number, message?: string }
 
local res = exports["bablo-banking"]:AddSocietyMoney("police", 5000, "Society Credit [police]")

RemoveSocietyMoney

-- jobName: string
-- amount: number
-- opts?: { description?: string, isAtm?: boolean, actorIdentifier?: string, cardNumber?: string, allowNegative?: boolean }
-- return: { success: boolean, newBalance?: number, message?: string }
 
local res = exports["bablo-banking"]:RemoveSocietyMoney("police", 1000, { description = "Society Purchase" })

AddSocietyMoneyForSource

-- source: number
-- amount: number
-- description?: string
-- return: { success: boolean, newBalance?: number, message?: string }
 
local res = exports["bablo-banking"]:AddSocietyMoneyForSource(source, 750, "Bonus Allocation")

RemoveSocietyMoneyForSource

-- source: number
-- amount: number
-- opts?: { description?: string, isAtm?: boolean, actorIdentifier?: string, cardNumber?: string, allowNegative?: boolean }
-- return: { success: boolean, newBalance?: number, message?: string }
 
local res = exports["bablo-banking"]:RemoveSocietyMoneyForSource(source, 300, { description = "Uniform Purchase" })

RemoveDefaultMoney

-- source: number
-- amount: number
-- opts?: { description?: string, isAtm?: boolean, actorIdentifier?: string, cardNumber?: string, allowNegative?: boolean }
-- return: { success: boolean, newBalance?: number, message?: string }
 
local res = exports["bablo-banking"]:RemoveDefaultMoney(source, 200, { description = "ATM Withdrawal" })

RemoveDefaultByCard

-- source: number
-- amount: number
-- cardNumber: string
-- description?: string
-- return: { success: boolean, newBalance?: number, message?: string }
 
local res = exports["bablo-banking"]:RemoveDefaultByCard(source, 50, cardNumber, "POS Purchase")

CreateTransaction

-- accountId: string            -- e.g. "B123456789" or "BPOLICE"
-- txnType: "deposit" | "withdraw" | "transfer" | string
-- text: string                 -- human-readable description
-- amount: number               -- SIGNED: see type rules below
-- cardNumber?: string          -- optional; '' if none
-- return: { success: boolean, transactionId?: number, message?: string }
 
local res = exports["bablo-banking"]:CreateTransaction("B123456789", "deposit", "Cash Deposit", 500)

CreateDefaultTransaction

-- sourceOrIdentifier: number | string  -- player source OR identifier (e.g., "AHU78510")
-- txnType: "deposit" | "withdraw" | "transfer" | string
-- text: string
-- amount: number                        -- SIGNED: see type rules above
-- cardNumber?: string                   -- optional; '' if none
-- return: { success: boolean, transactionId?: number, message?: string }
 
local res = exports["bablo-banking"]:CreateDefaultTransaction(source, "withdraw", "ATM Withdrawal", -200)

AddDefaultByCard

-- source: number
-- amount: number
-- cardNumber: string
-- description?: string
-- return: { success: boolean, newBalance?: number, message?: string }
 
local res = exports["bablo-banking"]:AddDefaultByCard(source, 50, cardNumber, "POS Refund")

GetAccountFromCard

-- cardNumber: string
-- return: string|nil - linked account number or nil
 
local accountId = exports["bablo-banking"]:GetAccountFromCard(cardNumber)

GetBalanceFromCard

-- cardNumber: string
-- return: number - current balance for the linked account/card
 
local balance = exports["bablo-banking"]:GetBalanceFromCard(cardNumber)

GetBalance

-- accountId: string
-- return: number - current balance for the account (uses framework bank if default)
 
local balance = exports["bablo-banking"]:GetBalance(accountId)

GetSocietyBalance

-- jobName: string - e.g. "BPOLICE"
-- return: number - current balance for the society account
 
local balance = exports["bablo-banking"]:GetSocietyBalance("BPOLICE")

IsCardFrozen

-- cardNumber: string
-- return: boolean|nil - true if frozen, false if active, nil if not found
 
local isFrozen = exports["bablo-banking"]:IsCardFrozen(cardNumber)

GetCreditLimitFromCard

-- cardNumber: string
-- return: number limit, number used - configured limit (0 = unlimited), amount used in last 24h
 
local limit, used = exports["bablo-banking"]:GetCreditLimitFromCard(cardNumber)