BoxBilling documentation¶
This is the documentation for Boxbilling. BoxBilling is an open-source billing, client and order management software which is designed to be easy to use for clients and sellers.
IMPORTANT NOTE!¶
This documentation was written for an earlier version of BoxBilling and much of the information may now be out of date!
The BoxBilling project is now open-source and is in active community development. This documentation will be updated to be relevant to the current version of the software as soon as possible.
Getting help¶
Having trouble? We’d like to help!
- Active BoxBilling development and support is on GitHub at https://github.com/boxbilling/boxbilling
- You are looking for main project website? It is http://www.boxbilling.com (also currently outdated)
- Try the Frequently Asked Questions - it’s got answers to many common questions
- Still can not find what you’re looking for? Try Search Page
Contents¶
Introduction¶
BoxBilling is a free billing & client management software
- Supports automated billing, invoicing, product provisioning
- Automatically create hosting accounts as soon as the payment is received, suspend when account becomes overdue, terminate when a specified amount of time passes.
- Enable multiple currencies, accept one time and recurring payments
- BoxBilling is perfectly created to sell shared and reseller hosting accounts, software licenses and downloadable products or any recurrent billing product.
- Helpdesk, knowledge base, news and announcements system.
- Intuitive Web 2.0 AJAX powered interface with 100% usability score!
- Client area can be translated in to any language.
Automation¶
- Product creation for hosting accounts, domains, licenses, and downloadable products can be done automatically after the successful payment is received or even with no payment received.
- Product creation can be also executed after the administrator approval.
- Order can be automatically suspended is no payment was received for X days and unsuspended as soon the late payment will be collected.
- Client area password can be automatically reset without the by the client itself.
- Control panel password can be reset by the client itself without need to logon on to control panel (depends on server manager used). Great if client forgets the hosting account control panel password.
- Payment reminders can be configured to be sent until the order will be terminated or late payment will be collected.
- A custom event hook script can be executed on order activation / suspension / reactivation / cancellation so you can setup custom products easily and interrupt workflow as you need
Billing¶
- Automated invoicing allows billing your customers easily.
- You can add/edit/delete any products and prices to any invoice.
- You can setup any custom one time payments for your clients.
- You can create custom invoices for your clients with.
- Automated payment processing is available for all supported gateways. All you need is to configure payment gateway and BoxBilling will do the rest.
- You can integrate any unsupported payment gateway by inserting your own HTML or Javascript code at the payment page.
Products¶
- Ability to sell any kind of e-products, not just hosting, domains, servers, licensing or downloadable products.
- Ability to give product name, description, image.
- Setup one time payments.
- Setup recurring payments to be billed: Monthly, quarterly, semiannually, annually, biannually and triennially.
- Ability to setup products that do not require payments (free) such as free hosting free downloads.
- Domains can be chosen to be registered for free with any type or product. You can setup domain pricing for transfers, registrations, renewals.
- You can choose how product is activated: as soon order is places, after the successful payment, or manually by the administrator.
- Ability to setup custom fields to collect additional information from the client during the order placement process.
- Developer Friendly: Hook into BoxBilling events with your php script
- Modify email templates being sent during order status changes. You can setup custom emails for specific product in any product group.
Hosting Products¶
- Easy server setup: provide IP, server type, username / password combination and everything else such as account creation will be done automatically.
- Server access roles: BoxBilling will work perfectly no matter if you have root access or just a reseller account.
- Disk space, bandwidth, additional features and function can be fully customized for each hosting plan.
- Full integration and automation is available with BoxBilling extensions, such as cPanel, Plesk, DirectAdmin and others.
- Even if your hosting control panel is not supported you can use BoxBilling to track your orders and clients, just processes account creations / terminations on your server side manually.
Licensing¶
- License your own applications.
- Validate licenses by calling back to your BoxBilling installation. BoxBilling return is your customer license is still active or is there any problem.
- Distribute your software at the same time (you don’t need to upload your downloadable products anywhere else).
- You can license as many different applications as you want. There are no limits on either the number of clients you can have or licenses you can issue.
- Each license can be attached to specific IPs, domain names, email addresses, software installation paths. These details can be saved when application first calls BoxBilling or your client can specify these values during signup. If application will later call from a different IP, domain or email system will return “license invalid” error. You can modify any of these values later, or allow dynamic IPs, domains, installation paths etc. to work for the same license key.
- A very simple API for license validation is provided and can be integrated even by newbie.
- A custom license generation script can be used to generate license key. Gives you ability to validate license using your algorithm instead of callbacking licensing server.
Downloadable products¶
- Upload as much products as you want.
- Products can be uploaded to the unreadable directory on the server so only authorized and paid user can download it.
Custom Products¶
- You can setup any type of products not just web hosting.
- Unique order activation / suspension / reactivation / termination emails can send for any product.
- System can execute any custom PHP code on order activation, suspension, reactivation, and cancelation by using event listeners.
Taxation¶
- Setup tax rules depending on country and state.
- Give your tax rule a name, to be displayed for client.
- Even custom invoice items can be chosen to be taxed or not.
Invoicing¶
- Use BoxBilling just for invoices.
- Perfect for companies to issue custom invoices, notify client and collect money.
- Create custom invoice event without any product setup. You decide what you bill for.
Support¶
- Integrated helpdesk allows you to communicate with clients easily.
- Multiple helpdesk departments are supported so requests can be distributed through along your staff.
- Knowledge base suggestions are automatically displayed for your customers so they can get some question answered even without need to open a ticket.
- Predefined replies can be inserted by the click of mouse and supports system, order and client details variable parsing. That saves a lot time for you and allows sending personalized predefined answers.
- News & Announcements system allows you to inform your clients about what is going at the moment and notify about upcoming events.
- Knowledge base allows defining the answers for the most frequently asked questions.
Customization¶
- Custom client area themes can be easily integrated into BoxBilling.
- Admin and client views and themes can be also fully customized by editing template files.
- Languages can be fully modified; we are using power of crowdsourcing so that BoxBilling would be available in multiple languages.
Installation¶
This guide will help you install BoxBilling on your server.
System requirements¶
Environment on which you are going to install BoxBilling should meet these prerequisites:
Linux OS
PHP >=5.3.3 or later with extensions
- PDO MySQL
- curl
- mbstring
- zlib
- ftp
- gettext
- mcrypt
MySQL Version 4.1.* or later
Apache mod_rewrite module enabled, for SEO urls only
It is recommended to install BoxBilling on VPS server with APC cache enabled for best performance and security reasons.
Installation guide¶
To start BoxBilling installation download latest version from download page
After download is complete extract all files on your computer and upload them via FTP to your server.
Using web installer¶
Web installer is a convenient way to install BoxBilling and it should be used in most cases. This guide is based assuming that you have uploaded all files to subfolder billing
Access installation setup via the browser, by opening www.yourdomain.com/billing/install
- You will need to tick “I agree to the license” to continue the installation.
- In the next screen a “Pre-Installation check” will recheck if the system (hosting account) does meet the minimum requirements for installation. Most often you will need to login to your account via a file manager (or FTP manager) and set the required permissions (chmod 777) on these files and folders.
- In the next step you will need to setup access to the MySQL database. Enter an existing database and user (with all permissions granted). If you have any trouble setting up a MySQL database and user, please consult your hosting provider. For example, if you are hosting on cPanel powered hosting, you can setup database and users via the cPanel > MySQL area.
- Enter the e-mail and credentials for the administrator account. A greeting letter will be sent to the administrator e-mail account upon successful installation of BoxBilling.
- Even though BoxBilling is free it requires to obtain license key in order to work.
- Finish installation with confirming that all the information is correct.
After installation is complete¶
- Remove www.yourdomain.com/billing/install directory completely
- Change billing/bb-config.php file permissions to 644 if necessary
- Setup cron job to run every five minutes.
*/5 * * * * php install/path/bb-cron.php
Installation is complete and you can visit admin area at http://www.yourdomain.com/bb-admin.php
Changing application timezone¶
By default BoxBilling installs with “America/New_York” timezone. To change this open bb-config.php file and edit line with preferred timezone.
'timezone' => 'UTC',
All available timezones are listed at http://php.net/manual/en/timezones.php
Enabling search engine friendly URL’s¶
When SEO urls are not enabled all BoxBilling urls will have index.php prefix. To enable search engine friendly urls follows these steps:
- Rename htaccess.txt (file which comes with installation) to .htaccess
- Open bb-config.php file and set BB_SEF_URLS to true
'sef_urls' => true,
Note
SEO urls will also be enabled for admin area. Old links will stop working.
Debugging and error logging¶
Enable BoxBilling debug mode in bb-config.php file:
'debug' => true,
This will show errors on your site and provides more debugging information. If you set BB_DEBUG to FALSE it will still log all errors log file. It can be accessed at bb-data/log/php_error.log
nginx host configuration¶
location ~ bb-admin\.php {
if (!-e $request_filename) {
rewrite ^(.+)$ /bb-admin.php?$1 last;
}
}
location / {
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?$1 last;
}
}
Directory structure explanation¶
- bb-data
- Directory where BoxBilling cache, logs and uploaded data is stored
- bb-library
- Directory for system files and payment/registrar adapters
- bb-locale
- Directory for interface translations
- bb-modules
- Directory for modules/extensions
- bb-themes
- Directory for client and admin area themes
- install
- BoxBilling web installer. Can be safely removed after installation
- index.php
- Main BoxBilling file where all requests are gathered
Configure¶
This guide will help you to get started with BoxBilling. To configure required settings in order to successfully use BoxBilling.
All configurations are made in BoxBillings admin area.
Setup your company information¶
Company information appears in client area, emails, invoices.
To change company information go to Configuration > General Settings section
You will be able to change your company details and your logo.
Decide what is your default currency¶
BoxBilling is multi-currency software. It can handle orders and invoices in any defined currency.
It is very important to setup default currency before your first sale. Your income is going to be calculated in this currency. Changing default currency when you have active orders is not recommended as it may lead to unexpected results.
Currencies are managed at Configuration > Currencies section
BoxBilling default currency is USD, but it can be changed to any other.
More about currency management at How currency logic works on BoxBilling section.
Configure payment gateways¶
Configuring payment gateways is an essential part of your business. Clients will not be able to send you money if you have not configured payment gateways properly.
Gateways are configured at Configuration > Payment gateways section.
Enabled payment gateways are listed in the table. Click on payment gateway edit button and configuration window will appear. Each gateway has its own configuration parameters.
You can change the name of payment method instead of using default one. Some payment gateways do not accept all currencies, so you have to define, which currencies are acceptable. If invoice currency do not match assigned currency, gateway will not be offered as payment method.
Only enabled gateways will be offered for clients to pay for invoice.
BoxBilling supports these payment gateways:
- Custom
- PayPal
- Authorize.net
- 2Checkout
- WebToPay
- AlertPay
- and more.
Note
All payment gateways are open source, so you can change or fix them for your needs. BoxBilling is constantly integrating new payment gateways. Submit support ticket to request new payment gateway integration.
To create your own payment gateway see Payment gateway section.
Configuring Custom Payment gateway¶
Custom payment gateway is a way to provide your clients custom information on how they can send you money.
This is useful if none of the provided payment gateways suits your needs.
In order to setup custom payment gateways, please select “Custom” from the list, and a new Pop-up window will be displayed.
You will need to paste full HTML code in the pop up window. You can use {{ invoice. }}* tags inside this html code. This code will be displayed when client chooses to pay for invoice with Custom payment gateway.
Note
Test mode is used for administrators to test if gateway is functioning as it is expected without need to spend real money. Not all payment gateways supports this feature.
Email templates¶
E-mail templates can be edited via the Configuration > Email templates.
All templated e-mails are listed in the tree view box, and you can select any of them by clicking on it.
In order to enable/disable email template go to Template Settings tab in email template editing page and toggle Enabled parameter.
Each e-mail template has a Subject and Content that you can edit.
Please notice that all dynamic fields are conveniently listed for you in Variables tab, sorted by their type. Feel free to use any of them in your template.
When you have made your changes to the e-mail template, do not forget to save it by clicking Update at the bottom of page. You can also click on Preview button which will render template and show how it will look for client.
Staff members¶
Staff management is one of the most useful modules of BoxBilling. Even though it looks simple it is really powerful.
You can set permissions to modules for each particular staff member and assign them to group for easier management.
Add new Staff / Admin group¶
Firstly, you will need to setup a new staff group via Add new staff group. Just enter a new group name and press Create.
Add new Staff / Administrator¶
You can create new administration / support members via the Configuration > Manage staff area.
Products management¶
Products are what you will be offering for your clients. Main page for products management Configuration -> Products section.
Adding a new category¶
The category is a simple way to organize your products.
Each product belongs to category. You will need to create category before creating new product. Go to Configuration > Products -> New category tab to create new category. Provide title and description and click on Create.
Removing a category¶
To remove product category go to Configuration > Products > Manage categories. Select category which you would like to remove and click on delete icon.
Note
Removing category will also remove all products within.
Adding a new product¶
You can add a new product by pressing the Add new product to this category.
Product types¶
- License
- You can sell software licenses using BoxBilling. Provide your own algorithm to generate license key via simple plugin. By default license product has these options: license prefix, the length of the license code and which fields should be validated (IP, domain, version or path). License can be validated inside software by decoding license key or by using licensing server. BoxBilling has its own licensing server so all callbacks from software can be made to validate licenses. You can also provide custom validation rules in licensing plugins.
- Downloadable product
- It should be used when you need to provide a file for your clients, and wish to charge for the ability to download it. The setup process is similar to other products, - you will see one new tab where you will be able to upload the file that will be offered after purchase.
- Domain product
- Offer domain registrations, renewals, transfers with BoxBilling. Domain pricing can be set for every tld separately. Configure which domain can be transferred, registered. Supports major domain registrars by default. More about at Selling domains.
- Hosting
- Offering hosting services with BoxBilling is really easy. Setup server on which hosting accounts are going to be created, create hosting plan for your server manager, setup product prices. More about at Selling hosting services.
- Custom product
- It is a general product you would be offering via your website. You can set a title, description, product unit (whether the price is for the product, service or a period of time that the product will be used). Each product has a payment option (free, one time payment and subscription payment) and activation status (how it will be activated). Custom product orders can be controlled via custom event hooks. For example:
<?php
/**
* Example product plugin usage
*/
class Hook_Custom
{
public static function onAfterOrderActivate(Box_Event $event)
{
$order = $event->getSubject();
$plugin = $order->Product->plugin;
if($plugin == 'MyPlugin') {
// init plugin class
// do something with plugin on order activation action
}
}
public static function onAfterOrderRenew(Box_Event $event)
{
}
public static function onAfterOrderSuspend(Box_Event $event)
{
}
public static function onAfterOrderUnsuspend(Box_Event $event)
{
}
public static function onAfterOrderCancel(Box_Event $event)
{
}
public static function onAfterOrderUncancel(Box_Event $event)
{
}
public static function onAfterOrderDelete(Box_Event $event)
{
}
}
Product pricing¶
There are 3 types of payment options available:
- Free
- The product is free and there is no billing involved. No invoice is generated if ordering free product only.
- One time
- Payment is submitted once for the product and no other invoice is going to be issued automatically.
- Recurring payment
- Recurring payments are used to bill clients periodically. Monthly, Every 3 months, Every 6 months, Every year, Every 2 years, Every 3 years
Removing a product¶
You can remove products by clicking delete icon in the products list.
Product Addons¶
All existing product add-ons are listed in the section Configuration > Product Addons
To create new addon open Configuration > Product Addons > Create new tab.
In the first tab (General), you will need to select a title and description for your add-on. Then, as you move on to the second tab (Payment), you will be able to set the payment options for the selected add-on.
After you have filled in the fields and selected the needed options, press Create and it will be added to your Product Addons section.
Note
When you have created product add-ons, they will be visible and available for each product you create via the Addons tab.
Product Promotions¶
To manage product promotions go to Admin area > Configuration > Product Promotions
Promotion can be one of these types:
- Fixed amount discount (e.g. $10 Off)
- Percentage discount (e.g. 15% Off)
After you have setup promotion code your clients will be able to use this code at checkout process.
How to create a new promotion¶
- Start by going to Configuration > Product Promotions
- Click on the Create New tab
- You must enter a promotion code - this is the code that customers will need to enter on the order form to receive the discount
- You can then choose the discount type Fixed amount discount, Percentage discount, Free trial
- Enter amount of $ or % or days according to discount type
- Choose maximum number of uses. Use 0 for unlimited number of uses.
- All other options are additional, you can now click on Create
Additional settings¶
- By selecting products at the Products tab it is possible to limit promo to specific products/services. Promo code will not be applied if selected product is not in the shopping cart.
- It is possible when creating a promotion to specify an expiry date. Select Date tab and if you want the promo code to become valid for the specific time period define dates in select boxes.
- You can also enable or disable product promotion by setting Active to Yes/No
- If you do not want the same user to use this promotion code more than once select User can use no more than one time to No
Selling hosting services¶
Hosting servers¶
Servers are used to create shared hosting and reseller accounts. To manage your servers go to Configuration -> Servers
Supported server managers¶
- cPanel/Whm
Note
To create your own server manager see Server manager section.
Adding new Server¶
Server must be configured in BoxBilling to sell shared or reseller hosting accounts.
Follow these steps to create new server:
- Go to Configuration -> Hosting plans and servers -> New server tab
Servers has these conguration parameters:
- Name
- Give name to your server for your own reference.
- Hostname
- Your server hostname. Used to connect and generate link to control panel. Can also be IP address if does not have assigned hostname.
- IP Address
- Your server ip address, ie: 213.129.14.55 This is the most important server setting. API uses this IP to connect to server manager.
- Assigned IP Addresses:
- List the IP Addresses assigned to the server here, t hese are used to check which domains in BoxBilling are pointing to your server.
- Server access
- If you are reseller on server choose I am reseller on this server and cannot setup other reseller accounts option. Choose this option if you are not sure when you are reseller or not. Choose I have root access on this server and can setup other reseller accounts when you are root on server.
- Enable/Disable
- Disabled servers will not be listed in drop down menus.
- Nameservers
- Primary/Secondary/Tertiary/Quaternary Nameservers - these are the nameservers for this server, eg. ns1.yourdomain.com and ns2.yourdomain.com - used in welcome email and when registering domains
- Server Manager
- Type of server manager installed on server.
- Server Manager username
- Username to connect to server manager API. Usually name you use to connect to your control panel. (root/reseller)
- Server Manager password
- Password for user to connect to server manager API. Leave this field blank for cPanel/Whm manager.
- Access Hash
- Used only with cPanel/Whm manager instead of password. This is also known as “Remote access key” you can find it at WHM.
How to configure Kloxo server¶
- API port
- Port of connection to your API
- Login
- Username of Kloxo API
- Password
- Password of Kloxo API
After server configuration is complete and you can connect to server make sure you meet these requirements:
Resource plan and DNS template on Kloxo server are the same as Boxbilling product (change spaces in product name to underscore). Boxbilling can’t edit or create new resource plans and DNS templates in Kloxo, so all limits and nameservers must be set in Kloxo.
- To setup Resource plan go to your Kloxo server -> Administration -> Resource Plans -> Add Resource Plan.
- To setup DNS template go to your Kloxo server -> Resources -> DNS Templates -> Add DNS Template.
Selling domains¶
Configure domain¶
Before you can offer domains registration for your clients, you will need to setup and attach a domain registrar to top level domain.
You can either use a Email one (the domains are not setup via BoxBilling on such a case, and you will need to register them at your registrar manually), or use a supported domain registrar.
Currently we support these domain registrars:
- ResellerClub
To create your own domain registrar see Domain registrar section.
Domain pricing¶
All domain management and setup can be done via Configuration > Domain registration page under your Administration area.
After you have setup your domain registrar, you will be able to setup new TLD’s (top level domains) via Configuration > Domain registration > New TLD tab.
You should set domain prices for actions of registration, renewal and transfer. Your domain renewal price most of the time is the same as the registration price and domain transfer fee is by default 0 (unless you wish to charge for this action).
The Operations list shows the allowed operations that the client will be able to perform on the domain, so feel free to untick any operations you wish to reserve for the administrators only.
Domain registrars¶
ResellerClub¶
Configuration¶
- Login to the ResellerClub control panel (the url will be in the email you received when you signed up with them) and then go to Settings > Personal Information > Primary Profile - the value you need to note is the Reseller ID.
- Still in the ResellerClub control panel, go to Settings -> API and enter the IP address of the server where BoxBilling is installed to authorize it for API access
- Now, login to your BoxBilling Administration Area Go to Configuration > Domain Registration > Registrars > ResellerClub Enter the Reseller ID noted above and password you set when you signed up.
- Then click Update
- And that’s it, BoxBilling will now be able to communicate with your ResellerClub account to automate domain registration & management for your clients.
Common issues¶
An unexpected error has occurred¶
This usually indicates that the login details are missing, please ensure these have been entered under Configuration > Domain registration > Registrars > ResellerClub.
CURL Error: 7 - couldn’t connect to host¶
This error message indicates that you haven’t yet allowed your servers IP to access your ResellerClub account via the API. have to do this in the Settings > API section of the LogicBoxes control panel before you can use the integration.
The IP you need to authorize is typically the main shared IP of the server, usually most easily found from the IP your BoxBilling license is assigned to, but if you’re unsure or neither of those IPs work, then ResellerClub can assist and advise you of the IP they see your connection tests as coming from via a support ticket.
Selling licenses¶
BoxBilling provides an easy way to sell licenses for your software. Your software can make callbacks to BoxBillings licensing server for validation.
License product¶
License product configuration requires these settings to be entered:
- Plugin
- License plugin class name. Provide your own plugin to control how license keys are generated and validated. More information at License plugin.
- Prefix
- License prefix that will be used when generating key. Leave blank to ignore this option.
- Length
- License key length. Default license plugin will generate selected length license key and add prefix.
- Validate IP:
- Select if you want license key to be validate by callback IP
- Validate Hostname:
- Select if you want license key to be validate by callback hostname
- Validate Version:
- Select if you want license key to be validate by callback version. Callback must provide currently installed version for licensing server.
- Validate Path:
- Select if you want license key to be validate by callback IP Callback must provide current installation path for licensing server.
License plugin¶
BoxBilling gives you ability to provide your own license generation script.
- License plugin is PHP class PluginName in BoxModServicelicensePlugin namespace with one method generate
- License plugins are located at bb-modules/Servicelicense/Plugin folder
- Default plugin at bb-modules/Servicelicense/Plugin/Simple.php
Selling SolusVM VPS¶
BoxBilling enables you to sell virtual private servers using SolusVM API
Enable SolusVM Extension¶
BoxBilling ships with solusVM extension by default. It can be enabled in Extensions > Overview page.

Once you have enabled extension you will be redirected to SolusVM configuration page.
Configuration page is always accessible at BoxBilling admin area > Configuration > SolusVM management

SolusVM configuration¶
Go to BoxBilling admin area > Configuration > SolusVM management menu

To create an API user in SolusVM click Configuration >> API Access from the top menu then select Add API User.
When BoxBilling is able to connect to your SolusVM master server you can start configuring BoxBilling products.
Disable IP checking after API user is created if you are not sure what IP address will be used to connect to SolusVM master server.
Currency¶
How currency logic works on BoxBilling¶
- Customers select a main currency
- Product pricing is displayed according to main currency
- Customers receive invoices AND statements in their main currency
- BoxBilling receives payments in the invoice currency (via the appropriate Gateway)
- Money from payments is deposited into the appropriate currency account with your bank
Nothing is converted by BoxBilling or the payment processor - that’s administrators job to sort this out using payment gateways
This does mean administrators have to create multiple bank accounts (one for each currency) and sign up for multiple payment gateways and possibly means more work pricing products. But it gives us full control over exchange rate fluctuations, gives a better experience for customers and is cheaper for them to purchase as they aren’t having to pay currency conversion rates on credit card payments.
It is administrators responsibility to activate payment gateways which supports appropriate currencies.
Every payment gateway can be configured what currencies it accepts. If invoice currency is not accepted by payment gateway then this gateway is not shown as an option for payment.
Customers currency¶
- Customers currency is set after first order. Once it is set it can not be changed.
- Customers can create new profile for account management in other currency.
Adding a new currency¶
To add new currency go to Configuration > Payments > Currencies tab. You can add a new currency by clicking Add new currency. A pop-up window will be displayed where you will be able to select currency symbol (from the drop down box), display format and set the currency rate manually.
Automated currency rate update¶
If you have trouble tracking the currency rate, or if you have multiple currencies in your panel, you can use the automatic currency rate update setting. It will update the currency rate automatically for all listed currencies. Just press Update currency rates button and it will be done for you.
Note
Currency rates are taken form google.com
Clients management¶
All client management is done via the Administration area > Clients section.
Add a new client¶
You can add new clients manually via New Client tab (you will need to enter the client details by hand on such a case), or your clients are automatically created if you add a Client registration form on your website. The latter is provided by the BoxBilling software automatically and can be found under yourdomain.com/billing/ (if you installed BoxBilling to this folder).
Check existing clients¶
You can check existing clients by pressing Clients > Overview, where your latest clients are listed. If you already have a lot of clients and need to find a specific one, you can perform a search via Clients > View (search) clients tab.
Client details can be checked and edited by clicking on the Client line listed on the Overview or View (search) clients tab.
Editing client details¶
In the client Details page, you can perform these actions:
- Edit personal information via the Personal tab.
- Add funds to your client balance via the Balance tab.
- Generate and check Client invoices via the Invoices tab.
- Check the accounts the client has under the Accounts tab (same goes for other products a client has ordered via Domains Downloads and Licenses tabs).
- The Support tab is used to check the tickets this client has submitted to your help desk (you can quickly open a ticket and send a reply via clicking on it in the ticket list). Also you can generate a new ticket for the client by pressing Add new ticket.
- You can conveniently check the IP / Country this client has logged in from via the History tab. This information is useful when a client believes that his account was overtaken by malicious user and you need to verify this. Most of the time a client logs in from the same country / IP, however if the account is overtaken you will see a different IP and country in the History tab.
- The Emails tab shows all the e-mails that were sent to the client. If a client claims that he has not received some of the e-mails shown in the list you can click the e-mail in question and verify when it was sent in the pop up window. Also notice the Resend button which can be used to resend the e-mail to the client inbox.
Removing a client¶
Go to “Clients -> Overview”, click on the line with client name. Client details will appear and on the bottom of the page there is a link called “Delete client”.
Invoicing¶
Invoices are managed at Admin area > Invoices section
Checking current invoices¶
The overview page shows all the recently generated invoices sorted by date. Clicking on invoice line will open invoice details.
Changing invoice status¶
It is possible that you have agreed to pay invoice in cash or somehow else and you need to mark the invoice as paid. To change invoice status from pending payment to paid manually, go to invoice details page and click on “Mark as paid”.
Find a specific invoice¶
If you need to find a specific invoice, you can use the Invoices > Advanced search page. You can search by invoice ID, date, client name and invoice status.
Invoice details¶
When you click on an invoice you will see extended information about including invoice date, client the invoice was generated to, and the list of transactions involved.
Issuing a custom invoice¶
You can issue custom invoice for a client if he needs something specific. You can do this by navigating to Clients -> Overview, click on the client you want to issue invoice for, press Invoices tab and then click on Issue custom invoice.
Transactions¶
You can check the transactions via the Invoices > Transactions
This is the list of actual transactions attached to your invoices. The amount of transactions do not necessarily match the amount of invoices, as some of them are made on subscription, and some invoices are generated without any payment required.
Transactions are logged when instant payment notification from payment gateway is received.
Refunds automation¶
BoxBilling can handle refunds in 2 different ways. After refund transaction from payment gateway is received BoxBilling can perform one of these tasks:
- Generate new invoice with negative refund amount continuing paid invoice numbering. Refund amount must match refundable invoice amount.
- Generate credit note (credit memorandum) with refundable amount referencing the original invoice. Credit note does not continue paid invoices numbering. Has unique numbering series and new sequence.
- Do nothing. Leaving ability for administrator to manage refund manually.
Note
If you want to refund custom amount you can create custom invoice with negative amount.
Invoice statuses¶
Invoices has these statuses:
- paid - Invoice is paid. All paid invoices has a numbering sequence.
- unpaid - Proforma invoice.
- refunded - refund invoice.
- canceled - use canceled status to imitate invoice as deleted, but keep record in database. Useful if you need to keep invoice order intact.
Support center¶
Help desks management¶
Help desks are easy way to organize support tickets you are receiving from clients. It is very common to have help desks such as General, Sales.
When you receive support ticket you can forward ticket to other help desk team. In this way it is easier for support staff to manage tickets faster and be responsible for issues they are dedicated to.
To manage help desk go to section Configuration > Help Desks
Manage select help desk by clicking on it. You can define hours of ticket will stay in On Hold status before auto-closing it.
Clients tickets¶
The Support center can be accessed via administration area area by clicking the Support menu option on the left menu.
Support area has these options:
The overview shows the most recent list of tickets created / opened / answered. You can conveniently open a ticket by clicking on subject or edit button.
When a ticket is opened, you will see the conversation history opened by default. Additional information can be accessed via the Ticket notes, Client and Client tickets tabs.
You can reply to a ticket by scrolling down to the bottom of the ticket history, where you will see a text box automatically filled with your default predefined message.
You can select any other predefined message that you wish to send to your client via the Predefined replies list box.
View (search) tickets¶
It can be used to find or filter a specific support tickets by Ticket ID, Client, Subject, Status, Help desk department, or message.
You can either enter a full search query or part of it, for example if you search by a Subject paym, tickets with subject payment, paymore, can i make a payment, etc. would be filtered out.
New Ticket¶
A new ticket can be sent via admin area for any client (you will need to enter a client ID).
Here you will see a text box automatically filled with your default predefined message which you can edit to make your ticket.
You can select any other predefined message that you wish to send to your client via the Predefined replies list box.
There is also an attachment box if you need to attach a file with your ticket.
If you need to send a ticket for a specific client, but you do not remember the client ID, you can browse for the client via the Clients menu option on the left menu of the BoxBilling Administration area.
Public Tickets¶
Public tickets are tickets that have been received from contact form. Your site visitors do not to have to become clients in order to contact your support team.
Administrators can submit public tickets to given email address for different purposes. All these tickets are tracked for later analysis.
Predefined replies¶
Predefined replies are useful and can speed up your support response time greatly. If you notice that you have several similar replies that you are sending out to your customers, you can add them to the predefined replies area.
To create a predefined reply, you will need to select (or add) the corresponding category to add it to.
Then you will need to press Create a reply in this category.
A new box will be shown, where you will be able to input a title and message body of your predefined reply.
All predefined replies can be accessed when creating or replying to a ticket, via the Predefined replies list box.
Knowledge base¶
You can add all of the most frequent requests / questions about your services / products / etc. to the knowledge base. All clients should be notified to check for an answer in the Knowledge base prior to contacting your support via the Ticket system, as this reduces the work load for your support staff.
Firstly, you will need to setup a category for your Knowledge base articles.
When you have created a category, please select it (from the tree list on the left pane), and you will be able to add a new ticket by clicking Create an Article in this category. A new box will be shown, where you will be able to input a title and message body of your knowledge base article.
Your clients will be able to access the knowledge base via their Client area > Knowledge base on the main left menu.
Forum¶
Forum is a place for your clients to discuss topics related to services you are providing.
To create new forum go to Support > Forum. Simple form with 2 input field will be displayed. To create Forum only title is required. Add description to explain what this forum is about.
Note
Only administrators can create new forums.
Forum topic¶
Topics are created by registered clients. Topic belongs to forum. It can be moved from one forum to another via administration area. Topics can be locked. Clients will not be able to post new messages into locked topics, but topic will be visible.
Forum topic message¶
Topic messages uses markdown syntax. Html rendering is disabled. Posting new messages are allowed only for registered clients. Topic must not be locked in order to post new message in it.
# Header 1 #
## Header 2 ##
### Header 3 ### (Hashes on right are optional)
#### Header 4 ####
##### Header 5 #####
This is a paragraph, which is text surrounded by whitespace.
Paragraphs can be on one line (or many), and can drone on for
hours.
[Reference style links][1] and [inline links](http://example.com)
[1]: http://example.com "Title is optional"
Inline markup like _italics_, **bold**, and `code()`.

> Blockquotes are like quoted text in email replies
>> And, they can be nested
code blocks are for preformatted
text and must be indented with four spaces
* Bullet lists are easy too
* You can
* even
* nest them
- Another one
+ Another one
Extensions¶
BoxBilling is designed to be extended easily.
Event listener - Hook¶
Event listeners are useful and easy way to extend BoxBilling. You might want to send yourself some notification whenever an invoice is issued or payment is received. Event listeners is the way you want to do that.
Every event listener is a simple PHP class with public static methods, where method name is event name.
Every event method receives parameter Box_Event $event which contains data related to that event.
You can create your own event listener and place it in directory /bb-library/Hook directory
List of all available event hooks see Event Hooks section.
Example BoxBilling event listener class
<?php
class Hook_Example
{
public static function onBeforeClientSignUp(Box_Event $event)
{
$di = $event->getDi(); //Retrieve DI (Dependency Injector)
$db = $di['db']; //Get any object from DI (in this case it is database object)
$params = $event->getParameters(); //Getting parameters which were attached to this event
$disable_registrations = TRUE;
if($disable_registrations) {
throw new Exception('New registrations are currently disabled', 512);
}
}
}
Server manager¶
You can create your own server manager extension and put in /bb-library/Server/Manager directory
Following example should be enough to understand the concept of server manager adapter class. You create Server_Manager_Custom class
<?php
class Server_Manager_Custom extends Server_Manager
{
public static function getForm()
{
return array(
'label' => 'Custom Server Manager',
);
}
public function getLoginUrl()
{
return 'http://www.google.com?q=cpanel';
}
public function getResellerLoginUrl()
{
return 'http://www.google.com?q=whm';
}
public function testConnection()
{
return TRUE;
}
public function synchronizeAccount(Server_Account $a)
{
$this->getLog()->info('Synchronizing account with server '.$a->getUsername());
return $a;
}
public function createAccount(Server_Account $a)
{
if($a->getReseller()) {
$this->getLog()->info('Creating reseller hosting account');
} else {
$this->getLog()->info('Creating shared hosting account');
}
}
public function suspendAccount(Server_Account $a)
{
if($a->getReseller()) {
$this->getLog()->info('Suspending reseller hosting account');
} else {
$this->getLog()->info('Suspending shared hosting account');
}
}
public function unsuspendAccount(Server_Account $a)
{
if($a->getReseller()) {
$this->getLog()->info('Unsuspending reseller hosting account');
} else {
$this->getLog()->info('Unsuspending shared hosting account');
}
}
public function cancelAccount(Server_Account $a)
{
if($a->getReseller()) {
$this->getLog()->info('Canceling reseller hosting account');
} else {
$this->getLog()->info('Canceling shared hosting account');
}
}
public function changeAccountPackage(Server_Account $a, Server_Package $p)
{
if($a->getReseller()) {
$this->getLog()->info('Updating reseller hosting account');
} else {
$this->getLog()->info('Updating shared hosting account');
}
$p->getName();
$p->getQuota();
$p->getBandwidth();
$p->getMaxSubdomains();
$p->getMaxParkedDomains();
$p->getMaxDomains();
$p->getMaxFtp();
$p->getMaxSql();
$p->getMaxPop();
$p->getCustomValue('param_name');
}
public function changeAccountUsername(Server_Account $a, $new)
{
if($a->getReseller()) {
$this->getLog()->info('Changing reseller hosting account username');
} else {
$this->getLog()->info('Changing shared hosting account username');
}
}
public function changeAccountDomain(Server_Account $a, $new)
{
if($a->getReseller()) {
$this->getLog()->info('Changing reseller hosting account domain');
} else {
$this->getLog()->info('Changing shared hosting account domain');
}
}
public function changeAccountPassword(Server_Account $a, $new)
{
if($a->getReseller()) {
$this->getLog()->info('Changing reseller hosting account password');
} else {
$this->getLog()->info('Changing shared hosting account password');
}
}
public function changeAccountIp(Server_Account $a, $new)
{
if($a->getReseller()) {
$this->getLog()->info('Changing reseller hosting account ip');
} else {
$this->getLog()->info('Changing shared hosting account ip');
}
}
}
To enable extension simply drop it to bb-library/Server/Manager/ folder It will be detected automatically when on server configuration page.
Note
Class name can not conflict with existing one.
Domain registrar¶
You can create your own domain registrar extension and put in /bb-library/Registrar/Adapter directory. When new file is detected by BoxBilling admin area, you can install it by clicking on install button.
Only installed domain registrars can be configured.
Following example should be enough to understand the concept of domain registration adapter class.
You create Registrar_Adapter_Myregistrar class
<?php
/**
* Custom domain registrar
*/
class Registrar_Adapter_Myregistrar extends Registrar_AdapterAbstract
{
public $config = array(
'use_whois' => FALSE,
);
public function __construct($options)
{
}
public function getTlds()
{
return array();
}
public static function getConfig()
{
return array(
'label' => 'Custom Registrar always responds with positive results. Usefull if no other registrar is suitable.',
);
}
public function isDomainCanBeTransfered(Registrar_Domain $domain)
{
$this->getLog()->debug('Checking if domain can be transfered: ' . $domain->getName());
return true;
}
public function isDomainAvailable(Registrar_Domain $domain)
{
return true;
}
public function modifyNs(Registrar_Domain $domain)
{
$this->getLog()->debug('Modifying nameservers: ' . $domain->getName());
$this->getLog()->debug('Ns1: ' . $domain->getNs1());
$this->getLog()->debug('Ns2: ' . $domain->getNs2());
$this->getLog()->debug('Ns3: ' . $domain->getNs3());
$this->getLog()->debug('Ns4: ' . $domain->getNs4());
return true;
}
public function transferDomain(Registrar_Domain $domain)
{
$this->getLog()->debug('Transfering domain: ' . $domain->getName());
$this->getLog()->debug('Epp code: ' . $domain->getEpp());
return true;
}
public function getDomainDetails(Registrar_Domain $domain)
{
$this->getLog()->debug('Getting whois: ' . $domain->getName());
if(!$domain->getRegistrationTime()) {
$domain->setRegistrationTime(time());
}
if(!$domain->getExpirationTime()) {
$years = $domain->getRegistrationPeriod();
$domain->setExpirationTime(strtotime("+$years year"));
}
return $domain;
}
public function deleteDomain(Registrar_Domain $domain)
{
$this->getLog()->debug('Removing domain: ' . $domain->getName());
return true;
}
public function registerDomain(Registrar_Domain $domain)
{
$this->getLog()->debug('Registering domain: ' . $domain->getName(). ' for '.$domain->getRegistrationPeriod(). ' years');
return true;
}
public function renewDomain(Registrar_Domain $domain)
{
$this->getLog()->debug('Renewing domain: ' . $domain->getName());
return true;
}
public function modifyContact(Registrar_Domain $domain)
{
$this->getLog()->debug('Updating contact info: ' . $domain->getName());
return true;
}
public function enablePrivacyProtection(Registrar_Domain $domain)
{
$this->getLog()->debug('Enabling Privacy protection: ' . $domain->getName());
return true;
}
public function disablePrivacyProtection(Registrar_Domain $domain)
{
$this->getLog()->debug('Disabling Privacy protection: ' . $domain->getName());
return true;
}
public function getEpp(Registrar_Domain $domain)
{
$this->getLog()->debug('Retrieving domain transfer code: ' . $domain->getName());
return true;
}
public function lock(Registrar_Domain $domain)
{
$this->getLog()->debug('Locking domain: ' . $domain->getName());
return true;
}
public function unlock(Registrar_Domain $domain)
{
$this->getLog()->debug('Unlocking: ' . $domain->getName());
return true;
}
}
Note
Class name can not conflict with existing one.
Payment gateway¶
Assuming you have not found payment gateway on extension site, you can create your own payment gateway extension and put in /bb-library/Payment/Adapter directory
BoxBilling automatically detects new payment gateway and shows it in admin area payment gateways section. Install detected gateway by clicking on install button and now you are able to configure it.
All payment gateways can be copied.
Following example should be enough to understand the concept of payment gateway adapter class. You create Payment_Adapter_Custom class
<?php
/**
* BoxBilling
*
* @copyright BoxBilling, Inc (http://www.boxbilling.com)
* @license Apache-2.0
*
* Copyright BoxBilling, Inc
* This source file is subject to the Apache-2.0 License that is bundled
* with this source code in the file LICENSE
*/
class Payment_Adapter_Custom
{
private $config = array();
public function __construct($config)
{
$this->config = $config;
}
public static function getConfig()
{
return array(
'supports_one_time_payments' => true,
'supports_subscriptions' => true,
'description' => 'Custom payment gateway allows you to give instructions how can your client pay invoice. All system, client, order and invoice details can be printed. HTML and JavaScript code is supported.',
'form' => array(
'single' => array('textarea', array(
'label' => 'Enter your text for single payment information',
),
),
'recurrent' => array('textarea', array(
'label' => 'Enter your text for subscription information',
),
),
),
);
}
/**
* Generate payment text
*
* @param Api_Admin $api_admin
* @param int $invoice_id
* @param bool $subscription
*
* @since BoxBilling v2.9.15
*
* @return string - html form with auto submit javascript
*/
public function getHtml($api_admin, $invoice_id, $subscription)
{
$invoice = $api_admin->invoice_get(array('id'=>$invoice_id));
$vars = array(
'client' => $invoice['buyer'],
'invoice' => $invoice,
'_tpl' => ($subscription) ? $this->config['recurrent'] : $this->config['single'],
);
return $api_admin->system_string_render($vars);
}
/**
* Process transaction received from payment gateway
*
* @since BoxBilling v2.9.15
*
* @param Api_Admin $api_admin
* @param int $id - transaction id to process
* @param array $ipn - post, get, server, http_raw_post_data
* @param int $gateway_id - payment gateway id on BoxBilling
*
* @return mixed
*/
public function processTransaction($api_admin, $id, $data, $gateway_id)
{
//$tx = $api_admin->invoice_transaction_get(array('id'=>$id));
}
}
Payment adapter class is simple PHP class with 4 methods:
- public static function getConfig() - tells BoxBilling information to generate settings form
- public function __construct($config) - receives configuration settings from settings form
- public function getHtml($api_admin, $invoice_id, $subscription) - generates payment html. Can use Admin api to get additional information
- public function processTransaction($api_admin, $id, $data) - processes transaction received from payment gateway. Can use Admin api to get additional information
Note
Class name can not conflict with existing one.
BoxBilling in Your Language¶
Although BoxBilling displays in U.S. English by default, the software has the built-in capability to be used in any language.
About locales¶
A locale is a combination of language and regional dialect. Usually locales correspond to countries, as is the case with Portuguese (Portugal)[pt_PT] and Portuguese (Brazil)[pt_BR].
You can do a translation for any locale you wish, even other English locales such as Canadian English or Australian English, to adjust for regional spelling and idioms.
The default locale of BoxBilling is U.S. English[en_US].
Localization technology¶
BoxBilling’s developers chose to use the GNU gettext localization framework to provide localization infrastructure to BoxBilling. gettext is a mature, widely used framework for modular translation of software, and is the de facto standard for localization in the open source/free software realm.
Translating client area with Poedit¶
Assuming translation file is not available at https://www.transifex.com/projects/p/boxbilling/ you can translate BoxBilling using Poedit.
- Download and install http://www.poedit.net/
- Copy bb-locale/en_US folder to bb-locale/es_ES (where es_ES is your locale)
- Open the file bb-locale/es_ES/LC_MESSAGES/messages.po in Poedit.
- You will see two blocks. First for message to be translated, second for translation
- Go to File → Save as… to save your translations in a PO file.
- When you are finished translating, go to File → Save as… again to generate the MO file. Or you can set your Poedit to always compile a MO file when saving changes by clicking File → Preferences and on the Editor tab check the Automatically compile .mo file on save box.
- We would appreciate if you would upload translated file to our language repository.
Note
Depending on theme used in client area, you may require translate additional messages
Adding new language¶
Follow instructions bellow to install new language.
- Check if your language translation file is available at https://www.transifex.com/projects/p/boxbilling/
- In bb-locale folder create folder with your locale name (e.g. pt_BR) and create folder LC_MESSAGES in it
- Add messages.po and messages.mo files to LC_MESSAGES folder you just created (e.g. bb-locale/pt_BR/LC_MESSAGES/messages.mo)
- Language will be automatically detected and language picker will appear in client and admin areas
Changing default language¶
Default language can be set in bb-config.php parameter ‘locale’ => ‘en_US’,
Removing language¶
Removing languages from BoxBilling is really simple. Just delete language folder you wish from bb-locale/ folder
Adding new es_ES locales in Ubuntu 14.04 Operating System¶
# Change to the locales directory
cd /usr/share/locales/
# Create the script file to add the new locale to the OS. # You can use nano editor to create install_locale.sh file and put inside the following commands:
nano install_locale.sh
#!/bin/bash # Install new locale # $ sudo sh install_locale.sh es_ES cd /usr/share/locales ./install-language-pack $1 dpkg-reconfigure locales locale -a
# Save the script file created with nano
CTRL + X y ENTER
# Give exec privileges to the script
chmod +x install_locale.sh
# Run the previous script to generate the new locales
sh install_locale.sh es_ES
# Check the system log
Generating locales… es_ES.UTF-8… up-to-date Generation complete.
# Restart the Web Server
service apache2 restart
# Now reload the BOX Billing app on your web browser to get your BB running in multi-language setup. # Now you can choose spanish language in upper left corner.
Frequently Asked Questions¶
Check these already asked questions before submitting new ticket. It is very likely it has already been answered.
Do I still need to buy PRO license if I use open source BoxBilling?¶
No. Beginning from 4.22 release, you don’t need to obtain any kind of license keys to use BoxBilling. We chose to make BoxBilling completely free starting with the 4.22 release.
How can I access BoxBilling admin area?¶
BoxBilling admin area is located at url: http://www.yourdomain.com/index.php?_url=/bb-admin. This link can be changed in bb-config.php
file by editing value of admin_area_prefix
.
I have modified theme file but changes did not appear. Why?¶
Set BB_DEBUG to TRUE in bb-config.php
file
What are the differences between Pro and Free versions of BoxBilling?¶
See differences at order page http://www.boxbilling.com/order
Blank page or Error 500¶
Missing or disabled cURL extension¶
BoxBilling uses cURL a lot - it’s enabled in PHP by default, but sometimes it’s either not present or it’s blacklisted in php.ini
Use phpinfo() or php.ini check whether cURL extension is enabled. If curl_exec is within disabled_functions list, remove it from the list.
Cache folder is not writable¶
bb-data/cache folder is not writable. BoxBilling keeps compiled templates in this directory, if it’s not writable it may result in this error. To fix that: CHMOD 777 bb-data/cache
Low memory_limit¶
Blank page may occur on some server environments, where PHP does not handle garbage collection properly. Increase memory_limit in php.ini to reasonable value - over 128MB is always safe or upgrade PHP to latest version.
I get an error: Call to undefined function gettext() in …¶
Make sure you server has gettext extension enabled. Contact your hosting provider to enable it for you.
API¶
This describes the resources that make up the official BoxBilling API.
If you have any problems or requests please contact support.
Schema¶
All API access is over HTTP(S), and accessed from the
http://www.yourdomain.com/api/
All Requests are made via POST method
All data is sent and received as JSON.
All methods names are lowercase and words are separated by underscore
Blank fields are included as null instead of being omitted.
All timestamps are returned in ISO 8601 format
2011-01-01T12:00:00+00:00
Authentication¶
API uses Basic Authentication
The same API endpoint can be used for Admin and Client API calls.
Authentication Username is admin or client
Authentication Password is token which can be retrieved from BoxBilling Admin area
API uses cookies to store sessions.
Request¶
All Requests are made via POST method
Data can be sent as JSON string or POST form.
All data is received as JSON.
Example api.sh script
#!/bin/bash
# BoxBilling REST API example
API_COOKIE=/tmp/bbcookie.txt
API_AUTH="admin:644846a924e9f4ca76f04f39b3f9c8ac"
API_ENDPOINT="http://demo.boxbilling.com/api"
# ****************************************************************************
echo "Add product #1 to shopping cart using guest API (no need to provide authentication):"
curl -c $API_COOKIE -b $API_COOKIE -X POST -d '{"id":"1"}' $API_ENDPOINT/guest/cart/add_item
echo "\n"
echo "Get cart contents"
curl -c $API_COOKIE -b $API_COOKIE -X POST $API_ENDPOINT/guest/cart/get
echo "\n"
echo "Getting profile:"
curl -c $API_COOKIE -b $API_COOKIE -u "$API_AUTH" -X POST $API_ENDPOINT/admin/staff/profile_get
echo "\n"
echo "API Error example:"
curl -c $API_COOKIE -b $API_COOKIE -u "$API_AUTH" -X POST $API_ENDPOINT/admin/module/method
echo "\n"
echo "Get paginated list of orders:"
curl -c $API_COOKIE -b $API_COOKIE -u "$API_AUTH" -X POST -d '{"per_page":"1", "page":2}' $API_ENDPOINT/admin/order/get_list
echo "\n"
Executing above sh api.sh script with produce output:
Add product #1 to shopping cart using guest API (no need to provide authentication):
{"result":true,"error":null}
Get cart contents
{"result":{"promocode":null,"discount":0,"total":1000,"items":[{"plugin":null,"id":"18","product_id":"1","title":"Samsung tv set","type":"custom","quantity":1,"unit":"product","price":"1000.00","setup_price":"0.00","discount":0,"total":1000}],"currency":{"code":"USD","title":"US Dollar","conversion_rate":1,"format":"$%price%","default":"1"}},"error":null}
Getting profile:
{"result":{"id":"1","role":"admin","admin_group_id":"1","email":"admin@boxbilling.com","pass":"1123123123","name":"Demo Administrator","signature":"Sincerely Yours, Demo Administrator","protected":"1","status":"active","api_token":"644846a924e9f4ca76f04f39b3f9c8ac","created_at":"2012-01-01T12:00:00+00:00","updated_at":"2012-01-01T12:00:00+00:00"},"error":null}
API Error example:
{"result":null,"error":{"message":"Error message","code":720}}
Get paginated list of orders:
{"result":{"pages":1,"page":2,"per_page":1,"total":0,"list":[]},"error":null}
Errors¶
Consider that error occurred if error field is not null.
{"result":null,"error":{"message":"Error explanation","code":101}}
Pagination¶
Requests that return multiple items will be paginated to 30 items by default.
You can specify further pages with the page parameter.
You can also set a custom page size up to 100 with the per_page parameter.
{"per_page":45, "page":2}
Results contains pagination information in the following format:
{"result":{"page":2,"per_page":45,"total":0,"list":[]},"error":null}
Rate Limiting¶
BoxBilling can limit requests to API. By default it is configured to accept maximum of 1000 requests per hour from one IP. You can edit these settings at bb-modules/mod_api/api-config.php; You can check the returned HTTP headers of any API request to see your current status:
$ curl -i http://demo.boxbilling.com/api/guest/system/version
HTTP/1.1 200 OK
X-RateLimit-Span: 3600
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
Lists sorting¶
BoxBilling has reserved keys: orderby and sortorder to define unified sorting keywords in all future API requests.
orderby - depends on API query
sortorder - asc or desc
BoxBilling API Implementations¶
BoxBilling template file¶
Use API in any BoxBilling template.
- All client area theme templates has global parameters:
- request - same as PHP $_GET
- guest - to access guest API
- client - if client is logged in
- admin - if admin is logged in
All admin area theme templates has global parameters:
- request - same as PHP $_GET
- guest - to access guest API
- admin - if admin is logged in
Get currently logged in client profile details in client area template file:
{% if client %}
{% set profile = client.client_get %}
My email is: {{ profile.email }}
My name is: {{ profile.first_name }} {{ profile.last_name }}
{% endif %}
PHP¶
PHP API class usage as admin
<?php
require_once 'BoxBillingApi.php';
$config = array(
'api_role' => 'admin',
'api_token' => 'your_admin_token',
'api_url' => 'http://www.youdomain.com/api',
);
$api_admin = new Service_BoxBilling($config);
$messages = $api_admin->system_messages();
PHP API class usage as client
<?php
require_once 'BoxBillingApi.php';
$config = array(
'api_role' => 'client',
'api_token' => 'your_client_token',
'api_url' => 'http://www.youdomain.com/api',
);
$api_client = new Service_BoxBilling($config);
$orders = $api_client->order_get_list(array('per_page'=>50, 'client_id'=>1));
PHP API class usage as guest
<?php
require_once 'BoxBillingApi.php';
$config = array(
'api_role' => 'guest',
'api_url' => 'http://www.youdomain.com/api',
);
$api_guest = new Service_BoxBilling($config);
$version = $api_guest->system_version();
BASH script¶
Example boxbilling.sh
#!/bin/bash
# BoxBilling REST API example
API_COOKIE=/tmp/bbcookie.txt
API_AUTH="admin:644846a924e9f4ca76f04f39b3f9c8ac"
API_ENDPOINT="http://demo.boxbilling.com/api"
# ****************************************************************************
echo "Add product #1 to shopping cart using guest API (no need to provide authentication):"
curl -c $API_COOKIE -b $API_COOKIE -X POST -d '{"id":"1"}' $API_ENDPOINT/guest/cart/add_item
echo "\n"
echo "Get cart contents"
curl -c $API_COOKIE -b $API_COOKIE -X POST $API_ENDPOINT/guest/cart/get
JavaScript¶
Add this line to your
<script type="text/javascript">
var api = {
post: function(url, params, jsonp) {
$.ajax({
type: "POST",
url: 'http://www.yourdomain.com/api/' + url,
data: params,
dataType: 'json',
error: function(jqXHR, textStatus, e) {
alert(e);
},
success: function(data) {
if(data.error) {
alert(data.error.message);
} else {
if(typeof jsonp === 'function') {
return jsonp(data.result);
} else if(window.hasOwnProperty('console')) {
console.log(data.result);
}
}
}
});
}
}
</script>
Get BoxBilling version:
bb.post("guest/system/version", {}, function(result){ alert(result); });
Add product to shopping cart:
bb.post("guest/cart/add_item", {id:1}, function(result){ alert(result); });
Dump shopping cart contents browser to console:
bb.post("guest/cart/get", {}, function(result){ console.debug(result) });
API Based Modules¶
If you have developed API based extension, please open pull request at https://github.com/boxbilling/extensions
Guest API¶
This document is the API specification for BoxBilling
Cart¶
Shopping cart management
guest/cart/get¶
Get shopping cart contents
API call examples¶
- PHP
$result = $api_guest->cart_get($params);
- HTML
{{ guest.cart_get() }}
- JavaScript
bb.post("guest/cart/get", {})
guest/cart/reset¶
Completely remove shopping cart contents
API call examples¶
- PHP
$result = $api_guest->cart_reset($params);
- HTML
{{ guest.cart_reset() }}
- JavaScript
bb.post("guest/cart/reset", {})
guest/cart/set_currency¶
Set shopping cart currency
Required parameters¶
currency: | string - New currency code to applied to shopping cart |
---|
API call examples¶
- PHP
$result = $api_guest->cart_set_currency($params);
- HTML
{{ guest.cart_set_currency() }}
- JavaScript
bb.post("guest/cart/set_currency", {})
guest/cart/get_currency¶
Retrieve information about currently selected shopping cart currency
API call examples¶
- PHP
$result = $api_guest->cart_get_currency($params);
- HTML
{{ guest.cart_get_currency() }}
- JavaScript
bb.post("guest/cart/get_currency", {})
guest/cart/apply_promo¶
Apply Promo code to shopping cart
Required parameters¶
promocode: | string - Promo code string |
---|
API call examples¶
- PHP
$result = $api_guest->cart_apply_promo($params);
- HTML
{{ guest.cart_apply_promo() }}
- JavaScript
bb.post("guest/cart/apply_promo", {})
guest/cart/remove_promo¶
Removes promo from shopping cart and resets discounted prices if any
API call examples¶
- PHP
$result = $api_guest->cart_remove_promo($params);
- HTML
{{ guest.cart_remove_promo() }}
- JavaScript
bb.post("guest/cart/remove_promo", {})
guest/cart/remove_item¶
Removes product from shopping cart
Required parameters¶
id: | int - Shopping cart item id |
---|
API call examples¶
- PHP
$result = $api_guest->cart_remove_item($params);
- HTML
{{ guest.cart_remove_item() }}
- JavaScript
bb.post("guest/cart/remove_item", {})
guest/cart/add_item¶
Adds product to shopping cart
Required parameters¶
id: | int - Product ID |
---|
Optional parameters¶
multiple: | bool - Default false. Allow multiple items in cart |
---|---|
period: | string - Billing period |
quantity: | int - Products quantity |
config: | array - Product configuration options |
addons: | array - List of addons ids |
API call examples¶
- PHP
$result = $api_guest->cart_add_item($params);
- HTML
{{ guest.cart_add_item() }}
- JavaScript
bb.post("guest/cart/add_item", {})
Client¶
Clients API methods
guest/client/create¶
Client signup action.
Required parameters¶
email: | string - Email |
---|---|
first_name: | string - First name |
password: | string - password |
password_confirm: | |
string - must be same as password |
Optional parameters¶
auto_login: | bool - Auto login client after signup |
---|---|
last_name: | string - last name |
aid: | string - Alternative id. Usually used by import tools. |
gender: | string - Gender - values: male|female |
country: | string - Country |
city: | string - city |
birthday: | string - Birthday |
type: | string - Identifies client type: company or individual |
company: | string - Company |
company_vat: | string - Company VAT number |
company_number: | string - Company number |
address_1: | string - Address line 1 |
address_2: | string - Address line 2 |
postcode: | string - zip or postcode |
state: | string - country state |
phone: | string - Phone number |
phone_cc: | string - Phone country code |
document_type: | string - Related document type, ie: passport, driving license |
document_nr: | string - Related document number, ie: passport number: LC45698122 |
notes: | string - Notes about client. Visible for admin only |
custom_1: | string - Custom field 1 |
custom_2: | string - Custom field 2 |
custom_3: | string - Custom field 3 |
custom_4: | string - Custom field 4 |
custom_5: | string - Custom field 5 |
custom_6: | string - Custom field 6 |
custom_7: | string - Custom field 7 |
custom_8: | string - Custom field 8 |
custom_9: | string - Custom field 9 |
custom_10: | string - Custom field 10 |
API call examples¶
- PHP
$result = $api_guest->client_create($params);
- HTML
{{ guest.client_create() }}
- JavaScript
bb.post("guest/client/create", {})
guest/client/login¶
Client login action
Required parameters¶
email: | string - client email |
---|---|
password: | string - client password |
API call examples¶
- PHP
$result = $api_guest->client_login($params);
- HTML
{{ guest.client_login() }}
- JavaScript
bb.post("guest/client/login", {})
guest/client/reset_password¶
Password reset confirmation email will be sent to email.
Required parameters¶
email: | string - client email |
---|
API call examples¶
- PHP
$result = $api_guest->client_reset_password($params);
- HTML
{{ guest.client_reset_password() }}
- JavaScript
bb.post("guest/client/reset_password", {})
guest/client/confirm_reset¶
Confirm password reset action
Required parameters¶
hash: | string - hash received in email |
---|
API call examples¶
- PHP
$result = $api_guest->client_confirm_reset($params);
- HTML
{{ guest.client_confirm_reset() }}
- JavaScript
bb.post("guest/client/confirm_reset", {})
guest/client/is_vat¶
Check if given vat number is valid EU country VAT number This method uses http://isvat.appspot.com/ method to validate VAT
Required parameters¶
country: | string - Country CODE: FR - France etc. |
---|---|
vat: | string - VAT number |
API call examples¶
- PHP
$result = $api_guest->client_is_vat($params);
- HTML
{{ guest.client_is_vat() }}
- JavaScript
bb.post("guest/client/is_vat", {})
Cron¶
Cron checker
guest/cron/check¶
Run cron if is late and web based cron is enabled
API call examples¶
- PHP
$result = $api_guest->cron_check($params);
- HTML
{{ guest.cron_check() }}
- JavaScript
bb.post("guest/cron/check", {})
Currency¶
Currency management
guest/currency/get_pairs¶
Get list of available currencies
API call examples¶
- PHP
$result = $api_guest->currency_get_pairs($params);
- HTML
{{ guest.currency_get_pairs() }}
- JavaScript
bb.post("guest/currency/get_pairs", {})
guest/currency/get¶
Get currency by code
Required parameters¶
code: | string - currency code, ie: USD |
---|
API call examples¶
- PHP
$result = $api_guest->currency_get($params);
- HTML
{{ guest.currency_get() }}
- JavaScript
bb.post("guest/currency/get", {})
guest/currency/format¶
Format price by currency settings
Optional parameters¶
convert: | bool - covert to default currency rate. Default - true; |
---|---|
without_currency: | |
bool - Show only number. No symbols are attached Default - false; | |
price: | float - Price to be formated. Default 0 |
code: | string - currency code, ie: USD. Default - default currency |
API call examples¶
- PHP
$result = $api_guest->currency_format($params);
- HTML
{{ guest.currency_format() }}
- JavaScript
bb.post("guest/currency/format", {})
Example¶
All public methods in this class are exposed to public. Always think what kind of information you are exposing. Emails, passwords and other information should NOT be returned by functions in this class
This module can be called from API or in template
Extension¶
Extensions
guest/extension/is_on¶
Checks if extensions is available
Required parameters¶
mod: | string - module name to be checked |
---|
API call examples¶
- PHP
$result = $api_guest->extension_is_on($params);
- HTML
{{ guest.extension_is_on() }}
- JavaScript
bb.post("guest/extension/is_on", {})
Formbuilder¶
Custom forms
Forum¶
Forum management
guest/forum/get_list¶
Get paginated list of forums
API call examples¶
- PHP
$result = $api_guest->forum_get_list($params);
- HTML
{{ guest.forum_get_list() }}
- JavaScript
bb.post("guest/forum/get_list", {})
guest/forum/get_categories¶
Get forums list grouped by category name
API call examples¶
- PHP
$result = $api_guest->forum_get_categories($params);
- HTML
{{ guest.forum_get_categories() }}
- JavaScript
bb.post("guest/forum/get_categories", {})
guest/forum/get¶
Get forum details
Required parameters¶
id: | int - forum id |
---|
API call examples¶
- PHP
$result = $api_guest->forum_get($params);
- HTML
{{ guest.forum_get() }}
- JavaScript
bb.post("guest/forum/get", {})
guest/forum/get_topic_list¶
Get paginated list of topics
API call examples¶
- PHP
$result = $api_guest->forum_get_topic_list($params);
- HTML
{{ guest.forum_get_topic_list() }}
- JavaScript
bb.post("guest/forum/get_topic_list", {})
guest/forum/get_topic¶
Get topic details
Required parameters¶
id: | int - topic id |
---|
API call examples¶
- PHP
$result = $api_guest->forum_get_topic($params);
- HTML
{{ guest.forum_get_topic() }}
- JavaScript
bb.post("guest/forum/get_topic", {})
guest/forum/get_topic_message_list¶
Get topic messages list
Required parameters¶
forum_topic_id: | int - topic id |
---|
API call examples¶
- PHP
$result = $api_guest->forum_get_topic_message_list($params);
- HTML
{{ guest.forum_get_topic_message_list() }}
- JavaScript
bb.post("guest/forum/get_topic_message_list", {})
Invoice¶
Invoice processing
guest/invoice/get¶
Get invoice details
Required parameters¶
hash: | string - invoice hash |
---|
API call examples¶
- PHP
$result = $api_guest->invoice_get($params);
- HTML
{{ guest.invoice_get() }}
- JavaScript
bb.post("guest/invoice/get", {})
guest/invoice/update¶
Update Invoice details. Only unpaid invoice details can be updated.
Required parameters¶
hash: | string - invoice hash |
---|
Optional parameters¶
gateway_id: | int - selected payment gateway id |
---|
API call examples¶
- PHP
$result = $api_guest->invoice_update($params);
- HTML
{{ guest.invoice_update() }}
- JavaScript
bb.post("guest/invoice/update", {})
guest/invoice/gateways¶
Get list of available payment gateways to pay for invoices
Optional parameters¶
format: | string - if format is “pairs” then id=>name values are returned |
---|
API call examples¶
- PHP
$result = $api_guest->invoice_gateways($params);
- HTML
{{ guest.invoice_gateways() }}
- JavaScript
bb.post("guest/invoice/gateways", {})
guest/invoice/payment¶
Process invoice for selected gateway. Returned result can be processed to redirect or to show required information. Returned result depends
on payment gateway.
Required parameters¶
hash: | string - invoice hash |
---|---|
gateway_id: | int - payment gateway id |
Optional parameters¶
subscription: | bool - is payment subscription |
---|---|
auto_redirect: | bool - should payment adapter automatically redirect client or just print pay now button |
API call examples¶
- PHP
$result = $api_guest->invoice_payment($params);
- HTML
{{ guest.invoice_payment() }}
- JavaScript
bb.post("guest/invoice/payment", {})
Kb¶
Knowledge base API
guest/kb/article_get_list¶
Get paginated list of knowledge base articles. Returns only active articles.
API call examples¶
- PHP
$result = $api_guest->kb_article_get_list($params);
- HTML
{{ guest.kb_article_get_list() }}
- JavaScript
bb.post("guest/kb/article_get_list", {})
guest/kb/article_get¶
Get active knowledge base article
Required parameters¶
id: | int - knowledge base article ID. Required only if SLUG is not passed. |
---|---|
slug: | string - knowledge base article slug. Required only if ID is not passed. |
API call examples¶
- PHP
$result = $api_guest->kb_article_get($params);
- HTML
{{ guest.kb_article_get() }}
- JavaScript
bb.post("guest/kb/article_get", {})
guest/kb/category_get_list¶
Get paginated list of knowledge base categories
API call examples¶
- PHP
$result = $api_guest->kb_category_get_list($params);
- HTML
{{ guest.kb_category_get_list() }}
- JavaScript
bb.post("guest/kb/category_get_list", {})
guest/kb/category_get_pairs¶
Get knowledge base categories id, title pairs
API call examples¶
- PHP
$result = $api_guest->kb_category_get_pairs($params);
- HTML
{{ guest.kb_category_get_pairs() }}
- JavaScript
bb.post("guest/kb/category_get_pairs", {})
guest/kb/category_get¶
Get knowledge base category by ID or SLUG
Required parameters¶
id: | int - knowledge base category ID. Required only if SLUG is not passed. |
---|---|
slug: | string - knowledge base category slug. Required only if ID is not passed. |
API call examples¶
- PHP
$result = $api_guest->kb_category_get($params);
- HTML
{{ guest.kb_category_get() }}
- JavaScript
bb.post("guest/kb/category_get", {})
News¶
News and announcements management
guest/news/get_list¶
Get paginated list of active news items
API call examples¶
- PHP
$result = $api_guest->news_get_list($params);
- HTML
{{ guest.news_get_list() }}
- JavaScript
bb.post("guest/news/get_list", {})
guest/news/get¶
Get news item by ID or SLUG
Required parameters¶
id: | int - news item ID. Required only if SLUG is not passed. |
---|---|
slug: | string - news item slug. Required only if ID is not passed. |
API call examples¶
- PHP
$result = $api_guest->news_get($params);
- HTML
{{ guest.news_get() }}
- JavaScript
bb.post("guest/news/get", {})
Product¶
Products management api
guest/product/get_list¶
Get paginated list of products
Optional parameters¶
show_hidden: | bool - also get hidden products. Default false |
---|
API call examples¶
- PHP
$result = $api_guest->product_get_list($params);
- HTML
{{ guest.product_get_list() }}
- JavaScript
bb.post("guest/product/get_list", {})
guest/product/get_pairs¶
Get products pairs. Product id -> title values
API call examples¶
- PHP
$result = $api_guest->product_get_pairs($params);
- HTML
{{ guest.product_get_pairs() }}
- JavaScript
bb.post("guest/product/get_pairs", {})
guest/product/get¶
Get product by ID
Required parameters¶
id: | int - product id |
---|
API call examples¶
- PHP
$result = $api_guest->product_get($params);
- HTML
{{ guest.product_get() }}
- JavaScript
bb.post("guest/product/get", {})
guest/product/category_get_list¶
Get paginated list of product categories
API call examples¶
- PHP
$result = $api_guest->product_category_get_list($params);
- HTML
{{ guest.product_category_get_list() }}
- JavaScript
bb.post("guest/product/category_get_list", {})
guest/product/category_get_pairs¶
Get pairs of product categories
API call examples¶
- PHP
$result = $api_guest->product_category_get_pairs($params);
- HTML
{{ guest.product_category_get_pairs() }}
- JavaScript
bb.post("guest/product/category_get_pairs", {})
guest/product/get_slider¶
Return slider data for product types. Products are grouped by type. You can pass parameter to select product type for slider
Product configuration must have slider_%s keys
Optional parameters¶
type: | string - product type for slider - default = hosting |
---|---|
format: | string - return format. Default is array . You can choose json format, to directly inject to javascript |
API call examples¶
- PHP
$result = $api_guest->product_get_slider($params);
- HTML
{{ guest.product_get_slider() }}
- JavaScript
bb.post("guest/product/get_slider", {})
Servicedomain¶
Domain service management
guest/servicedomain/tlds¶
Get configured TLDs which can be ordered. Shows only enabled TLDs
Optional parameters¶
allow_register: | bool - shows only these TLDs which can be registered |
---|---|
allow_transfer: | bool - shows only these TLDs which can be transferred |
API call examples¶
- PHP
$result = $api_guest->servicedomain_tlds($params);
- HTML
{{ guest.servicedomain_tlds() }}
- JavaScript
bb.post("guest/servicedomain/tlds", {})
guest/servicedomain/pricing¶
Get TLD pricing information
Required parameters¶
tld: | string - Top level domain, ie: .com |
---|
API call examples¶
- PHP
$result = $api_guest->servicedomain_pricing($params);
- HTML
{{ guest.servicedomain_pricing() }}
- JavaScript
bb.post("guest/servicedomain/pricing", {})
guest/servicedomain/check¶
Check if domain is available for registration. Domain registrar must be configured in order to get correct results.
Required parameters¶
sld: | string - second level domain, ie: mydomain |
---|---|
tld: | string - top level domain, ie: .com |
API call examples¶
- PHP
$result = $api_guest->servicedomain_check($params);
- HTML
{{ guest.servicedomain_check() }}
- JavaScript
bb.post("guest/servicedomain/check", {})
guest/servicedomain/can_be_transferred¶
Check if domain can be transferred. Domain registrar must be configured in order to get correct results.
Required parameters¶
sld: | string - second level domain, ie: mydomain |
---|---|
tld: | string - top level domain, ie: .com |
API call examples¶
- PHP
$result = $api_guest->servicedomain_can_be_transferred($params);
- HTML
{{ guest.servicedomain_can_be_transferred() }}
- JavaScript
bb.post("guest/servicedomain/can_be_transferred", {})
Servicelicense¶
Licensing server
guest/servicelicense/check¶
Check license details callback. Request IP is detected automatically You can pass any other parameters to be validated by license plugin.
Required parameters¶
license: | string - license key |
---|---|
host: | string - hostname where license is installed |
version: | string - software version |
path: | string - software install path |
Optional parameters¶
legacy: | string - deprecated parameter. Returns result in non consistent API result |
---|
API call examples¶
- PHP
$result = $api_guest->servicelicense_check($params);
- HTML
{{ guest.servicelicense_check() }}
- JavaScript
bb.post("guest/servicelicense/check", {})
Servicesolusvm¶
Solusvm service management
guest/servicesolusvm/get_templates¶
Return operating system templates available on solusVM master server
Required parameters¶
type: | string - virtualization type |
---|
API call examples¶
- PHP
$result = $api_guest->servicesolusvm_get_templates($params);
- HTML
{{ guest.servicesolusvm_get_templates() }}
- JavaScript
bb.post("guest/servicesolusvm/get_templates", {})
Serviceyouhosting¶
Youhosting service management
Spamchecker¶
Spam cheking module management
Staff¶
Staff methods
guest/staff/create¶
Gives ability to create administrator account if no admins exists on the system.
Database structure must be installed before calling this action. bb-config.php file must already be present and configured. Used by automated BoxBilling installer.
Required parameters¶
email: | string - admin email |
---|---|
password: | string - admin password |
API call examples¶
- PHP
$result = $api_guest->staff_create($params);
- HTML
{{ guest.staff_create() }}
- JavaScript
bb.post("guest/staff/create", {})
guest/staff/login¶
Login to admin area and save information to session.
Required parameters¶
email: | string - admin email |
---|---|
password: | string - admin password |
Optional parameters¶
remember: | string - pass value “1” to create remember me cookie |
---|
API call examples¶
- PHP
$result = $api_guest->staff_login($params);
- HTML
{{ guest.staff_login() }}
- JavaScript
bb.post("guest/staff/login", {})
Support¶
Public tickets management
guest/support/ticket_create¶
Submit new public ticket
Required parameters¶
name: | string - Ticket author name |
---|---|
email: | string - Ticket author email |
subject: | string - Ticket subject |
message: | string - Ticket message |
API call examples¶
- PHP
$result = $api_guest->support_ticket_create($params);
- HTML
{{ guest.support_ticket_create() }}
- JavaScript
bb.post("guest/support/ticket_create", {})
guest/support/ticket_get¶
Get public ticket
Required parameters¶
hash: | string - public ticket hash |
---|
API call examples¶
- PHP
$result = $api_guest->support_ticket_get($params);
- HTML
{{ guest.support_ticket_get() }}
- JavaScript
bb.post("guest/support/ticket_get", {})
guest/support/ticket_close¶
Close public ticket
Required parameters¶
hash: | string - public ticket hash |
---|
API call examples¶
- PHP
$result = $api_guest->support_ticket_close($params);
- HTML
{{ guest.support_ticket_close() }}
- JavaScript
bb.post("guest/support/ticket_close", {})
guest/support/ticket_reply¶
Reply to public ticket
Required parameters¶
hash: | string - public ticket hash |
---|---|
message: | string - public ticket reply message |
API call examples¶
- PHP
$result = $api_guest->support_ticket_reply($params);
- HTML
{{ guest.support_ticket_reply() }}
- JavaScript
bb.post("guest/support/ticket_reply", {})
System¶
System methods
guest/system/version¶
Get BoxBilling version
API call examples¶
- PHP
$result = $api_guest->system_version($params);
- HTML
{{ guest.system_version() }}
- JavaScript
bb.post("guest/system/version", {})
guest/system/company¶
Returns company information
API call examples¶
- PHP
$result = $api_guest->system_company($params);
- HTML
{{ guest.system_company() }}
- JavaScript
bb.post("guest/system/company", {})
guest/system/states¶
Returns USA states list
API call examples¶
- PHP
$result = $api_guest->system_states($params);
- HTML
{{ guest.system_states() }}
- JavaScript
bb.post("guest/system/states", {})
guest/system/countries_eunion¶
Returns list of european union countries
API call examples¶
- PHP
$result = $api_guest->system_countries_eunion($params);
- HTML
{{ guest.system_countries_eunion() }}
- JavaScript
bb.post("guest/system/countries_eunion", {})
guest/system/countries¶
Returns list of world countries
API call examples¶
- PHP
$result = $api_guest->system_countries($params);
- HTML
{{ guest.system_countries() }}
- JavaScript
bb.post("guest/system/countries", {})
guest/system/param¶
Returns system parameter by key
Required parameters¶
key: | string - Parameter name |
---|
API call examples¶
- PHP
$result = $api_guest->system_param($params);
- HTML
{{ guest.system_param() }}
- JavaScript
bb.post("guest/system/param", {})
guest/system/periods¶
Return list of available payment periods
API call examples¶
- PHP
$result = $api_guest->system_periods($params);
- HTML
{{ guest.system_periods() }}
- JavaScript
bb.post("guest/system/periods", {})
guest/system/period_title¶
Gets period title by identifier
Required parameters¶
code: | string - Period code name, ie: 1M => Monthly |
---|
API call examples¶
- PHP
$result = $api_guest->system_period_title($params);
- HTML
{{ guest.system_period_title() }}
- JavaScript
bb.post("guest/system/period_title", {})
guest/system/paginator¶
Returns info for paginator according to list
API call examples¶
- PHP
$result = $api_guest->system_paginator($params);
- HTML
{{ guest.system_paginator() }}
- JavaScript
bb.post("guest/system/paginator", {})
guest/system/current_url¶
If called from template file this function returns current url
API call examples¶
- PHP
$result = $api_guest->system_current_url($params);
- HTML
{{ guest.system_current_url() }}
- JavaScript
bb.post("guest/system/current_url", {})
guest/system/template_exists¶
Check if passed file name template exists for client area
Required parameters¶
file: | string - template file name, example: mod_index_dashboard.phtml |
---|
API call examples¶
- PHP
$result = $api_guest->system_template_exists($params);
- HTML
{{ guest.system_template_exists() }}
- JavaScript
bb.post("guest/system/template_exists", {})
Client API¶
This document is the API specification for BoxBilling
Cart¶
Shopping cart management
client/cart/checkout¶
Checkout cart which has products
Optional parameters¶
gateway_id: | int - payment gateway id. Which payment gateway will be used to make payment |
---|
API call examples¶
- PHP
$result = $api_client->cart_checkout($params);
- HTML
{{ client.cart_checkout() }}
- JavaScript
bb.post("client/cart/checkout", {})
Client¶
Client management
Email¶
Emails hostory listing and management
client/email/get_list¶
Get list of emails system had sent to client
API call examples¶
- PHP
$result = $api_client->email_get_list($params);
- HTML
{{ client.email_get_list() }}
- JavaScript
bb.post("client/email/get_list", {})
client/email/get¶
Get email details
Required parameters¶
id: | int - Email id |
---|
API call examples¶
- PHP
$result = $api_client->email_get($params);
- HTML
{{ client.email_get() }}
- JavaScript
bb.post("client/email/get", {})
Example¶
All public methods in this class are exposed to client using API. Always think what kind of information you are exposing.
client/example/get_info¶
From client API you can call any other module API
This method will collect data from all APIs and merge into one result.
Be careful not to expose sensitive data from Admin API.
API call examples¶
- PHP
$result = $api_client->example_get_info($params);
- HTML
{{ client.example_get_info() }}
- JavaScript
bb.post("client/example/get_info", {})
Forum¶
Forum management
client/forum/get_list¶
Get paginated list of forums
API call examples¶
- PHP
$result = $api_client->forum_get_list($params);
- HTML
{{ client.forum_get_list() }}
- JavaScript
bb.post("client/forum/get_list", {})
client/forum/get_categories¶
Get forums list grouped by category name
API call examples¶
- PHP
$result = $api_client->forum_get_categories($params);
- HTML
{{ client.forum_get_categories() }}
- JavaScript
bb.post("client/forum/get_categories", {})
client/forum/get¶
Get forum details
Required parameters¶
id: | int - forum id |
---|
API call examples¶
- PHP
$result = $api_client->forum_get($params);
- HTML
{{ client.forum_get() }}
- JavaScript
bb.post("client/forum/get", {})
client/forum/get_topic_list¶
Get paginated list of topics
API call examples¶
- PHP
$result = $api_client->forum_get_topic_list($params);
- HTML
{{ client.forum_get_topic_list() }}
- JavaScript
bb.post("client/forum/get_topic_list", {})
client/forum/get_topic¶
Get topic details
Required parameters¶
id: | int - topic id |
---|
API call examples¶
- PHP
$result = $api_client->forum_get_topic($params);
- HTML
{{ client.forum_get_topic() }}
- JavaScript
bb.post("client/forum/get_topic", {})
client/forum/start_topic¶
Create new topic
Required parameters¶
forum_id: | int - forum id |
---|---|
topic: | string - topic title |
message: | string - topic message |
Optional parameters¶
status: | string - initial topic status |
---|
API call examples¶
- PHP
$result = $api_client->forum_start_topic($params);
- HTML
{{ client.forum_start_topic() }}
- JavaScript
bb.post("client/forum/start_topic", {})
client/forum/get_topic_message_list¶
Get topic messages list
Required parameters¶
forum_topic_id: | int - topic id |
---|
API call examples¶
- PHP
$result = $api_client->forum_get_topic_message_list($params);
- HTML
{{ client.forum_get_topic_message_list() }}
- JavaScript
bb.post("client/forum/get_topic_message_list", {})
client/forum/post_message¶
Post new message to topic
Required parameters¶
forum_topic_id: | int - forum topic id |
---|---|
message: | string - topic message |
API call examples¶
- PHP
$result = $api_client->forum_post_message($params);
- HTML
{{ client.forum_post_message() }}
- JavaScript
bb.post("client/forum/post_message", {})
client/forum/is_subscribed¶
Check if current client is subscribed to forum notifications
API call examples¶
- PHP
$result = $api_client->forum_is_subscribed($params);
- HTML
{{ client.forum_is_subscribed() }}
- JavaScript
bb.post("client/forum/is_subscribed", {})
client/forum/unsubscribe¶
Unsubscribe client from topic notifications
API call examples¶
- PHP
$result = $api_client->forum_unsubscribe($params);
- HTML
{{ client.forum_unsubscribe() }}
- JavaScript
bb.post("client/forum/unsubscribe", {})
client/forum/subscribe¶
Subscribe client to forum topic notifications
Required parameters¶
id: | int - forum topic id |
---|
API call examples¶
- PHP
$result = $api_client->forum_subscribe($params);
- HTML
{{ client.forum_subscribe() }}
- JavaScript
bb.post("client/forum/subscribe", {})
client/forum/favorites¶
Get list of topics added to favorites
API call examples¶
- PHP
$result = $api_client->forum_favorites($params);
- HTML
{{ client.forum_favorites() }}
- JavaScript
bb.post("client/forum/favorites", {})
client/forum/is_favorite¶
Check if topic is added to favorites
Required parameters¶
id: | int - forum topic id |
---|
API call examples¶
- PHP
$result = $api_client->forum_is_favorite($params);
- HTML
{{ client.forum_is_favorite() }}
- JavaScript
bb.post("client/forum/is_favorite", {})
client/forum/favorite_add¶
Add topic to favorites
Required parameters¶
id: | int - forum topic id |
---|
API call examples¶
- PHP
$result = $api_client->forum_favorite_add($params);
- HTML
{{ client.forum_favorite_add() }}
- JavaScript
bb.post("client/forum/favorite_add", {})
Invoice¶
Invoice management
client/invoice/get_list¶
Get paginated list of invoices
API call examples¶
- PHP
$result = $api_client->invoice_get_list($params);
- HTML
{{ client.invoice_get_list() }}
- JavaScript
bb.post("client/invoice/get_list", {})
client/invoice/get¶
Get invoice details
Required parameters¶
hash: | string - invoice hash |
---|
API call examples¶
- PHP
$result = $api_client->invoice_get($params);
- HTML
{{ client.invoice_get() }}
- JavaScript
bb.post("client/invoice/get", {})
client/invoice/update¶
Update Invoice details. Only unpaid invoice details can be updated.
Required parameters¶
hash: | string - invoice hash |
---|
Optional parameters¶
gateway_id: | int - selected payment gateway id |
---|
API call examples¶
- PHP
$result = $api_client->invoice_update($params);
- HTML
{{ client.invoice_update() }}
- JavaScript
bb.post("client/invoice/update", {})
client/invoice/renewal_invoice¶
Generates new invoice for selected order. If unpaid invoice for selected order already exists, new invoice will not be generated, and old invoice hash
is returned
Required parameters¶
order_id: | int - ID of order to generate new invoice for |
---|
API call examples¶
- PHP
$result = $api_client->invoice_renewal_invoice($params);
- HTML
{{ client.invoice_renewal_invoice() }}
- JavaScript
bb.post("client/invoice/renewal_invoice", {})
client/invoice/funds_invoice¶
Deposit money in advance. Generates new invoice for depositing money. Clients currency must be defined.
Required parameters¶
amount: | float - amount to be deposited. |
---|
API call examples¶
- PHP
$result = $api_client->invoice_funds_invoice($params);
- HTML
{{ client.invoice_funds_invoice() }}
- JavaScript
bb.post("client/invoice/funds_invoice", {})
client/invoice/delete¶
Client removes unpaid invoice.
Required parameters¶
hash: | string - invoice hash |
---|
API call examples¶
- PHP
$result = $api_client->invoice_delete($params);
- HTML
{{ client.invoice_delete() }}
- JavaScript
bb.post("client/invoice/delete", {})
client/invoice/transaction_get_list¶
Get paginated list of transactions.
Optional parameters¶
invoice_hash: | string - filter transactions by invoice hash |
---|---|
gateway_id: | int - filter transactions by payment gateway id |
status: | string - filter transactions by status |
currency: | string - filter transactions by currency code |
date_from: | string - filter transactions by date |
date_to: | string - filter transactions by date |
API call examples¶
- PHP
$result = $api_client->invoice_transaction_get_list($params);
- HTML
{{ client.invoice_transaction_get_list() }}
- JavaScript
bb.post("client/invoice/transaction_get_list", {})
Order¶
Client orders management
client/order/get_list¶
Get list of orders
API call examples¶
- PHP
$result = $api_client->order_get_list($params);
- HTML
{{ client.order_get_list() }}
- JavaScript
bb.post("client/order/get_list", {})
client/order/get¶
Get order details
Required parameters¶
id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->order_get($params);
- HTML
{{ client.order_get() }}
- JavaScript
bb.post("client/order/get", {})
client/order/addons¶
Get order addons
Required parameters¶
id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->order_addons($params);
- HTML
{{ client.order_addons() }}
- JavaScript
bb.post("client/order/addons", {})
client/order/service¶
Get order service. Order must be activated before service can be retrieved.
Required parameters¶
id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->order_service($params);
- HTML
{{ client.order_service() }}
- JavaScript
bb.post("client/order/service", {})
Profile¶
Client profile management
client/profile/get¶
Get currently logged in client details
API call examples¶
- PHP
$result = $api_client->profile_get($params);
- HTML
{{ client.profile_get() }}
- JavaScript
bb.post("client/profile/get", {})
client/profile/update¶
Update currently logged in client details
Optional parameters¶
email: | string - new client email. Must not exist on system |
---|---|
last_name: | string - last name |
aid: | string - Alternative id. Usually used by import tools. |
gender: | string - Gender - values: male|female |
country: | string - Country |
city: | string - city |
birthday: | string - Birthday |
company: | string - Company |
company_vat: | string - Company VAT number |
company_number: | string - Company number |
type: | string - Identifies client type: company or individual |
address_1: | string - Address line 1 |
address_2: | string - Address line 2 |
postcode: | string - zip or postcode |
state: | string - country state |
phone: | string - Phone number |
phone_cc: | string - Phone country code |
document_type: | string - Related document type, ie: passpord, driving license |
document_nr: | string - Related document number, ie: passport number: LC45698122 |
notes: | string - Notes about client. Visible for admin only |
lang: | string - language option |
custom_1: | string - Custom field 1 |
custom_2: | string - Custom field 2 |
custom_3: | string - Custom field 3 |
custom_4: | string - Custom field 4 |
custom_5: | string - Custom field 5 |
custom_6: | string - Custom field 6 |
custom_7: | string - Custom field 7 |
custom_8: | string - Custom field 8 |
custom_9: | string - Custom field 9 |
custom_10: | string - Custom field 10 |
API call examples¶
- PHP
$result = $api_client->profile_update($params);
- HTML
{{ client.profile_update() }}
- JavaScript
bb.post("client/profile/update", {})
client/profile/api_key_get¶
Retrieve current API key
API call examples¶
- PHP
$result = $api_client->profile_api_key_get($params);
- HTML
{{ client.profile_api_key_get() }}
- JavaScript
bb.post("client/profile/api_key_get", {})
client/profile/api_key_reset¶
Generate new API key
API call examples¶
- PHP
$result = $api_client->profile_api_key_reset($params);
- HTML
{{ client.profile_api_key_reset() }}
- JavaScript
bb.post("client/profile/api_key_reset", {})
Serviceboxbillinglicense¶
BoxBilling license management
client/serviceboxbillinglicense/reset¶
Reset license information. Usually used when moving BoxBilling to new server.
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->serviceboxbillinglicense_reset($params);
- HTML
{{ client.serviceboxbillinglicense_reset() }}
- JavaScript
bb.post("client/serviceboxbillinglicense/reset", {})
Servicecentovacast¶
CentovaCast management
client/servicecentovacast/control_panel_url¶
Return control panel url for order
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->servicecentovacast_control_panel_url($params);
- HTML
{{ client.servicecentovacast_control_panel_url() }}
- JavaScript
bb.post("client/servicecentovacast/control_panel_url", {})
client/servicecentovacast/start¶
Starts a streaming server for a CentovaCast client account. If server-side streaming source support is enabled,
the streaming source is started as well.
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->servicecentovacast_start($params);
- HTML
{{ client.servicecentovacast_start() }}
- JavaScript
bb.post("client/servicecentovacast/start", {})
client/servicecentovacast/stop¶
Stops a streaming server for a CentovaCast client account. If server-side streaming source support is enabled,
the streaming source is stopped as well.
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->servicecentovacast_stop($params);
- HTML
{{ client.servicecentovacast_stop() }}
- JavaScript
bb.post("client/servicecentovacast/stop", {})
client/servicecentovacast/restart¶
Stops, then re-starts a streaming server for a CentovaCast client account. If server-side streaming source support is enabled, the streaming
source is restarted as well.
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->servicecentovacast_restart($params);
- HTML
{{ client.servicecentovacast_restart() }}
- JavaScript
bb.post("client/servicecentovacast/restart", {})
client/servicecentovacast/reload¶
Reloads the streaming server configuration for a CentovaCast client account. If server-side streaming source support is enabled,
the configuration and playlist for the streaming source is reloaded as well.
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->servicecentovacast_reload($params);
- HTML
{{ client.servicecentovacast_reload() }}
- JavaScript
bb.post("client/servicecentovacast/reload", {})
client/servicecentovacast/getaccount¶
Retrieves the configuration for a CentovaCast client account. If server-side streaming source support is enabled,
the configuration for the streaming source is returned as well.
Required parameters¶
order_id: | int - order id |
---|
Optional parameters¶
try: | bool - do not throw an exception, return error message as a result |
---|
API call examples¶
- PHP
$result = $api_client->servicecentovacast_getaccount($params);
- HTML
{{ client.servicecentovacast_getaccount() }}
- JavaScript
bb.post("client/servicecentovacast/getaccount", {})
client/servicecentovacast/getstatus¶
Retrieves status information from the streaming server for a CentovaCast client account.
Required parameters¶
order_id: | int - order id |
---|
Optional parameters¶
try: | bool - do not throw an exception, return error message as a result |
---|
API call examples¶
- PHP
$result = $api_client->servicecentovacast_getstatus($params);
- HTML
{{ client.servicecentovacast_getstatus() }}
- JavaScript
bb.post("client/servicecentovacast/getstatus", {})
client/servicecentovacast/getsongs¶
Retrieves a list of tracks that were recently broadcasted on a given CentovaCast client’s streaming server.
Required parameters¶
order_id: | int - order id |
---|
Optional parameters¶
try: | bool - do not throw an exception, return error message as a result |
---|
API call examples¶
- PHP
$result = $api_client->servicecentovacast_getsongs($params);
- HTML
{{ client.servicecentovacast_getsongs() }}
- JavaScript
bb.post("client/servicecentovacast/getsongs", {})
Servicecustom¶
Custom product management
client/servicecustom/__call¶
Universal method to call method from plugin Pass any other params and they will be passed to plugin
Required parameters¶
order_id: | int - ID of the order |
---|
API call examples¶
- PHP
$result = $api_client->servicecustom___call($params);
- HTML
{{ client.servicecustom___call() }}
- JavaScript
bb.post("client/servicecustom/__call", {})
Servicedomain¶
Domain service management
client/servicedomain/update_nameservers¶
Change domain nameservers. Method sends action to registrar.
Required parameters¶
order_id: | int - domain order id |
---|---|
ns1: | string - 1 Nameserver hostname, ie: ns1.mydomain.com |
ns2: | string - 2 Nameserver hostname, ie: ns2.mydomain.com |
Optional parameters¶
ns3: | string - 3 Nameserver hostname, ie: ns3.mydomain.com |
---|---|
ns4: | string - 4 Nameserver hostname, ie: ns4.mydomain.com |
API call examples¶
- PHP
$result = $api_client->servicedomain_update_nameservers($params);
- HTML
{{ client.servicedomain_update_nameservers() }}
- JavaScript
bb.post("client/servicedomain/update_nameservers", {})
client/servicedomain/update_contacts¶
Change domain WHOIS contact details. Method sends action to registrar.
Required parameters¶
order_id: | int - domain order id |
---|---|
contact: | array - Contact array must contain these fields: first_name, last_name, email, company, address1, address2, country, city, state, postcode, phone_cc, phone |
API call examples¶
- PHP
$result = $api_client->servicedomain_update_contacts($params);
- HTML
{{ client.servicedomain_update_contacts() }}
- JavaScript
bb.post("client/servicedomain/update_contacts", {})
client/servicedomain/enable_privacy_protection¶
Enable domain privacy protection.
Required parameters¶
order_id: | int - domain order id |
---|
API call examples¶
- PHP
$result = $api_client->servicedomain_enable_privacy_protection($params);
- HTML
{{ client.servicedomain_enable_privacy_protection() }}
- JavaScript
bb.post("client/servicedomain/enable_privacy_protection", {})
client/servicedomain/disable_privacy_protection¶
Disable domain privacy protection.
Required parameters¶
order_id: | int - domain order id |
---|
API call examples¶
- PHP
$result = $api_client->servicedomain_disable_privacy_protection($params);
- HTML
{{ client.servicedomain_disable_privacy_protection() }}
- JavaScript
bb.post("client/servicedomain/disable_privacy_protection", {})
client/servicedomain/get_transfer_code¶
Retireve domain transfer code
Required parameters¶
order_id: | int - domain order id |
---|
API call examples¶
- PHP
$result = $api_client->servicedomain_get_transfer_code($params);
- HTML
{{ client.servicedomain_get_transfer_code() }}
- JavaScript
bb.post("client/servicedomain/get_transfer_code", {})
Servicedownloadable¶
Downloadable service management
client/servicedownloadable/send_file¶
Use GET to call this method. Sends file attached to order. Sends file as attachment.
Required parameters¶
order_id: | int - downloadable service order id |
---|
API call examples¶
- PHP
$result = $api_client->servicedownloadable_send_file($params);
- HTML
{{ client.servicedownloadable_send_file() }}
- JavaScript
bb.post("client/servicedownloadable/send_file", {})
Servicehosting¶
Hosting service management
client/servicehosting/change_username¶
Change hosting account username
Required parameters¶
order_id: | int - Hosting account order id |
---|---|
username: | string - New username |
API call examples¶
- PHP
$result = $api_client->servicehosting_change_username($params);
- HTML
{{ client.servicehosting_change_username() }}
- JavaScript
bb.post("client/servicehosting/change_username", {})
client/servicehosting/change_domain¶
Change hosting account domain
Required parameters¶
order_id: | int - Hosting account order id |
---|---|
password: | string - New second level domain name, ie: mydomain |
password_confirm: | |
string - New top level domain, ie: .com |
API call examples¶
- PHP
$result = $api_client->servicehosting_change_domain($params);
- HTML
{{ client.servicehosting_change_domain() }}
- JavaScript
bb.post("client/servicehosting/change_domain", {})
client/servicehosting/change_password¶
Change hosting account password
Required parameters¶
order_id: | int - Hosting account order id |
---|---|
password: | string - New account password |
password_confirm: | |
string - Repeat new password |
API call examples¶
- PHP
$result = $api_client->servicehosting_change_password($params);
- HTML
{{ client.servicehosting_change_password() }}
- JavaScript
bb.post("client/servicehosting/change_password", {})
Servicelicense¶
License Service management
Servicesolusvm¶
Solusvm service management
client/servicesolusvm/reboot¶
Reboot VPS
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->servicesolusvm_reboot($params);
- HTML
{{ client.servicesolusvm_reboot() }}
- JavaScript
bb.post("client/servicesolusvm/reboot", {})
client/servicesolusvm/boot¶
Boot VPS
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->servicesolusvm_boot($params);
- HTML
{{ client.servicesolusvm_boot() }}
- JavaScript
bb.post("client/servicesolusvm/boot", {})
client/servicesolusvm/shutdown¶
Shutdown VPS
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->servicesolusvm_shutdown($params);
- HTML
{{ client.servicesolusvm_shutdown() }}
- JavaScript
bb.post("client/servicesolusvm/shutdown", {})
client/servicesolusvm/status¶
Get status VPS
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->servicesolusvm_status($params);
- HTML
{{ client.servicesolusvm_status() }}
- JavaScript
bb.post("client/servicesolusvm/status", {})
client/servicesolusvm/info¶
Retrieve more information about vps from sulusvm server
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->servicesolusvm_info($params);
- HTML
{{ client.servicesolusvm_info() }}
- JavaScript
bb.post("client/servicesolusvm/info", {})
client/servicesolusvm/set_root_password¶
Change root password for VPS
Required parameters¶
order_id: | int - order id |
---|---|
password: | string - new password |
API call examples¶
- PHP
$result = $api_client->servicesolusvm_set_root_password($params);
- HTML
{{ client.servicesolusvm_set_root_password() }}
- JavaScript
bb.post("client/servicesolusvm/set_root_password", {})
client/servicesolusvm/set_hostname¶
Change hostname for VPS
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_client->servicesolusvm_set_hostname($params);
- HTML
{{ client.servicesolusvm_set_hostname() }}
- JavaScript
bb.post("client/servicesolusvm/set_hostname", {})
client/servicesolusvm/change_password¶
Change client area password for solusvm user
Required parameters¶
order_id: | int - order id |
---|---|
password: | string - new password |
API call examples¶
- PHP
$result = $api_client->servicesolusvm_change_password($params);
- HTML
{{ client.servicesolusvm_change_password() }}
- JavaScript
bb.post("client/servicesolusvm/change_password", {})
client/servicesolusvm/rebuild¶
Rebuild vps operating system with new template
Required parameters¶
order_id: | int - order id |
---|---|
template: | string - template idetification |
API call examples¶
- PHP
$result = $api_client->servicesolusvm_rebuild($params);
- HTML
{{ client.servicesolusvm_rebuild() }}
- JavaScript
bb.post("client/servicesolusvm/rebuild", {})
Serviceyouhosting¶
Youhosting service management
client/serviceyouhosting/info¶
Get order info
API call examples¶
- PHP
$result = $api_client->serviceyouhosting_info($params);
- HTML
{{ client.serviceyouhosting_info() }}
- JavaScript
bb.post("client/serviceyouhosting/info", {})
client/serviceyouhosting/captcha¶
Get captcha information
API call examples¶
- PHP
$result = $api_client->serviceyouhosting_captcha($params);
- HTML
{{ client.serviceyouhosting_captcha() }}
- JavaScript
bb.post("client/serviceyouhosting/captcha", {})
client/serviceyouhosting/activate¶
Activate order
Required parameters¶
captcha_id: | int - captcha id |
---|---|
order_id: | int - order id |
captcha_solution: | |
string - captcha solution |
API call examples¶
- PHP
$result = $api_client->serviceyouhosting_activate($params);
- HTML
{{ client.serviceyouhosting_activate() }}
- JavaScript
bb.post("client/serviceyouhosting/activate", {})
Support¶
Client support tickets management
client/support/ticket_get_list¶
Get client tickets list
Optional parameters¶
:: string status - filter tickets by status :: string date_from - show tickets created since this day. Can be any string parsable by strtotime() :: string date_to - show tickets created until this day. Can be any string parsable by strtotime()
API call examples¶
- PHP
$result = $api_client->support_ticket_get_list($params);
- HTML
{{ client.support_ticket_get_list() }}
- JavaScript
bb.post("client/support/ticket_get_list", {})
client/support/ticket_get¶
Return ticket full details
Required parameters¶
id: | int - ticket id |
---|
API call examples¶
- PHP
$result = $api_client->support_ticket_get($params);
- HTML
{{ client.support_ticket_get() }}
- JavaScript
bb.post("client/support/ticket_get", {})
client/support/helpdesk_get_pairs¶
Return pairs for support helpdesk. Can be used to populate select box.
API call examples¶
- PHP
$result = $api_client->support_helpdesk_get_pairs($params);
- HTML
{{ client.support_helpdesk_get_pairs() }}
- JavaScript
bb.post("client/support/helpdesk_get_pairs", {})
client/support/ticket_create¶
Method to create open new ticket. Tickets can have tasks assigned to them via optional parameters.
Required parameters¶
content: | string - ticket message content |
---|---|
subject: | string - ticket subject |
support_helpdesk_id: | |
string - Ticket helpdesk id. |
Optional parameters¶
rel_type: | int - Ticket relation type |
---|---|
rel_id: | int - Ticket relation id |
rel_task: | int - Ticket task codename |
rel_new_value: | int - Task can have new value assigned. |
API call examples¶
- PHP
$result = $api_client->support_ticket_create($params);
- HTML
{{ client.support_ticket_create() }}
- JavaScript
bb.post("client/support/ticket_create", {})
client/support/ticket_reply¶
Add new conversation message to ticket. Ticket will be reopened if closed
Required parameters¶
id: | int - ticket id |
---|---|
content: | string - ticket message |
API call examples¶
- PHP
$result = $api_client->support_ticket_reply($params);
- HTML
{{ client.support_ticket_reply() }}
- JavaScript
bb.post("client/support/ticket_reply", {})
Admin API¶
This document is the API specification for BoxBilling
Activity¶
System activity messages management
admin/activity/log_get_list¶
Get list of activity messages
API call examples¶
- PHP
$result = $api_admin->activity_log_get_list($params);
- HTML
{{ admin.activity_log_get_list() }}
- JavaScript
bb.post("admin/activity/log_get_list", {})
admin/activity/log¶
Add message to log
Required parameters¶
m: | string - Message text |
---|
Optional parameters¶
admin_id: | int - admin id |
---|---|
client_id: | int - client id |
priority: | string - log priority |
API call examples¶
- PHP
$result = $api_admin->activity_log($params);
- HTML
{{ admin.activity_log() }}
- JavaScript
bb.post("admin/activity/log", {})
Cart¶
Shopping cart management
admin/cart/get_list¶
Get list of currently active carts. Carts are removed after checkout.
API call examples¶
- PHP
$result = $api_admin->cart_get_list($params);
- HTML
{{ admin.cart_get_list() }}
- JavaScript
bb.post("admin/cart/get_list", {})
Client¶
Client management
admin/client/get_list¶
Get list of clients
Optional parameters¶
status: | string - Filters client by status. Available options: active, suspended, canceled |
---|
API call examples¶
- PHP
$result = $api_admin->client_get_list($params);
- HTML
{{ admin.client_get_list() }}
- JavaScript
bb.post("admin/client/get_list", {})
admin/client/get_pairs¶
Get clients index
API call examples¶
- PHP
$result = $api_admin->client_get_pairs($params);
- HTML
{{ admin.client_get_pairs() }}
- JavaScript
bb.post("admin/client/get_pairs", {})
admin/client/get¶
Get client by id or email. Email is also unique in database
Required parameters¶
id: | int - client ID |
---|
Optional parameters¶
email: | string - client email |
---|
API call examples¶
- PHP
$result = $api_admin->client_get($params);
- HTML
{{ admin.client_get() }}
- JavaScript
bb.post("admin/client/get", {})
admin/client/login¶
Login to clients area with client id
Required parameters¶
id: | int - client ID |
---|
API call examples¶
- PHP
$result = $api_admin->client_login($params);
- HTML
{{ admin.client_login() }}
- JavaScript
bb.post("admin/client/login", {})
admin/client/create¶
Creates new client
Required parameters¶
email: | string - client email, must not be registered on system |
---|---|
first_name: | string - client first name |
Optional parameters¶
password: | string - client password |
---|---|
auth_type: | string - client authorization type. Default null |
last_name: | string - client last name |
aid: | string - alternative ID. If you import clients from other systems you can use this field to store foreign system ID |
group_id: | string - client group id |
status: | string - client status: “active, suspended, canceled” |
created_at: | string - ISO 8601 date for client creation date |
last_name: | string - last name |
aid: | string - Alternative id. Usually used by import tools. |
gender: | string - Gender - values: male|female |
country: | string - Country |
city: | string - city |
birthday: | string - Birthday |
company: | string - Company |
company_vat: | string - Company VAT number |
company_number: | string - Company number |
type: | string - Identifies client type: company or individual |
address_1: | string - Address line 1 |
address_2: | string - Address line 2 |
postcode: | string - zip or postcode |
state: | string - country state |
phone: | string - Phone number |
phone_cc: | string - Phone country code |
document_type: | string - Related document type, ie: passport, driving license |
document_nr: | string - Related document number, ie: passport number: LC45698122 |
notes: | string - Notes about client. Visible for admin only |
lang: | string - Client language |
custom_1: | string - Custom field 1 |
custom_2: | string - Custom field 2 |
custom_3: | string - Custom field 3 |
custom_4: | string - Custom field 4 |
custom_5: | string - Custom field 5 |
custom_6: | string - Custom field 6 |
custom_7: | string - Custom field 7 |
custom_8: | string - Custom field 8 |
custom_9: | string - Custom field 9 |
custom_10: | string - Custom field 10 |
API call examples¶
- PHP
$result = $api_admin->client_create($params);
- HTML
{{ admin.client_create() }}
- JavaScript
bb.post("admin/client/create", {})
admin/client/delete¶
Deletes client from system
Required parameters¶
id: | string - client ID |
---|
API call examples¶
- PHP
$result = $api_admin->client_delete($params);
- HTML
{{ admin.client_delete() }}
- JavaScript
bb.post("admin/client/delete", {})
admin/client/update¶
Update client profile
Required parameters¶
id: | string - client ID |
---|
Optional parameters¶
email: | string - client email |
---|---|
first_name: | string - client first_name |
last_name: | string - client last_name |
status: | string - client status |
last_name: | string - last name |
aid: | string - Alternative id. Usually used by import tools. |
gender: | string - Gender - values: male|female |
country: | string - Country |
city: | string - city |
birthday: | string - Birthday |
company: | string - Company |
company_vat: | string - Company VAT number |
company_number: | string - Company number |
type: | string - Identifies client type: company or individual |
address_1: | string - Address line 1 |
address_2: | string - Address line 2 |
postcode: | string - zip or postcode |
state: | string - country state |
phone: | string - Phone number |
phone_cc: | string - Phone country code |
document_type: | string - Related document type, ie: passport, driving license |
document_nr: | string - Related document number, ie: passport number: LC45698122 |
lang: | string - Client language |
notes: | string - Notes about client. Visible for admin only |
custom_1: | string - Custom field 1 |
custom_2: | string - Custom field 2 |
custom_3: | string - Custom field 3 |
custom_4: | string - Custom field 4 |
custom_5: | string - Custom field 5 |
custom_6: | string - Custom field 6 |
custom_7: | string - Custom field 7 |
custom_8: | string - Custom field 8 |
custom_9: | string - Custom field 9 |
custom_10: | string - Custom field 10 |
API call examples¶
- PHP
$result = $api_admin->client_update($params);
- HTML
{{ admin.client_update() }}
- JavaScript
bb.post("admin/client/update", {})
admin/client/change_password¶
Change client password
Required parameters¶
id: | int - Client ID |
---|---|
password: | string - new client password |
password_confirm: | |
string - repeat same new client password |
API call examples¶
- PHP
$result = $api_admin->client_change_password($params);
- HTML
{{ admin.client_change_password() }}
- JavaScript
bb.post("admin/client/change_password", {})
admin/client/balance_get_list¶
Returns list of client payments
API call examples¶
- PHP
$result = $api_admin->client_balance_get_list($params);
- HTML
{{ admin.client_balance_get_list() }}
- JavaScript
bb.post("admin/client/balance_get_list", {})
admin/client/balance_delete¶
Remove ro from clients balance
Required parameters¶
id: | int - Balance line id |
---|
API call examples¶
- PHP
$result = $api_admin->client_balance_delete($params);
- HTML
{{ admin.client_balance_delete() }}
- JavaScript
bb.post("admin/client/balance_delete", {})
admin/client/balance_add_funds¶
Adds funds to clients balance
Required parameters¶
id: | int - Client ID |
---|---|
amount: | int - Amount of clients currency to added to balance |
description: | int - Description of this transaction |
Optional parameters¶
type: | string - Related item type |
---|---|
rel_id: | string - Related item id |
API call examples¶
- PHP
$result = $api_admin->client_balance_add_funds($params);
- HTML
{{ admin.client_balance_add_funds() }}
- JavaScript
bb.post("admin/client/balance_add_funds", {})
admin/client/batch_expire_password_reminders¶
Remove password reminders which were not confirmed in 2 hours
API call examples¶
- PHP
$result = $api_admin->client_batch_expire_password_reminders($params);
- HTML
{{ admin.client_batch_expire_password_reminders() }}
- JavaScript
bb.post("admin/client/batch_expire_password_reminders", {})
admin/client/login_history_get_list¶
Get list of clients logins history
Optional parameters¶
client_id: | int - filter by client |
---|
API call examples¶
- PHP
$result = $api_admin->client_login_history_get_list($params);
- HTML
{{ admin.client_login_history_get_list() }}
- JavaScript
bb.post("admin/client/login_history_get_list", {})
admin/client/login_history_delete¶
Remove log entry form clients logins history
Required parameters¶
id: | int - Log entry ID |
---|
API call examples¶
- PHP
$result = $api_admin->client_login_history_delete($params);
- HTML
{{ admin.client_login_history_delete() }}
- JavaScript
bb.post("admin/client/login_history_delete", {})
admin/client/get_statuses¶
Return client statuses with counter.
API call examples¶
- PHP
$result = $api_admin->client_get_statuses($params);
- HTML
{{ admin.client_get_statuses() }}
- JavaScript
bb.post("admin/client/get_statuses", {})
admin/client/group_get_pairs¶
Return client groups. Id and title pairs
API call examples¶
- PHP
$result = $api_admin->client_group_get_pairs($params);
- HTML
{{ admin.client_group_get_pairs() }}
- JavaScript
bb.post("admin/client/group_get_pairs", {})
admin/client/group_create¶
Create new clients group
Required parameters¶
title: | string - New group title |
---|
API call examples¶
- PHP
$result = $api_admin->client_group_create($params);
- HTML
{{ admin.client_group_create() }}
- JavaScript
bb.post("admin/client/group_create", {})
admin/client/group_update¶
Update client group
Required parameters¶
id: | int - client group ID |
---|
Optional parameters¶
title: | string - new group title |
---|
API call examples¶
- PHP
$result = $api_admin->client_group_update($params);
- HTML
{{ admin.client_group_update() }}
- JavaScript
bb.post("admin/client/group_update", {})
Cron¶
Cron management
Currency¶
Currency management
admin/currency/get_list¶
Get list of available currencies on system
API call examples¶
- PHP
$result = $api_admin->currency_get_list($params);
- HTML
{{ admin.currency_get_list() }}
- JavaScript
bb.post("admin/currency/get_list", {})
admin/currency/get_pairs¶
Get code title pairs of currencies
API call examples¶
- PHP
$result = $api_admin->currency_get_pairs($params);
- HTML
{{ admin.currency_get_pairs() }}
- JavaScript
bb.post("admin/currency/get_pairs", {})
admin/currency/get¶
Return currency details by cde
Required parameters¶
code: | string - currency code USD |
---|
API call examples¶
- PHP
$result = $api_admin->currency_get($params);
- HTML
{{ admin.currency_get() }}
- JavaScript
bb.post("admin/currency/get", {})
admin/currency/get_default¶
Return default system currency
API call examples¶
- PHP
$result = $api_admin->currency_get_default($params);
- HTML
{{ admin.currency_get_default() }}
- JavaScript
bb.post("admin/currency/get_default", {})
admin/currency/create¶
Add new currency to system
Required parameters¶
code: | string - currency ISO 4217 code |
---|---|
format: | string - must have {{price}} tag. |
Optional parameters¶
title: | string - custom currency title |
---|
API call examples¶
- PHP
$result = $api_admin->currency_create($params);
- HTML
{{ admin.currency_create() }}
- JavaScript
bb.post("admin/currency/create", {})
admin/currency/update¶
Updates system currency settings
Required parameters¶
code: | string - currency ISO 4217 code |
---|
Optional parameters¶
title: | string - new currency title |
---|---|
format: | string - new currency format |
conversion_rate: | |
float - new currency conversion rate |
API call examples¶
- PHP
$result = $api_admin->currency_update($params);
- HTML
{{ admin.currency_update() }}
- JavaScript
bb.post("admin/currency/update", {})
admin/currency/update_rates¶
Automatically update all currency rates by Google exchange rates
API call examples¶
- PHP
$result = $api_admin->currency_update_rates($params);
- HTML
{{ admin.currency_update_rates() }}
- JavaScript
bb.post("admin/currency/update_rates", {})
admin/currency/delete¶
Remove currency. Default currency can not be removed.
Required parameters¶
code: | string - currency ISO 4217 code |
---|
API call examples¶
- PHP
$result = $api_admin->currency_delete($params);
- HTML
{{ admin.currency_delete() }}
- JavaScript
bb.post("admin/currency/delete", {})
admin/currency/set_default¶
Set default currency. If you have active orders or invoices not recalculation on profits and refunds are made.
Required parameters¶
code: | string - currency ISO 4217 code |
---|
API call examples¶
- PHP
$result = $api_admin->currency_set_default($params);
- HTML
{{ admin.currency_set_default() }}
- JavaScript
bb.post("admin/currency/set_default", {})
Email¶
Email logs and templates management
admin/email/email_get_list¶
Get list of sent emails
API call examples¶
- PHP
$result = $api_admin->email_email_get_list($params);
- HTML
{{ admin.email_email_get_list() }}
- JavaScript
bb.post("admin/email/email_get_list", {})
admin/email/email_get¶
Get sent email details
Required parameters¶
id: | int - email ID |
---|
API call examples¶
- PHP
$result = $api_admin->email_email_get($params);
- HTML
{{ admin.email_email_get() }}
- JavaScript
bb.post("admin/email/email_get", {})
admin/email/send¶
Email send
Required parameters¶
to: | string - email to |
---|---|
to_name: | string - to name |
from_name: | string - from name |
from: | string - from email |
subject: | string - from email |
content: | string - from email |
Optional parameters¶
client_id: | int - log this message to client history |
---|
API call examples¶
- PHP
$result = $api_admin->email_send($params);
- HTML
{{ admin.email_send() }}
- JavaScript
bb.post("admin/email/send", {})
admin/email/email_resend¶
Resend email
Required parameters¶
id: | int - email ID |
---|
API call examples¶
- PHP
$result = $api_admin->email_email_resend($params);
- HTML
{{ admin.email_email_resend() }}
- JavaScript
bb.post("admin/email/email_resend", {})
admin/email/email_delete¶
Delete sent email from logs
Required parameters¶
id: | int - email ID |
---|
API call examples¶
- PHP
$result = $api_admin->email_email_delete($params);
- HTML
{{ admin.email_email_delete() }}
- JavaScript
bb.post("admin/email/email_delete", {})
admin/email/template_get_list¶
Return list of email templates
API call examples¶
- PHP
$result = $api_admin->email_template_get_list($params);
- HTML
{{ admin.email_template_get_list() }}
- JavaScript
bb.post("admin/email/template_get_list", {})
admin/email/template_get¶
Get email template full details
Required parameters¶
id: | int - template id |
---|
API call examples¶
- PHP
$result = $api_admin->email_template_get($params);
- HTML
{{ admin.email_template_get() }}
- JavaScript
bb.post("admin/email/template_get", {})
admin/email/template_delete¶
Delete email template
Required parameters¶
id: | int - email template ID |
---|
API call examples¶
- PHP
$result = $api_admin->email_template_delete($params);
- HTML
{{ admin.email_template_delete() }}
- JavaScript
bb.post("admin/email/template_delete", {})
admin/email/template_create¶
Create new email template. Creating new email template can be combined with custom event hook.
Required parameters¶
action_code: | string - template action code |
---|---|
subject: | string - Email subject |
content: | string - Email body |
API call examples¶
- PHP
$result = $api_admin->email_template_create($params);
- HTML
{{ admin.email_template_create() }}
- JavaScript
bb.post("admin/email/template_create", {})
admin/email/template_update¶
Update email template
Required parameters¶
id: | int - template id |
---|
API call examples¶
- PHP
$result = $api_admin->email_template_update($params);
- HTML
{{ admin.email_template_update() }}
- JavaScript
bb.post("admin/email/template_update", {})
admin/email/template_send¶
Send email template to email, client or staff members. If template with code does not exist, it will be created. Default email template file must exist at mod_example/html_email/mod_example_code.phtml file
Required parameters¶
code: | string - Template code to send. Must be mod_%s_%s structure |
---|
Optional parameters¶
to_staff: | string - True to send to all active staff members. Default false |
---|---|
to_client: | string - Set client ID to send email to client. Default null |
to: | string - receivers email |
from: | string - from email. Default - company email |
from_name: | string - from name. Default - company name |
default_subject: | |
string - Default email subject if template does not exist | |
default_template: | |
string - Default email content if template does not exist | |
default_description: | |
string - Default template description if template does not exist. | |
custom: | mixed - All parameters passed to this method are also available in email template: {{ custom }} |
API call examples¶
- PHP
$result = $api_admin->email_template_send($params);
- HTML
{{ admin.email_template_send() }}
- JavaScript
bb.post("admin/email/template_send", {})
admin/email/template_reset¶
Reset email template to default
Required parameters¶
code: | string - template code |
---|
API call examples¶
- PHP
$result = $api_admin->email_template_reset($params);
- HTML
{{ admin.email_template_reset() }}
- JavaScript
bb.post("admin/email/template_reset", {})
admin/email/template_render¶
Generates email template preview
Required parameters¶
id: | int - template id |
---|
Optional parameters¶
_tpl: | string - string to be rendered. Default is email template. |
---|
API call examples¶
- PHP
$result = $api_admin->email_template_render($params);
- HTML
{{ admin.email_template_render() }}
- JavaScript
bb.post("admin/email/template_render", {})
admin/email/batch_template_generate¶
Generate email templates according to enabled extensions
API call examples¶
- PHP
$result = $api_admin->email_batch_template_generate($params);
- HTML
{{ admin.email_batch_template_generate() }}
- JavaScript
bb.post("admin/email/batch_template_generate", {})
admin/email/batch_template_disable¶
Disable all email templates at once.
API call examples¶
- PHP
$result = $api_admin->email_batch_template_disable($params);
- HTML
{{ admin.email_batch_template_disable() }}
- JavaScript
bb.post("admin/email/batch_template_disable", {})
Extension¶
admin/extension/get_list¶
Get list of active and inactive extensions on system
Optional parameters¶
installed: | bool - return installed only extensions |
---|---|
active: | bool - return installed and core extensions |
has_settings: | bool - return extensions with configuration pages only |
search: | string - filter extensions by search keyword |
type: | string - filter extensions by type |
API call examples¶
- PHP
$result = $api_admin->extension_get_list($params);
- HTML
{{ admin.extension_get_list() }}
- JavaScript
bb.post("admin/extension/get_list", {})
admin/extension/get_latest¶
Get list of extensions from extensions.boxbilling.com which can be installed on current version of BoxBilling
Required parameters¶
type: | string - mod, gateway … |
---|
API call examples¶
- PHP
$result = $api_admin->extension_get_latest($params);
- HTML
{{ admin.extension_get_latest() }}
- JavaScript
bb.post("admin/extension/get_latest", {})
admin/extension/languages¶
Get list of available languages on the system
API call examples¶
- PHP
$result = $api_admin->extension_languages($params);
- HTML
{{ admin.extension_languages() }}
- JavaScript
bb.post("admin/extension/languages", {})
admin/extension/update_core¶
Update BoxBilling core
API call examples¶
- PHP
$result = $api_admin->extension_update_core($params);
- HTML
{{ admin.extension_update_core() }}
- JavaScript
bb.post("admin/extension/update_core", {})
admin/extension/update¶
Update existing extension
Required parameters¶
type: | string - extensions type: mod, theme, gateway … |
---|---|
id: | string - extension id |
API call examples¶
- PHP
$result = $api_admin->extension_update($params);
- HTML
{{ admin.extension_update() }}
- JavaScript
bb.post("admin/extension/update", {})
admin/extension/activate¶
Activate existing extension
Required parameters¶
type: | string - extensions type: mod, theme, gateway … |
---|---|
id: | string - extension id |
API call examples¶
- PHP
$result = $api_admin->extension_activate($params);
- HTML
{{ admin.extension_activate() }}
- JavaScript
bb.post("admin/extension/activate", {})
admin/extension/deactivate¶
Deactivate existing extension
Required parameters¶
type: | string - extensions type: mod, theme, gateway … |
---|---|
id: | string - extension id |
API call examples¶
- PHP
$result = $api_admin->extension_deactivate($params);
- HTML
{{ admin.extension_deactivate() }}
- JavaScript
bb.post("admin/extension/deactivate", {})
admin/extension/uninstall¶
Completely remove extension from BoxBilling
Required parameters¶
type: | string - extensions type: mod, theme, gateway … |
---|---|
id: | string - extension id |
API call examples¶
- PHP
$result = $api_admin->extension_uninstall($params);
- HTML
{{ admin.extension_uninstall() }}
- JavaScript
bb.post("admin/extension/uninstall", {})
admin/extension/install¶
Install new extension from extensions site
Required parameters¶
type: | string - extensions type: mod, theme, gateway … |
---|---|
id: | string - extension id |
API call examples¶
- PHP
$result = $api_admin->extension_install($params);
- HTML
{{ admin.extension_install() }}
- JavaScript
bb.post("admin/extension/install", {})
admin/extension/config_get¶
Universal method for BoxBilling extensions to retrieve configuration from database
It is recommended to store your extension configuration using this method. Automatic decryption is available
Required parameters¶
ext: | string - extension name, ie: mod_news |
---|
API call examples¶
- PHP
$result = $api_admin->extension_config_get($params);
- HTML
{{ admin.extension_config_get() }}
- JavaScript
bb.post("admin/extension/config_get", {})
admin/extension/config_save¶
Universal method for BoxBilling extensions to update or save extension configuration to database
Always pass all configuration parameters to this method.
Config is automatically encrypted and stored in database
Required parameters¶
ext: | string - extension name, ie: mod_news |
---|
Optional parameters¶
any: | string - Any variable passed to this method is config parameter |
---|
API call examples¶
- PHP
$result = $api_admin->extension_config_save($params);
- HTML
{{ admin.extension_config_save() }}
- JavaScript
bb.post("admin/extension/config_save", {})
Filemanager¶
File manager
All paths are relative to BoxBilling installation path Files under BoxBilling installation path can not be managed
admin/filemanager/save_file¶
Save file contents
Required parameters¶
path: | string - path to the file |
---|---|
data: | string - new file contents |
API call examples¶
- PHP
$result = $api_admin->filemanager_save_file($params);
- HTML
{{ admin.filemanager_save_file() }}
- JavaScript
bb.post("admin/filemanager/save_file", {})
admin/filemanager/new_item¶
Create new file or directory
Required parameters¶
path: | string - item save path |
---|---|
type: | string - item type: dir|file |
API call examples¶
- PHP
$result = $api_admin->filemanager_new_item($params);
- HTML
{{ admin.filemanager_new_item() }}
- JavaScript
bb.post("admin/filemanager/new_item", {})
admin/filemanager/move_file¶
Move/Rename file
Required parameters¶
path: | string - filepath to file which is going to be moved |
---|---|
to: | string - new folder path. Do not include basename |
API call examples¶
- PHP
$result = $api_admin->filemanager_move_file($params);
- HTML
{{ admin.filemanager_move_file() }}
- JavaScript
bb.post("admin/filemanager/move_file", {})
Formbuilder¶
Manage custom orders forms
admin/formbuilder/get_pairs¶
Get available order forms
API call examples¶
- PHP
$result = $api_admin->formbuilder_get_pairs($params);
- HTML
{{ admin.formbuilder_get_pairs() }}
- JavaScript
bb.post("admin/formbuilder/get_pairs", {})
admin/formbuilder/create¶
Create or Update custom order form for product
Required parameters¶
title: | string - order form title |
---|
API call examples¶
- PHP
$result = $api_admin->formbuilder_create($params);
- HTML
{{ admin.formbuilder_create() }}
- JavaScript
bb.post("admin/formbuilder/create", {})
admin/formbuilder/get¶
Get custom order form details for product
Required parameters¶
product_id: | int - Product id |
---|
API call examples¶
- PHP
$result = $api_admin->formbuilder_get($params);
- HTML
{{ admin.formbuilder_get() }}
- JavaScript
bb.post("admin/formbuilder/get", {})
admin/formbuilder/copy¶
Duplicate form
Required parameters¶
id: | int - form id |
---|
API call examples¶
- PHP
$result = $api_admin->formbuilder_copy($params);
- HTML
{{ admin.formbuilder_copy() }}
- JavaScript
bb.post("admin/formbuilder/copy", {})
admin/formbuilder/import¶
Import form settings
Required parameters¶
form: | string - form data encoded in JSON format |
---|
API call examples¶
- PHP
$result = $api_admin->formbuilder_import($params);
- HTML
{{ admin.formbuilder_import() }}
- JavaScript
bb.post("admin/formbuilder/import", {})
admin/formbuilder/delete¶
Delete form
Required parameters¶
id: | int - form id |
---|
API call examples¶
- PHP
$result = $api_admin->formbuilder_delete($params);
- HTML
{{ admin.formbuilder_delete() }}
- JavaScript
bb.post("admin/formbuilder/delete", {})
admin/formbuilder/update¶
Update form
Required parameters¶
id: | int - form id |
---|
API call examples¶
- PHP
$result = $api_admin->formbuilder_update($params);
- HTML
{{ admin.formbuilder_update() }}
- JavaScript
bb.post("admin/formbuilder/update", {})
admin/formbuilder/addfield¶
Add new field to form
Required parameters¶
id: | int - form id |
---|---|
type: | int - form field type |
label: | string - form field label |
API call examples¶
- PHP
$result = $api_admin->formbuilder_addfield($params);
- HTML
{{ admin.formbuilder_addfield() }}
- JavaScript
bb.post("admin/formbuilder/addfield", {})
Forum¶
Forum management
admin/forum/get_pairs¶
Get pairs of forums
API call examples¶
- PHP
$result = $api_admin->forum_get_pairs($params);
- HTML
{{ admin.forum_get_pairs() }}
- JavaScript
bb.post("admin/forum/get_pairs", {})
admin/forum/get_list¶
Get paginated list of forums
API call examples¶
- PHP
$result = $api_admin->forum_get_list($params);
- HTML
{{ admin.forum_get_list() }}
- JavaScript
bb.post("admin/forum/get_list", {})
admin/forum/get_categories¶
Get forums list grouped by category name
API call examples¶
- PHP
$result = $api_admin->forum_get_categories($params);
- HTML
{{ admin.forum_get_categories() }}
- JavaScript
bb.post("admin/forum/get_categories", {})
admin/forum/get¶
Get forum details
Required parameters¶
id: | int - forum id |
---|
API call examples¶
- PHP
$result = $api_admin->forum_get($params);
- HTML
{{ admin.forum_get() }}
- JavaScript
bb.post("admin/forum/get", {})
admin/forum/create¶
Create new forum
Required parameters¶
title: | string - new forum title |
---|
Optional parameters¶
category: | string - new forum category |
---|
API call examples¶
- PHP
$result = $api_admin->forum_create($params);
- HTML
{{ admin.forum_create() }}
- JavaScript
bb.post("admin/forum/create", {})
admin/forum/update¶
Update existing forum
Required parameters¶
id: | int - forum id |
---|
Optional parameters¶
category: | string - new forum category |
---|---|
title: | string - new forum title |
status: | string - new forum status |
slug: | string - new forum slug |
description: | string - new forum description |
priority: | string - new forum priority |
API call examples¶
- PHP
$result = $api_admin->forum_update($params);
- HTML
{{ admin.forum_update() }}
- JavaScript
bb.post("admin/forum/update", {})
admin/forum/update_priority¶
Change forums sorting order
Required parameters¶
priority: | array - forum id => priority pairs |
---|
API call examples¶
- PHP
$result = $api_admin->forum_update_priority($params);
- HTML
{{ admin.forum_update_priority() }}
- JavaScript
bb.post("admin/forum/update_priority", {})
admin/forum/delete¶
Remove forum with all topics
Required parameters¶
id: | int - forum id |
---|
API call examples¶
- PHP
$result = $api_admin->forum_delete($params);
- HTML
{{ admin.forum_delete() }}
- JavaScript
bb.post("admin/forum/delete", {})
admin/forum/topic_get_list¶
Get paginated list of topics
API call examples¶
- PHP
$result = $api_admin->forum_topic_get_list($params);
- HTML
{{ admin.forum_topic_get_list() }}
- JavaScript
bb.post("admin/forum/topic_get_list", {})
admin/forum/topic_get¶
Get topic details
Required parameters¶
id: | int - topic id |
---|
API call examples¶
- PHP
$result = $api_admin->forum_topic_get($params);
- HTML
{{ admin.forum_topic_get() }}
- JavaScript
bb.post("admin/forum/topic_get", {})
admin/forum/topic_delete¶
Remove topic
Required parameters¶
id: | int - topic id |
---|
API call examples¶
- PHP
$result = $api_admin->forum_topic_delete($params);
- HTML
{{ admin.forum_topic_delete() }}
- JavaScript
bb.post("admin/forum/topic_delete", {})
admin/forum/topic_create¶
Create new topic
Required parameters¶
forum_id: | int - forum id |
---|---|
title: | string - topic title |
message: | string - topic message |
Optional parameters¶
status: | string - initial topic status |
---|
API call examples¶
- PHP
$result = $api_admin->forum_topic_create($params);
- HTML
{{ admin.forum_topic_create() }}
- JavaScript
bb.post("admin/forum/topic_create", {})
admin/forum/topic_update¶
Update forum topic
Required parameters¶
id: | int - topic id |
---|
Optional parameters¶
title: | string - topic title |
---|---|
message: | string - topic message |
status: | string - topic status |
slug: | string - topic slug |
views: | int - topic views count |
sticky: | bool - topic sticky flag |
API call examples¶
- PHP
$result = $api_admin->forum_topic_update($params);
- HTML
{{ admin.forum_topic_update() }}
- JavaScript
bb.post("admin/forum/topic_update", {})
admin/forum/message_get_list¶
Get topic messages list
Optional parameters¶
forum_topic_id: | int - topic id |
---|---|
client_id: | int - filter by client id |
with_points: | bool - get messages with points only |
API call examples¶
- PHP
$result = $api_admin->forum_message_get_list($params);
- HTML
{{ admin.forum_message_get_list() }}
- JavaScript
bb.post("admin/forum/message_get_list", {})
admin/forum/message_get¶
Get forum topic message
Required parameters¶
id: | int - message id |
---|
API call examples¶
- PHP
$result = $api_admin->forum_message_get($params);
- HTML
{{ admin.forum_message_get() }}
- JavaScript
bb.post("admin/forum/message_get", {})
admin/forum/message_update¶
Update forum topic message
Required parameters¶
id: | int - message id |
---|
Optional parameters¶
message: | string - topic message |
---|
API call examples¶
- PHP
$result = $api_admin->forum_message_update($params);
- HTML
{{ admin.forum_message_update() }}
- JavaScript
bb.post("admin/forum/message_update", {})
admin/forum/message_delete¶
Delete topic message
Required parameters¶
id: | int - message id |
---|
API call examples¶
- PHP
$result = $api_admin->forum_message_delete($params);
- HTML
{{ admin.forum_message_delete() }}
- JavaScript
bb.post("admin/forum/message_delete", {})
admin/forum/message_create¶
Post new message to topic
Required parameters¶
forum_topic_id: | int - forum topic id |
---|---|
message: | string - topic message |
API call examples¶
- PHP
$result = $api_admin->forum_message_create($params);
- HTML
{{ admin.forum_message_create() }}
- JavaScript
bb.post("admin/forum/message_create", {})
admin/forum/points_deduct¶
Decline post. Post will be considered as not worth the points.
Required parameters¶
id: | int - message id |
---|
API call examples¶
- PHP
$result = $api_admin->forum_points_deduct($params);
- HTML
{{ admin.forum_points_deduct() }}
- JavaScript
bb.post("admin/forum/points_deduct", {})
Hook¶
Hooks management module
admin/hook/get_list¶
Get paginated list of hooks
API call examples¶
- PHP
$result = $api_admin->hook_get_list($params);
- HTML
{{ admin.hook_get_list() }}
- JavaScript
bb.post("admin/hook/get_list", {})
admin/hook/call¶
Invoke hook with params
Required parameters¶
event: | string - event name, ie: onEventBeforeInvoiceIsDue |
---|
Optional parameters¶
params: | array - what params are passed to event method $event->getParams() |
---|
API call examples¶
- PHP
$result = $api_admin->hook_call($params);
- HTML
{{ admin.hook_call() }}
- JavaScript
bb.post("admin/hook/call", {})
admin/hook/batch_connect¶
Reinstall and activate all existing hooks from module or all activated modules. Does not connect already connected event
Optional parameters¶
mod: | string - module name to connect hooks |
---|
API call examples¶
- PHP
$result = $api_admin->hook_batch_connect($params);
- HTML
{{ admin.hook_batch_connect() }}
- JavaScript
bb.post("admin/hook/batch_connect", {})
Invoice¶
Invoice management API
admin/invoice/get_list¶
Returns paginated list of invoices
API call examples¶
- PHP
$result = $api_admin->invoice_get_list($params);
- HTML
{{ admin.invoice_get_list() }}
- JavaScript
bb.post("admin/invoice/get_list", {})
admin/invoice/get¶
Get invoice details
Required parameters¶
id: | int - invoice id |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_get($params);
- HTML
{{ admin.invoice_get() }}
- JavaScript
bb.post("admin/invoice/get", {})
admin/invoice/mark_as_paid¶
Sets invoce status to paid. This method differs from invoice update method in a way that it sends notification to Events system, so emails are sent.
Also this will try to automatically apply payment if clients balance is available
Required parameters¶
id: | int - invoice id |
---|
Optional parameters¶
execute: | bool - execute related tasks on invoice items. Default false. |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_mark_as_paid($params);
- HTML
{{ admin.invoice_mark_as_paid() }}
- JavaScript
bb.post("admin/invoice/mark_as_paid", {})
admin/invoice/prepare¶
Prepare invoice for editing and updating. Uses clients details, such as currency assigned to client.
If client currency is not defined, sets default currency for client
Required parameters¶
client_id: | int - Client id. Client must have defined currency on profile. |
---|
Optional parameters¶
approve: | bool - set true to approve invoice after preparation. Defaults to false |
---|---|
gateway_id: | int - Selected payment gateway id |
items: | array - list of invoice lines. One line is array of line parameters |
text_1: | string - text to be displayed before invoice items table |
text_2: | string - text to be displayed after invoice items table |
API call examples¶
- PHP
$result = $api_admin->invoice_prepare($params);
- HTML
{{ admin.invoice_prepare() }}
- JavaScript
bb.post("admin/invoice/prepare", {})
admin/invoice/approve¶
Approve invoice.
Required parameters¶
id: | int - invoice id |
---|---|
use_credits: | bool - default = false |
API call examples¶
- PHP
$result = $api_admin->invoice_approve($params);
- HTML
{{ admin.invoice_approve() }}
- JavaScript
bb.post("admin/invoice/approve", {})
admin/invoice/refund¶
Add refunds
Required parameters¶
id: | int - invoice id |
---|
Optional parameters¶
note: | string - note for refund |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_refund($params);
- HTML
{{ admin.invoice_refund() }}
- JavaScript
bb.post("admin/invoice/refund", {})
admin/invoice/update¶
Update invoice details
Required parameters¶
id: | int - invoice id |
---|
Optional parameters¶
paid_at: | string - Invoice payment date (Y-m-d) or empty to remove |
---|---|
due_at: | string - Invoice due date (Y-m-d)or empty to remove |
created_at: | string - Invoice issue date (Y-m-d) or empty to remove |
serie: | string - Invoice serie |
nr: | string - Invoice number |
status: | string - Invoice status: paid|unpaid |
taxrate: | string - Invoice tax rate |
taxname: | string - Invoice tax name |
approved: | bool - flag to set invoice as approved. Approved invoices are visible to clients |
notes: | string - notes |
gateway_id: | int - selected payment method - gateway id |
new_item: | array - [title] [price] |
text_1: | string - Custom invoice text 1 |
text_2: | string - Custom invoice text 1 |
seller_company: | string - Seller company name |
seller_company_vat: | |
string - Seller company VAT number | |
seller_company_number: | |
string - Seller company number | |
seller_address: | string - Seller address |
seller_phone: | string - Seller phone |
seller_email: | string - Seller email |
buyer_first_name: | |
string - Buyer first name | |
buyer_last_name: | |
string - Buyer last name | |
buyer_company: | string - Buyer company name |
buyer_company_vat: | |
string - Buyer company VAT number | |
buyer_company_number: | |
string - Buyer company number | |
buyer_address: | string - Buyer address |
buyer_city: | string - Buyer city |
buyer_state: | string - Buyer state |
buyer_country: | string - Buyer country |
buyer_zip: | string - Buyer zip |
buyer_phone: | string - Buyer phone |
buyer_email: | string - Buyer email |
API call examples¶
- PHP
$result = $api_admin->invoice_update($params);
- HTML
{{ admin.invoice_update() }}
- JavaScript
bb.post("admin/invoice/update", {})
admin/invoice/item_delete¶
Remove one line from invoice
Required parameters¶
id: | int - invoice line id |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_item_delete($params);
- HTML
{{ admin.invoice_item_delete() }}
- JavaScript
bb.post("admin/invoice/item_delete", {})
admin/invoice/delete¶
Delete invoice
Required parameters¶
id: | int - Invoice id |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_delete($params);
- HTML
{{ admin.invoice_delete() }}
- JavaScript
bb.post("admin/invoice/delete", {})
admin/invoice/renewal_invoice¶
Generates new invoice for order. If unpaid invoice for selected order already exists, new invoice will not be generated, and existing invoice id
is returned
Required parameters¶
id: | int - ID of order to generate new invoice for |
---|
Optional parameters¶
due_days: | int - Days number until invoice is due |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_renewal_invoice($params);
- HTML
{{ admin.invoice_renewal_invoice() }}
- JavaScript
bb.post("admin/invoice/renewal_invoice", {})
admin/invoice/batch_pay_with_credits¶
Use credits to pay for invoices if credits are available in clients balance
Optional parameters¶
client_id: | int - cover only one client invoices |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_batch_pay_with_credits($params);
- HTML
{{ admin.invoice_batch_pay_with_credits() }}
- JavaScript
bb.post("admin/invoice/batch_pay_with_credits", {})
admin/invoice/batch_generate¶
Generate invoices for expiring orders
API call examples¶
- PHP
$result = $api_admin->invoice_batch_generate($params);
- HTML
{{ admin.invoice_batch_generate() }}
- JavaScript
bb.post("admin/invoice/batch_generate", {})
admin/invoice/batch_activate_paid¶
Action to activate paid invoices lines
API call examples¶
- PHP
$result = $api_admin->invoice_batch_activate_paid($params);
- HTML
{{ admin.invoice_batch_activate_paid() }}
- JavaScript
bb.post("admin/invoice/batch_activate_paid", {})
admin/invoice/batch_send_reminders¶
Send buyer reminders about upcoming payment
API call examples¶
- PHP
$result = $api_admin->invoice_batch_send_reminders($params);
- HTML
{{ admin.invoice_batch_send_reminders() }}
- JavaScript
bb.post("admin/invoice/batch_send_reminders", {})
admin/invoice/batch_invoke_due_event¶
Calls due events on unpaid and approved invoices. Attach custom event hooks events:
onEventBeforeInvoiceIsDue - event receives params: id and days_left onEventAfterInvoiceIsDue - event receives params: id and days_passed
Optional parameters¶
once_per_day: | bool - default true. Pass false if you want to execute this action more than once per day |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_batch_invoke_due_event($params);
- HTML
{{ admin.invoice_batch_invoke_due_event() }}
- JavaScript
bb.post("admin/invoice/batch_invoke_due_event", {})
admin/invoice/send_reminder¶
Send payment reminder notification for client. Calls event hook, so you can attach your custom notification code
Required parameters¶
id: | int - invoice id |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_send_reminder($params);
- HTML
{{ admin.invoice_send_reminder() }}
- JavaScript
bb.post("admin/invoice/send_reminder", {})
admin/invoice/get_statuses¶
Return invoice statuses with counter
API call examples¶
- PHP
$result = $api_admin->invoice_get_statuses($params);
- HTML
{{ admin.invoice_get_statuses() }}
- JavaScript
bb.post("admin/invoice/get_statuses", {})
admin/invoice/transaction_process_all¶
Process all received transactions
API call examples¶
- PHP
$result = $api_admin->invoice_transaction_process_all($params);
- HTML
{{ admin.invoice_transaction_process_all() }}
- JavaScript
bb.post("admin/invoice/transaction_process_all", {})
admin/invoice/transaction_process¶
Process selected transaction
Required parameters¶
id: | int - Transaction id |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_transaction_process($params);
- HTML
{{ admin.invoice_transaction_process() }}
- JavaScript
bb.post("admin/invoice/transaction_process", {})
admin/invoice/transaction_update¶
Update transaction details
Required parameters¶
id: | int - transaction id |
---|
Optional parameters¶
invoice_id: | int - new invoice id |
---|---|
txn_id: | string - transaction id on payment gateway |
txn_status: | string - transaction status on payment gateway |
gateway_id: | int - Payment gateway ID on BoxBilling |
amount: | float - Transaction amount |
currency: | string - Currency code. Must be available on BoxBilling |
type: | string - Currency code. Must be available on BoxBilling |
status: | string - Transaction status on BoxBilling |
validate_ipn: | bool - Flag to enable and disable IPN validation for this transaction |
note: | string - Custom note |
API call examples¶
- PHP
$result = $api_admin->invoice_transaction_update($params);
- HTML
{{ admin.invoice_transaction_update() }}
- JavaScript
bb.post("admin/invoice/transaction_update", {})
admin/invoice/transaction_create¶
Create custom transaction
Required parameters¶
bb_invoice_id: | int - BoxBilling invoice id |
---|---|
bb_gateway_id: | int - BoxBilling gateway id |
Optional parameters¶
get: | array - $_GET data |
---|---|
post: | array - $_POST data |
server: | array - $_SERVER data |
http_raw_post_data: | |
array - file_get_contents(“php://input”) | |
txn_id: | string - transaction id on payment gateway |
skip_validation: | |
bool - makes params bb_invoice_id and bb_gateway_id optional |
API call examples¶
- PHP
$result = $api_admin->invoice_transaction_create($params);
- HTML
{{ admin.invoice_transaction_create() }}
- JavaScript
bb.post("admin/invoice/transaction_create", {})
admin/invoice/transaction_delete¶
Remove transaction
Required parameters¶
id: | int - Transaction id |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_transaction_delete($params);
- HTML
{{ admin.invoice_transaction_delete() }}
- JavaScript
bb.post("admin/invoice/transaction_delete", {})
admin/invoice/transaction_get¶
Get transaction details
Required parameters¶
id: | int - Transaction id |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_transaction_get($params);
- HTML
{{ admin.invoice_transaction_get() }}
- JavaScript
bb.post("admin/invoice/transaction_get", {})
admin/invoice/transaction_get_list¶
Get paginated list of transactions
Optional parameters¶
txn_id: | string - search for transactions by transaction id on payment gateway |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_transaction_get_list($params);
- HTML
{{ admin.invoice_transaction_get_list() }}
- JavaScript
bb.post("admin/invoice/transaction_get_list", {})
admin/invoice/transaction_get_statuses¶
Return transactions statuses with counter
API call examples¶
- PHP
$result = $api_admin->invoice_transaction_get_statuses($params);
- HTML
{{ admin.invoice_transaction_get_statuses() }}
- JavaScript
bb.post("admin/invoice/transaction_get_statuses", {})
admin/invoice/transaction_get_statuses_pairs¶
Get available transaction statuses
API call examples¶
- PHP
$result = $api_admin->invoice_transaction_get_statuses_pairs($params);
- HTML
{{ admin.invoice_transaction_get_statuses_pairs() }}
- JavaScript
bb.post("admin/invoice/transaction_get_statuses_pairs", {})
admin/invoice/transaction_statuses¶
Get available transaction statuses
API call examples¶
- PHP
$result = $api_admin->invoice_transaction_statuses($params);
- HTML
{{ admin.invoice_transaction_statuses() }}
- JavaScript
bb.post("admin/invoice/transaction_statuses", {})
admin/invoice/transaction_gateway_statuses¶
Get available transaction statuses on gateways
API call examples¶
- PHP
$result = $api_admin->invoice_transaction_gateway_statuses($params);
- HTML
{{ admin.invoice_transaction_gateway_statuses() }}
- JavaScript
bb.post("admin/invoice/transaction_gateway_statuses", {})
admin/invoice/transaction_types¶
Get available transaction types
API call examples¶
- PHP
$result = $api_admin->invoice_transaction_types($params);
- HTML
{{ admin.invoice_transaction_types() }}
- JavaScript
bb.post("admin/invoice/transaction_types", {})
admin/invoice/gateway_get_list¶
Get available gateways
API call examples¶
- PHP
$result = $api_admin->invoice_gateway_get_list($params);
- HTML
{{ admin.invoice_gateway_get_list() }}
- JavaScript
bb.post("admin/invoice/gateway_get_list", {})
admin/invoice/gateway_get_pairs¶
Get available gateways pairs
API call examples¶
- PHP
$result = $api_admin->invoice_gateway_get_pairs($params);
- HTML
{{ admin.invoice_gateway_get_pairs() }}
- JavaScript
bb.post("admin/invoice/gateway_get_pairs", {})
admin/invoice/gateway_get_available¶
Return existing module but not activated
Required parameters¶
:: none
API call examples¶
- PHP
$result = $api_admin->invoice_gateway_get_available($params);
- HTML
{{ admin.invoice_gateway_get_available() }}
- JavaScript
bb.post("admin/invoice/gateway_get_available", {})
admin/invoice/gateway_install¶
Install available payment gateway
Required parameters¶
:: code - available payment gateway code
API call examples¶
- PHP
$result = $api_admin->invoice_gateway_install($params);
- HTML
{{ admin.invoice_gateway_install() }}
- JavaScript
bb.post("admin/invoice/gateway_install", {})
admin/invoice/gateway_get¶
Get gateway details
Required parameters¶
id: | int - gateway id |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_gateway_get($params);
- HTML
{{ admin.invoice_gateway_get() }}
- JavaScript
bb.post("admin/invoice/gateway_get", {})
admin/invoice/gateway_copy¶
Copy gateway from existing one
Required parameters¶
id: | int - id of gateway to be copied |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_gateway_copy($params);
- HTML
{{ admin.invoice_gateway_copy() }}
- JavaScript
bb.post("admin/invoice/gateway_copy", {})
admin/invoice/gateway_update¶
Change gateway settings
Required parameters¶
id: | int - gateway id |
---|
Optional parameters¶
title: | string - gateway title |
---|---|
config: | array - gateway config array |
accepted_currencies: | |
array - list of currencies this gateway supports | |
enabled: | bool - flag to enable or disable gateway |
allow_single: | bool - flag to enable or disable single payment option |
allow_recurrent: | |
bool - flag to enable or disable recurrent payment option | |
test_mode: | bool - flag to enable or disable test mode for gateway |
API call examples¶
- PHP
$result = $api_admin->invoice_gateway_update($params);
- HTML
{{ admin.invoice_gateway_update() }}
- JavaScript
bb.post("admin/invoice/gateway_update", {})
admin/invoice/gateway_delete¶
Remove payment gateway from system
Required parameters¶
id: | int - gateway id |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_gateway_delete($params);
- HTML
{{ admin.invoice_gateway_delete() }}
- JavaScript
bb.post("admin/invoice/gateway_delete", {})
admin/invoice/subscription_get_list¶
Get list of subscribtions
API call examples¶
- PHP
$result = $api_admin->invoice_subscription_get_list($params);
- HTML
{{ admin.invoice_subscription_get_list() }}
- JavaScript
bb.post("admin/invoice/subscription_get_list", {})
admin/invoice/subscription_create¶
Add new subscription
Required parameters¶
client_id: | int - client id |
---|---|
gateway_id: | int - payment gateway id |
currency: | string - currency |
Optional parameters¶
sid: | string - subscription id on payment gateway |
---|---|
status: | string - status: active|canceled |
period: | string - example: 1W - every week, 2M - every 2 months |
amount: | string - billed amount |
rel_type: | string - related item type |
rel_id: | string - related item id |
API call examples¶
- PHP
$result = $api_admin->invoice_subscription_create($params);
- HTML
{{ admin.invoice_subscription_create() }}
- JavaScript
bb.post("admin/invoice/subscription_create", {})
admin/invoice/subscription_update¶
Update subscription options
Required parameters¶
id: | int - subscription id |
---|
Optional parameters¶
status: | int - subscription status |
---|---|
sid: | string - subscription id on payment gateway |
period: | string - subscription period code |
amount: | string - subscription amount |
currency: | string - subscription currency |
API call examples¶
- PHP
$result = $api_admin->invoice_subscription_update($params);
- HTML
{{ admin.invoice_subscription_update() }}
- JavaScript
bb.post("admin/invoice/subscription_update", {})
admin/invoice/subscription_get¶
Get subscription details.
Required parameters¶
id: | int - subscription id |
---|---|
sid: | string - subscription id on payment gateway - required if id is not passed |
API call examples¶
- PHP
$result = $api_admin->invoice_subscription_get($params);
- HTML
{{ admin.invoice_subscription_get() }}
- JavaScript
bb.post("admin/invoice/subscription_get", {})
admin/invoice/subscription_delete¶
Remove subscription
Required parameters¶
id: | int - subscription id |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_subscription_delete($params);
- HTML
{{ admin.invoice_subscription_delete() }}
- JavaScript
bb.post("admin/invoice/subscription_delete", {})
admin/invoice/tax_delete¶
Remove tax rule
Required parameters¶
id: | int - tax id |
---|
API call examples¶
- PHP
$result = $api_admin->invoice_tax_delete($params);
- HTML
{{ admin.invoice_tax_delete() }}
- JavaScript
bb.post("admin/invoice/tax_delete", {})
admin/invoice/tax_create¶
Create new tax rule
Required parameters¶
name: | string - tax name |
---|---|
taxrate: | flaot - tax rate |
API call examples¶
- PHP
$result = $api_admin->invoice_tax_create($params);
- HTML
{{ admin.invoice_tax_create() }}
- JavaScript
bb.post("admin/invoice/tax_create", {})
admin/invoice/tax_get_list¶
Get list of taxes
API call examples¶
- PHP
$result = $api_admin->invoice_tax_get_list($params);
- HTML
{{ admin.invoice_tax_get_list() }}
- JavaScript
bb.post("admin/invoice/tax_get_list", {})
admin/invoice/tax_setup_eu¶
Automatically setup the EU VAT tax rules for you for all EU Member States. This action will delete any existing tax rules and configure the VAT rates
for all EU countries.
Required parameters¶
name: | string - VAT label |
---|---|
taxrate: | string - VAT rate |
API call examples¶
- PHP
$result = $api_admin->invoice_tax_setup_eu($params);
- HTML
{{ admin.invoice_tax_setup_eu() }}
- JavaScript
bb.post("admin/invoice/tax_setup_eu", {})
Kb¶
Knowledge base API
admin/kb/article_get_list¶
Get paginated list of knowledge base articles
API call examples¶
- PHP
$result = $api_admin->kb_article_get_list($params);
- HTML
{{ admin.kb_article_get_list() }}
- JavaScript
bb.post("admin/kb/article_get_list", {})
admin/kb/article_get¶
Get knowledge base article
Required parameters¶
id: | int - knowledge base article ID |
---|
API call examples¶
- PHP
$result = $api_admin->kb_article_get($params);
- HTML
{{ admin.kb_article_get() }}
- JavaScript
bb.post("admin/kb/article_get", {})
admin/kb/article_create¶
Create new knowledge base article
Required parameters¶
kb_article_category_id: | |
---|---|
int - knowledge base category ID | |
title: | string - knowledge base article title |
Optional parameters¶
status: | string - knowledge base article status |
---|---|
content: | string - knowledge base article content |
API call examples¶
- PHP
$result = $api_admin->kb_article_create($params);
- HTML
{{ admin.kb_article_create() }}
- JavaScript
bb.post("admin/kb/article_create", {})
admin/kb/article_update¶
Update knowledge base article
Required parameters¶
id: | int - knowledge base article ID |
---|
Optional parameters¶
title: | string - knowledge base article title |
---|---|
kb_article_category_id: | |
int - knowledge base category ID | |
slug: | string - knowledge base article slug |
status: | string - knowledge base article status |
content: | string - knowledge base article content |
views: | int - knowledge base article views counter |
API call examples¶
- PHP
$result = $api_admin->kb_article_update($params);
- HTML
{{ admin.kb_article_update() }}
- JavaScript
bb.post("admin/kb/article_update", {})
admin/kb/article_delete¶
Delete knowledge base article
Required parameters¶
id: | int - knowledge base article ID |
---|
API call examples¶
- PHP
$result = $api_admin->kb_article_delete($params);
- HTML
{{ admin.kb_article_delete() }}
- JavaScript
bb.post("admin/kb/article_delete", {})
admin/kb/category_get_list¶
Get paginated list of knowledge base categories
API call examples¶
- PHP
$result = $api_admin->kb_category_get_list($params);
- HTML
{{ admin.kb_category_get_list() }}
- JavaScript
bb.post("admin/kb/category_get_list", {})
admin/kb/category_get¶
Get knowledge base category
Required parameters¶
id: | int - knowledge base category ID |
---|
API call examples¶
- PHP
$result = $api_admin->kb_category_get($params);
- HTML
{{ admin.kb_category_get() }}
- JavaScript
bb.post("admin/kb/category_get", {})
admin/kb/category_create¶
Create new knowledge base category
Required parameters¶
title: | string - knowledge base category title |
---|
Optional parameters¶
description: | string - knowledge base category description |
---|
API call examples¶
- PHP
$result = $api_admin->kb_category_create($params);
- HTML
{{ admin.kb_category_create() }}
- JavaScript
bb.post("admin/kb/category_create", {})
admin/kb/category_update¶
Update knowledge base category
Required parameters¶
id: | int - knowledge base category ID |
---|
Optional parameters¶
title: | string - knowledge base category title |
---|---|
slug: | string - knowledge base category slug |
description: | string - knowledge base category description |
API call examples¶
- PHP
$result = $api_admin->kb_category_update($params);
- HTML
{{ admin.kb_category_update() }}
- JavaScript
bb.post("admin/kb/category_update", {})
Massmailer¶
admin/massmailer/get_list¶
Get paginated list of active mail messages
Optional parameters¶
status: | string - filter list by status |
---|---|
search: | string - search query to search for mail messages |
API call examples¶
- PHP
$result = $api_admin->massmailer_get_list($params);
- HTML
{{ admin.massmailer_get_list() }}
- JavaScript
bb.post("admin/massmailer/get_list", {})
admin/massmailer/get¶
Get mail message by id
Required parameters¶
id: | int - mail message ID |
---|
API call examples¶
- PHP
$result = $api_admin->massmailer_get($params);
- HTML
{{ admin.massmailer_get() }}
- JavaScript
bb.post("admin/massmailer/get", {})
admin/massmailer/update¶
Update mail message
Required parameters¶
id: | int - mail message id |
---|
Optional parameters¶
subject: | string - mail message title |
---|---|
content: | string - mail message content |
status: | string - mail message status |
from_name: | string - mail message email from name |
from_email: | string - mail message email from email |
filter: | array - filter parameters to select clients |
API call examples¶
- PHP
$result = $api_admin->massmailer_update($params);
- HTML
{{ admin.massmailer_update() }}
- JavaScript
bb.post("admin/massmailer/update", {})
admin/massmailer/create¶
Create mail message
Required parameters¶
subject: | string - mail message subject |
---|
Optional parameters¶
content: | string - mail message content |
---|
API call examples¶
- PHP
$result = $api_admin->massmailer_create($params);
- HTML
{{ admin.massmailer_create() }}
- JavaScript
bb.post("admin/massmailer/create", {})
admin/massmailer/send_test¶
Send test mail message by ID to client
Required parameters¶
id: | int - mail message ID |
---|
API call examples¶
- PHP
$result = $api_admin->massmailer_send_test($params);
- HTML
{{ admin.massmailer_send_test() }}
- JavaScript
bb.post("admin/massmailer/send_test", {})
admin/massmailer/send¶
Send mail message by ID
Required parameters¶
id: | int - mail message ID |
---|
API call examples¶
- PHP
$result = $api_admin->massmailer_send($params);
- HTML
{{ admin.massmailer_send() }}
- JavaScript
bb.post("admin/massmailer/send", {})
admin/massmailer/copy¶
Copy mail message by ID
Required parameters¶
id: | int - mail message ID |
---|
API call examples¶
- PHP
$result = $api_admin->massmailer_copy($params);
- HTML
{{ admin.massmailer_copy() }}
- JavaScript
bb.post("admin/massmailer/copy", {})
admin/massmailer/receivers¶
Get message receivers list
Required parameters¶
id: | int - mail message ID |
---|
API call examples¶
- PHP
$result = $api_admin->massmailer_receivers($params);
- HTML
{{ admin.massmailer_receivers() }}
- JavaScript
bb.post("admin/massmailer/receivers", {})
News¶
News management
admin/news/get_list¶
Get paginated list of active news items
API call examples¶
- PHP
$result = $api_admin->news_get_list($params);
- HTML
{{ admin.news_get_list() }}
- JavaScript
bb.post("admin/news/get_list", {})
admin/news/get¶
Get news item by ID
Required parameters¶
id: | int - news item ID |
---|
API call examples¶
- PHP
$result = $api_admin->news_get($params);
- HTML
{{ admin.news_get() }}
- JavaScript
bb.post("admin/news/get", {})
admin/news/update¶
Update news item.
Required parameters¶
id: | int - news item ID |
---|
Optional parameters¶
title: | string - news item title |
---|---|
slug: | string - news item slug |
content: | string - news item content |
status: | string - news item status |
API call examples¶
- PHP
$result = $api_admin->news_update($params);
- HTML
{{ admin.news_update() }}
- JavaScript
bb.post("admin/news/update", {})
admin/news/create¶
Creat new news item.
Required parameters¶
title: | string - news item title |
---|
Optional parameters¶
content: | string - news item content |
---|---|
status: | string - news item status |
API call examples¶
- PHP
$result = $api_admin->news_create($params);
- HTML
{{ admin.news_create() }}
- JavaScript
bb.post("admin/news/create", {})
Notification¶
Notifications center management.
Notifications are important messages for staff messages to get informed about important events on BoxBilling.
For example cron job can inform staff members
admin/notification/get_list¶
Get paginated list of notifications
API call examples¶
- PHP
$result = $api_admin->notification_get_list($params);
- HTML
{{ admin.notification_get_list() }}
- JavaScript
bb.post("admin/notification/get_list", {})
admin/notification/get¶
Get notification message
Required parameters¶
id: | int - message id |
---|
API call examples¶
- PHP
$result = $api_admin->notification_get($params);
- HTML
{{ admin.notification_get() }}
- JavaScript
bb.post("admin/notification/get", {})
admin/notification/add¶
Add new notification message
Required parameters¶
message: | string - message text |
---|
API call examples¶
- PHP
$result = $api_admin->notification_add($params);
- HTML
{{ admin.notification_add() }}
- JavaScript
bb.post("admin/notification/add", {})
Order¶
Orders management
admin/order/get¶
Get order details
Required parameters¶
id: | int - Order id |
---|
API call examples¶
- PHP
$result = $api_admin->order_get($params);
- HTML
{{ admin.order_get() }}
- JavaScript
bb.post("admin/order/get", {})
admin/order/get_list¶
Return paginated list of orders
Optional parameters¶
date_from: | string - show only order places after this date |
---|---|
date_to: | string - show only order places till this date |
API call examples¶
- PHP
$result = $api_admin->order_get_list($params);
- HTML
{{ admin.order_get_list() }}
- JavaScript
bb.post("admin/order/get_list", {})
admin/order/create¶
Place new order for client. Admin is able to order disabled products.
Required parameters¶
client_id: | int - Client id |
---|---|
product_id: | int - Product id to be ordered |
Optional parameters¶
config: | array - Depending on product type, you may need to pass product configuration options |
---|---|
quantity: | int - Quantity of products to order. Default 1 |
price: | float - Overridden unit price in default currency. Default is product price for selected period. |
group_id: | string - Order group id. Assign order to be as an addon for other order |
currency: | string - Order currency. If not passed, default is used |
title: | string - Order title. If not passed, product title is used |
activate: | bool - activate immediately |
invoice_option: | string - Options: “no-invoice”, “issue-invoice”; Default: no-invoice |
created_at: | string - date when order was created. Default: now |
updated_at: | string - date when order was updated. Default: now |
API call examples¶
- PHP
$result = $api_admin->order_create($params);
- HTML
{{ admin.order_create() }}
- JavaScript
bb.post("admin/order/create", {})
admin/order/update¶
Update order settings
Required parameters¶
id: | int - Order id |
---|
Optional parameters¶
period: | string - Order billing period, ie: 1Y |
---|---|
expires_at: | string - Order expiration date, ie: 2022-12-29 |
activated_at: | string - Order activation date, ie: 2022-12-29 |
title: | string - new order title |
price: | string - new order price, new invoice will be issued with this amount |
status: | string - manual orders status change. Does not perform action on service |
notes: | string - order notes |
meta: | array - list of meta properties |
API call examples¶
- PHP
$result = $api_admin->order_update($params);
- HTML
{{ admin.order_update() }}
- JavaScript
bb.post("admin/order/update", {})
admin/order/activate¶
Activate order depending on current status.
Required parameters¶
id: | int - Order id |
---|
Optional parameters¶
force: | bool - Skip order status checking. Force activate even active order |
---|
API call examples¶
- PHP
$result = $api_admin->order_activate($params);
- HTML
{{ admin.order_activate() }}
- JavaScript
bb.post("admin/order/activate", {})
admin/order/renew¶
Activate order depending on current status.
Required parameters¶
id: | int - Order id |
---|
API call examples¶
- PHP
$result = $api_admin->order_renew($params);
- HTML
{{ admin.order_renew() }}
- JavaScript
bb.post("admin/order/renew", {})
admin/order/suspend¶
Suspend order
Required parameters¶
id: | int - Order id |
---|
Optional parameters¶
reason: | string - Suspendation reason message |
---|---|
skip_event: | bool - Skip calling event hooks |
API call examples¶
- PHP
$result = $api_admin->order_suspend($params);
- HTML
{{ admin.order_suspend() }}
- JavaScript
bb.post("admin/order/suspend", {})
admin/order/unsuspend¶
Unsuspend suspended order
Required parameters¶
id: | int - Order id |
---|
API call examples¶
- PHP
$result = $api_admin->order_unsuspend($params);
- HTML
{{ admin.order_unsuspend() }}
- JavaScript
bb.post("admin/order/unsuspend", {})
admin/order/cancel¶
Cancel order
Required parameters¶
id: | int - Order id |
---|
Optional parameters¶
skip_event: | bool - Skip calling event hooks |
---|
API call examples¶
- PHP
$result = $api_admin->order_cancel($params);
- HTML
{{ admin.order_cancel() }}
- JavaScript
bb.post("admin/order/cancel", {})
admin/order/uncancel¶
Uncancel canceled order
Required parameters¶
id: | int - Order id |
---|
API call examples¶
- PHP
$result = $api_admin->order_uncancel($params);
- HTML
{{ admin.order_uncancel() }}
- JavaScript
bb.post("admin/order/uncancel", {})
admin/order/delete¶
Delete order
Required parameters¶
id: | int - Order id |
---|
Optional parameters¶
delete_addons: | bool - Remove addons also. Default false. |
---|
API call examples¶
- PHP
$result = $api_admin->order_delete($params);
- HTML
{{ admin.order_delete() }}
- JavaScript
bb.post("admin/order/delete", {})
admin/order/batch_suspend_expired¶
Suspend all expired orders.
API call examples¶
- PHP
$result = $api_admin->order_batch_suspend_expired($params);
- HTML
{{ admin.order_batch_suspend_expired() }}
- JavaScript
bb.post("admin/order/batch_suspend_expired", {})
admin/order/update_config¶
Update order config
Required parameters¶
id: | int - Order id |
---|---|
config: | array - list of key value pairs of configuration fields |
API call examples¶
- PHP
$result = $api_admin->order_update_config($params);
- HTML
{{ admin.order_update_config() }}
- JavaScript
bb.post("admin/order/update_config", {})
admin/order/service¶
Get order service data
Required parameters¶
id: | int - Order id |
---|
API call examples¶
- PHP
$result = $api_admin->order_service($params);
- HTML
{{ admin.order_service() }}
- JavaScript
bb.post("admin/order/service", {})
admin/order/status_history_get_list¶
Get paginated order statuses history list
Required parameters¶
id: | int - Order id |
---|
API call examples¶
- PHP
$result = $api_admin->order_status_history_get_list($params);
- HTML
{{ admin.order_status_history_get_list() }}
- JavaScript
bb.post("admin/order/status_history_get_list", {})
admin/order/status_history_add¶
Add order status history change
Required parameters¶
id: | int - Order id |
---|---|
status: | string - order status |
API call examples¶
- PHP
$result = $api_admin->order_status_history_add($params);
- HTML
{{ admin.order_status_history_add() }}
- JavaScript
bb.post("admin/order/status_history_add", {})
admin/order/status_history_delete¶
Remove order status history item
Required parameters¶
id: | int - History line id |
---|
API call examples¶
- PHP
$result = $api_admin->order_status_history_delete($params);
- HTML
{{ admin.order_status_history_delete() }}
- JavaScript
bb.post("admin/order/status_history_delete", {})
admin/order/get_statuses¶
Return order statuses codes with counter
API call examples¶
- PHP
$result = $api_admin->order_get_statuses($params);
- HTML
{{ admin.order_get_statuses() }}
- JavaScript
bb.post("admin/order/get_statuses", {})
admin/order/get_invoice_options¶
Return available invoice options
API call examples¶
- PHP
$result = $api_admin->order_get_invoice_options($params);
- HTML
{{ admin.order_get_invoice_options() }}
- JavaScript
bb.post("admin/order/get_invoice_options", {})
Product¶
Products management
admin/product/get_list¶
Get paginated list of products
API call examples¶
- PHP
$result = $api_admin->product_get_list($params);
- HTML
{{ admin.product_get_list() }}
- JavaScript
bb.post("admin/product/get_list", {})
admin/product/get_pairs¶
Get product pair. Id -> title values
API call examples¶
- PHP
$result = $api_admin->product_get_pairs($params);
- HTML
{{ admin.product_get_pairs() }}
- JavaScript
bb.post("admin/product/get_pairs", {})
admin/product/get¶
Get product details
Required parameters¶
id: | int - product id |
---|
API call examples¶
- PHP
$result = $api_admin->product_get($params);
- HTML
{{ admin.product_get() }}
- JavaScript
bb.post("admin/product/get", {})
admin/product/get_types¶
Get installed product types
API call examples¶
- PHP
$result = $api_admin->product_get_types($params);
- HTML
{{ admin.product_get_types() }}
- JavaScript
bb.post("admin/product/get_types", {})
admin/product/prepare¶
Create new product. Set default values depending on type
Required parameters¶
title: | string - product title |
---|---|
type: | string - product type |
Optional parameters¶
product_category_id: | |
---|---|
string - category id |
API call examples¶
- PHP
$result = $api_admin->product_prepare($params);
- HTML
{{ admin.product_prepare() }}
- JavaScript
bb.post("admin/product/prepare", {})
admin/product/update¶
Update prodcut settings.
Required parameters¶
id: | int - product id |
---|
Optional parameters¶
pricing: | array - product pricing configuration |
---|---|
config: | array - product configuration options depending on type |
upgrades: | array - array of upgradable products |
addons: | array - array of addon products |
product_category_id: | |
int - product category id | |
title: | string - product title |
description: | string - detailed product description |
icon_url: | string - product icon |
status: | string - product status |
slug: | string - product slug. Used to create unique link to order page |
setup: | string - product setup option. Define when order must be activated. |
hidden: | bool - product visibility flag |
stock_control: | bool - product stock control flag. |
allow_quantity_select: | |
bool - client can select product quantity on order form flag | |
quantity_in_stock: | |
bool - quantity available for sale. When out of stock, new order can not be placed. |
API call examples¶
- PHP
$result = $api_admin->product_update($params);
- HTML
{{ admin.product_update() }}
- JavaScript
bb.post("admin/product/update", {})
admin/product/update_priority¶
Change products sorting order
Required parameters¶
priority: | array - id => number key value pairs to define sort order for all products |
---|
API call examples¶
- PHP
$result = $api_admin->product_update_priority($params);
- HTML
{{ admin.product_update_priority() }}
- JavaScript
bb.post("admin/product/update_priority", {})
admin/product/update_config¶
Convenience method to update product config only
Required parameters¶
id: | int - product id |
---|
Optional parameters¶
config: | array - product config key value array |
---|
API call examples¶
- PHP
$result = $api_admin->product_update_config($params);
- HTML
{{ admin.product_update_config() }}
- JavaScript
bb.post("admin/product/update_config", {})
admin/product/addon_get_pairs¶
Get available addons
API call examples¶
- PHP
$result = $api_admin->product_addon_get_pairs($params);
- HTML
{{ admin.product_addon_get_pairs() }}
- JavaScript
bb.post("admin/product/addon_get_pairs", {})
admin/product/addon_create¶
Create new addon
Required parameters¶
title: | string - addon title |
---|
API call examples¶
- PHP
$result = $api_admin->product_addon_create($params);
- HTML
{{ admin.product_addon_create() }}
- JavaScript
bb.post("admin/product/addon_create", {})
admin/product/addon_get¶
Get addon details
Required parameters¶
id: | int - addon id |
---|
API call examples¶
- PHP
$result = $api_admin->product_addon_get($params);
- HTML
{{ admin.product_addon_get() }}
- JavaScript
bb.post("admin/product/addon_get", {})
admin/product/addon_update¶
Addon update
Required parameters¶
id: | int - addon id |
---|
Optional parameters¶
pricing: | array - product pricing configuration |
---|---|
config: | array - product configuration options depending on type |
upgrades: | array - array of upgradable products |
addons: | array - array of addon products |
product_category_id: | |
int - product category id | |
title: | string - product title |
description: | string - detailed product description |
icon_url: | string - product icon |
status: | string - product status |
slug: | string - product slug. Used to create unique link to order page |
setup: | string - product setup option. Define when order must be activated. |
hidden: | bool - product visibility flag |
stock_control: | bool - product stock control flag. |
allow_quantity_select: | |
bool - client can select product quantity on order form flag | |
quantity_in_stock: | |
bool - quantity available for sale. When out of stock, new order can not be placed. |
API call examples¶
- PHP
$result = $api_admin->product_addon_update($params);
- HTML
{{ admin.product_addon_update() }}
- JavaScript
bb.post("admin/product/addon_update", {})
admin/product/addon_delete¶
Remove addon
Required parameters¶
id: | int - addon id |
---|
API call examples¶
- PHP
$result = $api_admin->product_addon_delete($params);
- HTML
{{ admin.product_addon_delete() }}
- JavaScript
bb.post("admin/product/addon_delete", {})
admin/product/delete¶
Remove product
Required parameters¶
id: | int - addon id |
---|
API call examples¶
- PHP
$result = $api_admin->product_delete($params);
- HTML
{{ admin.product_delete() }}
- JavaScript
bb.post("admin/product/delete", {})
admin/product/category_get_pairs¶
Get product category pairs
API call examples¶
- PHP
$result = $api_admin->product_category_get_pairs($params);
- HTML
{{ admin.product_category_get_pairs() }}
- JavaScript
bb.post("admin/product/category_get_pairs", {})
admin/product/category_update¶
Method to update category
Required parameters¶
id: | int - category id |
---|
Optional parameters¶
title: | string - category title |
---|---|
icon_url: | string - icon url |
description: | string - description |
API call examples¶
- PHP
$result = $api_admin->product_category_update($params);
- HTML
{{ admin.product_category_update() }}
- JavaScript
bb.post("admin/product/category_update", {})
admin/product/category_get¶
Get category details
API call examples¶
- PHP
$result = $api_admin->product_category_get($params);
- HTML
{{ admin.product_category_get() }}
- JavaScript
bb.post("admin/product/category_get", {})
admin/product/category_create¶
Create new product category
Required parameters¶
title: | string - new category title |
---|
Optional parameters¶
icon_url: | string - icon url |
---|---|
description: | string - description |
API call examples¶
- PHP
$result = $api_admin->product_category_create($params);
- HTML
{{ admin.product_category_create() }}
- JavaScript
bb.post("admin/product/category_create", {})
admin/product/category_delete¶
Remove product category
Required parameters¶
id: | int - category id |
---|
API call examples¶
- PHP
$result = $api_admin->product_category_delete($params);
- HTML
{{ admin.product_category_delete() }}
- JavaScript
bb.post("admin/product/category_delete", {})
admin/product/promo_get_list¶
Get product promo codes list
API call examples¶
- PHP
$result = $api_admin->product_promo_get_list($params);
- HTML
{{ admin.product_promo_get_list() }}
- JavaScript
bb.post("admin/product/promo_get_list", {})
admin/product/promo_create¶
Create new promo code
Required parameters¶
code: | string - promo code |
---|---|
type: | string - promo code type: percentage|absolute |
value: | string - promo code value. Percents or discount amount in currency |
Optional parameters¶
products: | array - list of product ids for which this promo code applies |
---|---|
periods: | array - list of period codes |
active: | bool - flag to enable/disable promo code |
freesetup: | bool - flag to enable/disable free setup price |
once_per_client: | |
bool - flag to enable/disable promo code usage once per client | |
recurring: | bool - is available for all recurring orders not for first order only |
maxuses: | int - how many times this promo code can be used |
start_at: | string - date (Y-m-d) when will this promo code be active |
end_at: | string - date (Y-m-d) when this promo code expires |
API call examples¶
- PHP
$result = $api_admin->product_promo_create($params);
- HTML
{{ admin.product_promo_create() }}
- JavaScript
bb.post("admin/product/promo_create", {})
admin/product/promo_get¶
Get promo code details
Required parameters¶
id: | int - promo code id |
---|
API call examples¶
- PHP
$result = $api_admin->product_promo_get($params);
- HTML
{{ admin.product_promo_get() }}
- JavaScript
bb.post("admin/product/promo_get", {})
admin/product/promo_update¶
Promo code update
Required parameters¶
id: | int - promo code id |
---|
Optional parameters¶
code: | string - promo code |
---|---|
type: | string - promo code type: percentage|absolute |
value: | string - promo code value. Percents or discount amount in currency |
products: | array - list of product ids for which this promo code applies |
periods: | array - list of period codes |
active: | bool - flag to enable/disable promo code |
freesetup: | bool - flag to enable/disable free setup price |
once_per_client: | |
bool - flag to enable/disable promo code usage once per client | |
recurring: | bool - is available for all recurring orders not for first order only |
maxuses: | int - how many times this promo code can be used |
start_at: | string - date (Y-m-d) when will this promo code be active |
end_at: | string - date (Y-m-d) when this promo code expires |
used: | int - how many times this promo code was already used |
API call examples¶
- PHP
$result = $api_admin->product_promo_update($params);
- HTML
{{ admin.product_promo_update() }}
- JavaScript
bb.post("admin/product/promo_update", {})
Profile¶
Admin profile management
admin/profile/get¶
Returns currently logged in staff member profile information
API call examples¶
- PHP
$result = $api_admin->profile_get($params);
- HTML
{{ admin.profile_get() }}
- JavaScript
bb.post("admin/profile/get", {})
admin/profile/logout¶
Clear session data and logout from system
API call examples¶
- PHP
$result = $api_admin->profile_logout($params);
- HTML
{{ admin.profile_logout() }}
- JavaScript
bb.post("admin/profile/logout", {})
admin/profile/update¶
Update currently logged in staff member details
Optional parameters¶
email: | string - new email |
---|---|
name: | string - new name |
signature: | string - new signature |
API call examples¶
- PHP
$result = $api_admin->profile_update($params);
- HTML
{{ admin.profile_update() }}
- JavaScript
bb.post("admin/profile/update", {})
admin/profile/generate_api_key¶
Generates new API token for currently logged in staff member
API call examples¶
- PHP
$result = $api_admin->profile_generate_api_key($params);
- HTML
{{ admin.profile_generate_api_key() }}
- JavaScript
bb.post("admin/profile/generate_api_key", {})
admin/profile/change_password¶
Change password for currently logged in staff member
Required parameters¶
password: | string - new password |
---|---|
password_confirm: | |
string - repeat new password |
API call examples¶
- PHP
$result = $api_admin->profile_change_password($params);
- HTML
{{ admin.profile_change_password() }}
- JavaScript
bb.post("admin/profile/change_password", {})
Queue¶
Queue is a powerfull tool to execute long running tasks in the background.
admin/queue/get_list¶
Returns paginated list of queues
Optional parameters¶
mod: | string - filter results by mod |
---|---|
name: | string - filter results by name |
API call examples¶
- PHP
$result = $api_admin->queue_get_list($params);
- HTML
{{ admin.queue_get_list() }}
- JavaScript
bb.post("admin/queue/get_list", {})
admin/queue/get¶
Get queue details
Required parameters¶
queue: | string - queue name, ie: massemails |
---|
API call examples¶
- PHP
$result = $api_admin->queue_get($params);
- HTML
{{ admin.queue_get() }}
- JavaScript
bb.post("admin/queue/get", {})
admin/queue/message_delete¶
Remove message from queue
Required parameters¶
int: | type - message id |
---|
API call examples¶
- PHP
$result = $api_admin->queue_message_delete($params);
- HTML
{{ admin.queue_message_delete() }}
- JavaScript
bb.post("admin/queue/message_delete", {})
admin/queue/message_add¶
Add message to queue to be executed later
Required parameters¶
queue: | string - unique queue name, ie: massemails |
---|---|
mod: | string - module name, ie: massmailer |
Optional parameters¶
execute_at: | string - Message execution time. Schedule message to be executed later, ie: 2022-12-29 14:53:51 |
---|---|
params: | mixed - queue message params. Any serializable param |
handler: | string - function handler. Static function name in extensions service class - default $queue name |
interval: | int - Interval to execute messages in the queue. Default 30 |
max: | int - Maximum amount of messages to be executed per interval. Default 25 |
API call examples¶
- PHP
$result = $api_admin->queue_message_add($params);
- HTML
{{ admin.queue_message_add() }}
- JavaScript
bb.post("admin/queue/message_add", {})
admin/queue/execute¶
Execute queue. For example: Send 25 emails every 30 seconds until complete
Executing queue is locked until finished.
Required parameters¶
queue: | string - queue name to be executed |
---|
Optional parameters¶
max: | int - Maximum amount of messages to be executed per interval. Default is queue max amount |
---|---|
interval: | int - interval in seconds for message to be executed. Default is queue timeout |
until_complete: | bool - Execute until all messages in queue are executed. Default true |
API call examples¶
- PHP
$result = $api_admin->queue_execute($params);
- HTML
{{ admin.queue_execute() }}
- JavaScript
bb.post("admin/queue/execute", {})
Redirect¶
Redirects management
admin/redirect/get_list¶
Get list of redirects
API call examples¶
- PHP
$result = $api_admin->redirect_get_list($params);
- HTML
{{ admin.redirect_get_list() }}
- JavaScript
bb.post("admin/redirect/get_list", {})
admin/redirect/get¶
Get redirect by id
Required parameters¶
id: | int - int |
---|
API call examples¶
- PHP
$result = $api_admin->redirect_get($params);
- HTML
{{ admin.redirect_get() }}
- JavaScript
bb.post("admin/redirect/get", {})
admin/redirect/create¶
Create new redirect
Required parameters¶
path: | string - redirect path |
---|---|
target: | string - redirect target |
API call examples¶
- PHP
$result = $api_admin->redirect_create($params);
- HTML
{{ admin.redirect_create() }}
- JavaScript
bb.post("admin/redirect/create", {})
admin/redirect/update¶
Update redirect
Required parameters¶
id: | int - redirect id |
---|
Optional parameters¶
path: | string - redirect path |
---|---|
target: | string - redirect target |
API call examples¶
- PHP
$result = $api_admin->redirect_update($params);
- HTML
{{ admin.redirect_update() }}
- JavaScript
bb.post("admin/redirect/update", {})
Serviceboxbillinglicense¶
BoxBilling license management
admin/serviceboxbillinglicense/config_update¶
Update module configuration
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->serviceboxbillinglicense_config_update($params);
- HTML
{{ admin.serviceboxbillinglicense_config_update() }}
- JavaScript
bb.post("admin/serviceboxbillinglicense/config_update", {})
admin/serviceboxbillinglicense/config_get¶
Get module configuration
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->serviceboxbillinglicense_config_get($params);
- HTML
{{ admin.serviceboxbillinglicense_config_get() }}
- JavaScript
bb.post("admin/serviceboxbillinglicense/config_get", {})
admin/serviceboxbillinglicense/order_info¶
Get detailed license order info
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->serviceboxbillinglicense_order_info($params);
- HTML
{{ admin.serviceboxbillinglicense_order_info() }}
- JavaScript
bb.post("admin/serviceboxbillinglicense/order_info", {})
admin/serviceboxbillinglicense/order_reset¶
Reset license information. Usually used when moving BoxBilling to new server.
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->serviceboxbillinglicense_order_reset($params);
- HTML
{{ admin.serviceboxbillinglicense_order_reset() }}
- JavaScript
bb.post("admin/serviceboxbillinglicense/order_reset", {})
admin/serviceboxbillinglicense/become_partner¶
Convenience method to become partner. After you become BoxBilling partner you are able to sell licenses.
API call examples¶
- PHP
$result = $api_admin->serviceboxbillinglicense_become_partner($params);
- HTML
{{ admin.serviceboxbillinglicense_become_partner() }}
- JavaScript
bb.post("admin/serviceboxbillinglicense/become_partner", {})
admin/serviceboxbillinglicense/test_connection¶
Test connection to BoxBilling server. Used to test your configuration.
API call examples¶
- PHP
$result = $api_admin->serviceboxbillinglicense_test_connection($params);
- HTML
{{ admin.serviceboxbillinglicense_test_connection() }}
- JavaScript
bb.post("admin/serviceboxbillinglicense/test_connection", {})
admin/serviceboxbillinglicense/update¶
Update existing order service This method used to change service data if order setup fails
or have changed on remote server
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->serviceboxbillinglicense_update($params);
- HTML
{{ admin.serviceboxbillinglicense_update() }}
- JavaScript
bb.post("admin/serviceboxbillinglicense/update", {})
Servicecentovacast¶
CentovaCast management
admin/servicecentovacast/servers¶
Return centovacast servers
API call examples¶
- PHP
$result = $api_admin->servicecentovacast_servers($params);
- HTML
{{ admin.servicecentovacast_servers() }}
- JavaScript
bb.post("admin/servicecentovacast/servers", {})
admin/servicecentovacast/server_pairs¶
Get server pairs
API call examples¶
- PHP
$result = $api_admin->servicecentovacast_server_pairs($params);
- HTML
{{ admin.servicecentovacast_server_pairs() }}
- JavaScript
bb.post("admin/servicecentovacast/server_pairs", {})
admin/servicecentovacast/server_add¶
Add new centovacast server
Required parameters¶
data: | type |
---|
API call examples¶
- PHP
$result = $api_admin->servicecentovacast_server_add($params);
- HTML
{{ admin.servicecentovacast_server_add() }}
- JavaScript
bb.post("admin/servicecentovacast/server_add", {})
admin/servicecentovacast/server_get¶
Get server
Required parameters¶
id: | int - server id |
---|
API call examples¶
- PHP
$result = $api_admin->servicecentovacast_server_get($params);
- HTML
{{ admin.servicecentovacast_server_get() }}
- JavaScript
bb.post("admin/servicecentovacast/server_get", {})
admin/servicecentovacast/server_update¶
Update server
Required parameters¶
id: | int - server id |
---|
API call examples¶
- PHP
$result = $api_admin->servicecentovacast_server_update($params);
- HTML
{{ admin.servicecentovacast_server_update() }}
- JavaScript
bb.post("admin/servicecentovacast/server_update", {})
admin/servicecentovacast/server_delete¶
Remove server
Required parameters¶
id: | int - server id |
---|
API call examples¶
- PHP
$result = $api_admin->servicecentovacast_server_delete($params);
- HTML
{{ admin.servicecentovacast_server_delete() }}
- JavaScript
bb.post("admin/servicecentovacast/server_delete", {})
admin/servicecentovacast/server_connection¶
Test connection to server
Required parameters¶
id: | int - server id |
---|
API call examples¶
- PHP
$result = $api_admin->servicecentovacast_server_connection($params);
- HTML
{{ admin.servicecentovacast_server_connection() }}
- JavaScript
bb.post("admin/servicecentovacast/server_connection", {})
admin/servicecentovacast/update¶
Update existing order service
API call examples¶
- PHP
$result = $api_admin->servicecentovacast_update($params);
- HTML
{{ admin.servicecentovacast_update() }}
- JavaScript
bb.post("admin/servicecentovacast/update", {})
admin/servicecentovacast/getaccount¶
Retrieves the configuration for a CentovaCast client account. If server-side streaming source support is enabled,
the configuration for the streaming source is returned as well.
Required parameters¶
order_id: | int - order id |
---|
Optional parameters¶
try: | bool - do not throw an exception, return error message as a result |
---|
API call examples¶
- PHP
$result = $api_admin->servicecentovacast_getaccount($params);
- HTML
{{ admin.servicecentovacast_getaccount() }}
- JavaScript
bb.post("admin/servicecentovacast/getaccount", {})
admin/servicecentovacast/info¶
Returns the state (up or down) of one or more CentovaCast streaming server accounts. This can be used to monitor streams to see if any
have crashed. (Note that CentovaCast’s cron job automatically monitors and restarts crashed streaming servers as well.)
Required parameters¶
order_id: | int - order id |
---|
Optional parameters¶
try: | bool - do not throw an exception, return error message as a result |
---|
API call examples¶
- PHP
$result = $api_admin->servicecentovacast_info($params);
- HTML
{{ admin.servicecentovacast_info() }}
- JavaScript
bb.post("admin/servicecentovacast/info", {})
admin/servicecentovacast/reconfigure¶
Updates the settings for an existing client streaming server account in CentovaCast.
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicecentovacast_reconfigure($params);
- HTML
{{ admin.servicecentovacast_reconfigure() }}
- JavaScript
bb.post("admin/servicecentovacast/reconfigure", {})
Servicecustom¶
Custom service management
admin/servicecustom/update¶
Update custom service configuration
API call examples¶
- PHP
$result = $api_admin->servicecustom_update($params);
- HTML
{{ admin.servicecustom_update() }}
- JavaScript
bb.post("admin/servicecustom/update", {})
admin/servicecustom/__call¶
Universal method to call method from plugin Pass any other params and they will be passed to plugin
Required parameters¶
order_id: | int - ID of the order |
---|
API call examples¶
- PHP
$result = $api_admin->servicecustom___call($params);
- HTML
{{ admin.servicecustom___call() }}
- JavaScript
bb.post("admin/servicecustom/__call", {})
Servicedomain¶
Domain order management
admin/servicedomain/update¶
Update domain service. Does not send actions to domain registar. Used to sync domain details
on BoxBilling
Required parameters¶
order_id: | int - domain order id |
---|
Optional parameters¶
ns1: | string - 1 Nameserver hostname, ie: ns1.mydomain.com |
---|---|
ns2: | string - 2 Nameserver hostname, ie: ns2.mydomain.com |
ns3: | string - 3 Nameserver hostname, ie: ns3.mydomain.com |
ns4: | string - 4 Nameserver hostname, ie: ns4.mydomain.com |
private: | bool - flag to define if domain privacy protection is enabled/disabled |
locked: | bool - flag to define if domain is locked or not |
API call examples¶
- PHP
$result = $api_admin->servicedomain_update($params);
- HTML
{{ admin.servicedomain_update() }}
- JavaScript
bb.post("admin/servicedomain/update", {})
admin/servicedomain/update_nameservers¶
Update domain nameservers
Required parameters¶
order_id: | int - domain order id |
---|---|
ns1: | string - 1 Nameserver hostname, ie: ns1.mydomain.com |
ns2: | string - 2 Nameserver hostname, ie: ns2.mydomain.com |
Optional parameters¶
ns3: | string - 3 Nameserver hostname, ie: ns3.mydomain.com |
---|---|
ns4: | string - 4 Nameserver hostname, ie: ns4.mydomain.com |
API call examples¶
- PHP
$result = $api_admin->servicedomain_update_nameservers($params);
- HTML
{{ admin.servicedomain_update_nameservers() }}
- JavaScript
bb.post("admin/servicedomain/update_nameservers", {})
admin/servicedomain/update_contacts¶
Update domain contact details
Required parameters¶
order_id: | int - domain order id |
---|---|
contact: | array - Contact array must contain these fields: first_name, last_name, email, company, address1, address2, country, city, state, postcode, phone_cc, phone |
API call examples¶
- PHP
$result = $api_admin->servicedomain_update_contacts($params);
- HTML
{{ admin.servicedomain_update_contacts() }}
- JavaScript
bb.post("admin/servicedomain/update_contacts", {})
admin/servicedomain/enable_privacy_protection¶
Enable domain privacy protection
Required parameters¶
order_id: | int - domain order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicedomain_enable_privacy_protection($params);
- HTML
{{ admin.servicedomain_enable_privacy_protection() }}
- JavaScript
bb.post("admin/servicedomain/enable_privacy_protection", {})
admin/servicedomain/disable_privacy_protection¶
Disable domain privacy protection
Required parameters¶
order_id: | int - domain order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicedomain_disable_privacy_protection($params);
- HTML
{{ admin.servicedomain_disable_privacy_protection() }}
- JavaScript
bb.post("admin/servicedomain/disable_privacy_protection", {})
admin/servicedomain/get_transfer_code¶
Get domain transfer code
Required parameters¶
order_id: | int - domain order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicedomain_get_transfer_code($params);
- HTML
{{ admin.servicedomain_get_transfer_code() }}
- JavaScript
bb.post("admin/servicedomain/get_transfer_code", {})
admin/servicedomain/lock¶
Lock domain
Required parameters¶
order_id: | int - domain order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicedomain_lock($params);
- HTML
{{ admin.servicedomain_lock() }}
- JavaScript
bb.post("admin/servicedomain/lock", {})
admin/servicedomain/unlock¶
Unlock domain
Required parameters¶
order_id: | int - domain order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicedomain_unlock($params);
- HTML
{{ admin.servicedomain_unlock() }}
- JavaScript
bb.post("admin/servicedomain/unlock", {})
admin/servicedomain/tld_get_list¶
Get paginated top level domains list
API call examples¶
- PHP
$result = $api_admin->servicedomain_tld_get_list($params);
- HTML
{{ admin.servicedomain_tld_get_list() }}
- JavaScript
bb.post("admin/servicedomain/tld_get_list", {})
admin/servicedomain/tld_get¶
Get top level domain details
Required parameters¶
tld: | string - top level domain, ie: .com |
---|
API call examples¶
- PHP
$result = $api_admin->servicedomain_tld_get($params);
- HTML
{{ admin.servicedomain_tld_get() }}
- JavaScript
bb.post("admin/servicedomain/tld_get", {})
admin/servicedomain/tld_delete¶
Delete top level domain
Required parameters¶
tld: | string - top level domain, ie: .com |
---|
API call examples¶
- PHP
$result = $api_admin->servicedomain_tld_delete($params);
- HTML
{{ admin.servicedomain_tld_delete() }}
- JavaScript
bb.post("admin/servicedomain/tld_delete", {})
admin/servicedomain/tld_create¶
Add new top level domain
Required parameters¶
tld: | string - top level domain, ie: .com |
---|---|
tld_registrar_id: | |
int - domain registrar id | |
price_registration: | |
float - registration price | |
price_renew: | float - renewal price |
price_transfer: | float - transfer price |
API call examples¶
- PHP
$result = $api_admin->servicedomain_tld_create($params);
- HTML
{{ admin.servicedomain_tld_create() }}
- JavaScript
bb.post("admin/servicedomain/tld_create", {})
admin/servicedomain/tld_update¶
Update top level domain
Required parameters¶
tld: | string - top level domain, ie: .com |
---|
Optional parameters¶
tld_registrar_id: | |
---|---|
int - domain registrar id | |
price_registration: | |
float - registration price | |
price_renew: | float - renewal price |
price_transfer: | float - transfer price |
API call examples¶
- PHP
$result = $api_admin->servicedomain_tld_update($params);
- HTML
{{ admin.servicedomain_tld_update() }}
- JavaScript
bb.post("admin/servicedomain/tld_update", {})
admin/servicedomain/registrar_get_list¶
Get paginated registars list
API call examples¶
- PHP
$result = $api_admin->servicedomain_registrar_get_list($params);
- HTML
{{ admin.servicedomain_registrar_get_list() }}
- JavaScript
bb.post("admin/servicedomain/registrar_get_list", {})
admin/servicedomain/registrar_get_pairs¶
Get registrars pairs
API call examples¶
- PHP
$result = $api_admin->servicedomain_registrar_get_pairs($params);
- HTML
{{ admin.servicedomain_registrar_get_pairs() }}
- JavaScript
bb.post("admin/servicedomain/registrar_get_pairs", {})
admin/servicedomain/registrar_get_available¶
Get available registars for install
API call examples¶
- PHP
$result = $api_admin->servicedomain_registrar_get_available($params);
- HTML
{{ admin.servicedomain_registrar_get_available() }}
- JavaScript
bb.post("admin/servicedomain/registrar_get_available", {})
admin/servicedomain/registrar_install¶
Install domain registrar
Required parameters¶
code: | string - registrar code |
---|
API call examples¶
- PHP
$result = $api_admin->servicedomain_registrar_install($params);
- HTML
{{ admin.servicedomain_registrar_install() }}
- JavaScript
bb.post("admin/servicedomain/registrar_install", {})
admin/servicedomain/registrar_delete¶
Uninstall domain registrar
Required parameters¶
id: | int - registrar id |
---|
API call examples¶
- PHP
$result = $api_admin->servicedomain_registrar_delete($params);
- HTML
{{ admin.servicedomain_registrar_delete() }}
- JavaScript
bb.post("admin/servicedomain/registrar_delete", {})
admin/servicedomain/registrar_copy¶
Copy domain registrar
Required parameters¶
id: | int - registrar id |
---|
API call examples¶
- PHP
$result = $api_admin->servicedomain_registrar_copy($params);
- HTML
{{ admin.servicedomain_registrar_copy() }}
- JavaScript
bb.post("admin/servicedomain/registrar_copy", {})
admin/servicedomain/registrar_get¶
Get domain registrar details
Required parameters¶
id: | int - registrar id |
---|
API call examples¶
- PHP
$result = $api_admin->servicedomain_registrar_get($params);
- HTML
{{ admin.servicedomain_registrar_get() }}
- JavaScript
bb.post("admin/servicedomain/registrar_get", {})
admin/servicedomain/batch_sync_expiration_dates¶
Sync domain expiration dates with registrars. This action is run once a month
API call examples¶
- PHP
$result = $api_admin->servicedomain_batch_sync_expiration_dates($params);
- HTML
{{ admin.servicedomain_batch_sync_expiration_dates() }}
- JavaScript
bb.post("admin/servicedomain/batch_sync_expiration_dates", {})
admin/servicedomain/registrar_update¶
Update domain registrar
Required parameters¶
id: | int - registrar id |
---|
Optional parameters¶
title: | string - registar title |
---|---|
config: | array - registar configuration array |
API call examples¶
- PHP
$result = $api_admin->servicedomain_registrar_update($params);
- HTML
{{ admin.servicedomain_registrar_update() }}
- JavaScript
bb.post("admin/servicedomain/registrar_update", {})
Servicedownloadable¶
Downloadable service management
admin/servicedownloadable/upload¶
Upload file to product. Uses $_FILES array so make sure your form is enctype=”multipart/form-data”
Required parameters¶
id: | int - product id |
---|---|
file_data: | file - <input type=”file” name=”file_data” /> field content |
API call examples¶
- PHP
$result = $api_admin->servicedownloadable_upload($params);
- HTML
{{ admin.servicedownloadable_upload() }}
- JavaScript
bb.post("admin/servicedownloadable/upload", {})
admin/servicedownloadable/update¶
Update downloadable product order with new file. This will change only this order file.
Uses $_FILES array so make sure your form is enctype=”multipart/form-data”
Required parameters¶
order_id: | int - order id |
---|---|
file_data: | file - <input type=”file” name=”file_data” /> field content |
API call examples¶
- PHP
$result = $api_admin->servicedownloadable_update($params);
- HTML
{{ admin.servicedownloadable_update() }}
- JavaScript
bb.post("admin/servicedownloadable/update", {})
Servicehosting¶
Hosting service management
admin/servicehosting/change_plan¶
Change hosting account plan
Required parameters¶
order_id: | int - Hosting account order id |
---|---|
plan_id: | int - New hosting plan id |
API call examples¶
- PHP
$result = $api_admin->servicehosting_change_plan($params);
- HTML
{{ admin.servicehosting_change_plan() }}
- JavaScript
bb.post("admin/servicehosting/change_plan", {})
admin/servicehosting/change_username¶
Change hosting account username
Required parameters¶
order_id: | int - Hosting account order id |
---|---|
username: | string - New username |
API call examples¶
- PHP
$result = $api_admin->servicehosting_change_username($params);
- HTML
{{ admin.servicehosting_change_username() }}
- JavaScript
bb.post("admin/servicehosting/change_username", {})
admin/servicehosting/change_ip¶
Change hosting account ip
Required parameters¶
order_id: | int - Hosting account order id |
---|---|
username: | string - New username |
API call examples¶
- PHP
$result = $api_admin->servicehosting_change_ip($params);
- HTML
{{ admin.servicehosting_change_ip() }}
- JavaScript
bb.post("admin/servicehosting/change_ip", {})
admin/servicehosting/change_domain¶
Change hosting account domain
Required parameters¶
order_id: | int - Hosting account order id |
---|---|
tld: | string - Top level domain value, ie: .com |
sld: | string - Second level domain value, ie: domainname |
API call examples¶
- PHP
$result = $api_admin->servicehosting_change_domain($params);
- HTML
{{ admin.servicehosting_change_domain() }}
- JavaScript
bb.post("admin/servicehosting/change_domain", {})
admin/servicehosting/change_password¶
Change hosting account password.
Required parameters¶
order_id: | int - Hosting account order id |
---|---|
password: | string - New account password |
password_confirm: | |
string - Must be same value as password field |
API call examples¶
- PHP
$result = $api_admin->servicehosting_change_password($params);
- HTML
{{ admin.servicehosting_change_password() }}
- JavaScript
bb.post("admin/servicehosting/change_password", {})
admin/servicehosting/sync¶
Synchronize account with server values.
Required parameters¶
order_id: | int - Hosting account order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicehosting_sync($params);
- HTML
{{ admin.servicehosting_sync() }}
- JavaScript
bb.post("admin/servicehosting/sync", {})
admin/servicehosting/update¶
Update account information on BoxBilling database. This does not send actions to real account on hosting server.
Required parameters¶
order_id: | int - Hosting account order id |
---|
Optional parameters¶
username: | string - Hosting account username |
---|---|
ip: | string - Hosting account ip |
API call examples¶
- PHP
$result = $api_admin->servicehosting_update($params);
- HTML
{{ admin.servicehosting_update() }}
- JavaScript
bb.post("admin/servicehosting/update", {})
admin/servicehosting/manager_get_pairs¶
Get list of available server managers on system
API call examples¶
- PHP
$result = $api_admin->servicehosting_manager_get_pairs($params);
- HTML
{{ admin.servicehosting_manager_get_pairs() }}
- JavaScript
bb.post("admin/servicehosting/manager_get_pairs", {})
admin/servicehosting/server_get_pairs¶
Get list of available hosting servers on system
API call examples¶
- PHP
$result = $api_admin->servicehosting_server_get_pairs($params);
- HTML
{{ admin.servicehosting_server_get_pairs() }}
- JavaScript
bb.post("admin/servicehosting/server_get_pairs", {})
admin/servicehosting/server_get_list¶
Get paginated list of servers
API call examples¶
- PHP
$result = $api_admin->servicehosting_server_get_list($params);
- HTML
{{ admin.servicehosting_server_get_list() }}
- JavaScript
bb.post("admin/servicehosting/server_get_list", {})
admin/servicehosting/server_create¶
Create new hosting server
Required parameters¶
name: | string - server name |
---|---|
ip: | string - server ip |
manager: | string - server manager code |
Optional parameters¶
hostname: | string - server hostname |
---|---|
ns1: | string - default nameserver 1 |
ns2: | string - default nameserver 2 |
ns3: | string - default nameserver 3 |
ns4: | string - default nameserver 4 |
username: | string - server API login username |
password: | string - server API login password |
accesshash: | string - server API login access hash |
port: | string - server API port |
secure: | bool - flag to define wheather to use secure connection (https) to server or not (http) |
active: | bool - flag to enable/disable server |
API call examples¶
- PHP
$result = $api_admin->servicehosting_server_create($params);
- HTML
{{ admin.servicehosting_server_create() }}
- JavaScript
bb.post("admin/servicehosting/server_create", {})
admin/servicehosting/server_get¶
Get server details
Required parameters¶
id: | int - server id |
---|
API call examples¶
- PHP
$result = $api_admin->servicehosting_server_get($params);
- HTML
{{ admin.servicehosting_server_get() }}
- JavaScript
bb.post("admin/servicehosting/server_get", {})
admin/servicehosting/server_delete¶
Delete server
Required parameters¶
id: | int - server id |
---|
API call examples¶
- PHP
$result = $api_admin->servicehosting_server_delete($params);
- HTML
{{ admin.servicehosting_server_delete() }}
- JavaScript
bb.post("admin/servicehosting/server_delete", {})
admin/servicehosting/server_update¶
Update server configuration
Required parameters¶
id: | int - server id |
---|
Optional parameters¶
hostname: | string - server hostname |
---|---|
ns1: | string - default nameserver 1 |
ns2: | string - default nameserver 2 |
ns3: | string - default nameserver 3 |
ns4: | string - default nameserver 4 |
username: | string - server API login username |
password: | string - server API login password |
accesshash: | string - server API login access hash |
port: | string - server API port |
secure: | bool - flag to define whether to use secure connection (https) to server or not (http) |
active: | bool - flag to enable/disable server |
API call examples¶
- PHP
$result = $api_admin->servicehosting_server_update($params);
- HTML
{{ admin.servicehosting_server_update() }}
- JavaScript
bb.post("admin/servicehosting/server_update", {})
admin/servicehosting/server_test_connection¶
Test connection to server
Required parameters¶
id: | int - server id |
---|
API call examples¶
- PHP
$result = $api_admin->servicehosting_server_test_connection($params);
- HTML
{{ admin.servicehosting_server_test_connection() }}
- JavaScript
bb.post("admin/servicehosting/server_test_connection", {})
admin/servicehosting/hp_get_pairs¶
Get hoting plan pairs
API call examples¶
- PHP
$result = $api_admin->servicehosting_hp_get_pairs($params);
- HTML
{{ admin.servicehosting_hp_get_pairs() }}
- JavaScript
bb.post("admin/servicehosting/hp_get_pairs", {})
admin/servicehosting/hp_get_list¶
Get hostin plans paginated list
API call examples¶
- PHP
$result = $api_admin->servicehosting_hp_get_list($params);
- HTML
{{ admin.servicehosting_hp_get_list() }}
- JavaScript
bb.post("admin/servicehosting/hp_get_list", {})
admin/servicehosting/hp_delete¶
Delete hosting plan
Required parameters¶
id: | int - hosting plan id |
---|
API call examples¶
- PHP
$result = $api_admin->servicehosting_hp_delete($params);
- HTML
{{ admin.servicehosting_hp_delete() }}
- JavaScript
bb.post("admin/servicehosting/hp_delete", {})
admin/servicehosting/hp_get¶
Get hosting plan details
Required parameters¶
id: | int - hosting plan id |
---|
API call examples¶
- PHP
$result = $api_admin->servicehosting_hp_get($params);
- HTML
{{ admin.servicehosting_hp_get() }}
- JavaScript
bb.post("admin/servicehosting/hp_get", {})
admin/servicehosting/hp_update¶
Update hosting plan details
Required parameters¶
id: | int - hosting plan id |
---|
Optional parameters¶
name: | string - hosting plan name. Used as identifier on server |
---|
API call examples¶
- PHP
$result = $api_admin->servicehosting_hp_update($params);
- HTML
{{ admin.servicehosting_hp_update() }}
- JavaScript
bb.post("admin/servicehosting/hp_update", {})
admin/servicehosting/hp_create¶
Update hosting plan details
Required parameters¶
name: | string - hosting plan name. Used as identifier on server |
---|
API call examples¶
- PHP
$result = $api_admin->servicehosting_hp_create($params);
- HTML
{{ admin.servicehosting_hp_create() }}
- JavaScript
bb.post("admin/servicehosting/hp_create", {})
Servicelicense¶
Service license management
admin/servicelicense/plugin_get_pairs¶
Get available licensing plugins
Required parameters¶
data: | type |
---|
API call examples¶
- PHP
$result = $api_admin->servicelicense_plugin_get_pairs($params);
- HTML
{{ admin.servicelicense_plugin_get_pairs() }}
- JavaScript
bb.post("admin/servicelicense/plugin_get_pairs", {})
admin/servicelicense/update¶
Update license parameters. Set which validation rules must be applied for license
Required parameters¶
order_id: | int - License irder id |
---|
Optional parameters¶
plugin: | string - New license plugin name |
---|---|
validate_ip: | bool - True to validate IP; False - to allow all IPs for this license |
validate_host: | bool - True to validate hostname; False - to allow all hostnames for this license |
validate_path: | bool - True to validate install paths; False - to allow all paths for this license |
validate_version: | |
bool - True to validate version; False - to allow all versions for this license | |
ips: | array - List of allowed IPs for this license |
hosts: | array - List of allowed hosts for this license |
paths: | array - List of allowed paths for this license |
versions: | array - List of allowed versions for this license |
API call examples¶
- PHP
$result = $api_admin->servicelicense_update($params);
- HTML
{{ admin.servicelicense_update() }}
- JavaScript
bb.post("admin/servicelicense/update", {})
Servicesolusvm¶
Solusvm management
admin/servicesolusvm/cluster_config_update¶
Update master server configuration
Required parameters¶
cluster_id: | int - cluster ID |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_cluster_config_update($params);
- HTML
{{ admin.servicesolusvm_cluster_config_update() }}
- JavaScript
bb.post("admin/servicesolusvm/cluster_config_update", {})
admin/servicesolusvm/cluster_config¶
Return master server configuration
Required parameters¶
cluster_id: | int - id of master server default = 1 |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_cluster_config($params);
- HTML
{{ admin.servicesolusvm_cluster_config() }}
- JavaScript
bb.post("admin/servicesolusvm/cluster_config", {})
admin/servicesolusvm/get_virtualization_types¶
Return virtualization types solusVM supports
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_get_virtualization_types($params);
- HTML
{{ admin.servicesolusvm_get_virtualization_types() }}
- JavaScript
bb.post("admin/servicesolusvm/get_virtualization_types", {})
admin/servicesolusvm/get_nodes¶
Return nodes available on solusvm master server
Required parameters¶
by: | string - list nodes by id or by name, default - name |
---|---|
type: | string - virtualization type |
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_get_nodes($params);
- HTML
{{ admin.servicesolusvm_get_nodes() }}
- JavaScript
bb.post("admin/servicesolusvm/get_nodes", {})
admin/servicesolusvm/get_plans¶
Return plans available on solusvm master server
Required parameters¶
type: | string - virtualization type |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_get_plans($params);
- HTML
{{ admin.servicesolusvm_get_plans() }}
- JavaScript
bb.post("admin/servicesolusvm/get_plans", {})
admin/servicesolusvm/get_templates¶
Return templates available on solusvm master server
Required parameters¶
type: | string - virtualization type |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_get_templates($params);
- HTML
{{ admin.servicesolusvm_get_templates() }}
- JavaScript
bb.post("admin/servicesolusvm/get_templates", {})
admin/servicesolusvm/reboot¶
Reboot VPS
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_reboot($params);
- HTML
{{ admin.servicesolusvm_reboot() }}
- JavaScript
bb.post("admin/servicesolusvm/reboot", {})
admin/servicesolusvm/boot¶
Boot VPS
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_boot($params);
- HTML
{{ admin.servicesolusvm_boot() }}
- JavaScript
bb.post("admin/servicesolusvm/boot", {})
admin/servicesolusvm/shutdown¶
Shutdown VPS
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_shutdown($params);
- HTML
{{ admin.servicesolusvm_shutdown() }}
- JavaScript
bb.post("admin/servicesolusvm/shutdown", {})
admin/servicesolusvm/status¶
Get status VPS
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_status($params);
- HTML
{{ admin.servicesolusvm_status() }}
- JavaScript
bb.post("admin/servicesolusvm/status", {})
admin/servicesolusvm/info¶
Retrieve more information about vps from sulusvm server
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_info($params);
- HTML
{{ admin.servicesolusvm_info() }}
- JavaScript
bb.post("admin/servicesolusvm/info", {})
admin/servicesolusvm/set_root_password¶
Change root password for VPS
Required parameters¶
order_id: | int - order id |
---|---|
password: | string - new password |
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_set_root_password($params);
- HTML
{{ admin.servicesolusvm_set_root_password() }}
- JavaScript
bb.post("admin/servicesolusvm/set_root_password", {})
admin/servicesolusvm/set_plan¶
Change VPS plan
Required parameters¶
order_id: | int - order id |
---|---|
plan: | string - new plan name |
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_set_plan($params);
- HTML
{{ admin.servicesolusvm_set_plan() }}
- JavaScript
bb.post("admin/servicesolusvm/set_plan", {})
admin/servicesolusvm/set_hostname¶
Change VPS hostname
Required parameters¶
order_id: | int - order id |
---|---|
hostname: | string - new hostname for vps |
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_set_hostname($params);
- HTML
{{ admin.servicesolusvm_set_hostname() }}
- JavaScript
bb.post("admin/servicesolusvm/set_hostname", {})
admin/servicesolusvm/rebuild¶
Rebuild vps operating system with new template
Required parameters¶
order_id: | int - order id |
---|---|
template: | string - new template |
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_rebuild($params);
- HTML
{{ admin.servicesolusvm_rebuild() }}
- JavaScript
bb.post("admin/servicesolusvm/rebuild", {})
admin/servicesolusvm/addip¶
Assign new IP from the pool
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_addip($params);
- HTML
{{ admin.servicesolusvm_addip() }}
- JavaScript
bb.post("admin/servicesolusvm/addip", {})
admin/servicesolusvm/network_disable¶
Disable network
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_network_disable($params);
- HTML
{{ admin.servicesolusvm_network_disable() }}
- JavaScript
bb.post("admin/servicesolusvm/network_disable", {})
admin/servicesolusvm/network_enable¶
Enable network
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_network_enable($params);
- HTML
{{ admin.servicesolusvm_network_enable() }}
- JavaScript
bb.post("admin/servicesolusvm/network_enable", {})
admin/servicesolusvm/tun_disable¶
Disable tun
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_tun_disable($params);
- HTML
{{ admin.servicesolusvm_tun_disable() }}
- JavaScript
bb.post("admin/servicesolusvm/tun_disable", {})
admin/servicesolusvm/tun_enable¶
Enable tun
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_tun_enable($params);
- HTML
{{ admin.servicesolusvm_tun_enable() }}
- JavaScript
bb.post("admin/servicesolusvm/tun_enable", {})
admin/servicesolusvm/pae_enable¶
Disable PAE
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_pae_enable($params);
- HTML
{{ admin.servicesolusvm_pae_enable() }}
- JavaScript
bb.post("admin/servicesolusvm/pae_enable", {})
admin/servicesolusvm/pae_disable¶
Enable PAE
Required parameters¶
order_id: | int - order id |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_pae_disable($params);
- HTML
{{ admin.servicesolusvm_pae_disable() }}
- JavaScript
bb.post("admin/servicesolusvm/pae_disable", {})
admin/servicesolusvm/client_list¶
List clients on SolusVM server
Required parameters¶
skip: | bool - skip imported clients, default - false |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_client_list($params);
- HTML
{{ admin.servicesolusvm_client_list() }}
- JavaScript
bb.post("admin/servicesolusvm/client_list", {})
admin/servicesolusvm/node_virtualservers¶
List virtual server on SolusVM server
Required parameters¶
node_id: | bool - node id to list virtul servers |
---|---|
skip: | bool - skip imported servers, default - false |
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_node_virtualservers($params);
- HTML
{{ admin.servicesolusvm_node_virtualservers() }}
- JavaScript
bb.post("admin/servicesolusvm/node_virtualservers", {})
admin/servicesolusvm/import_servers¶
Import selected servers to BoxBilling
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_import_servers($params);
- HTML
{{ admin.servicesolusvm_import_servers() }}
- JavaScript
bb.post("admin/servicesolusvm/import_servers", {})
admin/servicesolusvm/import_clients¶
Import selected clients to BoxBilling
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_import_clients($params);
- HTML
{{ admin.servicesolusvm_import_clients() }}
- JavaScript
bb.post("admin/servicesolusvm/import_clients", {})
admin/servicesolusvm/test_connection¶
Test connection to master server
Required parameters¶
order_id: | int - order id |
---|
Optional parameters¶
return: | string - if value = bool - does not return error but returns bool value |
---|
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_test_connection($params);
- HTML
{{ admin.servicesolusvm_test_connection() }}
- JavaScript
bb.post("admin/servicesolusvm/test_connection", {})
admin/servicesolusvm/update¶
Update existing order service This method used to change clients data if order setup fails
or you have changed data on solusVM server and you need to sync with BoxBilling database
API call examples¶
- PHP
$result = $api_admin->servicesolusvm_update($params);
- HTML
{{ admin.servicesolusvm_update() }}
- JavaScript
bb.post("admin/servicesolusvm/update", {})
Serviceyouhosting¶
Youhosting service management
admin/serviceyouhosting/sync¶
Synchronize order with YouHosting account details
Required parameters¶
order_id: | int - Order id |
---|
API call examples¶
- PHP
$result = $api_admin->serviceyouhosting_sync($params);
- HTML
{{ admin.serviceyouhosting_sync() }}
- JavaScript
bb.post("admin/serviceyouhosting/sync", {})
admin/serviceyouhosting/get_plans¶
Return plans
API call examples¶
- PHP
$result = $api_admin->serviceyouhosting_get_plans($params);
- HTML
{{ admin.serviceyouhosting_get_plans() }}
- JavaScript
bb.post("admin/serviceyouhosting/get_plans", {})
admin/serviceyouhosting/cpanel_url¶
Get login to cpanel url
API call examples¶
- PHP
$result = $api_admin->serviceyouhosting_cpanel_url($params);
- HTML
{{ admin.serviceyouhosting_cpanel_url() }}
- JavaScript
bb.post("admin/serviceyouhosting/cpanel_url", {})
admin/serviceyouhosting/import_accounts¶
Import YouHosting accounts as BoxBilling orders
Import clients before calling this action
API call examples¶
- PHP
$result = $api_admin->serviceyouhosting_import_accounts($params);
- HTML
{{ admin.serviceyouhosting_import_accounts() }}
- JavaScript
bb.post("admin/serviceyouhosting/import_accounts", {})
Staff¶
Staff management
admin/staff/get_list¶
Get paginated list of staff members
API call examples¶
- PHP
$result = $api_admin->staff_get_list($params);
- HTML
{{ admin.staff_get_list() }}
- JavaScript
bb.post("admin/staff/get_list", {})
admin/staff/get¶
Get staff member by id
Required parameters¶
id: | int - staff member ID |
---|
API call examples¶
- PHP
$result = $api_admin->staff_get($params);
- HTML
{{ admin.staff_get() }}
- JavaScript
bb.post("admin/staff/get", {})
admin/staff/update¶
Update staff member
Required parameters¶
id: | int - staff member ID |
---|
Optional parameters¶
email: | string - new email |
---|---|
name: | string - new name |
status: | string - new status |
signature: | string - new signature |
admin_group_id: | int - new group id |
API call examples¶
- PHP
$result = $api_admin->staff_update($params);
- HTML
{{ admin.staff_update() }}
- JavaScript
bb.post("admin/staff/update", {})
admin/staff/delete¶
Completely delete staff member. Removes all related acitivity from logs
Required parameters¶
id: | int - staff member ID |
---|
API call examples¶
- PHP
$result = $api_admin->staff_delete($params);
- HTML
{{ admin.staff_delete() }}
- JavaScript
bb.post("admin/staff/delete", {})
admin/staff/change_password¶
Change staff member password
Required parameters¶
id: | int - staff member ID |
---|---|
password: | string - new staff member password |
password_confirm: | |
string - repeat new staff member password |
API call examples¶
- PHP
$result = $api_admin->staff_change_password($params);
- HTML
{{ admin.staff_change_password() }}
- JavaScript
bb.post("admin/staff/change_password", {})
admin/staff/create¶
Create new staff member
Required parameters¶
email: | string - email of new staff member |
---|---|
password: | string - password of new staff member |
name: | string - name of new staff member |
admin_group_id: | string - admin group id of new staff member |
Optional parameters¶
signature: | string - signature of new staff member |
---|
API call examples¶
- PHP
$result = $api_admin->staff_create($params);
- HTML
{{ admin.staff_create() }}
- JavaScript
bb.post("admin/staff/create", {})
admin/staff/permissions_get¶
Return staff member permissions
Required parameters¶
id: | int - staff member id |
---|
API call examples¶
- PHP
$result = $api_admin->staff_permissions_get($params);
- HTML
{{ admin.staff_permissions_get() }}
- JavaScript
bb.post("admin/staff/permissions_get", {})
admin/staff/permissions_update¶
Update staff member permissions
Required parameters¶
id: | int - staff member id |
---|---|
permissions: | array - staff member permissions |
API call examples¶
- PHP
$result = $api_admin->staff_permissions_update($params);
- HTML
{{ admin.staff_permissions_update() }}
- JavaScript
bb.post("admin/staff/permissions_update", {})
admin/staff/group_get_pairs¶
Return pairs of staff member groups
API call examples¶
- PHP
$result = $api_admin->staff_group_get_pairs($params);
- HTML
{{ admin.staff_group_get_pairs() }}
- JavaScript
bb.post("admin/staff/group_get_pairs", {})
admin/staff/group_get_list¶
Return paginate list of staff members groups
API call examples¶
- PHP
$result = $api_admin->staff_group_get_list($params);
- HTML
{{ admin.staff_group_get_list() }}
- JavaScript
bb.post("admin/staff/group_get_list", {})
admin/staff/group_create¶
Create new staff members group
Required parameters¶
name: | string - name of staff members group |
---|
API call examples¶
- PHP
$result = $api_admin->staff_group_create($params);
- HTML
{{ admin.staff_group_create() }}
- JavaScript
bb.post("admin/staff/group_create", {})
admin/staff/group_get¶
Return staff group details
Required parameters¶
id: | int - group id |
---|
API call examples¶
- PHP
$result = $api_admin->staff_group_get($params);
- HTML
{{ admin.staff_group_get() }}
- JavaScript
bb.post("admin/staff/group_get", {})
admin/staff/group_delete¶
Remove staff group
Required parameters¶
id: | int - group id |
---|
API call examples¶
- PHP
$result = $api_admin->staff_group_delete($params);
- HTML
{{ admin.staff_group_delete() }}
- JavaScript
bb.post("admin/staff/group_delete", {})
admin/staff/group_update¶
Update staff group
Required parameters¶
id: | int - group id |
---|
Optional parameters¶
name: | int - new group name |
---|
API call examples¶
- PHP
$result = $api_admin->staff_group_update($params);
- HTML
{{ admin.staff_group_update() }}
- JavaScript
bb.post("admin/staff/group_update", {})
admin/staff/login_history_get_list¶
Get paginated list of staff logins history
API call examples¶
- PHP
$result = $api_admin->staff_login_history_get_list($params);
- HTML
{{ admin.staff_login_history_get_list() }}
- JavaScript
bb.post("admin/staff/login_history_get_list", {})
Stats¶
Statistics retrieval
admin/stats/get_summary¶
Return summary of your system
API call examples¶
- PHP
$result = $api_admin->stats_get_summary($params);
- HTML
{{ admin.stats_get_summary() }}
- JavaScript
bb.post("admin/stats/get_summary", {})
admin/stats/get_summary_income¶
Return income statistics
API call examples¶
- PHP
$result = $api_admin->stats_get_summary_income($params);
- HTML
{{ admin.stats_get_summary_income() }}
- JavaScript
bb.post("admin/stats/get_summary_income", {})
admin/stats/get_orders_statuses¶
Get order statuses
API call examples¶
- PHP
$result = $api_admin->stats_get_orders_statuses($params);
- HTML
{{ admin.stats_get_orders_statuses() }}
- JavaScript
bb.post("admin/stats/get_orders_statuses", {})
admin/stats/get_product_summary¶
Get active orders stats grouped by products
API call examples¶
- PHP
$result = $api_admin->stats_get_product_summary($params);
- HTML
{{ admin.stats_get_product_summary() }}
- JavaScript
bb.post("admin/stats/get_product_summary", {})
admin/stats/get_product_sales¶
Get product sales
API call examples¶
- PHP
$result = $api_admin->stats_get_product_sales($params);
- HTML
{{ admin.stats_get_product_sales() }}
- JavaScript
bb.post("admin/stats/get_product_sales", {})
admin/stats/get_income_vs_refunds¶
Get income and refunds statistics
API call examples¶
- PHP
$result = $api_admin->stats_get_income_vs_refunds($params);
- HTML
{{ admin.stats_get_income_vs_refunds() }}
- JavaScript
bb.post("admin/stats/get_income_vs_refunds", {})
admin/stats/get_refunds¶
Return refunds by day. If no timespan is selected method returns previous month statistics.
Optional parameters¶
date_from: | string - day since refunds are counted |
---|---|
date_to: | string - day until refunds are counted |
API call examples¶
- PHP
$result = $api_admin->stats_get_refunds($params);
- HTML
{{ admin.stats_get_refunds() }}
- JavaScript
bb.post("admin/stats/get_refunds", {})
admin/stats/get_income¶
Return icome by day. If no timespan is selected method returns previous month statistics.
Optional parameters¶
date_from: | string - day since income are counted |
---|---|
date_to: | string - day until income are counted |
API call examples¶
- PHP
$result = $api_admin->stats_get_income($params);
- HTML
{{ admin.stats_get_income() }}
- JavaScript
bb.post("admin/stats/get_income", {})
admin/stats/get_orders¶
Return statistics for orders
Optional parameters¶
date_from: | string - day since income are counted |
---|---|
date_to: | string - day until income are counted |
API call examples¶
- PHP
$result = $api_admin->stats_get_orders($params);
- HTML
{{ admin.stats_get_orders() }}
- JavaScript
bb.post("admin/stats/get_orders", {})
admin/stats/get_clients¶
Return clients signups by day. If no timespan is selected method returns previous month statistics.
Optional parameters¶
date_from: | string - day since income are counted |
---|---|
date_to: | string - day until income are counted |
API call examples¶
- PHP
$result = $api_admin->stats_get_clients($params);
- HTML
{{ admin.stats_get_clients() }}
- JavaScript
bb.post("admin/stats/get_clients", {})
admin/stats/client_countries¶
Get number of clients in country
API call examples¶
- PHP
$result = $api_admin->stats_client_countries($params);
- HTML
{{ admin.stats_client_countries() }}
- JavaScript
bb.post("admin/stats/client_countries", {})
admin/stats/sales_countries¶
Get number of sales by country
API call examples¶
- PHP
$result = $api_admin->stats_sales_countries($params);
- HTML
{{ admin.stats_sales_countries() }}
- JavaScript
bb.post("admin/stats/sales_countries", {})
admin/stats/get_invoices¶
Return invoices by day. If no timespan is selected method returns previous month statistics.
Optional parameters¶
date_from: | string - day since income are counted |
---|---|
date_to: | string - day until income are counted |
API call examples¶
- PHP
$result = $api_admin->stats_get_invoices($params);
- HTML
{{ admin.stats_get_invoices() }}
- JavaScript
bb.post("admin/stats/get_invoices", {})
admin/stats/get_tickets¶
Return support tickets by day. If no timespan is selected method returns previous month statistics.
Optional parameters¶
date_from: | string - day since income are counted |
---|---|
date_to: | string - day until income are counted |
API call examples¶
- PHP
$result = $api_admin->stats_get_tickets($params);
- HTML
{{ admin.stats_get_tickets() }}
- JavaScript
bb.post("admin/stats/get_tickets", {})
Support¶
Support management module
admin/support/ticket_get_list¶
Get tickets list
Optional parameters¶
:: string status - filter tickets by status :: string date_from - show tickets created since this day. Can be any string parsable by strtotime() :: string date_to - show tickets created until this day. Can be any string parsable by strtotime()
API call examples¶
- PHP
$result = $api_admin->support_ticket_get_list($params);
- HTML
{{ admin.support_ticket_get_list() }}
- JavaScript
bb.post("admin/support/ticket_get_list", {})
admin/support/ticket_get¶
Return ticket full details
Required parameters¶
id: | int - ticket id |
---|
API call examples¶
- PHP
$result = $api_admin->support_ticket_get($params);
- HTML
{{ admin.support_ticket_get() }}
- JavaScript
bb.post("admin/support/ticket_get", {})
admin/support/ticket_update¶
Update ticket details
Required parameters¶
id: | int - ticket id |
---|
Optional parameters¶
support_helpdesk_id: | |
---|---|
int - ticket helpdesk id | |
status: | string - ticket status |
subject: | string - ticket subject |
priority: | string - ticket priority |
API call examples¶
- PHP
$result = $api_admin->support_ticket_update($params);
- HTML
{{ admin.support_ticket_update() }}
- JavaScript
bb.post("admin/support/ticket_update", {})
admin/support/ticket_message_update¶
Update ticket message
Required parameters¶
id: | int - ticket id |
---|---|
content: | string - new message content |
API call examples¶
- PHP
$result = $api_admin->support_ticket_message_update($params);
- HTML
{{ admin.support_ticket_message_update() }}
- JavaScript
bb.post("admin/support/ticket_message_update", {})
admin/support/ticket_delete¶
Delete ticket.
Required parameters¶
id: | int - ticket id |
---|
API call examples¶
- PHP
$result = $api_admin->support_ticket_delete($params);
- HTML
{{ admin.support_ticket_delete() }}
- JavaScript
bb.post("admin/support/ticket_delete", {})
admin/support/ticket_reply¶
Add new conversation message to to ticket
Required parameters¶
id: | int - ticket id |
---|---|
content: | string - ticket message content |
API call examples¶
- PHP
$result = $api_admin->support_ticket_reply($params);
- HTML
{{ admin.support_ticket_reply() }}
- JavaScript
bb.post("admin/support/ticket_reply", {})
admin/support/ticket_close¶
Close ticket
Required parameters¶
id: | int - ticket id |
---|
API call examples¶
- PHP
$result = $api_admin->support_ticket_close($params);
- HTML
{{ admin.support_ticket_close() }}
- JavaScript
bb.post("admin/support/ticket_close", {})
admin/support/ticket_create¶
Method to create open new ticket. Tickets can have tasks assigned to them via optional parameters.
Required parameters¶
client_id: | int - ticket client id |
---|---|
content: | string - ticket message content |
subject: | string - ticket subject |
support_helpdesk_id: | |
int - Ticket helpdesk id. |
Optional parameters¶
status: | string - Ticket status. Default - on hold |
---|
API call examples¶
- PHP
$result = $api_admin->support_ticket_create($params);
- HTML
{{ admin.support_ticket_create() }}
- JavaScript
bb.post("admin/support/ticket_create", {})
admin/support/batch_ticket_auto_close¶
Action to close all tickets which have not received any replies for a time defined in helpdesk
Run by cron job
API call examples¶
- PHP
$result = $api_admin->support_batch_ticket_auto_close($params);
- HTML
{{ admin.support_batch_ticket_auto_close() }}
- JavaScript
bb.post("admin/support/batch_ticket_auto_close", {})
admin/support/batch_public_ticket_auto_close¶
Action to close all inquiries which have not received any replies for a time defined in helpdesk
Run by cron job
API call examples¶
- PHP
$result = $api_admin->support_batch_public_ticket_auto_close($params);
- HTML
{{ admin.support_batch_public_ticket_auto_close() }}
- JavaScript
bb.post("admin/support/batch_public_ticket_auto_close", {})
admin/support/public_ticket_get_list¶
Get paginated list of inqueries
API call examples¶
- PHP
$result = $api_admin->support_public_ticket_get_list($params);
- HTML
{{ admin.support_public_ticket_get_list() }}
- JavaScript
bb.post("admin/support/public_ticket_get_list", {})
admin/support/public_ticket_create¶
Create new inquiry. Send email
Required parameters¶
name: | string - receivers name |
---|---|
email: | string - receivers email |
subject: | string - email subject |
message: | string - email message |
API call examples¶
- PHP
$result = $api_admin->support_public_ticket_create($params);
- HTML
{{ admin.support_public_ticket_create() }}
- JavaScript
bb.post("admin/support/public_ticket_create", {})
admin/support/public_ticket_get¶
Get inquiry details
Required parameters¶
id: | int - inquiry id |
---|
API call examples¶
- PHP
$result = $api_admin->support_public_ticket_get($params);
- HTML
{{ admin.support_public_ticket_get() }}
- JavaScript
bb.post("admin/support/public_ticket_get", {})
admin/support/public_ticket_delete¶
Delete inquiry
Required parameters¶
id: | int - inquiry id |
---|
API call examples¶
- PHP
$result = $api_admin->support_public_ticket_delete($params);
- HTML
{{ admin.support_public_ticket_delete() }}
- JavaScript
bb.post("admin/support/public_ticket_delete", {})
admin/support/public_ticket_close¶
Set iquery status to closed
Required parameters¶
id: | int - inquiry id |
---|
API call examples¶
- PHP
$result = $api_admin->support_public_ticket_close($params);
- HTML
{{ admin.support_public_ticket_close() }}
- JavaScript
bb.post("admin/support/public_ticket_close", {})
admin/support/public_ticket_update¶
Update inquiry details
Required parameters¶
id: | int - inquiry id |
---|
Optional parameters¶
subject: | string - subject |
---|---|
status: | string - status |
API call examples¶
- PHP
$result = $api_admin->support_public_ticket_update($params);
- HTML
{{ admin.support_public_ticket_update() }}
- JavaScript
bb.post("admin/support/public_ticket_update", {})
admin/support/public_ticket_reply¶
Post new reply to inquiry
Required parameters¶
id: | int - inquiry id |
---|---|
content: | string - text message |
API call examples¶
- PHP
$result = $api_admin->support_public_ticket_reply($params);
- HTML
{{ admin.support_public_ticket_reply() }}
- JavaScript
bb.post("admin/support/public_ticket_reply", {})
admin/support/public_ticket_get_statuses¶
Return tickets statuses with counter
API call examples¶
- PHP
$result = $api_admin->support_public_ticket_get_statuses($params);
- HTML
{{ admin.support_public_ticket_get_statuses() }}
- JavaScript
bb.post("admin/support/public_ticket_get_statuses", {})
admin/support/helpdesk_get_list¶
Get helpdesk list
API call examples¶
- PHP
$result = $api_admin->support_helpdesk_get_list($params);
- HTML
{{ admin.support_helpdesk_get_list() }}
- JavaScript
bb.post("admin/support/helpdesk_get_list", {})
admin/support/helpdesk_get_pairs¶
Get pairs of helpdesks
API call examples¶
- PHP
$result = $api_admin->support_helpdesk_get_pairs($params);
- HTML
{{ admin.support_helpdesk_get_pairs() }}
- JavaScript
bb.post("admin/support/helpdesk_get_pairs", {})
admin/support/helpdesk_get¶
Get helpdesk details
Required parameters¶
id: | int - helpdesk id |
---|
API call examples¶
- PHP
$result = $api_admin->support_helpdesk_get($params);
- HTML
{{ admin.support_helpdesk_get() }}
- JavaScript
bb.post("admin/support/helpdesk_get", {})
admin/support/helpdesk_update¶
Update helpdesk parameters
Required parameters¶
id: | int - helpdesk id |
---|
Optional parameters¶
name: | string - helpdesk name |
---|---|
email: | string - helpdesk email |
can_reopen: | string - flag to enable/disable ability to reopen closed tickets |
close_after: | int - time to wait for reply before auto closing ticket |
signature: | string - helpdesk signature |
API call examples¶
- PHP
$result = $api_admin->support_helpdesk_update($params);
- HTML
{{ admin.support_helpdesk_update() }}
- JavaScript
bb.post("admin/support/helpdesk_update", {})
admin/support/helpdesk_create¶
Create new helpdesk
Required parameters¶
name: | string - new helpdesk title |
---|
Optional parameters¶
email: | string - helpdesk email |
---|---|
can_reopen: | string - flag to enable/disable ability to reopen closed tickets |
close_after: | int - time to wait for reply before auto closing ticket |
signature: | string - helpdesk signature |
API call examples¶
- PHP
$result = $api_admin->support_helpdesk_create($params);
- HTML
{{ admin.support_helpdesk_create() }}
- JavaScript
bb.post("admin/support/helpdesk_create", {})
admin/support/helpdesk_delete¶
Delete helpdesk
Required parameters¶
id: | int - helpdesk id |
---|
API call examples¶
- PHP
$result = $api_admin->support_helpdesk_delete($params);
- HTML
{{ admin.support_helpdesk_delete() }}
- JavaScript
bb.post("admin/support/helpdesk_delete", {})
admin/support/canned_get_list¶
Get list of canned responses
API call examples¶
- PHP
$result = $api_admin->support_canned_get_list($params);
- HTML
{{ admin.support_canned_get_list() }}
- JavaScript
bb.post("admin/support/canned_get_list", {})
admin/support/canned_pairs¶
Get list of canned responses grouped by category
API call examples¶
- PHP
$result = $api_admin->support_canned_pairs($params);
- HTML
{{ admin.support_canned_pairs() }}
- JavaScript
bb.post("admin/support/canned_pairs", {})
admin/support/canned_get¶
Get canned response details
Required parameters¶
id: | int - canned response id |
---|
API call examples¶
- PHP
$result = $api_admin->support_canned_get($params);
- HTML
{{ admin.support_canned_get() }}
- JavaScript
bb.post("admin/support/canned_get", {})
admin/support/canned_delete¶
Delete canned response
Required parameters¶
id: | id - canned response id |
---|
API call examples¶
- PHP
$result = $api_admin->support_canned_delete($params);
- HTML
{{ admin.support_canned_delete() }}
- JavaScript
bb.post("admin/support/canned_delete", {})
admin/support/canned_create¶
Create new canned response
Required parameters¶
title: | string - canned response title |
---|---|
category_id: | int - canned response category id |
Optional parameters¶
content: | string - canned response content |
---|
API call examples¶
- PHP
$result = $api_admin->support_canned_create($params);
- HTML
{{ admin.support_canned_create() }}
- JavaScript
bb.post("admin/support/canned_create", {})
admin/support/canned_update¶
Update canned response
Required parameters¶
id: | int - canned response id |
---|
Optional parameters¶
title: | string - canned response title |
---|---|
category_id: | int - canned response category id |
content: | string - canned response content |
API call examples¶
- PHP
$result = $api_admin->support_canned_update($params);
- HTML
{{ admin.support_canned_update() }}
- JavaScript
bb.post("admin/support/canned_update", {})
admin/support/canned_category_pairs¶
Get canned response pairs
API call examples¶
- PHP
$result = $api_admin->support_canned_category_pairs($params);
- HTML
{{ admin.support_canned_category_pairs() }}
- JavaScript
bb.post("admin/support/canned_category_pairs", {})
admin/support/canned_category_get¶
Get canned response category
Required parameters¶
id: | int - canned response category id |
---|
API call examples¶
- PHP
$result = $api_admin->support_canned_category_get($params);
- HTML
{{ admin.support_canned_category_get() }}
- JavaScript
bb.post("admin/support/canned_category_get", {})
admin/support/canned_category_update¶
Get canned response category
Required parameters¶
id: | int - canned response category id |
---|
Optional parameters¶
title: | string - new category title |
---|
API call examples¶
- PHP
$result = $api_admin->support_canned_category_update($params);
- HTML
{{ admin.support_canned_category_update() }}
- JavaScript
bb.post("admin/support/canned_category_update", {})
admin/support/canned_category_delete¶
Delete canned response category
Required parameters¶
id: | int - canned response category id |
---|
API call examples¶
- PHP
$result = $api_admin->support_canned_category_delete($params);
- HTML
{{ admin.support_canned_category_delete() }}
- JavaScript
bb.post("admin/support/canned_category_delete", {})
admin/support/canned_category_create¶
Create canned response category
Required parameters¶
title: | string - canned response category title |
---|
API call examples¶
- PHP
$result = $api_admin->support_canned_category_create($params);
- HTML
{{ admin.support_canned_category_create() }}
- JavaScript
bb.post("admin/support/canned_category_create", {})
admin/support/note_create¶
Add note to support ticket
Required parameters¶
ticket_id: | int - support ticket id to add note to |
---|---|
note: | string - note |
API call examples¶
- PHP
$result = $api_admin->support_note_create($params);
- HTML
{{ admin.support_note_create() }}
- JavaScript
bb.post("admin/support/note_create", {})
System¶
System management methods
admin/system/license_info¶
Returns licensing information
API call examples¶
- PHP
$result = $api_admin->system_license_info($params);
- HTML
{{ admin.system_license_info() }}
- JavaScript
bb.post("admin/system/license_info", {})
admin/system/param¶
Return system setting param
Required parameters¶
key: | string - parameter key name |
---|
API call examples¶
- PHP
$result = $api_admin->system_param($params);
- HTML
{{ admin.system_param() }}
- JavaScript
bb.post("admin/system/param", {})
admin/system/get_params¶
Get all defined system params
API call examples¶
- PHP
$result = $api_admin->system_get_params($params);
- HTML
{{ admin.system_get_params() }}
- JavaScript
bb.post("admin/system/get_params", {})
admin/system/update_params¶
Updated parameters array with new values. Creates new setting if it was not defined earlier. You can create new parameters using this method.
This method accepts any number of parameters you pass.
Required parameters¶
key: | string - name of the parameter to be changed/created |
---|
API call examples¶
- PHP
$result = $api_admin->system_update_params($params);
- HTML
{{ admin.system_update_params() }}
- JavaScript
bb.post("admin/system/update_params", {})
admin/system/messages¶
System messages about working environment.
Required parameters¶
type: | string - messages type to be returned: info |
---|
API call examples¶
- PHP
$result = $api_admin->system_messages($params);
- HTML
{{ admin.system_messages() }}
- JavaScript
bb.post("admin/system/messages", {})
admin/system/template_exists¶
Check if passed file name template exists for admin area
Required parameters¶
file: | string - template file name, example: mod_index_dashboard.phtml |
---|
API call examples¶
- PHP
$result = $api_admin->system_template_exists($params);
- HTML
{{ admin.system_template_exists() }}
- JavaScript
bb.post("admin/system/template_exists", {})
admin/system/string_render¶
Parse string like BoxBilling template
Required parameters¶
_tpl: | string - Template text to be parsed |
---|
Optional parameters¶
_try: | bool - if true, will not throw error if template is not valid, returns _tpl string |
---|---|
_client_id: | int - if passed client id, then client API will also be available |
API call examples¶
- PHP
$result = $api_admin->system_string_render($params);
- HTML
{{ admin.system_string_render() }}
- JavaScript
bb.post("admin/system/string_render", {})
admin/system/env¶
Returns system environment information.
API call examples¶
- PHP
$result = $api_admin->system_env($params);
- HTML
{{ admin.system_env() }}
- JavaScript
bb.post("admin/system/env", {})
admin/system/is_allowed¶
Method to check if staff member has permission to access module
Required parameters¶
mod: | string - module name |
---|
Optional parameters¶
f: | string - module method name |
---|
API call examples¶
- PHP
$result = $api_admin->system_is_allowed($params);
- HTML
{{ admin.system_is_allowed() }}
- JavaScript
bb.post("admin/system/is_allowed", {})
Theme¶
admin/theme/get_list¶
Get list of available client area themes
API call examples¶
- PHP
$result = $api_admin->theme_get_list($params);
- HTML
{{ admin.theme_get_list() }}
- JavaScript
bb.post("admin/theme/get_list", {})
admin/theme/get¶
Get theme by code
Required parameters¶
code: | string - theme code |
---|
API call examples¶
- PHP
$result = $api_admin->theme_get($params);
- HTML
{{ admin.theme_get() }}
- JavaScript
bb.post("admin/theme/get", {})
admin/theme/select¶
Set new theme as default
Required parameters¶
code: | string - theme code |
---|
API call examples¶
- PHP
$result = $api_admin->theme_select($params);
- HTML
{{ admin.theme_select() }}
- JavaScript
bb.post("admin/theme/select", {})
Event Hooks¶
List of available event hooks on BoxBilling
onAfterAdminActivateExtension¶
onAfterAdminBatchSuspendOrders¶
onAfterAdminClientDelete¶
onAfterAdminClientPasswordChange¶
onAfterAdminClientUpdate¶
onAfterAdminCloseTicket¶
onAfterAdminCreateClient¶
onAfterAdminCronRun¶
onAfterAdminDeactivateExtension¶
onAfterAdminDeleteCurrency¶
onAfterAdminExtensionConfigSave¶
onAfterAdminGenerateRenewalInvoice¶
onAfterAdminInstallExtension¶
onAfterAdminInvoiceApprove¶
onAfterAdminInvoiceDelete¶
onAfterAdminInvoiceRefund¶
onAfterAdminInvoiceReminderSent¶
onAfterAdminInvoiceUpdate¶
onAfterAdminLogin¶
onAfterAdminNotificationAdd¶
onAfterAdminOpenTicket¶
onAfterAdminOrderActivate¶
onAfterAdminOrderCancel¶
onAfterAdminOrderCreate¶
onAfterAdminOrderDelete¶
onAfterAdminOrderDelete¶
onAfterAdminOrderRenew¶
onAfterAdminOrderSuspend¶
onAfterAdminOrderUncancel¶
onAfterAdminOrderUnsuspend¶
onAfterAdminOrderUpdate¶
onAfterAdminPublicTicketClose¶
onAfterAdminPublicTicketOpen¶
onAfterAdminPublicTicketReply¶
onAfterAdminRepliedInForum¶
onAfterAdminReplyTicket¶
onAfterAdminSettingsUpdate¶
onAfterAdminStaffApiKeyChange¶
onAfterAdminStaffApiKeyChange¶
onAfterAdminStaffCreate¶
onAfterAdminStaffDelete¶
onAfterAdminStaffPasswordChange¶
onAfterAdminStaffProfilePasswordChange¶
onAfterAdminStaffProfilePasswordChange¶
onAfterAdminStaffProfileUpdate¶
onAfterAdminStaffProfileUpdate¶
onAfterAdminStaffUpdate¶
onAfterAdminSubscriptionCreate¶
onAfterAdminSubscriptionDelete¶
onAfterAdminTransactionCreate¶
onAfterAdminTransactionProcess¶
onAfterAdminTransactionUpdate¶
onAfterAdminUninstallExtension¶
onAfterClientCalledExampleModule¶
onAfterClientChangeNameservers¶
onAfterClientCloseTicket¶
onAfterClientCreateForumTopic¶
onAfterClientLogin¶
onAfterClientOpenTicket¶
onAfterClientOrderCreate¶
onAfterClientProfilePasswordChange¶
onAfterClientProfilePasswordChange¶
onAfterClientProfileUpdate¶
onAfterClientProfileUpdate¶
onAfterClientRepliedInForum¶
onAfterClientReplyTicket¶
onAfterClientSignUp¶
onAfterGuestPublicTicketClose¶
onAfterGuestPublicTicketOpen¶
onAfterGuestPublicTicketReply¶
onAfterProductAddedToCart¶
onBeforeAdminActivateExtension¶
onBeforeAdminBatchSuspendOrders¶
onBeforeAdminClientDelete¶
onBeforeAdminClientPasswordChange¶
onBeforeAdminClientUpdate¶
onBeforeAdminCreateClient¶
onBeforeAdminCronRun¶
onBeforeAdminDeactivateExtension¶
onBeforeAdminDeleteCurrency¶
onBeforeAdminExtensionConfigSave¶
onBeforeAdminGenerateRenewalInvoice¶
onBeforeAdminInstallExtension¶
onBeforeAdminInvoiceApprove¶
onBeforeAdminInvoiceDelete¶
onBeforeAdminInvoiceRefund¶
onBeforeAdminInvoiceSendReminder¶
onBeforeAdminInvoiceSendReminders¶
onBeforeAdminInvoiceUpdate¶
onBeforeAdminLogin¶
onBeforeAdminOpenTicket¶
onBeforeAdminOrderActivate¶
onBeforeAdminOrderActivate¶
onBeforeAdminOrderActivate¶
onBeforeAdminOrderCancel¶
onBeforeAdminOrderCreate¶
onBeforeAdminOrderDelete¶
onBeforeAdminOrderDelete¶
onBeforeAdminOrderRenew¶
onBeforeAdminOrderSuspend¶
onBeforeAdminOrderUncancel¶
onBeforeAdminOrderUnsuspend¶
onBeforeAdminOrderUpdate¶
onBeforeAdminPublicTicketOpen¶
onBeforeAdminSettingsUpdate¶
onBeforeAdminStaffApiKeyChange¶
onBeforeAdminStaffApiKeyChange¶
onBeforeAdminStaffCreate¶
onBeforeAdminStaffDelete¶
onBeforeAdminStaffPasswordChange¶
onBeforeAdminStaffProfilePasswordChange¶
onBeforeAdminStaffProfilePasswordChange¶
onBeforeAdminStaffProfileUpdate¶
onBeforeAdminStaffProfileUpdate¶
onBeforeAdminStaffUpdate¶
onBeforeAdminTransactionCreate¶
onBeforeAdminTransactionProcess¶
onBeforeAdminTransactionUpdate¶
onBeforeAdminUninstallExtension¶
onBeforeClientChangeNameservers¶
onBeforeClientCheckout¶
onBeforeClientCreateForumTopic¶
onBeforeClientInvoiceDelete¶
onBeforeClientLogin¶
onBeforeClientOpenTicket¶
onBeforeClientProfilePasswordChange¶
onBeforeClientProfilePasswordChange¶
onBeforeClientProfileUpdate¶
onBeforeClientProfileUpdate¶
onBeforeClientRepliedInForum¶
onBeforeClientSignUp¶
onBeforeGuestPasswordResetRequest¶
onBeforeGuestPublicTicketOpen¶
onBeforeProductAddedToCart¶
onEventAdminLoginFailed¶
onEventAfterInvoiceIsDue¶
onEventBeforeInvoiceIsDue¶
onEventClientLoginFailed¶
Updating BoxBilling¶
To track BoxBilling development milestones please visit our github page at https://github.com/boxbilling/BoxBilling
Automatic updates¶
When BoxBilling new version is released you will be notified in admin area dashboard.
To check if new version is available to update go to Extensions > Overview -> Update section
If there is new version available you can try using automatic updater.
Note
PHP extensions ftp and zip should be available for this to work
Note
Do not interrupt automatic update process as it may lead to unexpected results.
Manual update¶
- Download latest version from download page
- Extract files at your computer
- Upload (overwrite) extracted files via FTP
- Execute update file http://www.yourdomain.com/bb-update.php on your browser
Note
Please make full backups of your current installation before proceeding.
Updating with console¶
Geeky method to update BoxBilling. Create update.sh script in your BoxBilling installation directory.
#!/bin/sh
UPDATE_URL="http://www.boxbilling.com/version/latest_update.zip"
wget -O update.zip -q $UPDATE_URL
unzip -o update.zip
php bb-update.php
rm -rf update.zip
rm -rf bb-data/cache/*
Tutorials¶
In BoxBilling we try to keep it simple while making our software as flexible as possible. These tutorials will show you how to make use of BoxBilling and add additional functionality
Wysiwyg Editor tutorial¶
Enable wysiwyg editor¶
- Go to Extensions -> Overview page
- Enable Wysiwyg extension from BoxBilling extension list
- Select editor from available editor list
Append wysiwyg editor’s toolbar to textarea¶
- In template file find textarea tag and add
bb-textarea
class - At the end of template file append
{% block head %}{{ mf.bb_editor('.bb-textarea') }}{% endblock %}
How to edit BoxBilling templates¶
If you want to edit any BoxBilling template you can feel free to do so, however there is one thing to remember before you do it. All templates you want to edit must be copied from extension folder to theme html folder.
Let’s say you are using huraga
theme and want to change the way invoice is displayed for client.
In this case you would need to copy bb-modules/Invoice/html_client/mod_invoice_invoice.phtml
to bb-themes/huraga/html
and then you can edit it to fit you needs.
Why is it necessary?¶
When you update BoxBilling all of the core files are being overwritten what would result in your edited files being overwritten as well. Meanwhile theme files stay untouched during update.
How BoxBilling knows which file to render?¶
BoxBilling first of all looks into bb-themes/$theme/html
folder (where $theme
means your default theme) and if it does not find required template there then it looks in extension directory. This way if there are 2 files with same name in theme and extension directories the one from theme folder would be loaded and second one ignored.
How to add order popup to custom theme?¶
Order popup (which is default way to order products and services in huraga theme ) can be added to any custom template in a few simple steps:
- Go to Configuration -> Settings -> Order Button and adjust popup settings. You can see how it will look by clicking on “TRY YOUR POPUP” button. Code which you need to include to your template will be generated automatically and will look similar to following:
<script type="text/javascript" src="http://www.yourdomain.com/index.php?_url=/orderbutton/js&options=1&width=600&theme_color=green&background_color=%23000000&background_opacity=50&bind_selector=.order-button&border_radius=0"></script>
- Include this code in footer or head of your HTML template.
<head>
<title>My Website Name</title>
<script type="text/javascript" src="http://www.yourdomain.com/index.php?_url=/orderbutton/js&options=1&width=600&theme_color=green&background_color=%23000000&background_opacity=50&bind_selector=.order-button&border_radius=0"></script>
</head>
- Now you need to add class to button or any other HTML element which should open popup. You can set any class you like in popup settings, but in this example we will use default
.order-button
class. Let’s say we have a button which is supposed to open order popup, so it should look like this:
<button class="order-button">Order</button>
That’s it, now when someone clicks on this button they will see popup where they can choose from products list or product order form depending how you configured it.
Credits¶
BoxBilling is using these open source projects
- Redbean
- http://redbeanphp.com/
- Twig
- http://www.twig-project.org/