Integrations · Data import

Any billing system, full SaaS analytics

Built your own billing, or use a platform we don't connect to natively? Push customers, plans and invoices to the GrowPanel API. GrowPanel works out the subscriptions and movements for you.

  • Free until $200k ARR
  • No credit card needed
  • Live in minutes
  • EU hosted, GDPR compliant
Read the engineering guide
Setup

From Custom API to live metrics in four steps

Three endpoints, JSON in, per-row results out. Most teams have it running in an afternoon.

1

Create the data source

Add a Custom API data source. GrowPanel shows the API key once, plus the data source ID.

API key
Data source IDds_abc123
Handed to your engineer
2

Push your history

Your code sends customers, plans and invoices, in batches of a few hundred rows. Each row gets its own result.

POST /data/invoices
6,000 rows: inserted
3

Movements detected

No need to send subscriptions. GrowPanel compares each invoice with the customer's history and classifies the change.

customers rebuilt
NewExpansionContractionChurnReactivation
4

Keep pushing

Send new invoices as they happen or in nightly batches. Rows are matched by your IDs, so resending is safe.

POST /data/invoices · 200 · insertedyour code
POST /data/customers · 200 · updatedyour code
POST /data/invoices · 200 · unchangedyour code
How the sync works

You send invoices. GrowPanel does the rest.

You send invoices, GrowPanel does the subscription logic. Upgrades, downgrades, cancellations and reactivations are detected by comparing each invoice with what came before.

Your billing systemYour code sends customers, plans and invoicesyour own IDs
Upsert through the APIPOST /data/customers, /plans and /invoices, single rows or batchesper-row results
+ daily FX rates Rebuild the customerEach new invoice is compared with the customer's history
Classify the changeNew, expansion, contraction, churn or reactivation
Everywhere at onceReports, alerts, HubSpot, the API and GrowPanel AI
You choose the cadence. Push every change as it happens, or send nightly batches. Rows are matched by your IDs, so resending is safe.
Your key, your dataKeys are shown once and can be rotated under Settings, then API keys.
Safe to resendEvery record is upserted by your own ID, so retries never duplicate.
Every currencyConverted with exchange rates updated several times a day, applied per day.
Mix with native sourcesRun it next to Stripe or Chargebee and filter reports by data source.
What syncs

Three endpoints, every report

POST /data/customersCustomers with country, trial start and custom variables for filters
POST /data/plansPlans with billing interval and currency, grouped for breakdowns
POST /data/invoicesMRR and every movement from subscription, one-time, refund and cancellation invoices
Per-row resultsinserted, updated, unchanged or error, so partial failures are visible
What you get

Every SaaS metric from your Custom API data

The moment the import finishes, every report is ready. No spreadsheets, no formulas to maintain.

  • MRR, ARR and every movement: new, expansion, contraction, churn and reactivation
  • Churn, retention and cohorts, down to the customer
  • Cashflow, failed payments and refunds
  • MRR and cashflow forecasts built from your own data
  • GrowPanel AI answers questions about your numbers in plain English
Setup

Set up in minutes

  1. Add a Custom API data source

    In GrowPanel, go to Settings, then Data sources, add Custom API and save.

  2. Store the API key

    The key is shown once. Save it as a secret. You can rotate it later.

  3. Note the data source ID

    Every record you push includes it, so GrowPanel knows where it belongs.

  4. Hand it to your engineer

    The Building integrations guide has schemas, sync patterns and skeleton code in JavaScript and Python.

Step-by-step setup guide with screenshots

FAQ

Custom API and GrowPanel, answered

Something else on your mind? Talk to a human, we reply within one business day.

When should I use the Custom API?

When your billing system isn't one of the native connectors, when you want to combine billing data with your own database, or when a platform creates one-off invoices instead of real subscriptions.

Do I need to send subscriptions?

No. You send customers, plans and invoices. GrowPanel reconstructs the subscription state from the invoice history.

Can I use it alongside Stripe or Chargebee?

Yes. For example Stripe for self-serve customers plus the Custom API for enterprise contracts. If Stripe also has records for customers you push, tag those Stripe customers to be excluded so they aren't counted twice.

What does the API return?

A result array with one entry per row: inserted, updated, unchanged or error, with the reason. A 200 with some errors is normal, so check the array.

What does it cost?

GrowPanel is free until you're above $200k ARR. After that, plans are priced by ARR, billed monthly or annually.

Ready to connect your billing system?