This article is relevant if you are on the NetSuite platform and your are looking for a Recurring Billing system.
A client that has a significant business that offers subscriptions for its web based database content needed a solution to replace its proprietary billing system. They implemented NetSuite to realize the promise of a unified business system. ¬†However, the unified promise comes after careful planning and execution.
In our client’s case, they had a proprietary homegrown PHP web system used to drive new subscription sign-ups and access to their database driven content. ¬†The subscription system represented more than 50% of the client’s annual revenue and they were especially sensitive to disrupting the user base that may occur during any new system transition for fear they would hurt their brand and lose important revenue. ¬†They needed a tailored solution that would help them transition and minimize risk.
The client explored the typical offerings: NetSuite Recurring Billing, Zuora and others. The challenge with these offerings were that they are priced with a transaction fee and they all required a significant amount of care for the implementation.
Because my team members are experts in NetSuite platform development and business systems integration, I ¬†produced a vision where we could keep all the client’s existing PHP web sign-up and delivery systems but we could move the subscriber and subscription management directly into NetSuite. ¬† Our approach to produce a custom Recurring Billing Engine (RBE) represented a one-time investment but then could be enjoyed into the future without a concern for giving up any transaction revenue. ¬†Even in a ready-to-go packaged recurring billing system, there will be a significant implementation investment. ¬† Hence, ¬†our approach produced a long-term return because the implementation investment would last years into the future.
Click images below:
NetSuite Recurring Billing Engine Architecture
The key to this idea is that we needed a mechanism that was going to work with the proprietary PHP web application, NetSuite Site Builder, NetSuite SuiteScript Server Pages (SCA) Shopping Cart and the related Customer Center. ¬†To achieve this, we designed the following.
Sales Order Drives Subscription
Fundamentally, the NetSuite Sales Order represents the customer commitment. ¬†Each sales order line item represents a customer specific desire. ¬† One sales order line may represent a downloadable document, and another line may represent a monthly subscription. ¬†Hence, the sales order line and its related item definition needs to be intelligent about driving a new Subscription system. ¬†Because NetSuite eCommerce offerings use the Sales Order, we could organize around this document structure to provide flexibility in different mixed selling models.
Subscription and Related Lines
A sales order line (or group of lines) will drive a connection to a Subscription. Subscription lines may represent discounted services and varying term lengths. The key is that the Sales Order delivers the Subscription which then can be an ongoing structure to take care of a recurring billing process for a service that is offered over a prescribed period of time.
Nightly Subscription Invoice
On a nightly basis, a custom NetSuite mass update runs looking for subscription records that are due for billing. With this architecture, administrators are in complete control over staggered or controlled billing dates. ¬†Depending on payment terms defined, the client can produce invoices on terms or to be paid immediately via credit cards or other payment methods.
Nightly Invoice Credit Card Payments
Part of Subscription sign up included providing a credit card and agreement to participate in the subscription program. Leveraging our custom NetSuite RESTlet APIs, we captured the credit card in native NetSuite customer record during the web sign-up process. ¬†Once we properly stored the credit card securely in NetSuite, we can then automatically pay the invoice based on the credit card on file. For any reason the credit card does not properly authorize, our invoice record can trigger a delinquent subscription status depending on the policies configured.
Nightly Credit Card Expiration Email Reminder
Each night, a custom NetSuite mass update looks for credit cards about to expire. Leveraging our Content Renderer Engine technology, we produce a beautiful branded email message asking the user to come to the NetSuite SCA Customer Center to update their credit card profile.
Subscription Revenue Recognition
Given the nature of the subscription and varied billing terms and payment time horizons, we must address revenue recognition concerns to properly use accrual accounting. Based on the clients policy, we can determine deferred revenue and earned revenue on each subscription.
Upgrades and Downgrades
It’s natural for customers to upgrade or downgrade their subscription. The application intelligently handles adding new subscription lines and retiring old lines. Because each line can have its own term and price, we can effectively negate the undesired line while we activate the new line. ¬†In a simplified manner, the net of the transaction, in a particular time period, represent the new (or reduced) charge. ¬†This acts to pro-rate charges as needed.
Change Log Visibility
Managing a subscription over time requires care. Each change to a subscription throws an event that is connected to a log visible from the subscription record structure. ¬†The change log tells a story which helps Customer Service agents take care of client’s requests.
Take Control of your Recurring Billing Requirements
We are different from other NetSuite partners. We are very strong in accounting, software architecture and NetSuite. ¬†In the hands of the right talent, the NetSuite platform is an expression of liberty and freedom. We love to help our clients realize their business goals and excel in complex endeavors. ¬†Should you have a recurring billing challenge, let’s talk. ¬†Perhaps the tools we have built will give you a clear head start on meeting your demanding business situation.