Stripe

Pull subscription data, MRR, payment history, and invoice status from Stripe into Perly for real-time churn risk scoring.

~2 minPullapi_key

Overview

The Stripe integration gives Perly direct visibility into your billing data. Subscription changes, failed payments, and plan downgrades are among the strongest predictors of churn -- Perly ingests them automatically so your health scores reflect financial reality, not just product usage.

Stripe
PULL
Perly
subscriptions
MRR
invoices
payments

What Perly pulls

↓ PULL
  • Active subscriptions and plan details
  • Monthly recurring revenue (MRR) per customer
  • Payment history and failed charges
  • Invoice status (paid, open, past due, void)
  • Plan changes (upgrades, downgrades, cancellations)
  • Trial status and conversion dates
  • Discount and coupon usage
↑ PUSH

    This is a read-only integration. Perly never modifies your Stripe data.

    How Perly uses billing data

    Perly combines Stripe signals with product usage and CRM data to build a complete picture of customer health. Key billing signals include:

    • Payment failures -- repeated failures strongly correlate with involuntary churn.
    • Downgrades -- moving to a lower plan often precedes cancellation.
    • Invoice aging -- past-due invoices indicate disengagement or budget issues.
    • Trial expiration -- customers nearing the end of a trial without conversion need attention.
    • MRR contraction -- shrinking revenue from a customer signals risk even if they stay active.

    Connecting Stripe

    Connection uses a Stripe API key -- no OAuth flow required.

    1. Log in to the Stripe Dashboard and navigate to Developers > API keys.
    2. Copy your Secret key (starts with sk_live_ or sk_test_).
    3. In Perly, go to Settings > Integrations and click Connect Stripe.
    4. Paste your secret key and click Save.
    5. Perly begins syncing within minutes. Historical data is backfilled on first connect.

    Tip: Use a restricted key with read-only permissions on Subscriptions, Invoices, Charges, and Customers for least-privilege access.

    Sync frequency

    Perly listens for Stripe webhooks in real time and runs a full reconciliation sync every 6 hours to catch any missed events. You can trigger a manual sync from the integration settings page at any time.

    Data mapping

    Stripe objectPerly field
    subscription.statusSubscription health flag
    invoice.statusPayment risk indicator
    charge.amountMRR calculation
    plan.idPlan tier classification
    customer.createdCustomer tenure