LTV SaaS
  • What is LTV?
  • Pricing
  • Documentation
  • Blog
  • FAQ
  • Contact
Sign In
Sign Up
LTV SaaS

Server-side subscription tracking for SaaS. Connect your billing system to ad platforms in minutes.

© Copyright 2025 LTV SaaS. All Rights Reserved.

GDPR CompliantCCPA CompliantISO 27001HIPAA Compliant
About
  • Blog
  • Contact
Product
  • What is LTV?
  • Documentation
  • Pricing
Legal
  • Terms of Service
  • Privacy Policy
  • Refund Policy
LTV SaaS
  • Getting Started with LTV Tracking
    • Connecting Billing Platforms
  • Connecting Ad Platforms
    • Configuration & Advanced Settings
  • Troubleshooting Guide
  • Understanding Your Dashboard & Metrics
  • Optimization & Best Practices

Connecting Billing Platforms

Connect Stripe, Lemon Squeezy, or Paddle to automatically track subscription events and revenue. Step-by-step setup for each platform.

Your billing platform is the source of truth for subscription revenue. Connecting it allows us to automatically track signups, renewals, upgrades, and cancellations without any code changes.

Platform Comparison

PlatformSetup TimeBest ForIntegration Method
Stripe5 minutesMost SaaS companies, flexible billingWebhooks + signing secret
Lemon Squeezy7 minutesGlobal sales, automatic tax complianceWebhooks + signing secret
Paddle8 minutesLarger businesses, enterprise billingWebhooks + public/secret key

Tracked Events

Once connected, these events are automatically captured and used to update customer LTV in your ad platforms:

EventTriggerImpact on LTV
Trial StartedCustomer begins trial periodTrack for trial-to-paid conversion
Subscription CreatedFirst payment processedInitial conversion value sent to ad platforms
Subscription RenewedMonthly or annual renewalLTV increased, ad platforms notified
Subscription UpgradedCustomer selects higher planLTV increased by plan difference
Subscription DowngradedCustomer selects lower planLTV decreased, future value adjusted
Subscription CancelledCustomer churnsStop sending LTV updates
Payment FailedCard declined or rejectedMonitor for at-risk revenue
Refund ProcessedPayment reversedLTV decreased by refund amount

Stripe Setup

Stripe is the most common billing platform for SaaS. Setup takes about 5 minutes and uses webhooks to send subscription events.

Step 1: Log in to your Stripe Dashboard at dashboard.stripe.com and navigate to Developers → Webhooks in the left sidebar. Click "+ Add endpoint" to create a new webhook.

Step 2: Configure your webhook with these settings:

FieldValue
Endpoint URLhttps://ltvsaas.com/api/webhooks/stripe
DescriptionLTV Tracking Platform
API VersionLatest (recommended)
Events to sendSee required events below

Required events to select: customer.subscription.created, customer.subscription.updated, customer.subscription.deleted, invoice.payment_succeeded, invoice.payment_failed, charge.refunded

Step 3: After creating the endpoint, Stripe displays a signing secret. Click "Reveal" and copy the entire secret (starts with whsec_). This secret verifies that webhooks are genuinely from Stripe.

Step 4: In our platform, go to Settings → Billing Connections, select "Stripe", paste your signing secret, and click "Connect."

Verification: Send a test webhook from Stripe by clicking "Send test webhook" in your webhook settings and selecting customer.subscription.created. Check our Dashboard for the test event within 60 seconds.

Common issues: If webhooks are failing, verify the URL is exactly https://ltvsaas.com/api/webhooks/stripe with no extra characters. If events aren't appearing, confirm all required events are selected in Stripe. If you see "invalid signing secret" errors, create a new webhook endpoint and use the fresh secret. Note that test mode and live mode require separate webhook configurations.

Lemon Squeezy Setup

Lemon Squeezy acts as a Merchant of Record, handling taxes and compliance automatically. Setup takes about 7 minutes.

Step 1: Log in to your Lemon Squeezy store dashboard and navigate to Settings → Webhooks. Click "+" to add a new webhook.

Step 2: Configure your webhook:

FieldValue
Callback URLhttps://ltvsaas.com/api/webhooks/lemonsqueezy
Signing SecretAuto-generated by Lemon Squeezy (copy this)
EventsSelect all subscription and order events

Required events: subscription_created, subscription_updated, subscription_cancelled, subscription_resumed, subscription_expired, order_created, order_refunded

Step 3: Copy the auto-generated signing secret that Lemon Squeezy provides.

Step 4: In our platform, go to Settings → Billing Connections, select "Lemon Squeezy", paste your signing secret, enter your Store ID (found in Settings → General), and click "Connect."

Verification: Create a test subscription using Lemon Squeezy's test mode. The event should appear in our Dashboard within 60 seconds.

Common issues: If events aren't received, verify the callback URL has no trailing spaces or extra characters. If you see a Store ID mismatch, double-check the Store ID in Settings → General. Don't reuse signing secrets from old webhooks—generate a fresh one.

Paddle Setup

Paddle has two versions: Paddle Billing (current) and Paddle Classic (legacy). Choose the appropriate guide for your version.

Paddle Billing (Current Platform)

Step 1: Log in to your Paddle dashboard and go to Developer Tools → Notifications. Click "+ New notification destination."

Step 2: Configure your notification:

FieldValue
Destination typeHTTPS webhook
URLhttps://ltvsaas.com/api/webhooks/paddle
DescriptionLTV Tracking Platform
EventsSelect all subscription and transaction events

Required events: subscription.created, subscription.updated, subscription.canceled, subscription.activated, transaction.completed, transaction.updated

Step 3: After creating the destination, Paddle provides a secret key (starts with pdl_ntf_). Copy this key.

Step 4: In our platform, go to Settings → Billing Connections, select "Paddle Billing", paste the secret key, enter your Vendor ID (from Settings → Developer Tools), and click "Connect."

Paddle Classic (Legacy Platform)

Step 1: Log in to classic.paddle.com and navigate to Developer Tools → Webhooks. Click "Add Webhook."

Step 2: Configure your webhook:

FieldValue
Webhook URLhttps://ltvsaas.com/api/webhooks/paddle-classic

Paddle Classic automatically sends all events—no event selection required.

Step 3: Get your public key from Developer Tools → Public Key and copy it.

Step 4: In our platform, go to Settings → Billing Connections, select "Paddle Classic", paste your public key, enter your Vendor ID (from Account Settings), and click "Connect."

Common issues for both versions: If you can't find your Vendor ID, check Developer Tools → Authentication. For webhook signature failures, verify you're using the correct key for your platform version (Billing vs Classic). Ensure the webhook URL matches exactly, including HTTPS. Paddle requires separate webhooks for sandbox and live environments.

Webhook Security

All platforms use cryptographic signatures to verify webhook authenticity. We automatically validate every webhook before processing:

PlatformSignature MethodVerification Header
StripeSHA-256 HMAC with signing secretStripe-Signature
Lemon SqueezySHA-256 HMAC with signing secretX-Signature
Paddle BillingHMAC with secret keyPaddle-Signature
Paddle ClassicRSA with public keyPaddle-Signature

Invalid signatures are automatically rejected. You don't need to do anything—this protection is built-in.

Event Processing Flow

Here's what happens after you connect your billing platform:

Customer action occurs → Billing platform processes the event → Webhook sent to our server within 1-5 seconds → We verify the webhook signature → Event is parsed and stored → Customer LTV is calculated or updated → Ad platforms receive conversion updates within 5-10 seconds.

If webhook delivery fails, billing platforms automatically retry with exponential backoff. Stripe retries for up to 3 days, Lemon Squeezy for 24 hours, and Paddle for 7 days. This ensures reliable event capture even during temporary outages.

Troubleshooting

No events received after 24 hours: Verify the webhook URL is exactly as specified (copy-paste to avoid typos). Check that all required events are selected in your billing platform. Confirm our servers are accessible (not blocked by firewall). Ensure you're not mixing test webhooks with live API keys or vice versa.

Events received but not processing: Verify you copied the complete signing secret with no truncation. Confirm you're using the secret for the correct platform (Stripe secret doesn't work for Paddle). If you recently changed billing platform settings, regenerate the webhook to get a fresh secret.

Need help? Email admin@ltvsaas.com with which billing platform you're using, a screenshot of your webhook configuration (with secrets hidden), an example webhook payload if available (remove sensitive data), and the error message or behavior you're observing. We typically respond within 24 hours.

Next Steps

After connecting your billing platform, you're ready to connect ad platforms so they receive your LTV data. See Ad Platform Setup for Google Ads, Meta, and TikTok integration. You can also review Configuration & Settings for advanced options like custom event mapping and privacy controls.

Your billing integration is the foundation—everything else builds on this connection.

  1. Platform Comparison
    1. Tracked Events
    2. Stripe Setup
    3. Lemon Squeezy Setup
    4. Paddle Setup
    5. Webhook Security
    6. Event Processing Flow
    7. Troubleshooting
    8. Next Steps