Security and data handling

You're trusting OneMRR with billing data and, if you choose, with emailing your customers. Here's exactly how that's handled.

Billing connections are read-only

OneMRR reads subscriptions, invoices and customers. It never changes anything in your billing platforms. For Stripe you create a restricted key with read access only, and every set of credentials is checked with a read-only call before it's saved.

Credentials are encrypted

API keys and tokens are encrypted with AES-256-GCM before they're stored. Once saved, they're never shown again, in the app or through its API.

Every workspace is kept apart

Each workspace's data carries its workspace ID, and the application connects to the database as a restricted role that Postgres row-level security limits to the workspace in use. Members have owner, admin or member roles.

Activity tracking collects the minimum

For Churn Signals, OneMRR keeps only your account ID, the event name and its time. No event properties, page URLs, IP addresses or user details. Secret keys are refused if they're sent from a browser, and keys can be limited to tracking only.

Your customers are only emailed when you decide

  • Automatic emails are off until an owner or admin turns them on, and customers flagged or cancelled before that are never emailed.
  • Right before a retention email, OneMRR checks again that the customer still pays, hasn't started cancelling, and wasn't emailed in the last 30 days. Cancellation emails only go for confirmed cancellations that haven't been reversed.
  • Emails carry one-click unsubscribe, and unsubscribes, bounces and spam complaints stop future emails to that address.
  • Test emails only go to members of your workspace.

Where it runs

The managed service runs on AWS in the United States (us-west-2). The Postgres database sits in private subnets with no route to the internet. Sign-in is by email and password or Google.

Reporting a security issue

Email hello@onemrr.dev. Please include enough detail for us to reproduce the issue, and give us a chance to fix it before sharing it publicly.