BILLmanager is a platform with a complex architecture. The platform manages processes related to payment processing and interaction with users. The key components of the platform architecture are:
- web server (ihttpd);
- database;
- BILLmanager (COREmanager and billmgr.so);
- external applications as part of BILLmanager;
- CGI application (accessible through the web server);
- third-party external applications;
- file system.
BILLmanager operating scheme

BILLmanager operating scheme
- Web server — an application that provides interaction with the platform through the web interface. For more details, see the BILLmanager Interface section and the article ihttpd web-server configuration
- DB — MySQL or MariaDB DBMS. Required to store customer information, payments, settings, and other data necessary for the platform to function. For more details, see Database structure
- BILLmanager — platform for automation. It is based on the COREmanager framework and the billmgr.so library. Also includes:
- API-functions — provide interfaces for integrating BILLmanager with external systems and applications. For more details, see Guide to ISPsystem software API;
- plugins;
- database;
- files — interface descriptions in XML format, user settings, technical support documents, various images and files for the web interface;
- modules — e.g. payment modules, service handlers, workflow, etc.
- mgrctl — an application to perform platform operations, including user management, settings, and payment processing. For more details, see Mgrctl utility
- FS — file system. Responsible for storing files and documents related to BILLmanager operation, including reports and document templates
- CGI — Common Gateway Interface. It is used to handle requests related to script execution and server communication
- Input — sources of incoming requests. If the billing process is not running, calling the function through any of these mechanisms will cause it to start:
- web server (ihttpd);
- mgrctl;
- mgr_client::Local — library for executing queries to the platform from C++ code. It is used when writing client plug-ins or modules;
-
Output — data output format. Defined by the out query string parameter. For example:
- html;
- xml;
- JSON;
- text.