FAQ
Which frameworks are supported?
JK Billing supports ESX, QBCore, QBox, and Standalone mode. Set Config.Framework.mode to 'auto' (default) for automatic detection, or force a specific framework.
My banking system is not supported, what do I do?
Edit sv_banking_public.lua (not encrypted) and set BankingPublic.System = 'custom'. Then implement BankingPublic.AddSocietyMoneyCustom() and BankingPublic.RemoveSocietyMoneyCustom() with your banking resource's exports.
How do I change the keybind to open invoices?
Change Config.Billing.openKey in config.lua. The default is 'F5'. You can also use the command /invoices or configure a custom alias with Config.Billing.openCommandAlias.
How does the society invoices tab work?
Society invoices show all invoices issued by your job. Visibility depends on grade: if requireHighGrade is enabled, only the top N grades (configured by topGradesCount or minGradeByJob) can see the society tab. You can also allow high-grade players to pay invoices from the society account.
What's the difference between society and personal invoices?
Society invoices: Issued on behalf of your job. Payment goes to the society bank account. Requires job permissions.
Personal invoices: Peer-to-peer between players. Payment goes directly to the issuer's bank. Any player can send one (if enabled).
Can I restrict which jobs can issue invoices?
Yes! Use Config.Billing.jobs.enabled to whitelist specific jobs, or use Config.Billing.jobs.disabled to blacklist specific jobs. If enabled is empty, all jobs are allowed except those in disabled.
How do I set up the product catalog?
Enable Config.Billing.productCatalog.enabled = true, then high-grade employees can manage categories and products from the billing UI. Use /jkplacetablet in-game to place a physical tablet that customers can interact with.
Product images are not showing, what should I check?
Make sure: 1) autoFetchItemImages is enabled in config, 2) your inventory resource is running and detected (check console for the detection message), 3) the product name matches the item name in your inventory. You can also provide custom image URLs.
How do I take in-game screenshots for products?
You need either screencapture or screenshot-basic resource running, and a Discord webhook configured in Config.Screenshot.discordWebhook. Then use the screenshot button in the product editor UI.
How do I enable Discord webhook logs?
Set your webhook URLs in Config.DiscordLogs.invoiceCreated and Config.DiscordLogs.invoicePaid. Leave empty to disable. You can use the same webhook for both or separate ones.
How does ActivityManager integration work?
When Config.ActivityManager.enabled = true and the activitymanager resource is running, invoices for guild-linked jobs are automatically synced to ActivityManager. ActivityManager can also create invoices in JK Billing via events.
Which database drivers are supported?
JK Billing automatically detects and supports oxmysql, mysql-async, and ghmattimysql. No configuration needed — it uses whichever is running.
Can players pay with both cash and bank?
Yes. The UI allows players to choose their payment source (bank, cash, or society funds if eligible). The default is set by Config.Billing.payFrom.
Can I delete a paid invoice?
No. Only unpaid invoices can be deleted, and only by the issuer who created them.
