Skip to content

SaaS billing with Omnistrate

Billing for your Service

Omnistrate supports usage-based billing for your customers with two main options:

  • Service providers can manage complete customer billing workflow through Omnistrate. This includes usage metering, pricing configuration, quota management, automatic invoice generation and notifications, and integration with payment processors.
  • Service providers with existing billing systems will be able to collect usage metering data from Omnistrate and integrate them with their billing system.

End-to-End Billing flow and features

Omnistrate provides a complete solution for usage-based billing for your service. It provides the following features:

  • Metering: Collect usage data for your service
  • Aggregation: Aggregate usage data across all the nodes of an instance and per customer
  • Invoicing: Generate invoices for your customers
  • Payment: Integrate with payment processors to collect payments
  • Pricing plans: Service providers can configure pricing plans for their service and enforce quotas/restrictions per service-plan.
  • Notifications: Notify customers about their invoices and show them the current usage.

End-to-End Billing one-time setup

As a service provider, one needs to follow these steps:

  • Enable Customer Billing
  • Enable Stripe Connect with your standard Stripe Account
  • Complete the business profile information
  • Configure pricing
  • Configure quotas for your service plan
  • Customer Notifications
  • Configure invoices

Enable Customer Billing

To enable customer billing, please navigate to the User Profile > Customer Billing section. As a service provider, you can request Omnistrate to enable the feature. Omnistrate will enable the feature and complete the initial setup process for you in the background.

Enable Stripe Connect

Once the feature is enabled, the service provider can configure their payment method using the “Stripe Connect” widget. Click “Enable” on the widget, and it will direct you to the subsequent “Stripe Connect” page.

To use Stripe for processing payments, you must set up a standard Stripe account. Enter all required business information, including address and payment details, so the platform can process billing payments successfully.

For more details on how we establish the connection, see the Stripe Documentation.

Complete Business Profile Information

Navigate to the next step in the “Customer Billing” section to complete your business profile information such as your address. Please note that the information updated here will reflect in the invoices along with the logo.

Configure Pricing

Once the billing is enabled at an account level, you can configure the pricing for your service at a per-plan basis. You can configure the pricing for the following pre-set dimensions:

  • CPU Cores
  • Allocated Memory
  • Allocated Storage.

In addition, you can restrict your customers from creating an instance if they had not configured payment. You can set global quota limits on the number of instances that they can create.

Configure Quotas

As part of the billing configuration, you can set quotas for your customers. You can set the maximum number of instances that your customers can create and restrict customers from creating resources if they had not configured payment at service plan level.

Customer Notifications

Omnistrate will automatically notify your customers about their invoices. The notifications will be sent to the email address provided by your customers.

Your customers will be able to track their usage and invoices through the customer portal, if you choose to configure the SaaSBuilder portal provided by Omnistrate. Your customers will have the ability to configure payments with Stripe and pay their invoices through the portal.

Configure Invoices

Once the billing is enabled, Omnistrate will automatically generate invoices for your customers based on their usage. The invoices will be generated based on the usage data collected by Omnistrate.

To manage the monthly invoices and approve them, navigate to "Manage Fleet" section of the UX and click on "Manage Invoices". If you would like to auto-approve all your generated invoices after a certain period, please request through support.

Integrate with existing billing system

Alternatively, a service provider may enable "Omnistrate Metering" to collect usage data and integrate with your billing system. The usage data will contain a line for each billing dimension and will include information about the cloud, region, and customer that used the service. The information for all your clouds and services that you have is collected in a single S3 bucket, allowing you to have a centralized view of the usage and process the billing information.

To enable metering for your SaaS, follow these steps:

  • Enable metering integration
  • Grant privileges to Omnistrate to write to your S3 bucket

Enable metering integration

You can add the below to your compose spec or just add metering integration through Omnistrate API/CLI/UI

x-omnistrate-integrations:
  - omnistrateMetering

Grant privileges

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::914366220572:root"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::[bucketName]/*"
        }
    ]
}
Usage metering data from Omnistrate can be integrated with your existing billing system or used to manually generate invoices. The usage data generated by Omnistrate might require custom transformations as mandated by your billing provider.

To manually create invoices, first consolidate the usage data to calculate hourly usage by determining the maximum values from 5-minute intervals and multiplying these by the price per dimension. Once the value for the invoice is calculated you can use your payment processor to input the price manually and send the request for payment.

For more complex scenarios, your billing system may require adding specific customer billing details to usage records. Service providers can accommodate this by assigning an external billing id when creating resource instances for customers.