Skip to main content

Dependencies

Start required dependencies and any selected optional providers before wasabi_billing.

Required​

DependencyPurpose
ox_libManifest dependency; callbacks, locales, commands, keybinds, notifications, and module utilities
oxmysqlManifest dependency; SQL queries and automatic schema setup
A working framework bridgePersistent character identity, player money, jobs, permissions, and offline money handling

Built-in framework adapters:

  • ESX β€” es_extended; characters in users, identified by identifier, with accounts JSON.
  • QBCore β€” qb-core; characters in players, identified by citizenid. Offline money uses QBCore's offline-player API and save function.
  • QBOX β€” qbx_core; characters in players, identified by citizenid. Offline money uses QBOX's offline-player API and the player's save function. The QBCore billing bridge skips itself when QBOX is detected.
  • Custom β€” Implement bridge/framework/custom/server.lua. The supplied stub returns no working balances or money mutations and is not a ready-to-use framework-free mode.

Only ox_lib and oxmysql are declared as manifest dependencies; the framework is an operational requirement. A separate wasabi_bridge resource is not required.

Optional: society banking​

Config.BankingIntegration = 'auto' selects the first detected backend in this order:

  1. wasabi_banking
  2. qb-banking
  3. okokBanking
  4. Renewed-Banking
  5. qb-management fallback, using the qb-banking adapter
  6. ESX framework shared-account backend when es_extended is detected
  7. none
Backend valueSetup notes
wasabi_bankingConfigure existing society accounts. Optional statement mirroring uses Config.LogTransactionsToBanking.
qb-bankingCurrent society exports; older versions use qb-management. Ensure that management resource exists when using the older API.
okokBankingRequires its society balance/add/remove exports and the corresponding accounts.
Renewed-BankingRequires its society account balance/add/remove exports and the corresponding accounts.
frameworkESX only: requires working esx_society:getSociety and esx_addonaccount:getSharedAccount handlers. Start esx_society and esx_addonaccount and register the society/shared accounts.
noneNo society invoicing or settlement. Personal-to-personal invoicing still uses framework cash/bank.
warning

The backend is selected at startup, not on every payment. A forced backend that is absent only produces a warning; it is not automatically replaced with a working one. Restart billing after provider changes. On ESX without society resources, explicitly select none rather than relying on automatic detection.

Billing does not create society bank accounts. Confirm the issuing, receiving, and optional VAT societies all exist in your chosen provider.

Optional: physical invoice inventory​

Set Config.InvoiceItem = false to disable physical copies and omit inventory setup. Otherwise, register the item and start a supported inventory.

Automatic inventory priority is:

jaksam_inventory β†’ ox_inventory β†’ qb-inventory β†’ ps-inventory β†’ codem-inventory β†’ tgiann-inventory.

InventoryUsable-item integration
ox_inventoryDynamic server item export, by default wasabi_billing.invoice
jaksam_inventoryNative usable-item registration; normalizes ESX/QB metadata shapes
qb-inventory, ps-inventoryUses qb-core:GetCoreObject() and QBCore usable-item registration
codem-inventory, tgiann-inventoryItem add/remove adapters are included; the supplied usable-item registration requires a started qb-core export surface

Do not assume every inventory/framework combination is interchangeable. In particular, a QBOX installation using a QB-style adapter needs the QBCore-compatible export surface that adapter calls. See Installation for item definitions.

Optional: notifications and logging​

  • Notifications auto-select wasabi_notify, then wasabi_uikit, then lation_ui, then ox_lib. Set Config.NotificationSystem to force a supported provider; start that provider first.
  • Discord logging requires webhook URLs in the server configuration.
  • Config.Logger.type = 'ox' forwards to lib.logger; configure the logger provider through ox_lib.

UI assets​

The manifest serves ui/build/index.html. A release package must contain ui/build/ and its assets. Source distributions without the compiled directory need a Node.js/npm UI build before use; see Installation.