Skip to main content

Overview

A Stripe connection in Flexprice stores encrypted credentials that allow the system to interact with your Stripe account for:
  • Creating customers in Stripe
  • Processing payment links via Stripe Checkout
  • Receiving webhook notifications from Stripe
  • Synchronizing customer data between systems

Video Walkthrough

Watch this step-by-step guide to setting up your Stripe connection:

Prerequisites

Before setting up your Stripe connection, ensure you have:
  1. Active Stripe Account - Sign up at stripe.com
  2. API Keys - Available in your Stripe Dashboard
  3. Webhook Endpoint - Configured in Stripe Dashboard
  4. Flexprice Environment - Valid tenant and environment IDs

Step 1: Gather Stripe Credentials

Required Credentials

Finding Your Credentials

  1. API Keys:
    • Go to Stripe Dashboard → Developers → API Keys
    • Copy your Secret key (starts with sk_) and your Publishable key (starts with pk_)
    • Use test keys (sk_test_, pk_test_) for development
  2. Webhook Secret:
    • Go to Stripe Dashboard → Developers → Webhooks
    • Create or select your webhook endpoint
    • Click “Reveal signing secret”
    • Copy the secret (starts with whsec_)

Step 2: Configure Webhook Endpoint in Stripe

Webhook URL Format

Required Webhook Events

Configure these events in your Stripe webhook endpoint:

Setting Up the Webhook

  1. Go to Stripe Dashboard → Developers → Webhooks
  2. Click + Add endpoint
  3. Enter your webhook URL
  4. Select the required events listed above
  5. Click Add endpoint
  6. Copy the Signing secret for your connection

Step 3: Create the Stripe Connection

Using Flexprice Dashboard

1

Open Stripe in Integrations

In the left sidebar, click Integrations, then click Connect on the Stripe card.
2

Enter your credentials

Enter a Connection name, your Secret key, and your Publishable key, then click Continue. Keys are encrypted and never shown again.
Connect Stripe sheet on the Credentials step with the connection name, secret key, and publishable key
3

Choose what syncs

Switch on what should move between Flexprice and Stripe: Pull plans, Pull subscriptions, Push invoices, and Push prices. Nothing syncs until you switch it on, and you can change it later. Click Continue.
Sync step with the Pull plans, Pull subscriptions, Push invoices, and Push prices switches
4

Add the webhook

The Webhook step shows your Webhook URL and the Events to send. Add them to a Stripe webhook as in Step 2, paste the signing secret Stripe gives you into Webhook signing secret, and click Connect Stripe.
Webhook step with the webhook URL, the events to send, and the webhook signing secret
To change the connection later, click Configure on the Stripe card. You can rename it and change what syncs. Keys can’t be shown or edited: to change them, disconnect and connect again.
Stripe connection settings with the name, sync switches, webhook, and Disconnect

API Request

Endpoint: POST /v1/connections Headers:
Request Body:

Response

Security Best Practices

Credential Management

  1. Environment Separation: Use different keys for test/production
  2. Key Rotation: Regularly rotate your Stripe API keys
  3. Access Control: Limit API key permissions in Stripe
  4. Encryption: All credentials are encrypted at rest in Flexprice

Webhook Security

  1. HTTPS Only: Always use HTTPS for webhook endpoints
  2. Signature Verification: Flexprice verifies all webhook signatures
  3. Secret Management: Keep webhook secrets secure and rotate regularly
  4. Rate Limiting: Implement rate limiting on webhook endpoints

Troubleshooting

Common Issues

Debug Steps

  1. Check Stripe Dashboard: Verify API keys and webhook configuration
  2. Test API Keys: Use Stripe CLI to test API key validity
  3. Monitor Webhooks: Check webhook delivery logs in Stripe
  4. Review Logs: Check Flexprice application logs for errors

Next Steps

After setting up your Stripe connection:
  1. Test Customer Sync: Create a test customer and sync to Stripe
  2. Create Payment Links: Test payment link creation and flow
  3. Monitor Webhooks: Ensure webhook events are being received
  4. Go Live: Switch to production keys when ready