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!

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

  1. You will need to tick “I agree to the license” to continue the installation.
  2. 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.
  3. 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.
  4. 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.
  5. Even though BoxBilling is free it requires to obtain license key in order to work.
  6. Finish installation with confirming that all the information is correct.
After installation is complete
  1. Remove www.yourdomain.com/billing/install directory completely
  2. Change billing/bb-config.php file permissions to 644 if necessary
  3. 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.

Screen

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

Screen

SolusVM configuration

Go to BoxBilling admin area > Configuration > SolusVM management menu

Screen

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.

Change currency format

Currency format can be easily change in currency management page.

Screen

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()`.

![picture alt](/images/photo.jpeg "Title is optional")

> 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.

Faq

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?

Yes.

How to obtain license key?

Get license at http://www.boxbilling.com/order

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 use curl a lot - its by default enabled in php, but sometimes its either not present or its in list of disabled_functions in php.ini

Using phpinfo() or php.ini check whether curl extension is enabled, if not recompile php. If curl_exec is within disabled_functions list, remove it from php.ini

Cache folder is not writable

bb-data/cache folder is not writable. BoxBilling keeps compiled templates in this directory, if its not writable it may result with blank page 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}}

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", {})
    
guest/client/required

List of required fields for client registration

API call examples
  • PHP
    $result = $api_guest->client_required($params);
    
  • HTML
    {{ guest.client_required() }}
    
  • JavaScript
    bb.post("guest/client/required", {})
    

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", {})
    
guest/cron/settings

Get cron settings

API call examples
  • PHP
    $result = $api_guest->cron_settings($params);
    
  • HTML
    {{ guest.cron_settings() }}
    
  • JavaScript
    bb.post("guest/cron/settings", {})
    
guest/cron/is_late

Tells if cron is late

API call examples
  • PHP
    $result = $api_guest->cron_is_late($params);
    
  • HTML
    {{ guest.cron_is_late() }}
    
  • JavaScript
    bb.post("guest/cron/is_late", {})
    

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

guest/example/readme

Get readme.md file contents

API call examples
  • PHP
    $result = $api_guest->example_readme($params);
    
  • HTML
    {{ guest.example_readme() }}
    
  • JavaScript
    bb.post("guest/example/readme", {})
    
guest/example/top_songs

Get Top Songs from iTunes Store

Required parameters
limit:int - define songs limit
API call examples
  • PHP
    $result = $api_guest->example_top_songs($params);
    
  • HTML
    {{ guest.example_top_songs() }}
    
  • JavaScript
    bb.post("guest/example/top_songs", {})
    

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", {})
    
guest/extension/theme

Return active theme info

API call examples
  • PHP
    $result = $api_guest->extension_theme($params);
    
  • HTML
    {{ guest.extension_theme() }}
    
  • JavaScript
    bb.post("guest/extension/theme", {})
    
guest/extension/languages

Retrieve list of available languages

API call examples
  • PHP
    $result = $api_guest->extension_languages($params);
    
  • HTML
    {{ guest.extension_languages() }}
    
  • JavaScript
    bb.post("guest/extension/languages", {})
    

Formbuilder

Custom forms

guest/formbuilder/get

Get custom order form details for product

Required parameters
product_id:int - Product id
API call examples
  • PHP
    $result = $api_guest->formbuilder_get($params);
    
  • HTML
    {{ guest.formbuilder_get() }}
    
  • JavaScript
    bb.post("guest/formbuilder/get", {})
    

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

guest/serviceyouhosting/webhook

Youhosting webhooks listener

API call examples
  • PHP
    $result = $api_guest->serviceyouhosting_webhook($params);
    
  • HTML
    {{ guest.serviceyouhosting_webhook() }}
    
  • JavaScript
    bb.post("guest/serviceyouhosting/webhook", {})
    
guest/serviceyouhosting/master_domains

Return master_domains

API call examples
  • PHP
    $result = $api_guest->serviceyouhosting_master_domains($params);
    
  • HTML
    {{ guest.serviceyouhosting_master_domains() }}
    
  • JavaScript
    bb.post("guest/serviceyouhosting/master_domains", {})
    

Spamchecker

Spam cheking module management

guest/spamchecker/recaptcha

Returns recaptcha public key

API call examples
  • PHP
    $result = $api_guest->spamchecker_recaptcha($params);
    
  • HTML
    {{ guest.spamchecker_recaptcha() }}
    
  • JavaScript
    bb.post("guest/spamchecker/recaptcha", {})
    

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", {})
    
guest/system/locale

Get current client locale

API call examples
  • PHP
    $result = $api_guest->system_locale($params);
    
  • HTML
    {{ guest.system_locale() }}
    
  • JavaScript
    bb.post("guest/system/locale", {})
    

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

client/client/balance_get_list

Get payments information

API call examples
  • PHP
    $result = $api_client->client_balance_get_list($params);
    
  • HTML
    {{ client.client_balance_get_list() }}
    
  • JavaScript
    bb.post("client/client/balance_get_list", {})
    

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", {})
    
client/email/resend

Resend email to client once again

Required parameters
id:int - Email id
API call examples
  • PHP
    $result = $api_client->email_resend($params);
    
  • HTML
    {{ client.email_resend() }}
    
  • JavaScript
    bb.post("client/email/resend", {})
    
client/email/delete

Remove email from system.

Required parameters
id:int - Email id
API call examples
  • PHP
    $result = $api_client->email_delete($params);
    
  • HTML
    {{ client.email_delete() }}
    
  • JavaScript
    bb.post("client/email/delete", {})
    

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", {})
    
client/forum/favorite_remove

Remove topic from favorites

Required parameters
id:int - forum topic id
API call examples
  • PHP
    $result = $api_client->forum_favorite_remove($params);
    
  • HTML
    {{ client.forum_favorite_remove() }}
    
  • JavaScript
    bb.post("client/forum/favorite_remove", {})
    
client/forum/profile

Forum profile

API call examples
  • PHP
    $result = $api_client->forum_profile($params);
    
  • HTML
    {{ client.forum_profile() }}
    
  • JavaScript
    bb.post("client/forum/profile", {})
    

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", {})
    
client/order/upgradables

List of product pairs offered as an upgrade

Required parameters
id:int - order id
API call examples
  • PHP
    $result = $api_client->order_upgradables($params);
    
  • HTML
    {{ client.order_upgradables() }}
    
  • JavaScript
    bb.post("client/order/upgradables", {})
    
client/order/delete

Can delete only pending setup and failed setup orders

Required parameters
id:int - order id
API call examples
  • PHP
    $result = $api_client->order_delete($params);
    
  • HTML
    {{ client.order_delete() }}
    
  • JavaScript
    bb.post("client/order/delete", {})
    

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", {})
    
client/profile/change_password

Change client area password

API call examples
  • PHP
    $result = $api_client->profile_change_password($params);
    
  • HTML
    {{ client.profile_change_password() }}
    
  • JavaScript
    bb.post("client/profile/change_password", {})
    
client/profile/logout

Clear session and logout

API call examples
  • PHP
    $result = $api_client->profile_logout($params);
    
  • HTML
    {{ client.profile_logout() }}
    
  • JavaScript
    bb.post("client/profile/logout", {})
    

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", {})
    
client/servicedomain/lock

Lock domain

Required parameters
order_id:int - domain order id
API call examples
  • PHP
    $result = $api_client->servicedomain_lock($params);
    
  • HTML
    {{ client.servicedomain_lock() }}
    
  • JavaScript
    bb.post("client/servicedomain/lock", {})
    
client/servicedomain/unlock

Unlock domain

Required parameters
order_id:int - domain order id
API call examples
  • PHP
    $result = $api_client->servicedomain_unlock($params);
    
  • HTML
    {{ client.servicedomain_unlock() }}
    
  • JavaScript
    bb.post("client/servicedomain/unlock", {})
    

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", {})
    
client/servicehosting/hp_get_pairs

Get hosting plans pairs. Usually for select box

API call examples
  • PHP
    $result = $api_client->servicehosting_hp_get_pairs($params);
    
  • HTML
    {{ client.servicehosting_hp_get_pairs() }}
    
  • JavaScript
    bb.post("client/servicehosting/hp_get_pairs", {})
    

Servicelicense

License Service management

client/servicelicense/reset

Reset license validation rules.

Required parameters
order_id:int - License service order id
API call examples
  • PHP
    $result = $api_client->servicelicense_reset($params);
    
  • HTML
    {{ client.servicelicense_reset() }}
    
  • JavaScript
    bb.post("client/servicelicense/reset", {})
    

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", {})
    
client/support/ticket_close

Close ticket

Required parameters
id:int - ticket id
API call examples
  • PHP
    $result = $api_client->support_ticket_close($params);
    
  • HTML
    {{ client.support_ticket_close() }}
    
  • JavaScript
    bb.post("client/support/ticket_close", {})
    

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", {})
    
admin/activity/log_email

Add email to log

API call examples
  • PHP
    $result = $api_admin->activity_log_email($params);
    
  • HTML
    {{ admin.activity_log_email() }}
    
  • JavaScript
    bb.post("admin/activity/log_email", {})
    
admin/activity/log_delete

Remove activity message

Required parameters
id:int - Message ID
API call examples
  • PHP
    $result = $api_admin->activity_log_delete($params);
    
  • HTML
    {{ admin.activity_log_delete() }}
    
  • JavaScript
    bb.post("admin/activity/log_delete", {})
    

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", {})
    
admin/cart/get

Get shopping cart contents by id

Required parameters
id:int - shopping cart id
API call examples
  • PHP
    $result = $api_admin->cart_get($params);
    
  • HTML
    {{ admin.cart_get() }}
    
  • JavaScript
    bb.post("admin/cart/get", {})
    
admin/cart/batch_expire

Remove shopping carts that are older than a week and was not ordered

API call examples
  • PHP
    $result = $api_admin->cart_batch_expire($params);
    
  • HTML
    {{ admin.cart_batch_expire() }}
    
  • JavaScript
    bb.post("admin/cart/batch_expire", {})
    

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", {})
    
admin/client/group_delete

Delete client group

Required parameters
id:int - client group ID
API call examples
  • PHP
    $result = $api_admin->client_group_delete($params);
    
  • HTML
    {{ admin.client_group_delete() }}
    
  • JavaScript
    bb.post("admin/client/group_delete", {})
    
admin/client/group_get

Get client group details

Required parameters
id:int - client group ID
API call examples
  • PHP
    $result = $api_admin->client_group_get($params);
    
  • HTML
    {{ admin.client_group_get() }}
    
  • JavaScript
    bb.post("admin/client/group_get", {})
    

Cron

Cron management

admin/cron/info

Returns cron job information. When it was last executed, where cron job file is located.

API call examples
  • PHP
    $result = $api_admin->cron_info($params);
    
  • HTML
    {{ admin.cron_info() }}
    
  • JavaScript
    bb.post("admin/cron/info", {})
    
admin/cron/run

Run cron

API call examples
  • PHP
    $result = $api_admin->cron_run($params);
    
  • HTML
    {{ admin.cron_run() }}
    
  • JavaScript
    bb.post("admin/cron/run", {})
    

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", {})
    
admin/email/batch_template_enable

Enable all email templates at once

API call examples
  • PHP
    $result = $api_admin->email_batch_template_enable($params);
    
  • HTML
    {{ admin.email_batch_template_enable() }}
    
  • JavaScript
    bb.post("admin/email/batch_template_enable", {})
    
admin/email/send_test

Sends test email to admins

Required parameters
data:type
API call examples
  • PHP
    $result = $api_admin->email_send_test($params);
    
  • HTML
    {{ admin.email_send_test() }}
    
  • JavaScript
    bb.post("admin/email/send_test", {})
    

Example

Example module Admin API

API can be access only by admins

admin/example/get_something

Return list of example objects

API call examples
  • PHP
    $result = $api_admin->example_get_something($params);
    
  • HTML
    {{ admin.example_get_something() }}
    
  • JavaScript
    bb.post("admin/example/get_something", {})
    

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/get_navigation

Get admin area navigation

API call examples
  • PHP
    $result = $api_admin->extension_get_navigation($params);
    
  • HTML
    {{ admin.extension_get_navigation() }}
    
  • JavaScript
    bb.post("admin/extension/get_navigation", {})
    
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", {})
    
admin/filemanager/get_list

Get list of files in folder

Optional parameters
path:string - directory path to be listed
API call examples
  • PHP
    $result = $api_admin->filemanager_get_list($params);
    
  • HTML
    {{ admin.filemanager_get_list() }}
    
  • JavaScript
    bb.post("admin/filemanager/get_list", {})
    

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", {})
    
admin/forum/points_update

Update total points for client

Required parameters
client_id:int - client id
amount:float - new points total
API call examples
  • PHP
    $result = $api_admin->forum_points_update($params);
    
  • HTML
    {{ admin.forum_points_update() }}
    
  • JavaScript
    bb.post("admin/forum/points_update", {})
    
admin/forum/profile_get

Client forum profile

Required parameters
client_id:int - client id
API call examples
  • PHP
    $result = $api_admin->forum_profile_get($params);
    
  • HTML
    {{ admin.forum_profile_get() }}
    
  • JavaScript
    bb.post("admin/forum/profile_get", {})
    

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", {})
    
admin/kb/category_delete

Delete knowledge base category

Required parameters
id:int - knowledge base category ID
API call examples
  • PHP
    $result = $api_admin->kb_category_delete($params);
    
  • HTML
    {{ admin.kb_category_delete() }}
    
  • JavaScript
    bb.post("admin/kb/category_delete", {})
    
admin/kb/category_get_pairs

Get knowledge base categories id, title pairs

API call examples
  • PHP
    $result = $api_admin->kb_category_get_pairs($params);
    
  • HTML
    {{ admin.kb_category_get_pairs() }}
    
  • JavaScript
    bb.post("admin/kb/category_get_pairs", {})
    

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", {})
    
admin/massmailer/delete

Delete mail message by ID

Required parameters
id:int - mail message ID
API call examples
  • PHP
    $result = $api_admin->massmailer_delete($params);
    
  • HTML
    {{ admin.massmailer_delete() }}
    
  • JavaScript
    bb.post("admin/massmailer/delete", {})
    
admin/massmailer/preview

Generate preview text

Required parameters
id:int - message id
API call examples
  • PHP
    $result = $api_admin->massmailer_preview($params);
    
  • HTML
    {{ admin.massmailer_preview() }}
    
  • JavaScript
    bb.post("admin/massmailer/preview", {})
    

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", {})
    
admin/news/delete

Delete news item by ID

Required parameters
id:int - news item ID
API call examples
  • PHP
    $result = $api_admin->news_delete($params);
    
  • HTML
    {{ admin.news_delete() }}
    
  • JavaScript
    bb.post("admin/news/delete", {})
    

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", {})
    
admin/notification/delete

Remove notification message

Required parameters
id:int - message id
API call examples
  • PHP
    $result = $api_admin->notification_delete($params);
    
  • HTML
    {{ admin.notification_delete() }}
    
  • JavaScript
    bb.post("admin/notification/delete", {})
    
admin/notification/delete_all

Remove all notification messages

API call examples
  • PHP
    $result = $api_admin->notification_delete_all($params);
    
  • HTML
    {{ admin.notification_delete_all() }}
    
  • JavaScript
    bb.post("admin/notification/delete_all", {})
    

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", {})
    
admin/order/get_status_pairs

Return order statuses codes with titles

API call examples
  • PHP
    $result = $api_admin->order_get_status_pairs($params);
    
  • HTML
    {{ admin.order_get_status_pairs() }}
    
  • JavaScript
    bb.post("admin/order/get_status_pairs", {})
    
admin/order/addons

Return order addons list

Required parameters
id:int - Order id
API call examples
  • PHP
    $result = $api_admin->order_addons($params);
    
  • HTML
    {{ admin.order_addons() }}
    
  • JavaScript
    bb.post("admin/order/addons", {})
    

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", {})
    
admin/product/promo_delete

Delete promo code

Required parameters
id:int - promo code id
API call examples
  • PHP
    $result = $api_admin->product_promo_delete($params);
    
  • HTML
    {{ admin.product_promo_delete() }}
    
  • JavaScript
    bb.post("admin/product/promo_delete", {})
    

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", {})
    
admin/redirect/delete

Delete redirect

Required parameters
id:int - redirect id
API call examples
  • PHP
    $result = $api_admin->redirect_delete($params);
    
  • HTML
    {{ admin.redirect_delete() }}
    
  • JavaScript
    bb.post("admin/redirect/delete", {})
    

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", {})
    
admin/servicelicense/reset

Reset license validation rules.

Required parameters
order_id:int - License service order id
API call examples
  • PHP
    $result = $api_admin->servicelicense_reset($params);
    
  • HTML
    {{ admin.servicelicense_reset() }}
    
  • JavaScript
    bb.post("admin/servicelicense/reset", {})
    

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", {})
    
admin/serviceyouhosting/import_clients

Import clients from YouHosting to BoxBilling

API call examples
  • PHP
    $result = $api_admin->serviceyouhosting_import_clients($params);
    
  • HTML
    {{ admin.serviceyouhosting_import_clients() }}
    
  • JavaScript
    bb.post("admin/serviceyouhosting/import_clients", {})
    

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", {})
    
admin/staff/login_history_get

Get details of login history event

Required parameters
id:int - event id
API call examples
  • PHP
    $result = $api_admin->staff_login_history_get($params);
    
  • HTML
    {{ admin.staff_login_history_get() }}
    
  • JavaScript
    bb.post("admin/staff/login_history_get", {})
    
admin/staff/login_history_delete

Delete login history event

Required parameters
id:int - event id
API call examples
  • PHP
    $result = $api_admin->staff_login_history_delete($params);
    
  • HTML
    {{ admin.staff_login_history_delete() }}
    
  • JavaScript
    bb.post("admin/staff/login_history_delete", {})
    

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", {})
    
admin/support/note_delete

Delete note from support ticket

Required parameters
id:int - note id
API call examples
  • PHP
    $result = $api_admin->support_note_delete($params);
    
  • HTML
    {{ admin.support_note_delete() }}
    
  • JavaScript
    bb.post("admin/support/note_delete", {})
    
admin/support/task_complete

Set support ticket related task to completed

Required parameters
id:int - support ticket id
API call examples
  • PHP
    $result = $api_admin->support_task_complete($params);
    
  • HTML
    {{ admin.support_task_complete() }}
    
  • JavaScript
    bb.post("admin/support/task_complete", {})
    

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", {})
    
admin/system/clear_cache

Clear system cache

API call examples
  • PHP
    $result = $api_admin->system_clear_cache($params);
    
  • HTML
    {{ admin.system_clear_cache() }}
    
  • JavaScript
    bb.post("admin/system/clear_cache", {})
    

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", {})
    
admin/theme/preset_delete

Delete theme preset

Required parameters
code:string - theme code
preset:string - theme preset code
API call examples
  • PHP
    $result = $api_admin->theme_preset_delete($params);
    
  • HTML
    {{ admin.theme_preset_delete() }}
    
  • JavaScript
    bb.post("admin/theme/preset_delete", {})
    
admin/theme/preset_select

Select new theme preset

Required parameters
code:string - theme code
preset:string - theme preset code
API call examples
  • PHP
    $result = $api_admin->theme_preset_select($params);
    
  • HTML
    {{ admin.theme_preset_select() }}
    
  • JavaScript
    bb.post("admin/theme/preset_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

  1. Download latest version from download page
  2. Extract files at your computer
  3. Upload (overwrite) extracted files via FTP
  4. 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
  1. Go to Extensions -> Overview page
  2. Enable Wysiwyg extension from BoxBilling extension list
  3. Select editor from available editor list
Append wysiwyg editor’s toolbar to textarea
  1. In template file find textarea tag and add bb-textarea class
  2. 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:

  1. 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>
  1. 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>
  1. 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.

Unofficial extensions

Payment gateways:

Server Managers:

Credits

BoxBilling is using these open source projects

Redbean
http://redbeanphp.com/
Twig
http://www.twig-project.org/