Class Subscription

    • Constructor Detail

      • Subscription

        public Subscription()
    • Method Detail

      • getCustomer

        public java.lang.String getCustomer()
        Get ID of expandable customer object.
      • setCustomer

        public void setCustomer​(java.lang.String id)
      • getCustomerObject

        public Customer getCustomerObject()
        Get expanded customer.
      • setCustomerObject

        public void setCustomerObject​(Customer expandableObject)
      • getDefaultPaymentMethod

        public java.lang.String getDefaultPaymentMethod()
        Get ID of expandable defaultPaymentMethod object.
      • setDefaultPaymentMethod

        public void setDefaultPaymentMethod​(java.lang.String id)
      • getDefaultPaymentMethodObject

        public PaymentMethod getDefaultPaymentMethodObject()
        Get expanded defaultPaymentMethod.
      • setDefaultPaymentMethodObject

        public void setDefaultPaymentMethodObject​(PaymentMethod expandableObject)
      • getDefaultSource

        public java.lang.String getDefaultSource()
        Get ID of expandable defaultSource object.
      • setDefaultSource

        public void setDefaultSource​(java.lang.String id)
      • getDefaultSourceObject

        public PaymentSource getDefaultSourceObject()
        Get expanded defaultSource.
      • setDefaultSourceObject

        public void setDefaultSourceObject​(PaymentSource expandableObject)
      • getLatestInvoice

        public java.lang.String getLatestInvoice()
        Get ID of expandable latestInvoice object.
      • setLatestInvoice

        public void setLatestInvoice​(java.lang.String id)
      • getLatestInvoiceObject

        public Invoice getLatestInvoiceObject()
        Get expanded latestInvoice.
      • setLatestInvoiceObject

        public void setLatestInvoiceObject​(Invoice expandableObject)
      • getPendingSetupIntent

        public java.lang.String getPendingSetupIntent()
        Get ID of expandable pendingSetupIntent object.
      • setPendingSetupIntent

        public void setPendingSetupIntent​(java.lang.String id)
      • getPendingSetupIntentObject

        public SetupIntent getPendingSetupIntentObject()
        Get expanded pendingSetupIntent.
      • setPendingSetupIntentObject

        public void setPendingSetupIntentObject​(SetupIntent expandableObject)
      • getSchedule

        public java.lang.String getSchedule()
        Get ID of expandable schedule object.
      • setSchedule

        public void setSchedule​(java.lang.String id)
      • list

        public static SubscriptionCollection list​(java.util.Map<java.lang.String,​java.lang.Object> params)
                                           throws StripeException
        By default, returns a list of subscriptions that have not been canceled. In order to list canceled subscriptions, specify status=canceled.
        Throws:
        StripeException
      • create

        public static Subscription create​(java.util.Map<java.lang.String,​java.lang.Object> params)
                                   throws StripeException
        Creates a new subscription on an existing customer. Each customer can have up to 500 active or scheduled subscriptions.
        Throws:
        StripeException
      • create

        public static Subscription create​(java.util.Map<java.lang.String,​java.lang.Object> params,
                                          RequestOptions options)
                                   throws StripeException
        Creates a new subscription on an existing customer. Each customer can have up to 500 active or scheduled subscriptions.
        Throws:
        StripeException
      • update

        public Subscription update​(java.util.Map<java.lang.String,​java.lang.Object> params)
                            throws StripeException
        Updates an existing subscription on a customer to match the specified parameters. When changing plans or quantities, we will optionally prorate the price we charge next month to make up for any price changes. To preview how the proration will be calculated, use the upcoming invoice endpoint.
        Specified by:
        update in interface MetadataStore<Subscription>
        Throws:
        StripeException
      • update

        public Subscription update​(java.util.Map<java.lang.String,​java.lang.Object> params,
                                   RequestOptions options)
                            throws StripeException
        Updates an existing subscription on a customer to match the specified parameters. When changing plans or quantities, we will optionally prorate the price we charge next month to make up for any price changes. To preview how the proration will be calculated, use the upcoming invoice endpoint.
        Specified by:
        update in interface MetadataStore<Subscription>
        Throws:
        StripeException
      • update

        public Subscription update​(SubscriptionUpdateParams params)
                            throws StripeException
        Updates an existing subscription on a customer to match the specified parameters. When changing plans or quantities, we will optionally prorate the price we charge next month to make up for any price changes. To preview how the proration will be calculated, use the upcoming invoice endpoint.
        Throws:
        StripeException
      • cancel

        public Subscription cancel()
                            throws StripeException
        Cancels a customer’s subscription immediately. The customer will not be charged again for the subscription.

        Note, however, that any pending invoice items that you’ve created will still be charged for at the end of the period, unless manually deleted. If you’ve set the subscription to cancel at the end of the period, any pending prorations will also be left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations will be removed.

        By default, upon subscription cancellation, Stripe will stop automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all.

        Throws:
        StripeException
      • cancel

        public Subscription cancel​(java.util.Map<java.lang.String,​java.lang.Object> params)
                            throws StripeException
        Cancels a customer’s subscription immediately. The customer will not be charged again for the subscription.

        Note, however, that any pending invoice items that you’ve created will still be charged for at the end of the period, unless manually deleted. If you’ve set the subscription to cancel at the end of the period, any pending prorations will also be left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations will be removed.

        By default, upon subscription cancellation, Stripe will stop automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all.

        Throws:
        StripeException
      • cancel

        public Subscription cancel​(java.util.Map<java.lang.String,​java.lang.Object> params,
                                   RequestOptions options)
                            throws StripeException
        Cancels a customer’s subscription immediately. The customer will not be charged again for the subscription.

        Note, however, that any pending invoice items that you’ve created will still be charged for at the end of the period, unless manually deleted. If you’ve set the subscription to cancel at the end of the period, any pending prorations will also be left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations will be removed.

        By default, upon subscription cancellation, Stripe will stop automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all.

        Throws:
        StripeException
      • cancel

        public Subscription cancel​(SubscriptionCancelParams params)
                            throws StripeException
        Cancels a customer’s subscription immediately. The customer will not be charged again for the subscription.

        Note, however, that any pending invoice items that you’ve created will still be charged for at the end of the period, unless manually deleted. If you’ve set the subscription to cancel at the end of the period, any pending prorations will also be left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations will be removed.

        By default, upon subscription cancellation, Stripe will stop automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all.

        Throws:
        StripeException
      • cancel

        public Subscription cancel​(SubscriptionCancelParams params,
                                   RequestOptions options)
                            throws StripeException
        Cancels a customer’s subscription immediately. The customer will not be charged again for the subscription.

        Note, however, that any pending invoice items that you’ve created will still be charged for at the end of the period, unless manually deleted. If you’ve set the subscription to cancel at the end of the period, any pending prorations will also be left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations will be removed.

        By default, upon subscription cancellation, Stripe will stop automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all.

        Throws:
        StripeException
      • deleteDiscount

        public Discount deleteDiscount​(java.util.Map<java.lang.String,​java.lang.Object> params)
                                throws StripeException
        Removes the currently applied discount on a subscription.
        Throws:
        StripeException
      • getApplicationFeePercent

        public java.math.BigDecimal getApplicationFeePercent()
        A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice subtotal that will be transferred to the application owner's Stripe account.
      • getBillingCycleAnchor

        public java.lang.Long getBillingCycleAnchor()
        Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices.
      • getBillingThresholds

        public Subscription.BillingThresholds getBillingThresholds()
        Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period.
      • getCancelAt

        public java.lang.Long getCancelAt()
        A date in the future at which the subscription will automatically get canceled.
      • getCancelAtPeriodEnd

        public java.lang.Boolean getCancelAtPeriodEnd()
        If the subscription has been canceled with the at_period_end flag set to true, cancel_at_period_end on the subscription will be true. You can use this attribute to determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period.
      • getCanceledAt

        public java.lang.Long getCanceledAt()
        If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with cancel_at_period_end, canceled_at will reflect the time of the most recent update request, not the end of the subscription period when the subscription is automatically moved to a canceled state.
      • getCollectionMethod

        public java.lang.String getCollectionMethod()
        Either charge_automatically, or send_invoice. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions.

        One of charge_automatically, or send_invoice.

      • getCreated

        public java.lang.Long getCreated()
        Time at which the object was created. Measured in seconds since the Unix epoch.
      • getCurrentPeriodEnd

        public java.lang.Long getCurrentPeriodEnd()
        End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.
      • getCurrentPeriodStart

        public java.lang.Long getCurrentPeriodStart()
        Start of the current period that the subscription has been invoiced for.
      • getDaysUntilDue

        public java.lang.Long getDaysUntilDue()
        Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically.
      • getDefaultTaxRates

        public java.util.List<TaxRate> getDefaultTaxRates()
        The tax rates that will apply to any subscription item that does not have tax_rates set. Invoices created will have their default_tax_rates populated from the subscription.
      • getDiscount

        public Discount getDiscount()
        Describes the current discount applied to this subscription, if there is one. When billing, a discount applied to a subscription overrides a discount applied on a customer-wide basis.
      • getEndedAt

        public java.lang.Long getEndedAt()
        If the subscription has ended, the date the subscription ended.
      • getLivemode

        public java.lang.Boolean getLivemode()
        Has the value true if the object exists in live mode or the value false if the object exists in test mode.
      • getNextPendingInvoiceItemInvoice

        public java.lang.Long getNextPendingInvoiceItemInvoice()
        Specifies the approximate timestamp on which any pending invoice items will be billed according to the schedule provided at pending_invoice_item_interval.
      • getObject

        public java.lang.String getObject()
        String representing the object's type. Objects of the same type share the same value.

        Equal to subscription.

      • getPauseCollection

        public Subscription.PauseCollection getPauseCollection()
        If specified, payment collection for this subscription will be paused.
      • getPaymentSettings

        public Subscription.PaymentSettings getPaymentSettings()
        Payment settings passed on to invoices created by the subscription.
      • getPendingInvoiceItemInterval

        public Subscription.PendingInvoiceItemInterval getPendingInvoiceItemInterval()
        Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling Create an invoice for the given subscription at the specified interval.
      • getStartDate

        public java.lang.Long getStartDate()
        Date when the subscription was first created. The date might differ from the created date due to backdating.
      • getStatus

        public java.lang.String getStatus()
        Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid.

        For collection_method=charge_automatically a subscription moves into incomplete if the initial payment attempt fails. A subscription in this state can only have metadata and default_source updated. Once the first invoice is paid, the subscription moves into an active state. If the first invoice is not paid within 23 hours, the subscription transitions to incomplete_expired. This is a terminal state, the open invoice will be voided and no further invoices will be generated.

        A subscription that is currently in a trial period is trialing and moves to active when the trial period is over.

        If subscription collection_method=charge_automatically it becomes past_due when payment to renew it fails and canceled or unpaid (depending on your subscriptions settings) when Stripe has exhausted all payment retry attempts.

        If subscription collection_method=send_invoice it becomes past_due when its invoice is not paid by the due date, and canceled or unpaid if it is still not paid by an additional deadline after that. Note that when a subscription has a status of unpaid, no subsequent invoices will be attempted (invoices will be created, but then immediately automatically closed). After receiving updated payment information from a customer, you may choose to reopen and pay their closed invoices.

        One of active, canceled, incomplete, incomplete_expired, past_due, trialing, or unpaid.

      • getTransferData

        public Subscription.TransferData getTransferData()
        The account (if any) the subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices.
      • getTrialEnd

        public java.lang.Long getTrialEnd()
        If the subscription has a trial, the end of that trial.
      • getTrialStart

        public java.lang.Long getTrialStart()
        If the subscription has a trial, the beginning of that trial.
      • setApplicationFeePercent

        public void setApplicationFeePercent​(java.math.BigDecimal applicationFeePercent)
        A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice subtotal that will be transferred to the application owner's Stripe account.
      • setBillingCycleAnchor

        public void setBillingCycleAnchor​(java.lang.Long billingCycleAnchor)
        Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices.
      • setBillingThresholds

        public void setBillingThresholds​(Subscription.BillingThresholds billingThresholds)
        Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period.
      • setCancelAt

        public void setCancelAt​(java.lang.Long cancelAt)
        A date in the future at which the subscription will automatically get canceled.
      • setCancelAtPeriodEnd

        public void setCancelAtPeriodEnd​(java.lang.Boolean cancelAtPeriodEnd)
        If the subscription has been canceled with the at_period_end flag set to true, cancel_at_period_end on the subscription will be true. You can use this attribute to determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period.
      • setCanceledAt

        public void setCanceledAt​(java.lang.Long canceledAt)
        If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with cancel_at_period_end, canceled_at will reflect the time of the most recent update request, not the end of the subscription period when the subscription is automatically moved to a canceled state.
      • setCollectionMethod

        public void setCollectionMethod​(java.lang.String collectionMethod)
        Either charge_automatically, or send_invoice. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions.

        One of charge_automatically, or send_invoice.

      • setCreated

        public void setCreated​(java.lang.Long created)
        Time at which the object was created. Measured in seconds since the Unix epoch.
      • setCurrentPeriodEnd

        public void setCurrentPeriodEnd​(java.lang.Long currentPeriodEnd)
        End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.
      • setCurrentPeriodStart

        public void setCurrentPeriodStart​(java.lang.Long currentPeriodStart)
        Start of the current period that the subscription has been invoiced for.
      • setDaysUntilDue

        public void setDaysUntilDue​(java.lang.Long daysUntilDue)
        Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where collection_method=charge_automatically.
      • setDefaultTaxRates

        public void setDefaultTaxRates​(java.util.List<TaxRate> defaultTaxRates)
        The tax rates that will apply to any subscription item that does not have tax_rates set. Invoices created will have their default_tax_rates populated from the subscription.
      • setDiscount

        public void setDiscount​(Discount discount)
        Describes the current discount applied to this subscription, if there is one. When billing, a discount applied to a subscription overrides a discount applied on a customer-wide basis.
      • setEndedAt

        public void setEndedAt​(java.lang.Long endedAt)
        If the subscription has ended, the date the subscription ended.
      • setId

        public void setId​(java.lang.String id)
        Unique identifier for the object.
      • setLivemode

        public void setLivemode​(java.lang.Boolean livemode)
        Has the value true if the object exists in live mode or the value false if the object exists in test mode.
      • setMetadata

        public void setMetadata​(java.util.Map<java.lang.String,​java.lang.String> metadata)
        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.
      • setNextPendingInvoiceItemInvoice

        public void setNextPendingInvoiceItemInvoice​(java.lang.Long nextPendingInvoiceItemInvoice)
        Specifies the approximate timestamp on which any pending invoice items will be billed according to the schedule provided at pending_invoice_item_interval.
      • setObject

        public void setObject​(java.lang.String object)
        String representing the object's type. Objects of the same type share the same value.

        Equal to subscription.

      • setPauseCollection

        public void setPauseCollection​(Subscription.PauseCollection pauseCollection)
        If specified, payment collection for this subscription will be paused.
      • setPaymentSettings

        public void setPaymentSettings​(Subscription.PaymentSettings paymentSettings)
        Payment settings passed on to invoices created by the subscription.
      • setPendingInvoiceItemInterval

        public void setPendingInvoiceItemInterval​(Subscription.PendingInvoiceItemInterval pendingInvoiceItemInterval)
        Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling Create an invoice for the given subscription at the specified interval.
      • setPendingUpdate

        public void setPendingUpdate​(Subscription.PendingUpdate pendingUpdate)
        If specified, pending updates that will be applied to the subscription once the latest_invoice has been paid.
      • setStartDate

        public void setStartDate​(java.lang.Long startDate)
        Date when the subscription was first created. The date might differ from the created date due to backdating.
      • setStatus

        public void setStatus​(java.lang.String status)
        Possible values are incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid.

        For collection_method=charge_automatically a subscription moves into incomplete if the initial payment attempt fails. A subscription in this state can only have metadata and default_source updated. Once the first invoice is paid, the subscription moves into an active state. If the first invoice is not paid within 23 hours, the subscription transitions to incomplete_expired. This is a terminal state, the open invoice will be voided and no further invoices will be generated.

        A subscription that is currently in a trial period is trialing and moves to active when the trial period is over.

        If subscription collection_method=charge_automatically it becomes past_due when payment to renew it fails and canceled or unpaid (depending on your subscriptions settings) when Stripe has exhausted all payment retry attempts.

        If subscription collection_method=send_invoice it becomes past_due when its invoice is not paid by the due date, and canceled or unpaid if it is still not paid by an additional deadline after that. Note that when a subscription has a status of unpaid, no subsequent invoices will be attempted (invoices will be created, but then immediately automatically closed). After receiving updated payment information from a customer, you may choose to reopen and pay their closed invoices.

        One of active, canceled, incomplete, incomplete_expired, past_due, trialing, or unpaid.

      • setTransferData

        public void setTransferData​(Subscription.TransferData transferData)
        The account (if any) the subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices.
      • setTrialEnd

        public void setTrialEnd​(java.lang.Long trialEnd)
        If the subscription has a trial, the end of that trial.
      • setTrialStart

        public void setTrialStart​(java.lang.Long trialStart)
        If the subscription has a trial, the beginning of that trial.
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • canEqual

        protected boolean canEqual​(java.lang.Object other)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • getId

        public java.lang.String getId()
        Unique identifier for the object.
        Specified by:
        getId in interface HasId
      • getMetadata

        public java.util.Map<java.lang.String,​java.lang.String> getMetadata()
        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.
        Specified by:
        getMetadata in interface MetadataStore<Subscription>