Although it is possible for an external application to access billing data directly in the database, PortaBilling allows you to perform operations such as data retrieval or data modification via API using the following Web Application Services: XML (SOAP) and JSON RPC.
This is ideal for applications such as external web portals (where you only need to create a front-end to present the data to the end user) or order entry/provisioning systems (where an application needs to supply the new customer’s data to PortaBilling in order to activate him).
Performing operations via API has several advantages:
The business logic embedded into the API provides integrity checks for all data modifications, and can compile records from several database tables to create a single customer information retrieval structure.
PortaBilling API is accessible to every owner of a virtual environment or reseller. Each user’s access is automatically limited to his “visible” portion of the available data, e.g., a reseller can only retrieve information about his own sub-customers or their accounts.
PortaBilling XML/JSON API allows users to perform select, update, insert or delete operations on entities such as customers or accounts. Each user has his own login credentials, and each operation he wishes to perform is analyzed to determine if it is possible with regard to general data integrity (e.g., a new account cannot be created without being assigned to a customer) as well as the particular user’s security permissions (ACLs) (e.g., while it is possible in general to create new accounts, this user may be prohibited from doing so).
Details on XML/JSON API (such as available methods and data structures) are described in the PortaBilling XML/JSON API Reference.
The get_customer_list API method allows filtering customer data by using attributes that are relevant to them (e.g., by customer’s home city). However, this might not be sufficient to perform advanced customer and account searches, e.g., to search for US-based customers who have spent over $100 on voice calls in a previous billing period.
The get_extended_data_list API method enables you to do just that. You construct the API request and define your own search criteria as input parameters. For example, you can search for customers who live in Toronto and use the EasyCall and SuperCall products.
The API method retrieves the desired list and delivers consolidated information about customers to your CRM application. Thus, for the example above, it includes information about customers, their accounts and their products. This allows you to use PortaBilling data via your CRM applications to execute marketing campaigns, formulate reports, etc.
The get_extended_data_list method is only available in JSON format. Since you create your own API requests, deeper knowledge of the PortaBilling API is required.
The get_extended_data_list API method enables you to filter customers and accounts by using the attributes of such entities as:
products (both main ones and add-ons),
customer classes and
Upon your request, this method can be expanded to operate using other PortaBilling entities.
Thus, having the ability to perform an advanced data search via the API gives you the following benefits:
The ability to retrieve data from PortaBilling directly from your CRM or other external apps;
Secure access to the PortaBilling database; and
Flexibility in forming search queries.