3. Features

3.1. Atomia billing applications

Atomia Billing has three applications for several types of customers:

  • Order Page

  • Customer Panel

  • Admin Panel

3.1.1. Order Page

The order page is used by new customers to place an initial order and get an account and login credentials. It should be integrated with a company's website, by creating a visual theme that resembles the rest of the site.

3.1.2. Customer Panel

Existing customers can use this application to manage their accounts. They have the following features available:

  • List, view and printing of invoices.

  • Ordering new services (such as domain names or other extra services).

  • Changing address information.

  • Viewing and cancelling current subscriptions.

  • Upgrading or downgrading current subscriptions.

3.1.3. Admin Panel

The company's staff use the Admin panel to perform daily billing and customer related job. The Admin panel provides all the functionality described in the rest of this "Features" section. Customer Card

The main part of the Admin Panel is the Customer Card. This is a page showing an overview of a customer, including all the invoices, subscriptions, address details and login to the Customer Panel.

Here is a screenshot of Customer Card:

3.2. Atomia Billing Model

In Atomia Billing, customers place orders to buy products (e.g. web hosting, domain name registration, professional network membership etc).

Purchased products become a customer's subscriptions . A subscription is a record of every service the customer has received or is receiving at the moment. Customers are invoiced for their subscriptions. Subscriptions can initiate provisioning in the external systems (like registering a domain name). Also, subscriptions can be recurring causing a renewal invoice to be sent to the customer.

After a customer makes a payment , the appropriate invoice is marked as paid.

These basic concepts of Atomia Billing are illustrated on the following image:

3.3. Defining products

Atomia Billing allows you to define your products. Each product has the following properties:

  • Article number - unique short name of the product.

  • Name and description - the friendly name of the product. Product's name and description can be defined in several languages.

  • Price - price can be defined in several currencies.

    • Fixed price - allows defining price for pre-paid products

    • Usage based price - allow defining counters with their prices which can be used for billing customers based on usage statistics (e.g. VPN instances)

  • Taxes applicable - maximum of two tax rates per product can be defined.

  • Category - products are grouped in categories (like, main package/subscription, extra service, etc.).

  • Renewal options - details for renewal of the subscriptions created for product:

    • Recurring? - defines whether the product is purchased one time or if it is recurring.

    • Renewal period - renewal period in months or years.

  • Deferred revenue - defines whether the product is subject to deferred revenue in accounting or not.

  • Provisioning options

    • Provisioning service - defines which service should be provisioned with the purchase of this subscription.

    • Provisioning allowed - defines if provisioning is allowed before or after payment.

The following image shows the administrative page for adding new products:

3.3.1. Multiple currencies support

Atomia Billing supports multiple currencies. Each product can have prices in several currencies. Currency set is defined per reseller.

Each order can be placed using different currencies.

3.4. Shops

Atomia Billing allows administrators and resellers to group products into shops which are then used in GUI applications for filtering and displaying products which are sold in different pages.

Shop consists of list of products which have shop category defined and allows overriding default products names and descriptions. This is done from Admin Panel's Shops pages (under Products menu).

Main Shop properties are:

  • Name - shop's name

  • Default - defines whether shop is default or not

  • Active from - starting date of shop's active period

  • Active to - ending date of shop's active period

  • Products - list of products which belong to the shop

When products are added, it is possible to override names and descriptions in reseller's languages. Also, it is important to set shop category for every selected item. This category is used by GUI applications for filtering products for different pages (i.e. Extra domains page in Billing Panel will show TLD products only while Extra services page will filter products with ExtraServices category). Category drop-down in table header can be used for quick filtering of products when needed.

3.4.1. Adding and editing shops

The following image shows the page for adding new shop:

When shops are created, some rules should be followed. These rules are enforced by shop validations which are configurable. There are some predefined shop validators available:

  • DefaltShopValidator - checks whether there is only one default shop for specified period

  • ShopNameValidator - checks whether shop name is unique for specified period

  • DefaultCurrencyPricesShopValidator - check if all items have prices in reseller's default currency

  • PricesShopValidator - check if all items have prices in all reseller's currencies

The ideal combination of validators consist of first two which will ensure default flag and name uniqueness together with one of prices validators. However, this is configurable in Billin API web.config file. For details, check configuration section.

3.4.2. Using shops in GUI applications

In order to use shops in GUI application, they have to be configured properly. Check Migrate to Shops chapter for more info.

3.5. Orders

Customer place orders to receive services from the company using Atomia Billing.

Order can be placed in any of the three applications of Atomia billing Order Page, Customer Panel or Admin Panel.

3.5.1. Orders auto-processing

Atomia Billing can process orders automatically or hold them for review by the staff. In later case, you can choose to process orders individually or several orders at once.

Processing orders create subscriptions and invoices for customers. For new customers, by processing order Atomia Billing will create an account and login username and password for Customer Panel.

3.5.2. Campaigns and discounts

You can configure campaigns and discounts to be applied to customer's order. At the same time, you can activate several campaigns.

Here are some of the features of the campaigns:

  • Promotional codes - each campaign can have one or more promotional codes

  • Discount conditions - customer may need to fulfill one or more conditions to receive a discount. For example to buy two products, to receive 100% discount on the third one.

  • Campaign period - you can limit the duration of campaign.

  • Applicable products - you can define which products are on discount during the campaign

  • New or existing customers - you can choose if campaign is applicable to new, existing or both kinds of customers.

3.6. Subscriptions and recurring profiles

Each service that is either delivered, or will be delivered to customer in the future is recorded in Atomia Billing as a subscription.

Subscription is an instance of a product and as such has most of the properties of a product (as described in the Defining products section, above).

Subscription has two types of statuses:

  1. Main status - tells if the subscription is OK, Suspended, Closed or Terminated, Renewed, Upgraded or Downgraded

  2. Provisioning status - tells if the subscription has been provisioned to an external system

3.6.1. Recurring subscriptions

Subscriptions for recurring products are being renewed periodically. In this process, an invoice is created for the customer and, if needed, subscription is re-provisioned (for example, domain is renewed).

3.6.2. Reminders of renewals

Atomia Billing has support for adding plugins for any kind of periodic task. Default installation of Atomia Billing includes a plugin which can remind customers of comming renewals(for example, domain name renewals).

3.7. Integration with provisioning systems

Atomia Billing can be integrated with any provisioning system. By default, Atomia Provisioning is supported, but other provisioning systems can be integrated using Atomia Billing Software Development Kit.

3.8. Invoices

For every product purchased, customer will receive an invoice. Whenever possible Atomia Billing will try to add as many of the purchased products on one invoice instead of creating a separate invoice for each purchased item.

3.8.1. Sending invoices using email or regular post

Each customer may choose to receive invoices using email or regular post. Atomia billing makes it easy to do the invoice print work by allowing bulk invoice printing and sending.

3.8.2. Invoice templates

Company using Atomia Billing can fully customize the look of invoices. The invoice layout is defined using HTML based template.

3.8.3. Invoice reminders

Atomia Billing comes with a customizable workflow for sending reminders for unpaid invoices.

Customer can choose the number of reminders and time interval between each of two consecutive reminders.

3.8.4. Credit notes (credit invoices)

Using this feature you can create credit notes for your customers.

In Atomia Billing credit notes are always related to existing invoices. You can choose to credit the full amount of the original invoice, or any part of any product on the original invoice.

Credit invoices can be sent using email or regular post and have customizable templates, just like regular invoices.

3.9. Price logic

Atomia Billing assumes that the reseller has prices configured if either the "CanDefineOwnPrices" or "CanDefineOwnProducts" are set to true. If both properties are set to false the prices will be fetched from the resellers parent instead.

The Item.Prices[] / Item.ResellerPrices[] are only used when an item doesn’t have the “Recurring” flag set to true. If the flag is set to true prices will be searched for in Item.RenewalPeriods[].Prices[] / Item.RenewalPeriods[].ResellerPrices[].

The ResellerPrices[] collections are used to calculate Reseller Commission.

There are basically four different scenarios where prices will be fetched differently, they will be described in short below.

  • A) Customer receives invoice directly and reseller has own prices. - This scenario is pretty straight forward, the only thing to remember is that Billing assumes that all items, that this reseller will sell, have prices set.

  • B) Reseller receives the invoice and the reseller has own prices. - Same logic as above, only difference is that if the flag UseCommissionAsDiscount is set, prices will be discounted for the amount of reseller commission.

  • C) Customer receives the invoice but the reseller doesn’t have own prices. - When the reseller doesn’t have own prices, the reseller parent's prices are used.

  • D) Reseller receives the invoice and the reseller doesn’t have own prices. - This is a same as B, the only difference is that reseller parent's prices are used (since reseller doesn't have own prices).

3.10. Reseller Commission

Reseller commission is calculated as a difference between end price and ResellerPrice of parent account (master reseller or parent sub-reseller). There are two cases, when reseller uses parent's prices (defined by parent reseller) and when it defines own prices.

  • Reseller doesn't have own prices - in this case commission is calculated as a difference between a Price and ResellerPrice, both defined by reseller's parent.

  • Reseller has own prices - in this case commission is calculated as a difference between a Price defined by reseller and ResellerPrice defined by reseller's parent.

If reseller has UseCommissionAsDiscount option activated, and invoice is sent to the reseller, commission will be used to discount an invoice.

3.11. Payments

In Atomia Billing payments can be received through:

  • online payment gateways

  • bank reports

3.12. Integration with payment gateways

The Atomia Billing Software Development Kit allows you to create plugins for integration with online payment gateways (such as PayPal).

The integration model allows connecting to payment gateways through API (for PCI certified companies), or by redirecting customers to payment gateway's web page.

3.12.1. Automated and manual bank reports processing

Besides the online payment gateways, payments can be added to Atomia Billing from the bank statements.

Staff can choose to enter payments manually, using Admin Panel GUI, or to upload report received from the bank.

Atomia Billing Software Development Kit makes it possible to create parser forany kind of electronic bank report. By default, Atomia Billing comes with parsers for Swedish BgMax and TIPS formats.

3.13. Custom scheduled tasks

Using the Atomia Billing Software Development Kit, it is possible to write a plugin for almost any kind of periodic task.

Usually such plugins are:

  • Reminders for renewals

  • Periodic reports

  • Thank you notes for customer loyalty

  • Etc.

3.14. Resellers

Resellers system of Atomia Billing makes it possible to have unlimited numbers of resellers. That means that company usgin Atomia BIlling cn have resellers, but those resellers can have sub resellers and so on.

One reseller can choose to offer own products to sub resellers. This is done in the Add/Edit product page for product, as described in the Defining products section, above.

3.15. Extensibility

Atomia Billing offers you many extension points which you can use to customize the workflow of the Billing. Check the API and SDK reference for complete programmability documentation.