Importing subscription data

Learn how to import and manage your subscription billing data in ChartMogul.

Here’s what we cover in this article:

Resources and further reading:

Before you begin

  • Configure your data settings to ensure ChartMogul calculates metrics and analytics based on the needs of your business.
  • Consider adding sample data to get familiar with how ChartMogul calculates metrics and analytics before importing actual data.
  • Review our guide on tracking leads and trials.
  • If you have multiple accounts with the same billing system, you’ll need to add each account as a separate source in ChartMogul.
  • If your customers pay at the end of the service period for the product/service they already used, read how usage-based billing works with ChartMogul.
  • Depending on the amount of data, an initial import may take several hours. You’ll receive a confirmation email once your import is complete. Check our status page for real-time maintenance updates.

Types of billing systems

A billing system is the system(s) you use to generate and issue invoices to customers and track and collect payments. This could be a third-party system such as Stripe or Reculy, your custom-built solution, or a set of manual processes. Add and import data from each billing system as a source. Each ChartMogul account supports up to 100 individual sources.

There are two ways of setting up a billing system in ChartMogul: as a supported billing system or as a custom source.

Supported Billing System — ChartMogul has out-of-the-box integrations with leading billing system software providers, which we refer to as our supported billing systems. Connect them to ChartMogul without writing a single line of code and keep your metrics up-to-date automatically.

Custom Source — To import data from a billing system for which a supported integration doesn’t yet exist, ChartMogul offers custom sources. You may need to format your data in specific ways before importing it into ChartMogul using our API, CSV, as a manual subscription, or directly within the app.

Screenshot of the Sources page with one Stripe source and once custom source for direct debit customers.

The building blocks of subscription data

It’s important to understand how ChartMogul uses your billing data to generate subscriptions and calculate metrics. Here’s an overview of each of the types of data needed. These datasets must be in the same source to accurately calculate metrics:


Customer data must include the unique external ID of companies or consumers with a potential, current, or past relationship with your business.


Plan data must include the name, unique ID, and frequency of the product/services (or sets thereof) you offer on a subscription (recurring) basis.


Invoice data must include invoice line items with details of the product/service you’ve sold, including customer name, plan (or product name), service period, the subscription’s unique ID, and amount billed. Based on this data and as part of its internal dataset, ChartMogul generates subscriptions. From there, it calculates all metrics and analytics (except for cash flow reports, which require transaction data).

Transactions (payments and refunds)

Transactions are attempted payments and refunds to invoices and are needed for ChartMogul to generate cash flow reports.

Transaction data must include date, invoice number or unique ID, type (payment or refund), and result (successful or failed).

Refunds contribute to cash flow metrics but don’t impact MRR (except for Stripe). Issue a refund by adding a refund transaction to the invoice used to issue the subscription. Refunding the total amount charged doesn’t cause the subscription to churn automatically. However, you can configure the Free Customer Handling setting to have ChartMogul classify these customers as canceled/churned. Learn more.


Cancellations are a type of subscription event. Cancellation data must include the name and unique ID of a customer, the subscription event type (Canceled), their subscription ID, and the cancellation event and effective dates. Subscriptions churn according to your Churn Recognition setting.

ChartMogul relies on cancellation events to definitively know when the subscription has ended. This is in part because subscriptions can remain active indefinitely — even after all payment attempts for an invoice have failed. 

If a customer cancels their subscription, they’re no longer a subscriber (and the resulting loss in MRR is known as churn). Customers can also churn as a result of your Handling Past-due Subscriptions setting. When a subscription auto-churns, the status of the subscription changes in ChartMogul but not your billing system.

Importing data from a supported billing system

  1. Click Data & Config > Sources.
  2. Click Add Source.
  3. Select your billing system and follow the relevant setup instructions.

Importing data from other billing systems

  1. Click Data & Config > Sources.
  2. Click Add Source.
  3. Select Custom Source.
  4. Follow the instructions to import your subscription data using our API, CSV files, or our app interface.

Reviewing your subscription data as it exists in ChartMogul

Data tables aren’t available for Braintree or the previous versions of our Stripe integration, Recurly integration, or Maxio (Chargify) integration.

Once imported, ChartMogul gives you complete visibility into your data as it exists in our platform through a series of data tables. To view these tables, navigate to Data & Config > Sources, then select the source you want to view. Learn more about the data stored in each table and table column.

Reviewing your metrics after importing data

Once you’ve connected your billing system(s) to ChartMogul and have imported data, we recommend reviewing your metrics. Review what to do if you are experiencing issues importing your data.

Here’s a recommended checklist of things to review:

If you’ve gone through the preceding checklist and find discrepancies in your metrics or data (as it exists in ChartMogul), here are several more tips and resources:

Was this article helpful?

We’re sorry to hear that. Would you like to share more feedback?

Thanks for your feedback!