API Usage Basics
API methods are a convenient way of system integration. Billing API methods allow external systems to interact with Billing to exchange the necessary information over the XML-RPC protocol. This protocol is a specification and a set of implementations that allow systems to run in different environments to make procedure calls over the Internet. A remote procedure call is performed using HTTPS as the transport protocol and XML as the encoding format. For more information on the XML-RPC protocol, visit http://www.xmlrpc.com.
Systems interact through built-in XML-RPC clients and servers. A client must be able to form requests according to XML-RPC specification and send these requests to a server of the other system. A server must be able to receive requests from a client and process the received requests.
To access Billing through XML-RPC protocol, xmlrpcd is implemented in Billing. Xmlrpcd is a server application (daemon) that provides infrastructure for invocation of any method of Billing server available to the user xmlrpcd runs on behalf of. Xmlrpcd is accessed through the following URL:
https://<Billing Application server>:<port>/RPC2
where
- <Billing Application server> is a host name or IP address of a server where Billing Application is installed
- <port> is an xmlrpcd port number listened by Billing Core server, by default it is 5224
Note: Both parameters are defined in the xproxy configuration.
Xmlrpcd also allows for batch processing and provides facilities to control transaction flow.
Be aware that a customer-specific software that performs very few simultaneous requests (up to 20% of the `Threads` number) to xmlrpcd is relatively safe. The higher the number of simultaneous requests from a customer-specific software, the higher the chance that it will affect other CloudBlue Commerce subsystems' performance. A number close to the `Threads` number can cause outages of most BSS components. To find the `Threads` number (the maximum number of xmlrpcd workers) in xmlrpcd.conf
, run this command:
# cat ~pba/etc/ssm.conf.d/.xmlrpcd.conf | grep Threads Threads = 16
Vendors may built their own XML-RPC clients to interact with Billing or use existing ones, for example cURL. The list of ready-to-use decisions can be found on XML-RPC official site.
Sending requests to xmlrpcd through cURL is described later in this chapter.