GKSHOP
GKS Bank

Exports

Server exports for reading accounts and moving money with GKS Bank.

GKS Bank

Full banking for FiveM — ESX, QBCore, QBox and Standalone

Get it

All exports are server-side and use the gks-banking resource name.

Account exports

GetAccount

---@param ref number|string Account ID or IBAN
---@return table|nil account
local account = exports['gks-banking']:GetAccount(accountRef)

Returns id, iban, label, type, owner, ownerJob, balance, and status.

GetBalance

---@param ref number|string Account ID or IBAN
---@return integer|nil balance
local balance = exports['gks-banking']:GetBalance(accountRef)

Returns the account balance or nil when the account cannot be found.

GetAccountTransactions

---@param accountId number Account ID
---@param limit number|nil Maximum 100 records
---@return table|nil transactions
local transactions = exports['gks-banking']:GetAccountTransactions(accountId, 25)

GetPlayerAccounts

---@param identifier string Framework identifier
---@return table|nil accounts
local accounts = exports['gks-banking']:GetPlayerAccounts(identifier)

IsAccountFrozen

---@param accountId number Account ID
---@return boolean|nil frozen
---@return string|nil scope
local frozen, scope = exports['gks-banking']:IsAccountFrozen(accountId)

Money exports

Money exports return groupId, errorCode. A nil groupId means the operation failed.

AddMoney

---@param ref number|string Account ID or IBAN
---@param amount number Amount in whole currency units
---@param reason string|nil Transaction description
---@return string|nil groupId
---@return string|nil errorCode
local groupId, errorCode = exports['gks-banking']:AddMoney(
    accountRef,
    500,
    'Fishing reward'
)

RemoveMoney

---@param ref number|string Account ID or IBAN
---@param amount number Amount in whole currency units
---@param reason string|nil Transaction description
---@return string|nil groupId
---@return string|nil errorCode
local groupId, errorCode = exports['gks-banking']:RemoveMoney(
    accountRef,
    250,
    'Market purchase'
)

Transfer

Use Transfer for account-to-account movement. Do not use separate RemoveMoney and AddMoney calls for the same transfer.

---@param fromRef number|string Source account ID or IBAN
---@param toRef number|string Target account ID or IBAN
---@param amount number Amount in whole currency units
---@param reason string|nil Transaction description
---@return string|nil groupId
---@return string|nil errorCode
local groupId, errorCode = exports['gks-banking']:Transfer(
    senderRef,
    receiverRef,
    1000,
    'Vehicle sale'
)

CardPayment

---@param cardNumber string Card number
---@param amount number Amount in whole currency units
---@param opts table|nil Payment options, including PIN
---@return string|nil groupId
---@return string|nil errorCode
local groupId, errorCode = exports['gks-banking']:CardPayment(
    cardNumber,
    125,
    {
        pin = '1234',
        description = 'Fuel station',
        counterparty = '24/7 Gas Station',
    }
)

Card status, expiry, PIN, and card limits are checked by GKS Bank.

Police exports

---@param title string Case title
---@param targetIdentifier string|nil Target player identifier
---@param openedBy string|nil Officer identifier
---@return integer|nil caseId
local caseId = exports['gks-banking']:OpenInvestigation(
    'Suspected fraud',
    targetIdentifier,
    officerIdentifier
)

---@param status string|nil Filter by case status
---@param limit number|nil Maximum number of records
---@return table cases
local cases = exports['gks-banking']:GetInvestigations('open', 25)

Integration rules

  • Keep money operations on the server.
  • Check groupId before treating an operation as successful.
  • Use Transfer for linked account movement.
  • Use a meaningful reason; it appears in transaction history and logs.

On this page