All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.stripe.param.SubscriptionItemUpdateParams Maven / Gradle / Ivy

There is a newer version: 28.2.0
Show newest version
// Generated by delombok at Mon May 18 17:31:34 PDT 2020
package com.stripe.param;

import com.google.gson.annotations.SerializedName;
import com.stripe.net.ApiRequestParams;
import com.stripe.param.common.EmptyParam;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class SubscriptionItemUpdateParams extends ApiRequestParams {
  /**
   * Define thresholds at which an invoice will be sent, and the subscription advanced to a new
   * billing period. When updating, pass an empty string to remove previously-defined thresholds.
   */
  @SerializedName("billing_thresholds")
  Object billingThresholds;
  /**
   * Specifies which fields in the response should be expanded.
   */
  @SerializedName("expand")
  List expand;
  /**
   * Map of extra parameters for custom features not available in this client library. The content
   * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
   * key/value pair is serialized as if the key is a root-level field (serialized) name in this
   * param object. Effectively, this map is flattened to its parent instance.
   */
  @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
  Map extraParams;
  /**
   * 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. Individual keys can be unset by
   * posting an empty value to them. All keys can be unset by posting an empty value to {@code
   * metadata}.
   */
  @SerializedName("metadata")
  Object metadata;
  /**
   * Indicates if a customer is on or off-session while an invoice payment is attempted.
   */
  @SerializedName("off_session")
  Boolean offSession;
  /**
   * Use {@code allow_incomplete} to transition the subscription to {@code status=past_due} if a
   * payment is required but cannot be paid. This allows you to manage scenarios where additional
   * user actions are needed to pay a subscription's invoice. For example, SCA regulation may
   * require 3DS authentication to complete payment. See the SCA Migration
   * Guide for Billing to learn more. This is the default behavior.
   *
   * 

Use {@code pending_if_incomplete} to update the subscription using pending updates. When * you use {@code pending_if_incomplete} you can only pass the parameters supported * by pending updates. * *

Use {@code error_if_incomplete} if you want Stripe to return an HTTP 402 status code if a * subscription's first invoice cannot be paid. For example, if a payment method requires 3DS * authentication due to SCA regulation and further user action is needed, this parameter does not * create a subscription and returns an error instead. This was the default behavior for API * versions prior to 2019-03-14. See the changelog to learn more. */ @SerializedName("payment_behavior") PaymentBehavior paymentBehavior; /** * The identifier of the new plan for this subscription item. */ @SerializedName("plan") Object plan; /** * The ID of the price object. */ @SerializedName("price") Object price; /** * Data used to generate a new price object inline. */ @SerializedName("price_data") PriceData priceData; /** * This field has been renamed to {@code proration_behavior}. {@code prorate=true} can be replaced * with {@code proration_behavior=create_prorations} and {@code prorate=false} can be replaced * with {@code proration_behavior=none}. */ @SerializedName("prorate") Boolean prorate; /** * Determines how to handle prorations when the * billing cycle changes (e.g., when switching plans, resetting {@code billing_cycle_anchor=now}, * or starting a trial), or if an item's {@code quantity} changes. Valid values are {@code * create_prorations}, {@code none}, or {@code always_invoice}. * *

Passing {@code create_prorations} will cause proration invoice items to be created when * applicable. These proration items will only be invoiced immediately under certain * conditions. In order to always invoice immediately for prorations, pass {@code * always_invoice}. * *

Prorations can be disabled by passing {@code none}. */ @SerializedName("proration_behavior") ProrationBehavior prorationBehavior; /** * If set, the proration will be calculated as though the subscription was updated at the given * time. This can be used to apply the same proration that was previewed with the upcoming invoice endpoint. */ @SerializedName("proration_date") Long prorationDate; /** * The quantity you'd like to apply to the subscription item you're creating. */ @SerializedName("quantity") Long quantity; /** * A list of Tax Rate ids. These Tax Rates * will override the {@code * default_tax_rates} on the Subscription. When updating, pass an empty string to remove * previously-defined tax rates. */ @SerializedName("tax_rates") Object taxRates; private SubscriptionItemUpdateParams(Object billingThresholds, List expand, Map extraParams, Object metadata, Boolean offSession, PaymentBehavior paymentBehavior, Object plan, Object price, PriceData priceData, Boolean prorate, ProrationBehavior prorationBehavior, Long prorationDate, Long quantity, Object taxRates) { this.billingThresholds = billingThresholds; this.expand = expand; this.extraParams = extraParams; this.metadata = metadata; this.offSession = offSession; this.paymentBehavior = paymentBehavior; this.plan = plan; this.price = price; this.priceData = priceData; this.prorate = prorate; this.prorationBehavior = prorationBehavior; this.prorationDate = prorationDate; this.quantity = quantity; this.taxRates = taxRates; } public static Builder builder() { return new Builder(); } public static class Builder { private Object billingThresholds; private List expand; private Map extraParams; private Object metadata; private Boolean offSession; private PaymentBehavior paymentBehavior; private Object plan; private Object price; private PriceData priceData; private Boolean prorate; private ProrationBehavior prorationBehavior; private Long prorationDate; private Long quantity; private Object taxRates; /** * Finalize and obtain parameter instance from this builder. */ public SubscriptionItemUpdateParams build() { return new SubscriptionItemUpdateParams(this.billingThresholds, this.expand, this.extraParams, this.metadata, this.offSession, this.paymentBehavior, this.plan, this.price, this.priceData, this.prorate, this.prorationBehavior, this.prorationDate, this.quantity, this.taxRates); } /** * Define thresholds at which an invoice will be sent, and the subscription advanced to a new * billing period. When updating, pass an empty string to remove previously-defined thresholds. */ public Builder setBillingThresholds(BillingThresholds billingThresholds) { this.billingThresholds = billingThresholds; return this; } /** * Define thresholds at which an invoice will be sent, and the subscription advanced to a new * billing period. When updating, pass an empty string to remove previously-defined thresholds. */ public Builder setBillingThresholds(EmptyParam billingThresholds) { this.billingThresholds = billingThresholds; return this; } /** * Add an element to `expand` list. A list is initialized for the first `add/addAll` call, and * subsequent calls adds additional elements to the original list. See {@link * SubscriptionItemUpdateParams#expand} for the field documentation. */ public Builder addExpand(String element) { if (this.expand == null) { this.expand = new ArrayList<>(); } this.expand.add(element); return this; } /** * Add all elements to `expand` list. A list is initialized for the first `add/addAll` call, and * subsequent calls adds additional elements to the original list. See {@link * SubscriptionItemUpdateParams#expand} for the field documentation. */ public Builder addAllExpand(List elements) { if (this.expand == null) { this.expand = new ArrayList<>(); } this.expand.addAll(elements); return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll` * call, and subsequent calls add additional key/value pairs to the original map. See {@link * SubscriptionItemUpdateParams#extraParams} for the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. * See {@link SubscriptionItemUpdateParams#extraParams} for the field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll` call, * and subsequent calls add additional key/value pairs to the original map. See {@link * SubscriptionItemUpdateParams#metadata} for the field documentation. */ @SuppressWarnings("unchecked") public Builder putMetadata(String key, String value) { if (this.metadata == null || this.metadata instanceof EmptyParam) { this.metadata = new HashMap(); } ((Map) this.metadata).put(key, value); return this; } /** * Add all map key/value pairs to `metadata` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. * See {@link SubscriptionItemUpdateParams#metadata} for the field documentation. */ @SuppressWarnings("unchecked") public Builder putAllMetadata(Map map) { if (this.metadata == null || this.metadata instanceof EmptyParam) { this.metadata = new HashMap(); } ((Map) this.metadata).putAll(map); return this; } /** * 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. Individual keys can be unset * by posting an empty value to them. All keys can be unset by posting an empty value to {@code * metadata}. */ public Builder setMetadata(EmptyParam metadata) { this.metadata = metadata; return this; } /** * 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. Individual keys can be unset * by posting an empty value to them. All keys can be unset by posting an empty value to {@code * metadata}. */ public Builder setMetadata(Map metadata) { this.metadata = metadata; return this; } /** * Indicates if a customer is on or off-session while an invoice payment is attempted. */ public Builder setOffSession(Boolean offSession) { this.offSession = offSession; return this; } /** * Use {@code allow_incomplete} to transition the subscription to {@code status=past_due} if a * payment is required but cannot be paid. This allows you to manage scenarios where additional * user actions are needed to pay a subscription's invoice. For example, SCA regulation may * require 3DS authentication to complete payment. See the SCA Migration * Guide for Billing to learn more. This is the default behavior. * *

Use {@code pending_if_incomplete} to update the subscription using pending updates. * When you use {@code pending_if_incomplete} you can only pass the parameters supported * by pending updates. * *

Use {@code error_if_incomplete} if you want Stripe to return an HTTP 402 status code if a * subscription's first invoice cannot be paid. For example, if a payment method requires 3DS * authentication due to SCA regulation and further user action is needed, this parameter does * not create a subscription and returns an error instead. This was the default behavior for API * versions prior to 2019-03-14. See the changelog to learn more. */ public Builder setPaymentBehavior(PaymentBehavior paymentBehavior) { this.paymentBehavior = paymentBehavior; return this; } /** * The identifier of the new plan for this subscription item. */ public Builder setPlan(String plan) { this.plan = plan; return this; } /** * The identifier of the new plan for this subscription item. */ public Builder setPlan(EmptyParam plan) { this.plan = plan; return this; } /** * The ID of the price object. */ public Builder setPrice(String price) { this.price = price; return this; } /** * The ID of the price object. */ public Builder setPrice(EmptyParam price) { this.price = price; return this; } /** * Data used to generate a new price object inline. */ public Builder setPriceData(PriceData priceData) { this.priceData = priceData; return this; } /** * This field has been renamed to {@code proration_behavior}. {@code prorate=true} can be * replaced with {@code proration_behavior=create_prorations} and {@code prorate=false} can be * replaced with {@code proration_behavior=none}. */ public Builder setProrate(Boolean prorate) { this.prorate = prorate; return this; } /** * Determines how to handle prorations when the * billing cycle changes (e.g., when switching plans, resetting {@code * billing_cycle_anchor=now}, or starting a trial), or if an item's {@code quantity} changes. * Valid values are {@code create_prorations}, {@code none}, or {@code always_invoice}. * *

Passing {@code create_prorations} will cause proration invoice items to be created when * applicable. These proration items will only be invoiced immediately under certain * conditions. In order to always invoice immediately for prorations, pass {@code * always_invoice}. * *

Prorations can be disabled by passing {@code none}. */ public Builder setProrationBehavior(ProrationBehavior prorationBehavior) { this.prorationBehavior = prorationBehavior; return this; } /** * If set, the proration will be calculated as though the subscription was updated at the given * time. This can be used to apply the same proration that was previewed with the upcoming invoice endpoint. */ public Builder setProrationDate(Long prorationDate) { this.prorationDate = prorationDate; return this; } /** * The quantity you'd like to apply to the subscription item you're creating. */ public Builder setQuantity(Long quantity) { this.quantity = quantity; return this; } /** * Add an element to `taxRates` list. A list is initialized for the first `add/addAll` call, and * subsequent calls adds additional elements to the original list. See {@link * SubscriptionItemUpdateParams#taxRates} for the field documentation. */ @SuppressWarnings("unchecked") public Builder addTaxRate(String element) { if (this.taxRates == null || this.taxRates instanceof EmptyParam) { this.taxRates = new ArrayList(); } ((List) this.taxRates).add(element); return this; } /** * Add all elements to `taxRates` list. A list is initialized for the first `add/addAll` call, * and subsequent calls adds additional elements to the original list. See {@link * SubscriptionItemUpdateParams#taxRates} for the field documentation. */ @SuppressWarnings("unchecked") public Builder addAllTaxRate(List elements) { if (this.taxRates == null || this.taxRates instanceof EmptyParam) { this.taxRates = new ArrayList(); } ((List) this.taxRates).addAll(elements); return this; } /** * A list of Tax Rate ids. These Tax Rates * will override the {@code * default_tax_rates} on the Subscription. When updating, pass an empty string to remove * previously-defined tax rates. */ public Builder setTaxRates(EmptyParam taxRates) { this.taxRates = taxRates; return this; } /** * A list of Tax Rate ids. These Tax Rates * will override the {@code * default_tax_rates} on the Subscription. When updating, pass an empty string to remove * previously-defined tax rates. */ public Builder setTaxRates(List taxRates) { this.taxRates = taxRates; return this; } } public static class BillingThresholds { /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * Usage threshold that triggers the subscription to advance to a new billing period. */ @SerializedName("usage_gte") Long usageGte; private BillingThresholds(Map extraParams, Long usageGte) { this.extraParams = extraParams; this.usageGte = usageGte; } public static Builder builder() { return new Builder(); } public static class Builder { private Map extraParams; private Long usageGte; /** Finalize and obtain parameter instance from this builder. */ public BillingThresholds build() { return new BillingThresholds(this.extraParams, this.usageGte); } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll` * call, and subsequent calls add additional key/value pairs to the original map. See {@link * SubscriptionItemUpdateParams.BillingThresholds#extraParams} for the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. * See {@link SubscriptionItemUpdateParams.BillingThresholds#extraParams} for the field * documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } public Builder setUsageGte(Long usageGte) { this.usageGte = usageGte; return this; } } /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } /** * Usage threshold that triggers the subscription to advance to a new billing period. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Long getUsageGte() { return this.usageGte; } } /** * Usage threshold that triggers the subscription to advance to a new billing period. */ public static class PriceData { /** * Three-letter ISO currency * code, in lowercase. Must be a supported * currency. */ @SerializedName("currency") Object currency; /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * The ID of the product that this price will belong to. */ @SerializedName("product") Object product; /** * The recurring components of a price such as {@code interval} and {@code usage_type}. */ @SerializedName("recurring") Recurring recurring; /** * A positive integer in %s (or 0 for a free price) representing how much to charge. */ @SerializedName("unit_amount") Long unitAmount; /** * Same as {@code unit_amount}, but accepts a decimal value with at most 12 decimal places. Only * one of {@code unit_amount} and {@code unit_amount_decimal} can be set. */ @SerializedName("unit_amount_decimal") Object unitAmountDecimal; private PriceData(Object currency, Map extraParams, Object product, Recurring recurring, Long unitAmount, Object unitAmountDecimal) { this.currency = currency; this.extraParams = extraParams; this.product = product; this.recurring = recurring; this.unitAmount = unitAmount; this.unitAmountDecimal = unitAmountDecimal; } public static Builder builder() { return new Builder(); } public static class Builder { private Object currency; private Map extraParams; private Object product; private Recurring recurring; private Long unitAmount; private Object unitAmountDecimal; /** * Finalize and obtain parameter instance from this builder. */ public PriceData build() { return new PriceData(this.currency, this.extraParams, this.product, this.recurring, this.unitAmount, this.unitAmountDecimal); } /** * Three-letter ISO currency * code, in lowercase. Must be a supported * currency. */ public Builder setCurrency(String currency) { this.currency = currency; return this; } /** * Three-letter ISO currency * code, in lowercase. Must be a supported * currency. */ public Builder setCurrency(EmptyParam currency) { this.currency = currency; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll` * call, and subsequent calls add additional key/value pairs to the original map. See {@link * SubscriptionItemUpdateParams.PriceData#extraParams} for the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. * See {@link SubscriptionItemUpdateParams.PriceData#extraParams} for the field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * The ID of the product that this price will belong to. */ public Builder setProduct(String product) { this.product = product; return this; } /** * The ID of the product that this price will belong to. */ public Builder setProduct(EmptyParam product) { this.product = product; return this; } /** * The recurring components of a price such as {@code interval} and {@code usage_type}. */ public Builder setRecurring(Recurring recurring) { this.recurring = recurring; return this; } /** * A positive integer in %s (or 0 for a free price) representing how much to charge. */ public Builder setUnitAmount(Long unitAmount) { this.unitAmount = unitAmount; return this; } /** * Same as {@code unit_amount}, but accepts a decimal value with at most 12 decimal places. * Only one of {@code unit_amount} and {@code unit_amount_decimal} can be set. */ public Builder setUnitAmountDecimal(BigDecimal unitAmountDecimal) { this.unitAmountDecimal = unitAmountDecimal; return this; } /** * Same as {@code unit_amount}, but accepts a decimal value with at most 12 decimal places. * Only one of {@code unit_amount} and {@code unit_amount_decimal} can be set. */ public Builder setUnitAmountDecimal(EmptyParam unitAmountDecimal) { this.unitAmountDecimal = unitAmountDecimal; return this; } } public static class Recurring { /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * Specifies billing frequency. Either {@code day}, {@code week}, {@code month} or {@code * year}. */ @SerializedName("interval") Interval interval; /** * The number of intervals between subscription billings. For example, {@code interval=month} * and {@code interval_count=3} bills every 3 months. Maximum of one year interval allowed (1 * year, 12 months, or 52 weeks). */ @SerializedName("interval_count") Long intervalCount; private Recurring(Map extraParams, Interval interval, Long intervalCount) { this.extraParams = extraParams; this.interval = interval; this.intervalCount = intervalCount; } public static Builder builder() { return new Builder(); } public static class Builder { private Map extraParams; private Interval interval; private Long intervalCount; /** Finalize and obtain parameter instance from this builder. */ public Recurring build() { return new Recurring(this.extraParams, this.interval, this.intervalCount); } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link SubscriptionItemUpdateParams.PriceData.Recurring#extraParams} for the * field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link SubscriptionItemUpdateParams.PriceData.Recurring#extraParams} for the * field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * Specifies billing frequency. Either {@code day}, {@code week}, {@code month} or {@code * year}. */ public Builder setInterval(Interval interval) { this.interval = interval; return this; } public Builder setIntervalCount(Long intervalCount) { this.intervalCount = intervalCount; return this; } } public enum Interval implements ApiRequestParams.EnumParam { @SerializedName("day") DAY("day"), @SerializedName("month") MONTH("month"), @SerializedName("week") WEEK("week"), @SerializedName("year") YEAR("year"); private final String value; Interval(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } @java.lang.SuppressWarnings("all") @lombok.Generated public Interval getInterval() { return this.interval; } @java.lang.SuppressWarnings("all") @lombok.Generated public Long getIntervalCount() { return this.intervalCount; } } /** * Three-letter ISO currency * code, in lowercase. Must be a supported * currency. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getCurrency() { return this.currency; } /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } /** * The ID of the product that this price will belong to. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getProduct() { return this.product; } /** * The recurring components of a price such as {@code interval} and {@code usage_type}. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Recurring getRecurring() { return this.recurring; } /** * A positive integer in %s (or 0 for a free price) representing how much to charge. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Long getUnitAmount() { return this.unitAmount; } /** * Same as {@code unit_amount}, but accepts a decimal value with at most 12 decimal places. Only * one of {@code unit_amount} and {@code unit_amount_decimal} can be set. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getUnitAmountDecimal() { return this.unitAmountDecimal; } } /** * The number of intervals between subscription billings. For example, {@code * interval=month} and {@code interval_count=3} bills every 3 months. Maximum of one year * interval allowed (1 year, 12 months, or 52 weeks). */ public enum PaymentBehavior implements ApiRequestParams.EnumParam { @SerializedName("allow_incomplete") ALLOW_INCOMPLETE("allow_incomplete"), @SerializedName("error_if_incomplete") ERROR_IF_INCOMPLETE("error_if_incomplete"), @SerializedName("pending_if_incomplete") PENDING_IF_INCOMPLETE("pending_if_incomplete"); private final String value; PaymentBehavior(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } public enum ProrationBehavior implements ApiRequestParams.EnumParam { @SerializedName("always_invoice") ALWAYS_INVOICE("always_invoice"), @SerializedName("create_prorations") CREATE_PRORATIONS("create_prorations"), @SerializedName("none") NONE("none"); private final String value; ProrationBehavior(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } /** * Define thresholds at which an invoice will be sent, and the subscription advanced to a new * billing period. When updating, pass an empty string to remove previously-defined thresholds. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getBillingThresholds() { return this.billingThresholds; } /** * Specifies which fields in the response should be expanded. */ @java.lang.SuppressWarnings("all") @lombok.Generated public List getExpand() { return this.expand; } /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } /** * 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. Individual keys can be unset by * posting an empty value to them. All keys can be unset by posting an empty value to {@code * metadata}. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getMetadata() { return this.metadata; } /** * Indicates if a customer is on or off-session while an invoice payment is attempted. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Boolean getOffSession() { return this.offSession; } /** * Use {@code allow_incomplete} to transition the subscription to {@code status=past_due} if a * payment is required but cannot be paid. This allows you to manage scenarios where additional * user actions are needed to pay a subscription's invoice. For example, SCA regulation may * require 3DS authentication to complete payment. See the SCA Migration * Guide for Billing to learn more. This is the default behavior. * *

Use {@code pending_if_incomplete} to update the subscription using pending updates. When * you use {@code pending_if_incomplete} you can only pass the parameters supported * by pending updates. * *

Use {@code error_if_incomplete} if you want Stripe to return an HTTP 402 status code if a * subscription's first invoice cannot be paid. For example, if a payment method requires 3DS * authentication due to SCA regulation and further user action is needed, this parameter does not * create a subscription and returns an error instead. This was the default behavior for API * versions prior to 2019-03-14. See the changelog to learn more. */ @java.lang.SuppressWarnings("all") @lombok.Generated public PaymentBehavior getPaymentBehavior() { return this.paymentBehavior; } /** * The identifier of the new plan for this subscription item. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getPlan() { return this.plan; } /** * The ID of the price object. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getPrice() { return this.price; } /** * Data used to generate a new price object inline. */ @java.lang.SuppressWarnings("all") @lombok.Generated public PriceData getPriceData() { return this.priceData; } /** * This field has been renamed to {@code proration_behavior}. {@code prorate=true} can be replaced * with {@code proration_behavior=create_prorations} and {@code prorate=false} can be replaced * with {@code proration_behavior=none}. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Boolean getProrate() { return this.prorate; } /** * Determines how to handle prorations when the * billing cycle changes (e.g., when switching plans, resetting {@code billing_cycle_anchor=now}, * or starting a trial), or if an item's {@code quantity} changes. Valid values are {@code * create_prorations}, {@code none}, or {@code always_invoice}. * *

Passing {@code create_prorations} will cause proration invoice items to be created when * applicable. These proration items will only be invoiced immediately under certain * conditions. In order to always invoice immediately for prorations, pass {@code * always_invoice}. * *

Prorations can be disabled by passing {@code none}. */ @java.lang.SuppressWarnings("all") @lombok.Generated public ProrationBehavior getProrationBehavior() { return this.prorationBehavior; } /** * If set, the proration will be calculated as though the subscription was updated at the given * time. This can be used to apply the same proration that was previewed with the upcoming invoice endpoint. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Long getProrationDate() { return this.prorationDate; } /** * The quantity you'd like to apply to the subscription item you're creating. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Long getQuantity() { return this.quantity; } /** * A list of Tax Rate ids. These Tax Rates * will override the {@code * default_tax_rates} on the Subscription. When updating, pass an empty string to remove * previously-defined tax rates. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getTaxRates() { return this.taxRates; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy