JK Billing

FAQ

Quick answers to the most common questions about JK Billing.

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 /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 Config.Billing.jobs.disabled to blacklist. 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, 2) your inventory resource is running and detected (check the console 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 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. 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. 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 lets players 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.

Still stuck?

Open a ticket on our Discord and we'll help you out.