Creem data models in Chartsy

Exactly what Chartsy reads from one Creem store, what each object becomes in Chartsy, and what it does with your API key.

How the sync works#

  • First import - right after you connect, Chartsy reads your products, discounts, customers, subscriptions and payments, from 1 January two years back.
  • Live updates - a webhook endpoint Chartsy adds to your store sends completed checkouts, subscription changes, refunds and disputes as they happen. For each event, Chartsy reads the record back from Creem rather than trusting the event body, so a retried or out-of-order delivery can't write stale data.
  • Sync now - re-reads the whole store on request, writes only what changed, and puts the webhook back if it was removed or switched off. Creem's lists can't be filtered by date, so there is no hourly sync.

Every record is keyed on Creem's own ids, so the webhook and Sync now can overlap without counting anything twice.

What Chartsy syncs#

Creem objectBecomes in ChartsyWhat is kept
ProductProduct and priceName, price, currency and billing period (monthly, every three or six months, yearly, or one-time). A Creem product has one price, so both share the product’s id
DiscountDiscountCode, percentage or fixed amount, and duration
CustomerCustomerEmail, name, country, signup date, your external_id, and the Chartsy visitor id when your checkout passed one
SubscriptionSubscriptionStatus, seats (units), list price per period, current period, scheduled cancellation, trial dates and discount
TransactionTransactionAmount paid including tax, tax, Creem’s fee (computed - see below), net amount, currency, tax country, discount and amount refunded
Refund or disputeAdjustmentOne per payment, as a negative amount: refunds as refunds, disputes as chargebacks. Updated as further partial refunds land

How payments are counted#

  • A payment that bills a subscription period counts toward MRR, normalized to a month.
  • One-time purchases are revenue, not MRR.
  • Pending payments aren't revenue until they're paid; declined ones are kept as failed payments.
  • Payments in another currency are converted into your account's currency at the rate on the payment's date.
  • Churn is counted when paid access ends, not when the customer clicks cancel. A subscription scheduled to cancel counts as active until its period runs out.
  • Refunds that arrive by webhook are dated when they happen. Creem only reports a payment's refunded total, so refunds from before you connected are dated on the payment they reverse.

More on each metric in Metrics.

Creem’s fee#

Creem's API doesn't include the fee Creem takes from each payment, so Chartsy computes it from the rate you set when connecting - Creem's standard 3.9% + $0.40 unless you change it - on the payment before tax. Net revenue is the amount paid minus tax and that fee.

The rate is kept as a history. A new rate recorded from a date applies to payments from that date on; a correction applies to every payment. Either way, Chartsy recomputes the affected payments.

What is left out#

  • Cancelled and void payments - they were never charged.
  • Custom customer metadata - only external_id and the Chartsy visitor id are kept, so other fields don't become breakdowns.
  • Payment details - Chartsy never sees card numbers or bank details.
  • With GDPR mode on, customer email, name, country and city, and each payment's tax country, aren't stored either.

API key and webhook#

Chartsy connects with your store's API key, encrypted at rest. Only live keys are accepted. It uses the key to read your store and to manage one webhook endpoint, named "Chartsy" - the only thing it writes in Creem. The endpoint listens for:

EventUsed for
checkout.completedA new purchase, with the checkout metadata used for attribution
subscription.activeKeeping the subscription and its latest payment current
subscription.trialingKeeping the subscription and its latest payment current
subscription.paidKeeping the subscription and its latest payment current
subscription.canceledKeeping the subscription and its latest payment current
subscription.scheduled_cancelKeeping the subscription and its latest payment current
subscription.past_dueKeeping the subscription and its latest payment current
subscription.unpaidKeeping the subscription and its latest payment current
subscription.expiredKeeping the subscription and its latest payment current
subscription.updateKeeping the subscription and its latest payment current
subscription.pausedKeeping the subscription and its latest payment current
refund.createdA refund, and the date it was made
dispute.createdA chargeback

Already connected this store?

Each Creem store can be connected once, even with a new key, so its numbers are never doubled.

Deleting your data#

Delete the Creem source on the Data Sources page and it is permanently removed, together with everything imported from it. You can also delete the "Chartsy" webhook endpoint and regenerate your API key in Creem's settings.

Related articles

Chartsy Team

Written by

Chartsy Team

Analytics team at Chartsy

The Chartsy Team writes guides, product updates, and resources to help SaaS and eCommerce founders make sense of their metrics, without SQL or spreadsheets.

Chartsy
Ministry of Economy and Innovation
Startup Albania

The Chartsy program is realized with the financial support of the Albanian Government through the Ministry of Economy and Innovation, under the Grant 2026 scheme, and is implemented by the Innovation4Albania Agency.