1. Registry
  2. Packages
  3. Stripe Provider
  4. API Docs
  5. Plan
Viewing docs for Stripe 0.3.0
published on Friday, Aug 14, 2026 by Pulumi
Viewing docs for Stripe 0.3.0
published on Friday, Aug 14, 2026 by Pulumi

    You can now model subscriptions more flexibly using the Prices API. It replaces the Plans API and is backwards compatible to simplify your migration.

    Plans define the base price, currency, and billing cycle for recurring purchases of products. Products help you track inventory or provisioning, and plans help you track pricing. Different physical goods or levels of service should be represented by products, and pricing options should be represented by plans. This approach lets you change prices without having to change your provisioning scheme.

    For example, you might have a single “gold” product that has plans for $10/month, $100/year, €9/month, and €90/year.

    Related guides: Set up a subscription and more about products and prices.

    Create Plan Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Plan(name: string, args: PlanArgs, opts?: CustomResourceOptions);
    @overload
    def Plan(resource_name: str,
             args: PlanArgs,
             opts: Optional[ResourceOptions] = None)
    
    @overload
    def Plan(resource_name: str,
             opts: Optional[ResourceOptions] = None,
             currency: Optional[str] = None,
             interval: Optional[str] = None,
             meter: Optional[str] = None,
             nickname: Optional[str] = None,
             amount_decimal: Optional[float] = None,
             amount: Optional[float] = None,
             interval_count: Optional[float] = None,
             metadata: Optional[Mapping[str, str]] = None,
             active: Optional[bool] = None,
             billing_scheme: Optional[str] = None,
             product: Optional[str] = None,
             tiers: Optional[Sequence[PlanTierArgs]] = None,
             tiers_mode: Optional[str] = None,
             transform_usage: Optional[PlanTransformUsageArgs] = None,
             trial_period_days: Optional[float] = None,
             usage_type: Optional[str] = None)
    func NewPlan(ctx *Context, name string, args PlanArgs, opts ...ResourceOption) (*Plan, error)
    public Plan(string name, PlanArgs args, CustomResourceOptions? opts = null)
    public Plan(String name, PlanArgs args)
    public Plan(String name, PlanArgs args, CustomResourceOptions options)
    
    type: stripe:Plan
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "stripe_plan" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args PlanArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args PlanArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args PlanArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args PlanArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args PlanArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var planResource = new Stripe.Plan("planResource", new()
    {
        Currency = "string",
        Interval = "string",
        Meter = "string",
        Nickname = "string",
        AmountDecimal = 0.0,
        Amount = 0.0,
        IntervalCount = 0.0,
        Metadata = 
        {
            { "string", "string" },
        },
        Active = false,
        BillingScheme = "string",
        Product = "string",
        Tiers = new[]
        {
            new Stripe.Inputs.PlanTierArgs
            {
                UpTo = 0.0,
                FlatAmount = 0.0,
                FlatAmountDecimal = 0.0,
                UnitAmount = 0.0,
                UnitAmountDecimal = 0.0,
            },
        },
        TiersMode = "string",
        TransformUsage = new Stripe.Inputs.PlanTransformUsageArgs
        {
            DivideBy = 0.0,
            Round = "string",
        },
        TrialPeriodDays = 0.0,
        UsageType = "string",
    });
    
    example, err := stripe.NewPlan(ctx, "planResource", &stripe.PlanArgs{
    	Currency:      pulumi.String("string"),
    	Interval:      pulumi.String("string"),
    	Meter:         pulumi.String("string"),
    	Nickname:      pulumi.String("string"),
    	AmountDecimal: pulumi.Float64(0),
    	Amount:        pulumi.Float64(0),
    	IntervalCount: pulumi.Float64(0),
    	Metadata: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	Active:        pulumi.Bool(false),
    	BillingScheme: pulumi.String("string"),
    	Product:       pulumi.String("string"),
    	Tiers: stripe.PlanTierArray{
    		&stripe.PlanTierArgs{
    			UpTo:              pulumi.Float64(0),
    			FlatAmount:        pulumi.Float64(0),
    			FlatAmountDecimal: pulumi.Float64(0),
    			UnitAmount:        pulumi.Float64(0),
    			UnitAmountDecimal: pulumi.Float64(0),
    		},
    	},
    	TiersMode: pulumi.String("string"),
    	TransformUsage: &stripe.PlanTransformUsageArgs{
    		DivideBy: pulumi.Float64(0),
    		Round:    pulumi.String("string"),
    	},
    	TrialPeriodDays: pulumi.Float64(0),
    	UsageType:       pulumi.String("string"),
    })
    
    resource "stripe_plan" "planResource" {
      lifecycle {
        create_before_destroy = true
      }
      currency       = "string"
      interval       = "string"
      meter          = "string"
      nickname       = "string"
      amount_decimal = 0
      amount         = 0
      interval_count = 0
      metadata = {
        "string" = "string"
      }
      active         = false
      billing_scheme = "string"
      product        = "string"
      tiers {
        up_to               = 0
        flat_amount         = 0
        flat_amount_decimal = 0
        unit_amount         = 0
        unit_amount_decimal = 0
      }
      tiers_mode = "string"
      transform_usage = {
        divide_by = 0
        round     = "string"
      }
      trial_period_days = 0
      usage_type        = "string"
    }
    
    var planResource = new Plan("planResource", PlanArgs.builder()
        .currency("string")
        .interval("string")
        .meter("string")
        .nickname("string")
        .amountDecimal(0.0)
        .amount(0.0)
        .intervalCount(0.0)
        .metadata(Map.of("string", "string"))
        .active(false)
        .billingScheme("string")
        .product("string")
        .tiers(PlanTierArgs.builder()
            .upTo(0.0)
            .flatAmount(0.0)
            .flatAmountDecimal(0.0)
            .unitAmount(0.0)
            .unitAmountDecimal(0.0)
            .build())
        .tiersMode("string")
        .transformUsage(PlanTransformUsageArgs.builder()
            .divideBy(0.0)
            .round("string")
            .build())
        .trialPeriodDays(0.0)
        .usageType("string")
        .build());
    
    plan_resource = stripe.Plan("planResource",
        currency="string",
        interval="string",
        meter="string",
        nickname="string",
        amount_decimal=float(0),
        amount=float(0),
        interval_count=float(0),
        metadata={
            "string": "string",
        },
        active=False,
        billing_scheme="string",
        product="string",
        tiers=[{
            "up_to": float(0),
            "flat_amount": float(0),
            "flat_amount_decimal": float(0),
            "unit_amount": float(0),
            "unit_amount_decimal": float(0),
        }],
        tiers_mode="string",
        transform_usage={
            "divide_by": float(0),
            "round": "string",
        },
        trial_period_days=float(0),
        usage_type="string")
    
    const planResource = new stripe.Plan("planResource", {
        currency: "string",
        interval: "string",
        meter: "string",
        nickname: "string",
        amountDecimal: 0,
        amount: 0,
        intervalCount: 0,
        metadata: {
            string: "string",
        },
        active: false,
        billingScheme: "string",
        product: "string",
        tiers: [{
            upTo: 0,
            flatAmount: 0,
            flatAmountDecimal: 0,
            unitAmount: 0,
            unitAmountDecimal: 0,
        }],
        tiersMode: "string",
        transformUsage: {
            divideBy: 0,
            round: "string",
        },
        trialPeriodDays: 0,
        usageType: "string",
    });
    
    type: stripe:Plan
    properties:
        active: false
        amount: 0
        amountDecimal: 0
        billingScheme: string
        currency: string
        interval: string
        intervalCount: 0
        metadata:
            string: string
        meter: string
        nickname: string
        product: string
        tiers:
            - flatAmount: 0
              flatAmountDecimal: 0
              unitAmount: 0
              unitAmountDecimal: 0
              upTo: 0
        tiersMode: string
        transformUsage:
            divideBy: 0
            round: string
        trialPeriodDays: 0
        usageType: string
    

    Plan Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The Plan resource accepts the following input properties:

    Currency string
    Three-letter ISO currency code, in lowercase. Must be a supported currency.
    Interval string
    The frequency at which a subscription is billed. One of day, week, month or year.
    Active bool
    Whether the plan can be used for new purchases.
    Amount double
    The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.
    AmountDecimal double
    The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.
    BillingScheme string
    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.
    IntervalCount double
    The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.
    Metadata Dictionary<string, string>
    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    Meter string
    The meter tracking the usage of a metered price
    Nickname string
    A brief description of the plan, hidden from customers.
    Product string
    The product whose pricing this plan determines.
    Tiers List<PlanTier>
    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.
    TiersMode string
    Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.
    TransformUsage PlanTransformUsage
    Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.
    TrialPeriodDays double
    Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.
    UsageType string
    Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.
    Currency string
    Three-letter ISO currency code, in lowercase. Must be a supported currency.
    Interval string
    The frequency at which a subscription is billed. One of day, week, month or year.
    Active bool
    Whether the plan can be used for new purchases.
    Amount float64
    The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.
    AmountDecimal float64
    The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.
    BillingScheme string
    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.
    IntervalCount float64
    The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.
    Metadata map[string]string
    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    Meter string
    The meter tracking the usage of a metered price
    Nickname string
    A brief description of the plan, hidden from customers.
    Product string
    The product whose pricing this plan determines.
    Tiers []PlanTierArgs
    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.
    TiersMode string
    Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.
    TransformUsage PlanTransformUsageArgs
    Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.
    TrialPeriodDays float64
    Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.
    UsageType string
    Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.
    currency string
    Three-letter ISO currency code, in lowercase. Must be a supported currency.
    interval string
    The frequency at which a subscription is billed. One of day, week, month or year.
    active bool
    Whether the plan can be used for new purchases.
    amount number
    The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.
    amount_decimal number
    The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.
    billing_scheme string
    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.
    interval_count number
    The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.
    metadata map(string)
    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    meter string
    The meter tracking the usage of a metered price
    nickname string
    A brief description of the plan, hidden from customers.
    product string
    The product whose pricing this plan determines.
    tiers list(object)
    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.
    tiers_mode string
    Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.
    transform_usage object
    Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.
    trial_period_days number
    Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.
    usage_type string
    Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.
    currency String
    Three-letter ISO currency code, in lowercase. Must be a supported currency.
    interval String
    The frequency at which a subscription is billed. One of day, week, month or year.
    active Boolean
    Whether the plan can be used for new purchases.
    amount Double
    The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.
    amountDecimal Double
    The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.
    billingScheme String
    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.
    intervalCount Double
    The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.
    metadata Map<String,String>
    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    meter String
    The meter tracking the usage of a metered price
    nickname String
    A brief description of the plan, hidden from customers.
    product String
    The product whose pricing this plan determines.
    tiers List<PlanTier>
    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.
    tiersMode String
    Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.
    transformUsage PlanTransformUsage
    Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.
    trialPeriodDays Double
    Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.
    usageType String
    Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.
    currency string
    Three-letter ISO currency code, in lowercase. Must be a supported currency.
    interval string
    The frequency at which a subscription is billed. One of day, week, month or year.
    active boolean
    Whether the plan can be used for new purchases.
    amount number
    The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.
    amountDecimal number
    The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.
    billingScheme string
    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.
    intervalCount number
    The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.
    metadata {[key: string]: string}
    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    meter string
    The meter tracking the usage of a metered price
    nickname string
    A brief description of the plan, hidden from customers.
    product string
    The product whose pricing this plan determines.
    tiers PlanTier[]
    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.
    tiersMode string
    Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.
    transformUsage PlanTransformUsage
    Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.
    trialPeriodDays number
    Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.
    usageType string
    Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.
    currency str
    Three-letter ISO currency code, in lowercase. Must be a supported currency.
    interval str
    The frequency at which a subscription is billed. One of day, week, month or year.
    active bool
    Whether the plan can be used for new purchases.
    amount float
    The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.
    amount_decimal float
    The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.
    billing_scheme str
    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.
    interval_count float
    The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.
    metadata Mapping[str, str]
    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    meter str
    The meter tracking the usage of a metered price
    nickname str
    A brief description of the plan, hidden from customers.
    product str
    The product whose pricing this plan determines.
    tiers Sequence[PlanTierArgs]
    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.
    tiers_mode str
    Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.
    transform_usage PlanTransformUsageArgs
    Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.
    trial_period_days float
    Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.
    usage_type str
    Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.
    currency String
    Three-letter ISO currency code, in lowercase. Must be a supported currency.
    interval String
    The frequency at which a subscription is billed. One of day, week, month or year.
    active Boolean
    Whether the plan can be used for new purchases.
    amount Number
    The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.
    amountDecimal Number
    The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.
    billingScheme String
    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.
    intervalCount Number
    The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.
    metadata Map<String>
    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    meter String
    The meter tracking the usage of a metered price
    nickname String
    A brief description of the plan, hidden from customers.
    product String
    The product whose pricing this plan determines.
    tiers List<Property Map>
    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.
    tiersMode String
    Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.
    transformUsage Property Map
    Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.
    trialPeriodDays Number
    Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.
    usageType String
    Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Plan resource produces the following output properties:

    Created double
    Time at which the object was created. Measured in seconds since the Unix epoch.
    Id string
    The provider-assigned unique ID for this managed resource.
    Livemode bool
    If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
    Object string
    String representing the object's type. Objects of the same type share the same value.
    Created float64
    Time at which the object was created. Measured in seconds since the Unix epoch.
    Id string
    The provider-assigned unique ID for this managed resource.
    Livemode bool
    If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
    Object string
    String representing the object's type. Objects of the same type share the same value.
    created number
    Time at which the object was created. Measured in seconds since the Unix epoch.
    id string
    The provider-assigned unique ID for this managed resource.
    livemode bool
    If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
    object string
    String representing the object's type. Objects of the same type share the same value.
    created Double
    Time at which the object was created. Measured in seconds since the Unix epoch.
    id String
    The provider-assigned unique ID for this managed resource.
    livemode Boolean
    If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
    object String
    String representing the object's type. Objects of the same type share the same value.
    created number
    Time at which the object was created. Measured in seconds since the Unix epoch.
    id string
    The provider-assigned unique ID for this managed resource.
    livemode boolean
    If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
    object string
    String representing the object's type. Objects of the same type share the same value.
    created float
    Time at which the object was created. Measured in seconds since the Unix epoch.
    id str
    The provider-assigned unique ID for this managed resource.
    livemode bool
    If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
    object str
    String representing the object's type. Objects of the same type share the same value.
    created Number
    Time at which the object was created. Measured in seconds since the Unix epoch.
    id String
    The provider-assigned unique ID for this managed resource.
    livemode Boolean
    If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
    object String
    String representing the object's type. Objects of the same type share the same value.

    Look up Existing Plan Resource

    Get an existing Plan resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: PlanState, opts?: CustomResourceOptions): Plan
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            active: Optional[bool] = None,
            amount: Optional[float] = None,
            amount_decimal: Optional[float] = None,
            billing_scheme: Optional[str] = None,
            created: Optional[float] = None,
            currency: Optional[str] = None,
            interval: Optional[str] = None,
            interval_count: Optional[float] = None,
            livemode: Optional[bool] = None,
            metadata: Optional[Mapping[str, str]] = None,
            meter: Optional[str] = None,
            nickname: Optional[str] = None,
            object: Optional[str] = None,
            product: Optional[str] = None,
            tiers: Optional[Sequence[PlanTierArgs]] = None,
            tiers_mode: Optional[str] = None,
            transform_usage: Optional[PlanTransformUsageArgs] = None,
            trial_period_days: Optional[float] = None,
            usage_type: Optional[str] = None) -> Plan
    func GetPlan(ctx *Context, name string, id IDInput, state *PlanState, opts ...ResourceOption) (*Plan, error)
    public static Plan Get(string name, Input<string> id, PlanState? state, CustomResourceOptions? opts = null)
    public static Plan get(String name, Output<String> id, PlanState state, CustomResourceOptions options)
    resources:  _:    type: stripe:Plan    get:      id: ${id}
    import {
      to = stripe_plan.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Active bool
    Whether the plan can be used for new purchases.
    Amount double
    The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.
    AmountDecimal double
    The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.
    BillingScheme string
    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.
    Created double
    Time at which the object was created. Measured in seconds since the Unix epoch.
    Currency string
    Three-letter ISO currency code, in lowercase. Must be a supported currency.
    Interval string
    The frequency at which a subscription is billed. One of day, week, month or year.
    IntervalCount double
    The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.
    Livemode bool
    If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
    Metadata Dictionary<string, string>
    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    Meter string
    The meter tracking the usage of a metered price
    Nickname string
    A brief description of the plan, hidden from customers.
    Object string
    String representing the object's type. Objects of the same type share the same value.
    Product string
    The product whose pricing this plan determines.
    Tiers List<PlanTier>
    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.
    TiersMode string
    Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.
    TransformUsage PlanTransformUsage
    Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.
    TrialPeriodDays double
    Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.
    UsageType string
    Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.
    Active bool
    Whether the plan can be used for new purchases.
    Amount float64
    The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.
    AmountDecimal float64
    The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.
    BillingScheme string
    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.
    Created float64
    Time at which the object was created. Measured in seconds since the Unix epoch.
    Currency string
    Three-letter ISO currency code, in lowercase. Must be a supported currency.
    Interval string
    The frequency at which a subscription is billed. One of day, week, month or year.
    IntervalCount float64
    The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.
    Livemode bool
    If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
    Metadata map[string]string
    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    Meter string
    The meter tracking the usage of a metered price
    Nickname string
    A brief description of the plan, hidden from customers.
    Object string
    String representing the object's type. Objects of the same type share the same value.
    Product string
    The product whose pricing this plan determines.
    Tiers []PlanTierArgs
    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.
    TiersMode string
    Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.
    TransformUsage PlanTransformUsageArgs
    Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.
    TrialPeriodDays float64
    Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.
    UsageType string
    Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.
    active bool
    Whether the plan can be used for new purchases.
    amount number
    The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.
    amount_decimal number
    The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.
    billing_scheme string
    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.
    created number
    Time at which the object was created. Measured in seconds since the Unix epoch.
    currency string
    Three-letter ISO currency code, in lowercase. Must be a supported currency.
    interval string
    The frequency at which a subscription is billed. One of day, week, month or year.
    interval_count number
    The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.
    livemode bool
    If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
    metadata map(string)
    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    meter string
    The meter tracking the usage of a metered price
    nickname string
    A brief description of the plan, hidden from customers.
    object string
    String representing the object's type. Objects of the same type share the same value.
    product string
    The product whose pricing this plan determines.
    tiers list(object)
    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.
    tiers_mode string
    Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.
    transform_usage object
    Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.
    trial_period_days number
    Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.
    usage_type string
    Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.
    active Boolean
    Whether the plan can be used for new purchases.
    amount Double
    The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.
    amountDecimal Double
    The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.
    billingScheme String
    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.
    created Double
    Time at which the object was created. Measured in seconds since the Unix epoch.
    currency String
    Three-letter ISO currency code, in lowercase. Must be a supported currency.
    interval String
    The frequency at which a subscription is billed. One of day, week, month or year.
    intervalCount Double
    The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.
    livemode Boolean
    If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
    metadata Map<String,String>
    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    meter String
    The meter tracking the usage of a metered price
    nickname String
    A brief description of the plan, hidden from customers.
    object String
    String representing the object's type. Objects of the same type share the same value.
    product String
    The product whose pricing this plan determines.
    tiers List<PlanTier>
    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.
    tiersMode String
    Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.
    transformUsage PlanTransformUsage
    Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.
    trialPeriodDays Double
    Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.
    usageType String
    Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.
    active boolean
    Whether the plan can be used for new purchases.
    amount number
    The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.
    amountDecimal number
    The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.
    billingScheme string
    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.
    created number
    Time at which the object was created. Measured in seconds since the Unix epoch.
    currency string
    Three-letter ISO currency code, in lowercase. Must be a supported currency.
    interval string
    The frequency at which a subscription is billed. One of day, week, month or year.
    intervalCount number
    The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.
    livemode boolean
    If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
    metadata {[key: string]: string}
    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    meter string
    The meter tracking the usage of a metered price
    nickname string
    A brief description of the plan, hidden from customers.
    object string
    String representing the object's type. Objects of the same type share the same value.
    product string
    The product whose pricing this plan determines.
    tiers PlanTier[]
    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.
    tiersMode string
    Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.
    transformUsage PlanTransformUsage
    Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.
    trialPeriodDays number
    Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.
    usageType string
    Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.
    active bool
    Whether the plan can be used for new purchases.
    amount float
    The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.
    amount_decimal float
    The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.
    billing_scheme str
    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.
    created float
    Time at which the object was created. Measured in seconds since the Unix epoch.
    currency str
    Three-letter ISO currency code, in lowercase. Must be a supported currency.
    interval str
    The frequency at which a subscription is billed. One of day, week, month or year.
    interval_count float
    The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.
    livemode bool
    If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
    metadata Mapping[str, str]
    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    meter str
    The meter tracking the usage of a metered price
    nickname str
    A brief description of the plan, hidden from customers.
    object str
    String representing the object's type. Objects of the same type share the same value.
    product str
    The product whose pricing this plan determines.
    tiers Sequence[PlanTierArgs]
    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.
    tiers_mode str
    Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.
    transform_usage PlanTransformUsageArgs
    Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.
    trial_period_days float
    Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.
    usage_type str
    Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.
    active Boolean
    Whether the plan can be used for new purchases.
    amount Number
    The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.
    amountDecimal Number
    The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.
    billingScheme String
    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.
    created Number
    Time at which the object was created. Measured in seconds since the Unix epoch.
    currency String
    Three-letter ISO currency code, in lowercase. Must be a supported currency.
    interval String
    The frequency at which a subscription is billed. One of day, week, month or year.
    intervalCount Number
    The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.
    livemode Boolean
    If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.
    metadata Map<String>
    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    meter String
    The meter tracking the usage of a metered price
    nickname String
    A brief description of the plan, hidden from customers.
    object String
    String representing the object's type. Objects of the same type share the same value.
    product String
    The product whose pricing this plan determines.
    tiers List<Property Map>
    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.
    tiersMode String
    Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.
    transformUsage Property Map
    Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.
    trialPeriodDays Number
    Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.
    usageType String
    Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.

    Supporting Types

    PlanTier, PlanTierArgs

    UpTo double
    Up to and including to this quantity will be contained in the tier.
    FlatAmount double
    Price for the entire tier.
    FlatAmountDecimal double
    Same as flat_amount, but contains a decimal value with at most 12 decimal places.
    UnitAmount double
    Per unit price for units relevant to the tier.
    UnitAmountDecimal double
    Same as unit_amount, but contains a decimal value with at most 12 decimal places.
    UpTo float64
    Up to and including to this quantity will be contained in the tier.
    FlatAmount float64
    Price for the entire tier.
    FlatAmountDecimal float64
    Same as flat_amount, but contains a decimal value with at most 12 decimal places.
    UnitAmount float64
    Per unit price for units relevant to the tier.
    UnitAmountDecimal float64
    Same as unit_amount, but contains a decimal value with at most 12 decimal places.
    up_to number
    Up to and including to this quantity will be contained in the tier.
    flat_amount number
    Price for the entire tier.
    flat_amount_decimal number
    Same as flat_amount, but contains a decimal value with at most 12 decimal places.
    unit_amount number
    Per unit price for units relevant to the tier.
    unit_amount_decimal number
    Same as unit_amount, but contains a decimal value with at most 12 decimal places.
    upTo Double
    Up to and including to this quantity will be contained in the tier.
    flatAmount Double
    Price for the entire tier.
    flatAmountDecimal Double
    Same as flat_amount, but contains a decimal value with at most 12 decimal places.
    unitAmount Double
    Per unit price for units relevant to the tier.
    unitAmountDecimal Double
    Same as unit_amount, but contains a decimal value with at most 12 decimal places.
    upTo number
    Up to and including to this quantity will be contained in the tier.
    flatAmount number
    Price for the entire tier.
    flatAmountDecimal number
    Same as flat_amount, but contains a decimal value with at most 12 decimal places.
    unitAmount number
    Per unit price for units relevant to the tier.
    unitAmountDecimal number
    Same as unit_amount, but contains a decimal value with at most 12 decimal places.
    up_to float
    Up to and including to this quantity will be contained in the tier.
    flat_amount float
    Price for the entire tier.
    flat_amount_decimal float
    Same as flat_amount, but contains a decimal value with at most 12 decimal places.
    unit_amount float
    Per unit price for units relevant to the tier.
    unit_amount_decimal float
    Same as unit_amount, but contains a decimal value with at most 12 decimal places.
    upTo Number
    Up to and including to this quantity will be contained in the tier.
    flatAmount Number
    Price for the entire tier.
    flatAmountDecimal Number
    Same as flat_amount, but contains a decimal value with at most 12 decimal places.
    unitAmount Number
    Per unit price for units relevant to the tier.
    unitAmountDecimal Number
    Same as unit_amount, but contains a decimal value with at most 12 decimal places.

    PlanTransformUsage, PlanTransformUsageArgs

    DivideBy double
    Divide usage by this number.
    Round string
    After division, either round the result up or down.
    DivideBy float64
    Divide usage by this number.
    Round string
    After division, either round the result up or down.
    divide_by number
    Divide usage by this number.
    round string
    After division, either round the result up or down.
    divideBy Double
    Divide usage by this number.
    round String
    After division, either round the result up or down.
    divideBy number
    Divide usage by this number.
    round string
    After division, either round the result up or down.
    divide_by float
    Divide usage by this number.
    round str
    After division, either round the result up or down.
    divideBy Number
    Divide usage by this number.
    round String
    After division, either round the result up or down.

    Package Details

    Repository
    stripe stripe/terraform-provider-stripe
    License
    Notes
    This Pulumi package is based on the stripe Terraform Provider.
    Viewing docs for Stripe 0.3.0
    published on Friday, Aug 14, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial