Stripe Integration

Secure payment processing and subscription management powered by Stripe

Overview

Instafill.ai uses Stripe for all subscription billing and payment processing. Plans — Free, Starter, Professional, and Enterprise — are billed at the workspace level: each workspace carries its own subscription scoped to a workspaceId. When a payment is collected or a plan changes, Stripe sends webhook events (subscription.upgraded, subscription.downgraded, subscription.canceled, payment.failed) that the platform consumes to update quota entitlements and subscription state.

Card data never reaches Instafill.ai servers. Stripe's tokenization handles card storage, and PCI compliance is delegated entirely to Stripe. Payment method changes, invoice access, and subscription upgrades or downgrades are available in Settings → Billing.

Key Capabilities

  • Workspace-Scoped Billing: Each workspace has its own subscription tied to a workspaceId; billing state is independent across workspaces
  • Subscription Plans: Free, Starter, Professional, and Enterprise tiers with plan limits enforced at the API layer via workspaceId-bound quota checks
  • Stripe Webhook Processing: Platform receives and processes subscription.upgraded, subscription.downgraded, subscription.canceled, and payment.failed events from Stripe
  • Plan Upgrades/Downgrades: Available from Settings → Billing; plan changes take effect immediately and quota entitlements update accordingly
  • Payment Method Management: Update cards or other payment methods from Settings → Billing without contacting support
  • Invoice Access: Download invoices for any billing period from Settings → Billing
  • PCI Compliance via Tokenization: Stripe's tokenization handles card storage; no card data is processed or stored on Instafill.ai infrastructure
  • Failed Payment Handling: Stripe retries failed charges and emits payment.failed webhooks so the platform can gate access appropriately

How It Works

  1. Plan Selection: A workspace owner selects a subscription plan (Starter, Professional, or Enterprise) from Settings → Billing or the pricing page.

  2. Checkout via Stripe: The platform initiates a Stripe Checkout session. The user completes payment on the Stripe-hosted page. Card data goes directly to Stripe — it never passes through Instafill.ai servers.

  3. Webhook Activation: Stripe fires a webhook event upon successful payment. The platform receives this event, updates the workspace's subscription status, and applies the plan's quota limits against the workspaceId.

  4. Plan Limit Enforcement: Quota checks run at the API layer on every relevant request. Requests that exceed the active plan's limits return HTTP 429. Quota entitlements are re-evaluated when Stripe delivers subscription change events.

  5. Ongoing Billing Events:

    • subscription.upgraded / subscription.downgraded: Quota limits are updated for the workspace immediately
    • subscription.canceled: Workspace is moved to the Free tier limits
    • payment.failed: Platform receives the event and can restrict access based on configured grace period logic
  6. Self-Service Management: From Settings → Billing, workspace owners can update the payment method on file, download invoices, and initiate plan upgrades or downgrades.

Use Cases

A startup on the Starter plan upgrades to Professional mid-month as form volume grows — the webhook triggers immediately and the workspace's quota limits increase without any manual intervention. An agency managing multiple client workspaces keeps each client's billing separate by maintaining a distinct subscription per workspaceId, so invoices and quota tracking never mix across clients. An enterprise workspace moves to the Enterprise tier and configures invoice billing through the sales process, with plan limits enforced by the same API-layer quota checks used on all other tiers.

Benefits

  • No Card Data on Platform Servers: Stripe's tokenization means Instafill.ai never sees, stores, or processes card numbers — PCI compliance is delegated entirely to Stripe
  • Immediate Plan Changes: Upgrading or downgrading from Settings → Billing takes effect instantly; quota limits update when the Stripe webhook is received
  • Workspace-Level Isolation: Each workspace has its own subscription and billing state scoped to its workspaceId, keeping multi-workspace organizations' billing clean and independent
  • Event-Driven Quota Updates: Stripe webhooks drive quota enforcement — no polling or manual sync required when plans change or payments succeed or fail
  • Invoice Access Without Support: Download invoices for any period directly from Settings → Billing

Security & Privacy

Card data never touches Instafill.ai servers. PCI compliance is delegated entirely to Stripe — Stripe's tokenization handles card storage and Stripe's infrastructure holds all payment credentials.

All billing data is scoped to workspaceId and protected via the shared JWT authentication middleware running in both the .NET and Python service layers. Only authenticated requests carrying a valid JWT for a given workspace can read or modify that workspace's billing state. Stripe webhook payloads are verified using Stripe's webhook signature before being processed.

Common Questions

Is my credit card information safe?

Card data never passes through Instafill.ai servers. When you enter payment information in Stripe Checkout, it goes directly to Stripe's infrastructure. Instafill.ai stores only the Stripe token that references your payment method — not the card number, expiry, or CVV.

PCI compliance is delegated entirely to Stripe. Stripe's tokenization handles card storage, and Stripe is PCI DSS Level 1 certified. Instafill.ai does not participate in card data handling and therefore falls outside PCI scope for card storage.

What happens if my payment fails?

When a charge fails, Stripe retries the payment according to its automatic retry schedule and emits a payment.failed webhook to Instafill.ai. The platform receives that event and can restrict workspace access based on configured grace period logic.

To resolve a failed payment, go to Settings → Billing and update the payment method on file. Once Stripe successfully charges the updated method, it fires a success event and the workspace subscription is restored to full access.

Can I change plans without losing access?

Yes. Plan upgrades and downgrades are available from Settings → Billing. When you change plans, Instafill.ai receives a subscription.upgraded or subscription.downgraded webhook from Stripe. Quota limits for the workspace update immediately upon receiving that event — there is no access interruption during the transition.

How does usage-based billing work?

Plan limits are enforced at the API layer via workspaceId-bound quota checks. Each plan tier includes defined limits for sources, storage, forms, and sessions (see plan details on the pricing page). Requests that exceed those limits return HTTP 429.

If you need higher limits, upgrade from Settings → Billing. The Stripe webhook triggers immediately and the new limits apply to your workspace without delay.

Can I pay by invoice instead of credit card?

Invoice billing is available for Enterprise plans. Contact the sales team to configure an Enterprise subscription. For all other tiers, billing is handled through Stripe Checkout using a card or other supported payment method.

Where can I find my invoices?

Invoices are available in Settings → Billing. Each billing period generates an invoice that can be downloaded from that page. Invoice access is scoped to the workspace and requires an authenticated session for the workspaceId associated with the subscription.

Do you charge my card immediately when I sign up?

Yes, for paid plans. When you complete Stripe Checkout, the first charge is processed immediately. The subscription activates when Instafill.ai receives the payment confirmation webhook from Stripe and updates the workspace's quota entitlements.

The Free plan does not require a payment method.

Related Features

Ready to get started?

Start automating your form filling process today with Instafill.ai

Try Instafill.ai View Pricing