Documentation
IntroductionQuick StartInstallationConfiguration
Question TypesPages & NavigationDrag & DropLive Preview
Conditional LogicPage RoutingFinish Screens
Built-in ThemesCustom ThemingFonts & PatternsLogo & Branding
Viewing ResponsesExporting DataWebhooks
Stripe SetupFixed PricingDynamic Pricing
Custom SlugsEmbed OptionsPublish Checklist
Inviting Team MembersRoles & Permissions
Docker DeployEnvironment VariablesCaddy SetupUpgrading

Stripe Setup

Lygotype integrates Stripe directly into the form. Each form has its own Stripe credentials — there's no shared account or platform fee.

Prerequisites

  • A Stripe account (free to create at [stripe.com](https://stripe.com))
  • A published Stripe API key pair (publishable + secret)
  • A configured Stripe webhook endpoint

Per-form credentials

Stripe credentials are set per-form in Settings → Integrations:

| Setting | Description | |---|---| | Publishable Key | Your Stripe publishable key (pk_live_... or pk_test_...). Sent to the client. | | Secret Key | Your Stripe secret key (sk_live_...). Masked in the UI — never sent to the client. | | Webhook Secret | The signing secret from your Stripe webhook endpoint (whsec_...). |

Adding a payment question

1. In the form builder, click + Add Question 2. Select Payment from the question type picker 3. Configure the amount (fixed) or link a prior question (dynamic) 4. Select currency: CAD or USD

See Fixed Pricing and Dynamic Pricing for configuration details.

Setting up the Stripe webhook

Stripe sends payment confirmation events to your server. To handle them:

1. In your Stripe Dashboard, go to Developers → Webhooks 2. Add endpoint: https://lygo.yourdomain.com/api/stripe/webhook 3. Select events: payment_intent.succeeded, payment_intent.payment_failed 4. Copy the signing secret and paste it into Settings → Integrations → Webhook Secret

Test mode

Use test keys (pk_test_... / sk_test_...) during development. Stripe test cards:

| Card | Behaviour | |---|---| | 4242 4242 4242 4242 | Always succeeds | | 4000 0000 0000 9995 | Always declines | | 4000 0025 0000 3155 | Requires 3D Secure |

Use any future expiry date and any 3-digit CVC.

Security

  • Secret keys are masked in the UI immediately after entry — they are never returned in API responses
  • Keys are stored encrypted at rest
  • Each form has independent credentials — a breach of one form's keys does not expose others
← PREVIOUSWebhooksNEXT →Fixed Pricing