2. Overview

2.1. Description

Atomia Billing is a system of services and applications supporting billing processes such as orders, invoicing, payment processing and subscription handling with basic customer management. It is specifically developed for online businesses with recurring invoicing. Based on the web service Atomia Billing API which includes a number of plug-ins, the system allows flexible customization of workflows and it is easily extendible with new features.

Atomia Billing is also easily integratable with other systems and can trigger external actions as a response to billing events, e.g. activate account upon invoice payment.

2.2. System components

Atomia Billing consists of the following components:

  • Order Page – a public webpage that enables new customers to submit an initial order and sign-up for an account in the system.

  • Customer Panel – web application that allows customers to view their invoices and subscriptions and lets them order extra services, register additional domains or transfer existing ones.

  • Admin Panel – back office application used by staff to manage customers and do billing operations, such as sending invoices and registering payments.

  • Atomia Billing Core – a set of applications and interfaces used by previously mentioned GUI applications. Core has the following main parts:

    • Atomia Billing API - Web service that provides methods to external client applications.

    • Atomia Account API - Web service with methods for accounts management.

    • Mail Dispatcher - Windows service that listens to the message queue and sends e-mail and SMS messages.

    • Ticker service - Windows service that starts the execution of scheduled tasks.

    • Plug-ins

      • Provisioning plug-in - module that connects to the external systems (such as Atomia Provisioning) to provision purchased services.

      • Tax plug-in - module that calculates applicable taxes.

      • Campaign plug-in - module that applies campaign rules and discounts to the orders.

      • PayFileProcessor plug-in - parses electronic bank statements to register customers' payments.

      • PaymentMethodPlugin - plug-in for integration with external payment gateways in order to make money transactions.

2.3. Features

  • Products definition – define products (prepaid and usage-based) and set their properties such as price or renewal period.

    • Multiple currencies support – each product can have prices in multiple currencies.

    • Recurring profile – each product can be set to be renewed (and invoiced) periodically.

    • Integration with provisioning systems – for each product you can choose how it will be provisioned (against external provisioning system, such as Atomia Provisioning).

  • Orders – Atomia Billing allows customers to place orders.

    • Orders auto-processing – you can choose if orders should be processed automatically or manually by the staff.

    • Campaigns and discounts – you can configure the conditions that a customer needs to fulfill to receive discount.

  • Invoices (printed and e-mail)

  • Invoice reminders

  • Payments processing

    • Integration with payment gateways.

    • Automated and manual bank statements processing.

  • Recurring subscriptions (service renewals).

  • Custom scheduled tasks (like notifying customers about coming renewals).

  • Resellers – each account can become a reseller account and have customers of its own.

  • Tons of extension points – using the SDK.

2.4. System architecture