Skip to main content

Apps: Monetize Your Apps With the Billing Module

Charge your end-customer organizations for their Ubidots usage with flexible, native billing — no external tools required.

Written by Sergio M

If you're building IoT solutions on top of Ubidots and reselling them to your customers, the Billing module gives you a native way to monetize those apps. Connect your Stripe account, define pricing plans (flat-rate, usage-based, or a mix of both), assign them to your customer organizations, and let Ubidots handle the rest — from invoicing to payment tracking.

Requirements

  1. An Ubidots account on the Professional, Industrial, or Enterprise plan.

  2. A Stripe account (free to create). Stripe handles all payment processing, invoicing, and payouts.

1. What Is the Billing Module?

The Billing module is a native Ubidots feature that lets you create subscription plans and charge the organizations you manage through your apps. It integrates directly with Stripe, so you don't need to set up any external billing infrastructure.

With it, you can:

  1. Define flat-rate plans (e.g., $29.99/month per organization).

  2. Define usage-based plans that charge based on actual consumption — devices connected, data points sent, users, dashboards, and more.

  3. Combine flat-rate and usage-based items in the same plan.

  4. Assign plans to specific customer organizations as subscriptions.

  5. Monitor all payments and export transaction history.

2. Where to Find It

Go to Apps in the left sidebar, then select Billing. You'll land on the Settings page, where you can connect your Stripe account.

3. Connect Your Stripe Account

Before creating plans or subscriptions, you need to connect a Stripe account. This only needs to be done once.

  1. Go to Apps → Billing

  2. On the onboarding screen, Stripe is presented as the payment partner with a summary of what the integration enables: create billing plans, track usage metrics, manage subscriptions, and automate payments. Click Connect.

  3. You'll be redirected to Stripe's onboarding flow. Fill in the required sections: Business type, personal details, business details, bank details, public details, climate contributions, and tax calculation.

  4. Once the Stripe form is submitted, you are redirected back to Ubidots, where a summary of the submitted information is displayed. Fields can still be edited from this view. Stripe verifies the data in the background; once verified, the account status changes to Connected.

  5. Once the Stripe account is Connected, three new views become available in the Billing sidebar: Plans, Subscriptions, and Payments.

4. Create a Plan

In the plans view, click + to create a plan. Plans define the pricing structure your customer organizations will subscribe to. Plans can be:

  • Flat rate — a fixed amount charged per billing cycle

  • Usage-based — priced per Users, Devices, Variables, Dashboards, Dots in, Dots out, Events, Emails, SMS, Voice call, or WebHook, with an included free tier before billing starts

Plans can mix both types.

Fill in the following fields:

  • Plan name: e.g., "Starter Plan"

  • Description: Shown on customer invoices (e.g., "Up to 10 devices and 5 users")

  • Scope: The organization this plan is available to (or leave blank to make it available to all organizations)

  • Billing cycle: Monthly or yearly

  • Currency: The currency for all charges on this plan

  • Base price: A flat fee charged every billing cycle, regardless of usage

Under Billing Items, click + ADD BILLING ITEM to define what gets charged. For each billing item, choose a Type:

  • Flat rate: A fixed amount per billing cycle. Set a Nickname (shown on invoices) and a Price per billing cycle.

  • Usage based: Charged according to actual usage. Set a Nickname, Usage metric (Users, Devices, Variables, Dashboards, Dots in, Dots out, Events, Emails, SMS, Voice call, or WebHook), Price per unit, and Included units (free tier before billing starts).

You can mix flat rate and usage-based items on the same plan. Click Save when done.

5. Available Usage Metrics

When using usage-based billing items, you can track the following metrics:

Metric

Description

Example use case

Users

Number of user accounts in the organization

Charge per user seat

Devices

Number of connected devices

IoT device billing

Variables

Number of variables across all devices

Data point billing

Dashboards

Number of dashboards created

Charge per dashboard

Dots in

Number of data points sent to Ubidots

Inbound data metering

Dots out

Number of data points read from Ubidots

Outbound data metering

Events

Number of event rules configured

Charge per automation rule

Emails

Number of email notifications sent

Notification billing

SMS

Number of SMS notifications sent

SMS alert billing

Voice call

Number of voice call notifications made

Voice alert billing

WebHook

Number of webhook calls triggered

Integration billing

6. Assign Subscriptions

In the Subscriptions view, click + to assign a plan to an organization. Select the Organization and Plan, then save. The customer will be billed starting on the next billing cycle.

Important: The target organization must have a valid payment method registered. Without one, the subscription cannot be created, changed, or canceled.

7. Track payments

The Payments view shows all transactions with Date, Status, customer email, and Amount. You can filter by Amount, Email, Date, Status, or Payment method, and click Export to download a CSV of your payment records.

Payment statuses:

  • Succeeded: Payment collected successfully

  • Canceled: Payment was initiated but not completed (e.g., Stripe could not charge the payment method)

  • Pending: Payment is being processed

8. Assign Billing Permissions to End Users

In Roles, two new permissions are now available:

  • Permission to view Billing settings

  • Permission to change existing Billing settings

When assigned to a user inside a customer organization, that user gets a new item in their Account Settings called "Plans and billing". From there, they can choose a plan available for their app, add or modify payment methods, and cancel subscriptions.


Best practices

  • Describe clearly: Your plan description appears on customer invoices — be specific (e.g., "Up to 100 devices, 10M data points/month").

  • Scope always: Always select at least one app in the Scope field when creating a plan, otherwise the plan won't be available to any organization.

  • Duplicate plans: Use the ⋮ menu on any plan to Duplicate it — great for creating tiered plans (Starter/Pro/Enterprise) quickly.

  • Monitor payments regularly: Check the Payments section monthly to spot any canceled or failed transactions.

Did this answer your question?