Exports
This section is aimed at developers. Basic scripting knowledge will help you get the most out of it.
Billing Exports
These exports let you interact with the billing system from any other resource.
Call them like this:
exports["crm-billing"]:functionName(args)getInvoiceById
Retrieve a single invoice by its ID.
local crm_invoice = exports["crm-billing"]:getInvoiceById(crm_id)Parameters
crm_id(number) – Invoice ID.
Returns
- (table | nil) – Invoice object if found, otherwise
nil.
Example
local crm_invoice = exports["crm-billing"]:getInvoiceById(12)
if crm_invoice then
print(("Invoice #%s amount: %s"):format(crm_invoice.crm_id, crm_invoice.crm_amount))
endgetPlayerInvoices
Retrieve all invoices for a player.
local crm_invoices = exports["crm-billing"]:getPlayerInvoices(crm_identifier)Parameters
crm_identifier(string) – Character identifier.
Returns
- (table | nil) – Table of player invoices if found, otherwise
nil.
Example
local crm_invoices = exports["crm-billing"]:getPlayerInvoices("RO7G58L8")
if crm_invoices then
for _, crm_invoice in pairs(crm_invoices) do
print(("Invoice #%s - %s$"):format(crm_invoice.crm_id, crm_invoice.crm_reason))
end
endgetSocietyInvoices
Retrieve all invoices for a society (job).
local crm_invoices = exports["crm-billing"]:getSocietyInvoices(crm_job)Parameters
crm_job(string) – Job name (e.g.,"police","mechanic").
Returns
- (table | nil) – Table of society invoices if found, otherwise
nil.
Example
local crm_invoices = exports["crm-billing"]:getSocietyInvoices("police")
if crm_invoices then
print(("Police department has %s invoices"):format(#crm_invoices))
endpayInvoice
Pay an invoice if possible.
local crm_success = exports["crm-billing"]:payInvoice(crm_id)Parameters
crm_id(number) – Invoice ID.
Returns
- (boolean) –
trueif paid successfully,falseotherwise.
Example
local crm_ok = exports["crm-billing"]:payInvoice(10)
if crm_ok then
print("Invoice paid successfully!")
else
print("Failed to pay invoice.")
endcancelInvoice
Cancel an invoice.
local crm_success = exports["crm-billing"]:cancelInvoice(crm_id)Parameters
crm_id(number) – Invoice ID.
Returns
- (boolean) –
trueif invoice was cancelled,falseif not found.
Example
if exports["crm-billing"]:cancelInvoice(5) then
print("Invoice cancelled.")
else
print("Invoice not found.")
endaddPersonalInvoice
Create a new personal invoice.
exports["crm-billing"]:addPersonalInvoice(crm_sender, crm_receiver, crm_amount, crm_reason, crm_cb)Parameters
crm_sender(number) – Sender server ID (must be online).crm_receiver(number) – Receiver server ID (must be online).crm_amount(number) – Invoice amount.crm_reason(string) – Short reason shown on the invoice.crm_cb(function, optional) – Callback that receives the created invoice.
Example
exports["crm-billing"]:addPersonalInvoice(
1, -- sender server id
2, -- receiver server id
150, -- amount
"Repair service", -- reason
function(crm_invoice)
print("Invoice created with ID:", crm_invoice.crm_id)
end
)addSocietyInvoice
Create a new society invoice.
local crm_invoice = exports["crm-billing"]:addSocietyInvoice(crm_data)Parameters
-
crm_data(table) – Invoice data. Example:{ crm_id = "police", -- society Name crm_label = "Police Department", -- society Label crm_receiver = 1, -- Target player server id crm_amount = 600, -- Invoice amount crm_reason = "Reckless driving", -- Invoice reason }
Returns
- (table | false) – Invoice object if created, otherwise
false.
Example
local crm_invoice = exports['crm-billing']:addSocietyInvoice({
crm_id = "police", -- society Name
crm_label = "Police Department", -- society Label
crm_receiver = 1, -- Target player server id
crm_amount = 600, -- Invoice amount
crm_reason = "Reckless driving", -- Invoice reason
})
if crm_invoice then
print("Invoice created with ID:", crm_invoice.crm_id)
endaddOfflineInvoice
Create a new offline invoice.
local crm_invoice = exports["crm-billing"]:addOfflineInvoice(crm_data)Parameters
-
crm_data(table) – Invoice data. Example:{ crm_type = "crm-society", -- "crm-personal" or "crm-society" crm_sender = {crm_id = "police", crm_label = "Police Department"}, crm_receiver = {crm_id = "Z4VNKWZ5", crm_label = "Dev Nezaik"}, crm_amount = 600, -- Invoice amount crm_reason = "Reckless driving", -- Invoice reason }
Returns
- (table | false) – Invoice object if created, otherwise
false.
Example
-- PERSONAL INVOICE
local crm_personal_invoice = exports['crm-billing']:addOfflineInvoice({
crm_type = "crm-personal",
crm_sender = {crm_id = "Z4VNKWZ5", crm_label = "Dev Nezaik"},
crm_receiver = {crm_id = "A6RFMX9", crm_label = "CoreM Dev"},
crm_reason = "Custom Reason",
crm_amount = 500,
})
if crm_personal_invoice then
print("Invoice created with ID:", crm_personal_invoice.crm_id)
end
-- SOCIETY INVOICE
local crm_society_invoice = exports['crm-billing']:addOfflineInvoice({
crm_type = "crm-society",
crm_sender = {crm_id = "ambulance", crm_label = "EMS"},
crm_receiver = {crm_id = "A6RFMX9", crm_label = "CoreM Dev"},
crm_reason = "Custom Reason",
crm_amount = 500,
})
if crm_society_invoice then
print("Invoice created with ID:", crm_society_invoice.crm_id)
end