We live in a world where connectivity has become a lifestyle rather than a luxury. From smart thermostats that adjust your home's temperature to GPS trackers monitoring end-to-end fleets and sensors that optimize energy grids, the Internet of Things has woven digital intelligence into everyday life.
Billions of devices are constantly talking to us, to each other and to the cloud, providing an avalanche of data every second. This data fuels smart decisions, greater efficiency and an entirely new business model.
But for IoT providers, it also introduces a complex financial question: "How do you turn constant, variable device activities into clear, fair, and scalable revenue?"
Many providers start with flat-rate or subscription-based billing. It's simple to launch, but it quickly becomes misaligned with reality. A simple example is a household sensor that transmits a few readings per day shouldn't be billed the same as an industrial gateway streaming live data 24/7. Static pricing models cause imbalance and make heavy users overconsume, and light users overpay.
As the IoT ecosystem expands, the real challenge becomes monetizing data usage accurately without manual intervention or considering different data sources.
With Zoho Billing, businesses capture real-time device activity and transform it into transparent automated invoices. Let's explore how it works across three popular IoT services.
Scenario 1:
A utility provider offering smart water and gas meters to homes and offices. Each meter transmits consumption data hourly to the cloud. Residential customers expect fair pricing that reflects their consumption patterns. It's simple, user who uses less pays less and heavy users pay more. Instead of a flat per litre rate, the provider uses volume-based pricing:
Up to 25,00 litres: $0.002 per litre
25,001 to 75,000 litres: $0.0015 per litre
Above 75,000 litres: $0.001 per litre
This model rewards conservation and scales naturally across different customer types.
If a household uses 30,000 litres, it pays: 30,000 x $0.0015= $45
A small business uses 90,000 litres, pays: 90,000 x $0.001= $90
The IoT platform transmits usage data via Zoho Billing API, and Zoho Billing automatically applies the right price to each customer based on total consumption. The combination of automated data capture, volume-based billing, and clear invoices builds trust with consumers while scaling effortlessly for utility.
Scenario 2:
A fleet management company offering GST tracking, route analytics, and driver monitoring for logistics firms. Clients pay a fixed fee per vehicle for access to the tracking system and addon charges if their data usage exceeds the plan limit. The base plan is $20 per vehicle per month, including 1GB of data. For usage over 1 GB, the additional cost per MB is $0.05.
A logistics company with 50 trucks uses 65 GB in total. The average usage is 1.3 GB per truck. So it pays,
Item | Value |
Base Fee for 50 trucks (50x20) | $1000 |
Overage per truck (0.3x 1024 MB x $0.05) | $15.36 |
Total Overage ($15.36x50 trucks) | $768 |
Total Invoice Value ($1000+$768) | $1768 |
The service provider exports usage logs as a monthly CSV file and imports them into Zoho Billing. The billing system applies the base plan inclusions, calculates the overage automatically, and generates a detailed invoice showing per-vehicle consumption.
The model delivers predictable revenue for the business while giving customers full visibility into what they are paying for. This is almost a win-win situation for both clients and the service provider.
Scenario 3:
A small home security provider offering connected cameras, sensors and cloud video storage to a residential complex. House owners are billed based on multiple metrics, namely, the number of active devices, the number of motion events captured, and the minutes of video stored in the cloud.
The base price for a camera is $5 per month and $0.01 per motion event recorded. For video stored in the cloud, the charges are $0.002 per minute.
If a user has four cameras, 800 motion events, and 15,000 minutes of video pay,
Item | Value |
Cameras 4x $5 | $20 |
Motion event 800 x $0.01 | $8 |
Video Storage 15,000 x $0.002 | $30 |
Total Invoice Value | $58 |
The system integrates directly with Zoho Billing's API, transmitting daily usage updates for each customer. Each metric is defined separately, and Zoho Billing aggregates and applies the relevant pricing for each before generating a consolidated invoice.
This ensures billing accuracy and flexibility, even as the business scales to millions of active devices.
Every Connection Counts; Every Count Pays
In the connected economy, devices never sleep and do not produce data. For IoT providers, success is translating the constant data flow into dependable, transparent revenue.
Zoho Billing makes it effortless. It supports different pricing models and usage-based billing, allowing IoT businesses to bill accurately without the burden of complexity. Whether managing smart meters, connected fleets, or home automation systems, Zoho Billing ensures that every byte, event, and interaction is captured, calculated, and billed accurately.
Usage billing is complex, but not when you use Zoho Billing anymore.

The next post will summarise what we have covered so far, as we cover usage billing and other billing that Zoho Billing offers. Most importantly, we will see the common mistakes businesses make while billing. Stay tuned!
Recent Topics
How to calculate separate totals for Product Line Items filtered by category in Quotes?
Hello! I'm working with Quotes in Zoho CRM and need help calculating conditional totals for line items. Current setup: I have two tables in my Quote template (Zoho Writer), both displaying Quoted Line Items Table 1 (top): Shows all products where Product
I Need Help Verifying Ownership of My Zoho Help Desk on Google Search Console
I added my Zoho desk portal to Google Search Console, but since i do not have access to the html code of my theme, i could not verify ownership of my portal on Google search console. I want you to help me place the html code given to me from Google search
Zoho Desk API Documentation missing a required field
We are trying to create a section using this information. Even after preparing everything based on that page, we still get an error. The error we get is this: {"errorCode":"INVALID_DATA","message":"The data is invalid due to validation restrictions","errors":[{"fieldName":"/translations","errorType":"missing","errorMessage":""}]}
Fetch Subform values through a lookup of a lookup
Hi, I'm having an issue fetching the values of a subform through a lookup field through another lookup field. The code works perfectly to show me the subform row ID, but the second I try to get any readable data, it says "Error occurred. Please contact
Good news! Calendar in Zoho CRM gets a face lift
Dear Customers, We are delighted to unveil the revamped calendar UI in Zoho CRM. With a complete visual overhaul aligned with CRM for Everyone, the calendar now offers a more intuitive and flexible scheduling experience. What’s new? Distinguish activities
Turn Decision Box to a button
Dear all, I need your help on CSS to turn a Decision Box to a Button. I have a Decision Box like: Turn on/off to refresh the information. (on User Input, either True or False, will refresh the information) Now I want to simulate to treat it like a Refresh
Emails not being received from a particular domain
Cannot receive any emails sent from atco.com Domain is in the spam whitelist so should be no reason for it not to be coming through. Have filed a ticket and besides a generic response of we are looking at it - it seems there is no actual support workers
Contact data removes Account data when creating a quote
Hi, Our customer has address fields in their quote layout which should be the address of the Account. They prefill the information, adding the account name - the address data is populated as per what is in the account - great. However when they then add
Stock Count
The stock count is a nice new feature, but we cannot figure out how to: 1. Use it without assigning to a person, we have a team or one of multiple do stock counts as do most any company. 2. Add any extra fields to what the "counter" sees. The most important
CRM x WorkDrive: File storage for new CRM signups is now powered by WorkDrive
Availability Editions: All DCs: All Release plan: Released for new signups in all DCs. It will be enabled for existing users in a phased manner in the upcoming months. Help documentation: Documents in Zoho CRM Manage folders in Documents tab Manage files
Send Whatsapp message from Whatsapp template with custom variables
Hi, I'm trying to do some basic integration for sending WhatsApp messages from Zoho CRM using Zoho Desk whatsapp templates. When creating new whatsapp template in Zoho Desk we can choose ticket related fields as variables but it's not clear how to use
Less clicks, more connection – the usability edge of Zoho Desk
Imagine joining a new workplace, eager to prove your skills, partner with peers, learn new tools, and build a strong foundation for your career. The standards you've set could drive pressure into your head. You now discover the organization is using Zoho
How to remove some users in zoho accounts
How to remove some users in Zoho accounts.
Outgoing blocked: Unusual activity detected.
I just made payment for my Zohomail Today and have been debited so i will like to be Unblocked because this is what it says (Outgoing blocked: Unusual activity detected) Thank you i await your swift responses
Circular record relationship in CRM
Given there is a lookup in custom module Transactions creating a related list on the chosen Contact record. I. e. a lookup field on Transactions module points to Contacts. The related list on a Contact record can thus have have many transaction records.
Integrating with My Own Application and ZOHO CRM Simultaneously
I have my own WhatsApp bot that uses my WhatsApp business account. I want to use the same phone number to integrate with ZOHO as well. What is the recommended way to do that? Should I integrate my application with ZOHO, forwarding messages whenever the
Kiosk can't merge picklist or multiselect
There is no ability to load a multiselect or picklikst field into a kiosk with the values that have been previously selected. So, I essentially have 3 unacceptable options: 1.)Load the value into a text string and include instructions like this: "Picklist
How do i move multiple tickets to a different department?
Hello, i have several tickets that have been assigned to the wrong department. I am talking about hundreds of automatically generated ones that come from a separate system. How can i select them all at once to move them to another department in one go? I can select them in "unsassigned open tickets view" but i can't find a "move to another department" option. I also can't seem to assign multiple tickets to the same agent in that same view. Could somebody advice?
Transferring CRM Attachments to Workdrive
relatedrecords = zoho.crm.getRelatedRecords("Attachments","Conditions",conId); attachid = List(); for each ele in relatedrecords { attachementId = ele.get("id"); attachid.add(attachementId); } for each ele in attachid { counter = 1; downloadFile = invokeurl [ url: "https://www.zohoapis.com/crm/v2/Conditions/" + conId + "/Attachments/" + ele type: GET connection : "work_drive" ]; resp2 = zoho.crm.attachFile("Deals",dealId,downloadFile); resp3 = zoho.workdrive.uploadFile(downloadFile, dealWD, "PlaceHolder"+counter+"",
How to restrict user/portal user change canvas view
Hi , I would like to restrict user / portal user change their canvas view because I hide some sensitive field for them. I dont want my user switch the canvas view that do not belong to them But seems Zoho do not provide this setting?
New Customization options in the module builder: Quick Create and Detail view
Hello everyone, We have introduced two new components to the module builder: Quick create and Detail view. The Quick Create Component It is a mini form used to create a record and associate it to the parent record from a lookup field. For example, if you have a Deals lookup in the Contacts module, then you can associate existing deals or create a deal and associate it with the contact. You can customize this Quick Create form by adding standard as well as custom fields. There is no limit to the number
unblock my zoho mail account. outlines@zoho.com
please unblock my zoho mail account, outlines@zoho.com
SMTP email sending problem
Hello, I've sent emails before, but you haven't responded. Please respond. My work is being disrupted. I can't send emails via SMTP. Initially, there were no problems, but now I'm constantly receiving 550 bounce errors. I can't use the service I paid
Mailk got blocked / Inquiry About Email Sending Limits and Upgrade Options
Dear Zoho Support Team, My name is Kamr Elsayed I created this account to use for applying for vocational training in Germany. As part of this process, I send multiple emails to different companies. However, after sending only 8 emails today, I received
Forwarder
Hi, I tried to add a forwarder from which emails are sent to my main zoho account email . However, it asks me for a code that should be received at the forwarder email, which is still not activated to send to my zoho emial account. So how can I get the
No chat option
Chat option is not supported.
Direct “Add to Google Calendar” Option in Zoho Meeting
Hello Zoho Meeting Team, Hope you are doing well. We would like to request an enhancement related to the “Add to Calendar” functionality in Zoho Meeting. Currently, when we open Zoho Meeting and view our meetings under My Calendar, there is an Add to
Multi-currency and Products
One of the main reasons I have gone down the Zoho route is because I need multi-currency support. However, I find that products can only be priced in the home currency, We sell to the US and UK. However, we maintain different price lists for each.
Default Tagging on API-generated Transactions
If one assigns tags to an Item or Customer, those tags get auto-populated in each line item of an Invoice or Sales Order when one creates those documents. However, if one creates the Sales Order or Invoice via the API (either directly coding or using
DKIM cannot be enabled for the domain as no verified default selector present
Hi Support Team, For Domain DKIM record trying to enable status. but showing error "DKIM cannot be enabled for the domain as no verified default selector present" So, please resolve the issue. Thank you.
unable to send message reason 554 5.1.8 Email outgoing blocked
unable to send message reason 554 5.1.8 Email outgoing blocked
I can't log in to my account on Thunderbird
I've just had to rebuild my PC (calamitous mess from Microsoft with Win10/Win 11 'upgrade' - they confirmed I had to start with a new build). I have used Zoho mail for years via Mozilla Thunderbird, but now I've had to download the latest version of TBird,
Should I Use DMARC?
When I configure Zoho Mail's DMARC settings, it's mandatory to fill in the RUA and RUF (Aggregate notification email address*, Forensic notification email address*) addresses. When we enter an email address in these fields, we receive reports from the
Introducing Profile Summary: Faster Candidate Insights with Zia
We’re excited to launch Profile Summary, a powerful new feature in Zoho Recruit that transforms how you review candidate profiles. What used to take minutes of resume scanning can now be assessed in seconds—thanks to Zia. A Quick Example Say you’re hiring
Books API Receiving an Error that Doesn't Make Sense when Creating Credit Note - trying to use 'ignore_auto_number_generation' argument
Hello, I'm working on a newly created routine and I'm getting an error that doesn't make sense when trying to create a new Credit Note. Here is my POST request. Endpoint: https://www.zohoapis.com/books/v3/creditnotes?organization_id=########## Body: {
How to move emails to Shared Mailbox?
Hello, I created a Shred Mailbox instead of using a distribution group. But I cannot move previous emails to certain shared mailbox. Is it possible move some emails from inbox to shared mailbox?
Collaboration with free plan user.
Hello. Do both users need to be on Pro plan to collaborate? Or can a Pro user share a note with a free plan user with the ability to edit?
All new Address Field in Zoho CRM: maintain structured and accurate address inputs
The address field will be available exclusively for IN DC users. We'll keep you updated on the DC-specific rollout soon. It's currently available for all new sign-ups and for existing Zoho CRM orgs which are in the Professional edition. Latest update
Send email template "permission denied to access the api"
Hello, Per the title, I'm trying to send a Zoho CRM Email template based on the advice given here: https://help.zoho.com/portal/en/community/topic/specify-an-email-template-when-sending-emails-in-custom-functions (I'd prefer to send right from Deluge
Zoho sign and creator error message {"code":9043,"error_param":"Checked by","message":"Extra key found","status":"failure"}
Good day, I receive the error message: {"code":9043,"error_param":"Checked by","message":"Extra key found","status":"failure"} when running below code from creator to sign, void TestForSign(int ID) { //Fetch Template Details (Optional, for dynamic mapping)
Next Page