Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

4466 articles

Install the Stripe Terraform provider


Install the Stripe Terraform provider

Set up the provider for local development.

The Stripe Terraform Provider enables you to manage Stripe resources using infrastructure as code. Configure products, prices, billing meters, and complex pricing plans with declarative Terraform syntax. Your Stripe infrastructure becomes version controlled, reproducible, and auditable. For API information, see the Stripe API reference.

Sample Workflow

Follow this workflow to create a product with a recurring price and webhook endpoint to receive events.

Create a new Terraform file, main.tf:

Set your API Key:

Command Line

export STRIPE_API_KEY="sk_test_BQokikJOvBiI2HlWgH4olfQ2"

Preview and apply changes:

Command Line

terraform plan
terraform apply
terraform output

Supported resources

This section provides a quick reference of available resources. For detailed documentation and all configurable parameters, see Supported resources.

Product catalog

ResourceDescription
stripe_productProduct definitions
stripe_pricePricing configurations
stripe_couponDiscount coupons
stripe_shipping_rateShipping rate configurations
stripe_tax_rateTax rate definitions
stripe_entitlements_featureFeature flags for entitlements

Core resources

ResourceDescription
stripe_customerCustomer records
stripe_webhook_endpointWebhook endpoint configurations
stripe_billing_meterUsage tracking meters
stripe_v2_core_event_destinationEvent destination configurations

Advanced usage-based billing Private preview

These resources are part of the Billing v2 API and require access to the private preview.

ResourceDescription
stripe_v2_billing_pricing_planPricing plan containers
stripe_v2_billing_pricing_plan_componentPlan components
stripe_v2_billing_licensed_itemLicensed access items
stripe_v2_billing_license_feeSubscription fees
stripe_v2_billing_metered_itemUsage-based billable items
stripe_v2_billing_rate_cardPricing containers
stripe_v2_billing_rate_card_rateIndividual rates
stripe_v2_billing_service_actionCredits and adjustments

Data sources

Data SourceDescription
stripe_billing_meterLook up existing billing meters

Manage multiple environments with workspaces

Terraform workspaces let you manage separate Stripe environments (sandbox versus livemode) with isolated state files. This prevents accidental changes to production resources when working in a sandbox.

Set up workspaces

Create workspaces for a sandbox and live mode:

Command Line

# Create workspaces
terraform workspace new sandbox
terraform workspace new livemode

# List available workspaces
terraform workspace list

Switch between environments

Each workspace maintains its own state file. Switch workspaces and set the corresponding API key:

Command Line

# Work in sandbox
terraform workspace select sandbox
export STRIPE_API_KEY=sk_test_BQokikJOvBiI2HlWgH4olfQ2
terraform plan
terraform apply

# Work in livemode (production)
terraform workspace select livemode
export STRIPE_API_KEY="sk_live_..."
terraform plan
terraform apply

Handle rate limits

Terraform runs operations in parallel by default, which can cause rate limiting errors when managing many Stripe resources. The Stripe API allows up to 100 read operations per second in live mode and 25 in sandbox mode, with individual API endpoints having their own limits.

To prevent hitting rate limits, use the -parallelism flag to reduce the number of concurrent operations:

Command Line

terraform plan -parallelism=2
terraform apply -parallelism=2

For large infrastructure deployments, we recommend setting parallelism to between 2 and 5 to stay within the rate limits. This is important in sandbox mode, where rate limits are lower.

Last verified 2026-09-24

Is this helpful?