Integrations

Stripe Connect

Accept payments from form respondents via Stripe Connect.

FilaForms uses Stripe Connect to enable platform payments. Form owners connect their own Stripe accounts and receive payments directly from form respondents. The platform collects a configurable application fee on each transaction.

How It Works

  1. Form owner connects their Stripe account on the Integrations page
  2. Form respondent submits a form that requires payment
  3. FilaForms creates a Stripe Checkout session on the connected account
  4. Respondent completes payment on Stripe's hosted checkout page
  5. Stripe sends a webhook to confirm payment status
  6. Platform collects an application fee automatically

Setup

Create a Stripe Platform Account

  1. Sign up at stripe.com if you don't have an account
  2. Go to Settings > Connect in your Stripe Dashboard
  3. Configure your onboarding settings for Standard accounts

Add Environment Variables

.env
FILAFORMS_STRIPE_SECRET_KEY=sk_test_...
FILAFORMS_STRIPE_PUBLISHABLE_KEY=pk_test_...
FILAFORMS_STRIPE_WEBHOOK_SECRET=whsec_...
FILAFORMS_STRIPE_FEE_PERCENT=2
FILAFORMS_STRIPE_CURRENCY=USD
Use sk_test_ and pk_test_ keys during development. Switch to sk_live_ and pk_live_ in production.

Register the Webhook Endpoint

In your Stripe Dashboard under Developers > Webhooks, add:

https://your-domain.com/filaforms/webhooks/stripe

Select these events:

  • checkout.session.completed
  • checkout.session.expired
  • payment_intent.succeeded
  • payment_intent.payment_failed

Copy the Signing secret (whsec_...) to your .env as FILAFORMS_STRIPE_WEBHOOK_SECRET.

User Flow

Connecting a Stripe Account

  1. Admin navigates to the Integrations page
  2. Creates a Stripe connection
  3. Clicks Connect with Stripe to start onboarding
  4. Redirected to Stripe to complete account onboarding
  5. After onboarding, redirected back with account linked
  6. Connection shows the connected account email/name

Adding Stripe to a Form

  1. On the form's integration settings, add a Stripe integration
  2. Select the connected Stripe account from the dropdown
  3. Choose the default currency
  4. Enable the integration

Accepting Payments

  1. Form respondent submits a payment form
  2. Redirected to Stripe Checkout (hosted by Stripe)
  3. Completes payment with card, Apple Pay, Google Pay, etc.
  4. Stripe sends webhook confirmation
  5. Submission is marked as paid

Configuration Reference

VariableDefaultDescription
FILAFORMS_STRIPE_SECRET_KEY--Platform account secret key (sk_test_ or sk_live_)
FILAFORMS_STRIPE_PUBLISHABLE_KEY--Platform account publishable key (pk_test_ or pk_live_)
FILAFORMS_STRIPE_WEBHOOK_SECRET--Webhook signing secret (whsec_...)
FILAFORMS_STRIPE_FEE_PERCENT2Platform fee percentage per transaction
FILAFORMS_STRIPE_CURRENCYUSDDefault currency (ISO 4217)

Supported Currencies

USD, EUR, GBP, CAD, AUD, JPY, CNY, CHF, SEK, NZD, MXN, SGD, HKD, NOK, KRW, TRY, INR, BRL, ZAR, DKK, PLN, THB, IDR, MYR

Webhook Events

Stripe EventFilaForms EventDescription
checkout.session.completedPAYMENT_SUCCEEDEDPayment completed successfully
checkout.session.expiredPAYMENT_FAILEDCheckout session expired
payment_intent.succeededPAYMENT_SUCCEEDEDPayment intent confirmed
payment_intent.payment_failedPAYMENT_FAILEDPayment attempt failed

Routes

All Stripe routes are registered under the /filaforms prefix:

MethodURIPurpose
POST/filaforms/connections/stripe/connect/{connection}Start Stripe onboarding
GET/filaforms/connections/stripe/callbackOnboarding return URL
POST/filaforms/webhooks/stripeReceive Stripe webhooks

Security

  • Webhook signature verification -- All incoming webhooks are verified using Stripe's HMAC-SHA256 signatures
  • Authorization checks -- Only the connection owner can initiate or complete Stripe onboarding
  • Connected account isolation -- Payments go directly to the connected account; the platform never holds funds
Copyright © 2026