Skip to main content
Flexprice is a self-hosted product, which means we normally have no visibility into how it runs in production: which versions are still in use, what platforms people deploy to, or whether a release introduced a regression nobody reported. To close that gap, self-hosted Flexprice sends a small amount of anonymous usage data back to Flexprice by default. This page lists exactly what is collected, why, and how to turn it off.

Why Flexprice collects this

Without this data, we can’t tell how many self-hosted installs exist, which versions they’re running, or whether a given release is stable in the wild. The data collected is scoped to answer those questions, not to track what any individual business or customer is doing. Flexprice does not collect financial information such as invoice amounts, wallet balances, or payment details.
Telemetry is sent to a Flexprice-operated collector, not a third party. The app-side reporter’s source is open: internal/telemetry in the main repo.

What gets collected

There are two events.

Install event

Sent once per process start (API, consumer, or worker). Identifies the deployment and its environment, not any tenant or customer.

System event

Sent for a fixed set of activation/lifecycle events, listed below, not on every webhook event your instance emits.
Webhook payloads vary by event type and some carry customer PII or financial amounts directly, for example wallet.* events include the wallet’s full balance record. Before event_payload is sent, Flexprice strips the fields below by key name, at any nesting depth, regardless of which event produced them. Resource IDs, status enums, and timestamps are preserved. The redaction logic is open source: redact.go.PII: name, email, phone, address_line1, address_line2, address_city, address_state, address_postal_code, address_country, metadataFinancial amounts and balances: amount, amount_due, amount_paid, amount_remaining, subtotal, total, total_tax, total_discount, total_prepaid_credits_applied, settled_amount, total_amount, balance, credit_balance, credit_balance_before, credit_balance_after, credit_amount, current_balance, current_spend, threshold, conversion_rate, currency, value_at_timeOther: payment_gateway, gateway_refund_id, hosted_invoice_url, properties (freeform event properties), error (raw provider error text)
Only two telemetry event types exist (install_init and system_event), there is no per-feature tracking plan. event_name on a system event is always one of: Every other webhook event your instance can emit (checkout, feature, entitlement, the finer-grained invoice/payment/wallet/subscription states, event.rejected, etc.) is dropped before ReportEvent does any work. See Webhooks for the full set of events your own webhook endpoints can subscribe to, independent of this list.

Opting out

Set FLEXPRICE_TELEMETRY_DISABLED to true on every process (API, consumer, worker) to stop telemetry entirely:
This is checked before any network call is made, so no data leaves your deployment once it’s set.

Configuration

The full list of environment variables for a self-hosted install.

Self-Hosting Guide

Deploying Flexprice on your own infrastructure.

Architecture

How the API, consumer, and worker processes fit together.