The Cloudesire platform provides a complete billing, invoicing and payments engine. This means that the marketplace can manage the entire selling process without external dependencies.
Before you read this section, please take a look to the glossaryto make sure you fully understand the terms that will be used in this section.
Each generated invoice contains the following elements:
- nominee: the customer name
- description: purchased application name
- one-off cost: product one-off setup cost if any
- license cost: application recurrent licensing cost
- pay-per-use application metrics: costs that vary depending on real usage of the application
- extra-resources: costs for prepaid resources
- cloud resources costs: costs for the cloud infrastructure used for Docker applications.
In the following screenshots, you can see some examples of invoices issued by Cloudesire:
These are the main billing principles:
- application licensing costs: at the beginning of each billing period (every 30 days) an invoice containing the application licensing costs and the IaaS costs is issued in advance to the customer. The one-off cost is charged only in the first billing period
- extra resources: if prepaid extra resources are defined, they are added into the same invoice of the licensing costs. If pay-as-you-go, at the end of the billing period, an invoice containing the pay-per-use costs is issued to the customer
- trial and sandbox orders: if an cloud application is offered in trial mode, cloud costs will be debited to the vendor, in the same report where earnings are calculated.
When choosing a pricing model for a plan of a product, you start selecting one of the following choices:
- contact form-only: selling features are disabled and customer can only send you a contact request (no pricing is exposed)
- renewable every N months: this is the most common choice and enables the selling of a product for one or more months, with a configurable billing frequency and a minimum order duration.
- short duration not renewable: for short-living subscriptions (e.g. webinar service bought for two hours)
- everlasting: a subscription has not an end-date and can't be renewed (e.g. perpetual licenses)
Pricing models parameters
When selecting a pricing model, you can set the following parameters (depending on the pricing model chosen):
- billing frequency (one or more months): the rate at which the invoices are generated (the recurring and one-off costs refers to this period)
- minimum order duration (one or more months): the time that the customer is bound to order. It must be a multiple of the billing frequency
- recurring cost: the amount to be paid on each billing cycle (tax excluded)
- one-off cost: additional amount to be paid only at the first billing cycle
- duration: in hours - only for short duration not renewable pricing
Extra Resources pricing schemes
The platform supports 3 different pricing schemes for Extra Resources, based on quantity usages: tiered, volume and stairstep.
Tiered scheme means that every unit charge is calculated with its own tier price.
With tiered pricing, once you fill up a tier you move to the next tier and start charging a different price.
Tiered pricing is different from volume pricing because tiered pricing defines a price per unit withing a range, while volume pricing defines a price for all units within a range.
- From 1 to 9 users: €5/user
- From 10 users: €3/user
Quantity bought 15 users, total amount: 9 x € 5,00 + 6 x € 3,00 = € 63,00
Volume scheme means that all units charge is calculated based on total count in the related tier.
Therefore, as soon as you hit a particular number, all units will cost the lower price.
Tiered pricing is different from volume pricing because tiered pricing defines a price per unit within a range, while volume pricing defines a price for all units within a range.
- From 1 to 9 users: €5/user
- From 10 users: €3/user
Quantity bought 15 users, total amount: 15 units * € 3,00 = € 45,00
Stairstep scheme means that the total cost is calculated based on price tier; charge is not per unit.
Therefore, vendors will propose different unit prices for various quantities of an item.
- From 1 to 9 users: €30
- From 10 users: €100
Quantity bought 15 users, total amount: € 100,00
The following screenshot shows an example of Extra Resources linked to a specific Product Plan.
Detailed instructions, explaining how to specify and manage Extra Resources during the onboarding process, are provided in this section.
Cloudesire can manage orders with automatic renewal or not. In this case, when a subscription is about to expires, the platform automatically issues a new invoice to the customer for the next billing period; if the customer previously decided to let the marketplace store his credit card data Cloudesire contextually charges the customer.
If automatic renewal is disabled:
- a few days before the subscription expiration, Cloudesire notifies the customer to remind the expiration and creates an invoice that the customer needs to pay to use the application after the subscription expiration
- if the customer doesn't renew his subscription (i.e. doesn't pay the related invoice), Cloudesire stops (or better suspends) the related application's instance and waits some days (the precise number is configurable in the platform) for the payment. If after this period the customer doesn't pay the invoice, Cloudesire destroys the application instance and the customer will no longer be able to access the application.
Platform Administrators, Vendors and Resellers can generate a coupons for each product or product plan
Each coupon will have a unique code and a period of validity. The code is what customers need to enter in the coupon field to redeem the coupon when purchasing an application.
It's possible to specify the e-mail address of a specific user and send the coupon only to him. If the coupon is created for a specific user, the platform sends him a communication containing the coupon. It's also possible to distribute coupons outside the platform: users only need to know the code to redeem the coupon.
Cloudesire allows to generate 2 types of coupons:
- discount: when the customer uses this kind of coupon, a discount is applied to the application price;
- fixed price: when the customer uses this kind of coupon, a fixed price (usually lower) overrides the original one for the given application version (plan). A typical use case is: the vendor doesn't want to publish a public price for the application and wants to choose a different price for each customer.
Coupons can be:
- "one-time only", meaning that each coupon can only be used one time and is not reusable (even if it is transferable from one customer to another)
- "reusable", meaning that each coupon can be used more times (until its expiration date)
Furthermore, Cloudesire supports an additional type of coupon:
- extended trials: when the customer uses this kind of coupon, the default trial period length (e.g. 10 days) will be replaced with the one specified in the coupon (e.g. 30 days). A coupon of this type remains valid for all the customers receiving this coupon code. This rule does not override the general rule "only one trial for each product for each customer". For each extended trials coupon, the platform administrator can allocate a budget (or plafond) which will be decreased by a certain amount every time it will be used by a customer.
Cloudesire allows Platform Administrators, and Resellers to create bundles as a composition of 2 or more products.
Each bundle plan is defined as a composition of _products plans. _Using a simple interface it's possible to specify for each of them a discount percentage; in this way, the total price of a bundle plan is calculated as the sum of all the discounted prices of all the _products plans attached to it.
On the Marketplace, a bundle is shown as a normal product, highlighting the discounts, while in the ordering page the customer can have a detailed view of all the prices and the savings.
Cloud resources pricing
Pricing for the VM associated with Docker applications is automatically managed by the platform and vendors should not worry about it.
- vendors can specify a certain amount of prepaid bandwidth for each Docker application they sell in the Cloudesire Marketplace
- Cloudesire manages the bandwidth price for each supported cloud provider
- if the vendor doesn't set a specific prepaid bandwidth amount to his Docker application, Cloudesire associates a default prepaid bandwidth package (eg. 10GB)
- during the Docker application lifetime, if the bandwidth usage exceeds the 90% of the established limit, Cloudesire sends an e-mail notification to the customer, asking for a bandwidth upgrade order. If the customer doesn't execute the upgrade, Cloudesire prevents access to the application.
- vendors can specify a certain amount of disk space for each Docker application they sell in the Cloudesire Marketplace
- Cloudesire manages the disk space price for each supported cloud provider
- during the Docker application lifetime, if disk space usage exceeds 90% of the established limit, Cloudesire sends a notification email to the customer, asking for a disk upgrade order.
- Cloudesire allows the customers to buy backup plans.
- every backup plan includes to a maximum number of backups executions (configurable in the platform) that can be manually performed by the customers or scheduled
- a backup plan must be paid by the customer in advance
- if the customer needs to perform a manual backup when the maximum limit in the backup plan is reached, a new backup order is created and a related invoice is issued. In this case, the backup starts only when the invoice is paid.
The Cloudesire platform has first-class support for Stripe payment gateway.
- Credit Cards are handled by Stripe (card details are sent only to Stripe servers and never to our backend)
- SEPA debit are supported via Stripe.
- Paypal is a fallback payment method when not using Stripe
- Bank transfer or any other manual payment method can be handled directly by Platform Administrators
In some particular business scenarios it is useful to let some vendors to issue invoices from themselves, without using the Cloudesire invoicing engine.
The platform allows the admins to mark a specific product plan as self-billed, or to enable/disable globally self-billing for all the products.
In this case, when the user purchases a product, only a pro-forma invoice is generated to help the vendor emit their own invoice, and the vendor is responsible to set the payment status for every invoice emitted as self-billed.
The platform will record that the vendor should pay the fee back to the platform owner inside the revenues section.
Self-Billing for resellers
The self-billing functionality is also available for the resellers: a reseller can can mark a sell-out price as self-billed for exposing the related product into his reseller-marketplace overriding the invoice generation on it.