Stripe
Pull subscription data, MRR, payment history, and invoice status from Stripe into Perly for real-time churn risk scoring.
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.
What Perly pulls
- 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
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.
- Log in to the Stripe Dashboard and navigate to Developers > API keys.
- Copy your Secret key (starts with
sk_live_orsk_test_). - In Perly, go to Settings > Integrations and click Connect Stripe.
- Paste your secret key and click Save.
- 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, andCustomersfor 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 object | Perly field |
|---|---|
subscription.status | Subscription health flag |
invoice.status | Payment risk indicator |
charge.amount | MRR calculation |
plan.id | Plan tier classification |
customer.created | Customer tenure |