Billing and Payment System Overview

Overview

One platform user can have many billing accounts.

Each resource must have one billing account assigned.

All resources are billed by the hour.

At the end of each month a usage report is generated for that month.

Payment Gateways

Warren platform has integrations with the following payment gateways:

Stripe

https://stripe.com/
Stripe can handle credit card payments for pre- and post-payment scenarios.

Duitku

https://www.duitku.com/
Duitku is an Indonesian payment gateway that mediates a number of different payment options like Shopee, Ritel, BCA, OVO etc. Only pre-payment is supported.

Omise

https://omise.co/
Supported Omise payment mehtods:

  • Credit Card

  • AliPay

  • TrueMoney Wallet

  • Rabbit LINE Pay

  • Internet Banking

  • PromptPay

Invoice payment (Bank Transfer)

For post payment plan, Warren platform can send out an invoice with details to make a bank transfer manually to pay for last month usage. There is no integration to automatically detect that the money has been received. Admins can check their bank account and manually mark the invoice paid in Warren admin interface. It is possible for providers to build automation for this using admin API.

Payment Gateway Fees

In case of pre-payment plan and Credit Card payment method (Stripe and Omise), it is possible to transfer the payment gateway fee to user.

Payment Gateway Fee is calculated for every top up, it consists of 2 components, both are configurable and can be used at the same time:

  • Percentage of the credit amount (before VAT)

  • Flat rate

Total charge for the user would then be: Credit amount + Payment Gateway fee + VAT

Stripe fee information for user in Top Up modal

 

Let's take an example when user buys 50 € worth of credit:

  • Fee percentage = 3,5%

  • Flat rate = 0,25 €

  • VAT = 20%

Topup invoice

 

 

Topup invoice

 

 

Credit topup

 

50 €

Payment gateway fee*

 

2 €

 

Subtotal

52 €

 

Total excl. VAT

52 €

 

VAT (20%)

10,40 €

 

Total

62,40 €

*Payment gateway fee = 50*0,035 + 0,25 = 2


For Warren platform admin: See configuration example from https://warrenio.atlassian.net/wiki/spaces/WAR/pages/22577189#ConsulSchemata-ExampleJSON%3A

Restriction Levels

All billing accounts have a restriction level to control what the billing account can and can not do.

 

CLEAR

LIMITED

FROZEN

TERMINATED

 

CLEAR

LIMITED

FROZEN

TERMINATED

 

There are no limits, this billing account can have as many CPU and RAM allocated as they wish.

This billing account is limited in how much CPU and RAM can be allocated.

The limit is the same for all billing accounts, it is configurable on a global level.

This is the initial state of all newly registered accounts.

All resources of this billing account are forcefully stopped. The user can not allocate more resources (e.g. create a new VM) and they can not start any compute resources.

All resources of this billing account are deleted.

No new resources can be created.

VM Compute

 

Usable within limits

Stopped
New allocation not allowed

Deleted

VM Storage

 

not affected

not affected

Deleted

Floating IP

 

not affected

Existing are not affected
New allocation not allowed

Deleted

Object Storage

 

not affected

Buckets are suspended.[1] Buckets are not accessible through S3 gateway or API. Public objects in buckets are not accessible through public URLs.

Buckets are deleted

Load Balancer

 

not affected

not affected

Deleted

1 All user’s buckets are suspended, i.e. when at least one account is FROZEN and has bucket(s) assigned, all buckets assigned to other accounts (if any) will be suspended as well. To resume buckets operations, buckets can be reassigned to other CLEAR or LIMITED billing accounts of the user.

LIMITED level CPU and RAM limits can be configured on admin Settings page.

pilt-20240322-115549.png
Admin settings, General tab, LIMITED level compute limits

Payment Flows

Pre-payment

When a billing account is created, it starts in the FROZEN state.

After making a top up, the level is changed to either CLEAR or LIMITED and user can start creating resources.

To get from LIMITED to CLEAR level, user must make enough top ups. The amount is configurable – CLEAR level top up threshold. Only the amount received as credit is taken into account, VAT tax and payment fees are not relevant here.

Example: CLEAR level top up threshold is configured to 50 €. New user makes their first top up of 20 €. Account goes from FROZEN to LIMITED. User can start creating VMs and other resources. User then makes another top up of 35 €, bringing their total top up amount to 55 € and crossing the 50 € threshold. This changes their account level to CLEAR.

In addition, admin can force an account to be either CLEAR or LIMITED, in which case top ups are not considered anymore.

If the account balance runs negative and stays negative for X days (configurable on a global level – FROZEN level threshold) then the level is set to FROZEN and, subsequently, all their resources are stopped. Once the user makes a top up and balance goes back to positive, the resources are not automatically started, the user would have to start them manually.

If the balance stays negative even longer (configurable on a global level – TERMINATED level threshold) then level is set to TERMINATED and all their resources are deleted.

If an account in FROZEN or TERMINATED level tops up enough to get their balance back to positive then the level is changed to either LIMITED or CLEAR. If admin has at some point forced the account to either LIMITED or CLEAR then this level is chosen. Otherwise the account total top up amount is used to choose the new level.

At the end of each month, a usage report is generated that the user can view or download in PDF format.

Admin giving credit manually does change the account balance and can thus potentially transition the account from FROZEN to LIMITED. It does not count towards total top up amount so manual credit does not help getting from LIMITED to CLEAR.

 

Post-payment

 

When a billing account is created, it starts in the FROZEN state. Once a valid payment option is added (e.g. a validated credit card), the level is changed to LIMITED or CLEAR depending on the global configuration setting. This can be overridden in Admin settings by setting the level to CLEAR.

At the end of each month, a usage report is generated with an invoice that the user needs to pay. If the billing account has a verified credit card then the payment is done automatically without needing any input from the user. If the payment fails then an admin would have to manually deal with such cases. It is also possible for the admin to mark invoices manually as paid.