stripe 16.10.0 → 16.11.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/CHANGELOG.md +831 -113
  2. package/README.md +33 -0
  3. package/VERSION +1 -1
  4. package/cjs/RequestSender.js +66 -5
  5. package/cjs/StripeResource.js +1 -1
  6. package/cjs/apiVersion.js +2 -1
  7. package/cjs/multipart.js +1 -1
  8. package/cjs/resources/AccountNotices.js +21 -0
  9. package/cjs/resources/Capital/FinancingOffers.js +21 -0
  10. package/cjs/resources/Capital/FinancingSummary.js +12 -0
  11. package/cjs/resources/Capital/FinancingTransactions.js +17 -0
  12. package/cjs/resources/FinancialConnections/Accounts.js +5 -0
  13. package/cjs/resources/FinancialConnections/Institutions.js +17 -0
  14. package/cjs/resources/GiftCards/Cards.js +23 -0
  15. package/cjs/resources/GiftCards/Transactions.js +33 -0
  16. package/cjs/resources/Invoices.js +17 -0
  17. package/cjs/resources/Issuing/CreditUnderwritingRecords.js +33 -0
  18. package/cjs/resources/Margins.js +22 -0
  19. package/cjs/resources/OAuth.js +1 -1
  20. package/cjs/resources/Orders.js +24 -0
  21. package/cjs/resources/PaymentIntents.js +4 -0
  22. package/cjs/resources/QuotePhases.js +22 -0
  23. package/cjs/resources/Quotes.js +32 -0
  24. package/cjs/resources/SubscriptionSchedules.js +4 -0
  25. package/cjs/resources/Tax/Associations.js +9 -0
  26. package/cjs/resources/Tax/Forms.js +20 -0
  27. package/cjs/resources/Terminal/ReaderCollectedData.js +12 -0
  28. package/cjs/resources/Terminal/Readers.js +12 -0
  29. package/cjs/resources.js +42 -10
  30. package/cjs/stripe.core.js +6 -3
  31. package/cjs/utils.js +30 -3
  32. package/esm/RequestSender.js +67 -6
  33. package/esm/StripeResource.js +2 -2
  34. package/esm/apiVersion.js +1 -0
  35. package/esm/multipart.js +2 -2
  36. package/esm/resources/AccountNotices.js +18 -0
  37. package/esm/resources/Capital/FinancingOffers.js +18 -0
  38. package/esm/resources/Capital/FinancingSummary.js +9 -0
  39. package/esm/resources/Capital/FinancingTransactions.js +14 -0
  40. package/esm/resources/FinancialConnections/Accounts.js +5 -0
  41. package/esm/resources/FinancialConnections/Institutions.js +14 -0
  42. package/esm/resources/GiftCards/Cards.js +20 -0
  43. package/esm/resources/GiftCards/Transactions.js +30 -0
  44. package/esm/resources/Invoices.js +17 -0
  45. package/esm/resources/Issuing/CreditUnderwritingRecords.js +30 -0
  46. package/esm/resources/Margins.js +19 -0
  47. package/esm/resources/OAuth.js +2 -2
  48. package/esm/resources/Orders.js +21 -0
  49. package/esm/resources/PaymentIntents.js +4 -0
  50. package/esm/resources/QuotePhases.js +19 -0
  51. package/esm/resources/Quotes.js +32 -0
  52. package/esm/resources/SubscriptionSchedules.js +4 -0
  53. package/esm/resources/Tax/Associations.js +6 -0
  54. package/esm/resources/Tax/Forms.js +17 -0
  55. package/esm/resources/Terminal/ReaderCollectedData.js +9 -0
  56. package/esm/resources/Terminal/Readers.js +12 -0
  57. package/esm/resources.js +28 -0
  58. package/esm/stripe.core.js +6 -3
  59. package/esm/utils.js +27 -1
  60. package/package.json +1 -1
  61. package/types/AccountLinksResource.d.ts +5 -1
  62. package/types/AccountNotices.d.ts +113 -0
  63. package/types/AccountNoticesResource.d.ts +98 -0
  64. package/types/AccountSessions.d.ts +45 -0
  65. package/types/AccountSessionsResource.d.ts +278 -0
  66. package/types/Accounts.d.ts +113 -1
  67. package/types/AccountsResource.d.ts +270 -0
  68. package/types/Billing/MeterErrorReports.d.ts +106 -0
  69. package/types/Capital/FinancingOffers.d.ts +188 -0
  70. package/types/Capital/FinancingOffersResource.d.ts +97 -0
  71. package/types/Capital/FinancingSummary.d.ts +106 -0
  72. package/types/Capital/FinancingSummaryResource.d.ts +27 -0
  73. package/types/Capital/FinancingTransactions.d.ts +135 -0
  74. package/types/Capital/FinancingTransactionsResource.d.ts +68 -0
  75. package/types/Charges.d.ts +71 -0
  76. package/types/ChargesResource.d.ts +1294 -0
  77. package/types/Checkout/Sessions.d.ts +296 -4
  78. package/types/Checkout/SessionsResource.d.ts +350 -5
  79. package/types/ConfirmationTokens.d.ts +67 -0
  80. package/types/Coupons.d.ts +1 -1
  81. package/types/CouponsResource.d.ts +1 -1
  82. package/types/CreditNotes.d.ts +21 -0
  83. package/types/CreditNotesResource.d.ts +51 -0
  84. package/types/CustomersResource.d.ts +3 -0
  85. package/types/Disputes.d.ts +152 -0
  86. package/types/DisputesResource.d.ts +120 -0
  87. package/types/EventTypes.d.ts +477 -0
  88. package/types/Events.d.ts +86 -0
  89. package/types/FinancialConnections/AccountInferredBalances.d.ts +38 -0
  90. package/types/FinancialConnections/Accounts.d.ts +29 -1
  91. package/types/FinancialConnections/AccountsResource.d.ts +35 -3
  92. package/types/FinancialConnections/Institutions.d.ts +93 -0
  93. package/types/FinancialConnections/InstitutionsResource.d.ts +47 -0
  94. package/types/FinancialConnections/Sessions.d.ts +49 -1
  95. package/types/FinancialConnections/SessionsResource.d.ts +38 -1
  96. package/types/GiftCards/Cards.d.ts +118 -0
  97. package/types/GiftCards/CardsResource.d.ts +159 -0
  98. package/types/GiftCards/Transactions.d.ts +129 -0
  99. package/types/GiftCards/TransactionsResource.d.ts +201 -0
  100. package/types/InvoiceItems.d.ts +5 -0
  101. package/types/InvoiceItemsResource.d.ts +98 -0
  102. package/types/InvoiceLineItems.d.ts +22 -0
  103. package/types/InvoicePayments.d.ts +138 -0
  104. package/types/Invoices.d.ts +117 -1
  105. package/types/InvoicesResource.d.ts +5454 -1796
  106. package/types/Issuing/CardholdersResource.d.ts +2 -1
  107. package/types/Issuing/CreditUnderwritingRecords.d.ts +451 -0
  108. package/types/Issuing/CreditUnderwritingRecordsResource.d.ts +1032 -0
  109. package/types/LineItems.d.ts +7 -0
  110. package/types/Mandates.d.ts +77 -0
  111. package/types/Margins.d.ts +56 -0
  112. package/types/MarginsResource.d.ts +114 -0
  113. package/types/Orders.d.ts +1084 -0
  114. package/types/OrdersResource.d.ts +2765 -0
  115. package/types/PaymentIntents.d.ts +503 -1
  116. package/types/PaymentIntentsResource.d.ts +7000 -3400
  117. package/types/PaymentLinks.d.ts +2 -0
  118. package/types/PaymentLinksResource.d.ts +4 -0
  119. package/types/PaymentMethodConfigurations.d.ts +36 -0
  120. package/types/PaymentMethodConfigurationsResource.d.ts +50 -0
  121. package/types/PaymentMethods.d.ts +67 -0
  122. package/types/PaymentMethodsResource.d.ts +88 -0
  123. package/types/Prices.d.ts +22 -0
  124. package/types/PricesResource.d.ts +22 -0
  125. package/types/Products.d.ts +39 -0
  126. package/types/ProductsResource.d.ts +36 -0
  127. package/types/QuoteLines.d.ts +634 -0
  128. package/types/QuotePhases.d.ts +198 -0
  129. package/types/QuotePhasesResource.d.ts +67 -0
  130. package/types/QuotePreviewInvoices.d.ts +1532 -0
  131. package/types/QuotePreviewSubscriptionSchedules.d.ts +814 -0
  132. package/types/Quotes.d.ts +596 -1
  133. package/types/QuotesResource.d.ts +2526 -194
  134. package/types/SetupAttempts.d.ts +10 -0
  135. package/types/SetupIntents.d.ts +111 -1
  136. package/types/SetupIntentsResource.d.ts +522 -3
  137. package/types/Sources.d.ts +23 -0
  138. package/types/SubscriptionItems.d.ts +21 -0
  139. package/types/SubscriptionItemsResource.d.ts +109 -0
  140. package/types/SubscriptionSchedules.d.ts +200 -0
  141. package/types/SubscriptionSchedulesResource.d.ts +1234 -16
  142. package/types/Subscriptions.d.ts +82 -1
  143. package/types/SubscriptionsResource.d.ts +347 -2
  144. package/types/Tax/Associations.d.ts +126 -0
  145. package/types/Tax/AssociationsResource.d.ts +29 -0
  146. package/types/Tax/Forms.d.ts +133 -0
  147. package/types/Tax/FormsResource.d.ts +90 -0
  148. package/types/Terminal/ReaderCollectedData.d.ts +51 -0
  149. package/types/Terminal/ReaderCollectedDataResource.d.ts +29 -0
  150. package/types/Terminal/Readers.d.ts +278 -0
  151. package/types/Terminal/ReadersResource.d.ts +208 -0
  152. package/types/TestHelpers/ConfirmationTokensResource.d.ts +63 -0
  153. package/types/TestHelpers/Treasury/ReceivedCreditsResource.d.ts +26 -0
  154. package/types/TestHelpers/Treasury/ReceivedDebitsResource.d.ts +26 -0
  155. package/types/Treasury/FinancialAccounts.d.ts +5 -0
  156. package/types/Treasury/FinancialAccountsResource.d.ts +10 -0
  157. package/types/Treasury/OutboundTransfers.d.ts +26 -0
  158. package/types/Treasury/OutboundTransfersResource.d.ts +26 -0
  159. package/types/Treasury/ReceivedCredits.d.ts +26 -0
  160. package/types/Treasury/ReceivedDebits.d.ts +31 -0
  161. package/types/WebhookEndpointsResource.d.ts +56 -0
  162. package/types/index.d.ts +71 -0
  163. package/types/lib.d.ts +12 -0
@@ -100,6 +100,8 @@ declare module 'stripe' {
100
100
 
101
101
  p24?: Source.P24;
102
102
 
103
+ paypal?: Source.Paypal;
104
+
103
105
  receiver?: Source.Receiver;
104
106
 
105
107
  redirect?: Source.Redirect;
@@ -472,6 +474,26 @@ declare module 'stripe' {
472
474
  reference?: string | null;
473
475
  }
474
476
 
477
+ interface Paypal {
478
+ billing_agreement?: string | null;
479
+
480
+ fingerprint?: string | null;
481
+
482
+ payer_id?: string | null;
483
+
484
+ reference_id?: string;
485
+
486
+ reference_transaction_amount?: string;
487
+
488
+ reference_transaction_charged?: boolean;
489
+
490
+ statement_descriptor?: string | null;
491
+
492
+ transaction_id?: string;
493
+
494
+ verified_email?: string | null;
495
+ }
496
+
475
497
  interface Receiver {
476
498
  /**
477
499
  * The address of the receiver source. This is the value that should be communicated to the customer to send their funds to.
@@ -721,6 +743,7 @@ declare module 'stripe' {
721
743
  | 'klarna'
722
744
  | 'multibanco'
723
745
  | 'p24'
746
+ | 'paypal'
724
747
  | 'sepa_credit_transfer'
725
748
  | 'sepa_debit'
726
749
  | 'sofort'
@@ -98,6 +98,11 @@ declare module 'stripe' {
98
98
  * The tax rates which apply to this `subscription_item`. When set, the `default_tax_rates` on the subscription do not apply to this `subscription_item`.
99
99
  */
100
100
  tax_rates: Array<Stripe.TaxRate> | null;
101
+
102
+ /**
103
+ * Options that configure the trial on the subscription item.
104
+ */
105
+ trial?: SubscriptionItem.Trial | null;
101
106
  }
102
107
 
103
108
  namespace SubscriptionItem {
@@ -107,6 +112,22 @@ declare module 'stripe' {
107
112
  */
108
113
  usage_gte: number | null;
109
114
  }
115
+
116
+ interface Trial {
117
+ /**
118
+ * List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial.
119
+ */
120
+ converts_to?: Array<string> | null;
121
+
122
+ /**
123
+ * Determines the type of trial for this item.
124
+ */
125
+ type: Trial.Type;
126
+ }
127
+
128
+ namespace Trial {
129
+ type Type = 'free' | 'paid';
130
+ }
110
131
  }
111
132
  }
112
133
  }
@@ -77,6 +77,11 @@ declare module 'stripe' {
77
77
  * A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates.
78
78
  */
79
79
  tax_rates?: Stripe.Emptyable<Array<string>>;
80
+
81
+ /**
82
+ * Options that configure the trial on the subscription item.
83
+ */
84
+ trial?: SubscriptionItemCreateParams.Trial;
80
85
  }
81
86
 
82
87
  namespace SubscriptionItemCreateParams {
@@ -98,12 +103,56 @@ declare module 'stripe' {
98
103
  */
99
104
  discount?: string;
100
105
 
106
+ /**
107
+ * Details to determine how long the discount should be applied for.
108
+ */
109
+ discount_end?: Discount.DiscountEnd;
110
+
101
111
  /**
102
112
  * ID of the promotion code to create a new discount for.
103
113
  */
104
114
  promotion_code?: string;
105
115
  }
106
116
 
117
+ namespace Discount {
118
+ interface DiscountEnd {
119
+ /**
120
+ * Time span for the redeemed discount.
121
+ */
122
+ duration?: DiscountEnd.Duration;
123
+
124
+ /**
125
+ * A precise Unix timestamp for the discount to end. Must be in the future.
126
+ */
127
+ timestamp?: number;
128
+
129
+ /**
130
+ * The type of calculation made to determine when the discount ends.
131
+ */
132
+ type: DiscountEnd.Type;
133
+ }
134
+
135
+ namespace DiscountEnd {
136
+ interface Duration {
137
+ /**
138
+ * Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
139
+ */
140
+ interval: Duration.Interval;
141
+
142
+ /**
143
+ * The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
144
+ */
145
+ interval_count: number;
146
+ }
147
+
148
+ namespace Duration {
149
+ type Interval = 'day' | 'month' | 'week' | 'year';
150
+ }
151
+
152
+ type Type = 'duration' | 'timestamp';
153
+ }
154
+ }
155
+
107
156
  type PaymentBehavior =
108
157
  | 'allow_incomplete'
109
158
  | 'default_incomplete'
@@ -163,6 +212,22 @@ declare module 'stripe' {
163
212
  }
164
213
 
165
214
  type ProrationBehavior = 'always_invoice' | 'create_prorations' | 'none';
215
+
216
+ interface Trial {
217
+ /**
218
+ * List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial. Currently only supports at most 1 price ID.
219
+ */
220
+ converts_to?: Array<string>;
221
+
222
+ /**
223
+ * Determines the type of trial for this item.
224
+ */
225
+ type: Trial.Type;
226
+ }
227
+
228
+ namespace Trial {
229
+ type Type = 'free' | 'paid';
230
+ }
166
231
  }
167
232
 
168
233
  interface SubscriptionItemRetrieveParams {
@@ -268,12 +333,56 @@ declare module 'stripe' {
268
333
  */
269
334
  discount?: string;
270
335
 
336
+ /**
337
+ * Details to determine how long the discount should be applied for.
338
+ */
339
+ discount_end?: Discount.DiscountEnd;
340
+
271
341
  /**
272
342
  * ID of the promotion code to create a new discount for.
273
343
  */
274
344
  promotion_code?: string;
275
345
  }
276
346
 
347
+ namespace Discount {
348
+ interface DiscountEnd {
349
+ /**
350
+ * Time span for the redeemed discount.
351
+ */
352
+ duration?: DiscountEnd.Duration;
353
+
354
+ /**
355
+ * A precise Unix timestamp for the discount to end. Must be in the future.
356
+ */
357
+ timestamp?: number;
358
+
359
+ /**
360
+ * The type of calculation made to determine when the discount ends.
361
+ */
362
+ type: DiscountEnd.Type;
363
+ }
364
+
365
+ namespace DiscountEnd {
366
+ interface Duration {
367
+ /**
368
+ * Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
369
+ */
370
+ interval: Duration.Interval;
371
+
372
+ /**
373
+ * The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
374
+ */
375
+ interval_count: number;
376
+ }
377
+
378
+ namespace Duration {
379
+ type Interval = 'day' | 'month' | 'week' | 'year';
380
+ }
381
+
382
+ type Type = 'duration' | 'timestamp';
383
+ }
384
+ }
385
+
277
386
  type PaymentBehavior =
278
387
  | 'allow_incomplete'
279
388
  | 'default_incomplete'
@@ -27,6 +27,11 @@ declare module 'stripe' {
27
27
  | Stripe.DeletedApplication
28
28
  | null;
29
29
 
30
+ /**
31
+ * Configures when the subscription schedule generates prorations for phase transitions. Possible values are `prorate_on_next_phase` or `prorate_up_front` with the default being `prorate_on_next_phase`. `prorate_on_next_phase` will apply phase changes and generate prorations at transition time. `prorate_up_front` will bill for all phases within the current billing cycle up front.
32
+ */
33
+ billing_behavior?: SubscriptionSchedule.BillingBehavior;
34
+
30
35
  /**
31
36
  * Time at which the subscription schedule was canceled. Measured in seconds since the Unix epoch.
32
37
  */
@@ -59,6 +64,11 @@ declare module 'stripe' {
59
64
  */
60
65
  end_behavior: SubscriptionSchedule.EndBehavior;
61
66
 
67
+ /**
68
+ * Details of the most recent price migration that failed for the subscription schedule.
69
+ */
70
+ last_price_migration_error?: SubscriptionSchedule.LastPriceMigrationError | null;
71
+
62
72
  /**
63
73
  * Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
64
74
  */
@@ -74,6 +84,11 @@ declare module 'stripe' {
74
84
  */
75
85
  phases: Array<SubscriptionSchedule.Phase>;
76
86
 
87
+ /**
88
+ * Time period and invoice for a Subscription billed in advance.
89
+ */
90
+ prebilling?: SubscriptionSchedule.Prebilling | null;
91
+
77
92
  /**
78
93
  * Time at which the subscription schedule was released. Measured in seconds since the Unix epoch.
79
94
  */
@@ -101,6 +116,8 @@ declare module 'stripe' {
101
116
  }
102
117
 
103
118
  namespace SubscriptionSchedule {
119
+ type BillingBehavior = 'prorate_on_next_phase' | 'prorate_up_front';
120
+
104
121
  interface CurrentPhase {
105
122
  /**
106
123
  * The end of this phase of the subscription schedule.
@@ -255,6 +272,37 @@ declare module 'stripe' {
255
272
 
256
273
  type EndBehavior = 'cancel' | 'none' | 'release' | 'renew';
257
274
 
275
+ interface LastPriceMigrationError {
276
+ /**
277
+ * The time at which the price migration encountered an error.
278
+ */
279
+ errored_at: number;
280
+
281
+ /**
282
+ * The involved price pairs in each failed transition.
283
+ */
284
+ failed_transitions: Array<LastPriceMigrationError.FailedTransition>;
285
+
286
+ /**
287
+ * The type of error encountered by the price migration.
288
+ */
289
+ type: 'price_uniqueness_violation';
290
+ }
291
+
292
+ namespace LastPriceMigrationError {
293
+ interface FailedTransition {
294
+ /**
295
+ * The original price to be migrated.
296
+ */
297
+ source_price: string;
298
+
299
+ /**
300
+ * The intended resulting price of the migration.
301
+ */
302
+ target_price: string;
303
+ }
304
+ }
305
+
258
306
  interface Phase {
259
307
  /**
260
308
  * A list of prices and quantities that will generate invoice items appended to the next invoice for this phase.
@@ -338,6 +386,11 @@ declare module 'stripe' {
338
386
  */
339
387
  on_behalf_of: string | Stripe.Account | null;
340
388
 
389
+ /**
390
+ * If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](https://stripe.com/billing/subscriptions/pause-payment).
391
+ */
392
+ pause_collection?: Phase.PauseCollection | null;
393
+
341
394
  /**
342
395
  * If the subscription schedule will prorate when transitioning to this phase. Possible values are `create_prorations` and `none`.
343
396
  */
@@ -353,10 +406,20 @@ declare module 'stripe' {
353
406
  */
354
407
  transfer_data: Phase.TransferData | null;
355
408
 
409
+ /**
410
+ * Specify behavior of the trial when crossing schedule phase boundaries
411
+ */
412
+ trial_continuation?: Phase.TrialContinuation | null;
413
+
356
414
  /**
357
415
  * When the trial ends within the phase.
358
416
  */
359
417
  trial_end: number | null;
418
+
419
+ /**
420
+ * Settings related to any trials on the subscription during this phase.
421
+ */
422
+ trial_settings?: Phase.TrialSettings | null;
360
423
  }
361
424
 
362
425
  namespace Phase {
@@ -394,11 +457,30 @@ declare module 'stripe' {
394
457
  */
395
458
  discount: string | Stripe.Discount | null;
396
459
 
460
+ /**
461
+ * Details to determine how long the discount should be applied for.
462
+ */
463
+ discount_end?: Discount.DiscountEnd | null;
464
+
397
465
  /**
398
466
  * ID of the promotion code to create a new discount for.
399
467
  */
400
468
  promotion_code: string | Stripe.PromotionCode | null;
401
469
  }
470
+
471
+ namespace Discount {
472
+ interface DiscountEnd {
473
+ /**
474
+ * The discount end timestamp.
475
+ */
476
+ timestamp: number | null;
477
+
478
+ /**
479
+ * The discount end type.
480
+ */
481
+ type: 'timestamp';
482
+ }
483
+ }
402
484
  }
403
485
 
404
486
  interface AutomaticTax {
@@ -458,12 +540,31 @@ declare module 'stripe' {
458
540
  */
459
541
  discount: string | Stripe.Discount | null;
460
542
 
543
+ /**
544
+ * Details to determine how long the discount should be applied for.
545
+ */
546
+ discount_end?: Discount.DiscountEnd | null;
547
+
461
548
  /**
462
549
  * ID of the promotion code to create a new discount for.
463
550
  */
464
551
  promotion_code: string | Stripe.PromotionCode | null;
465
552
  }
466
553
 
554
+ namespace Discount {
555
+ interface DiscountEnd {
556
+ /**
557
+ * The discount end timestamp.
558
+ */
559
+ timestamp: number | null;
560
+
561
+ /**
562
+ * The discount end type.
563
+ */
564
+ type: 'timestamp';
565
+ }
566
+ }
567
+
467
568
  interface InvoiceSettings {
468
569
  /**
469
570
  * The account tax IDs associated with this phase of the subscription schedule. Will be set on invoices generated by this phase of the subscription schedule.
@@ -536,6 +637,11 @@ declare module 'stripe' {
536
637
  * The tax rates which apply to this `phase_item`. When set, the `default_tax_rates` on the phase do not apply to this `phase_item`.
537
638
  */
538
639
  tax_rates?: Array<Stripe.TaxRate> | null;
640
+
641
+ /**
642
+ * Options that configure the trial on the subscription item.
643
+ */
644
+ trial?: Item.Trial | null;
539
645
  }
540
646
 
541
647
  namespace Item {
@@ -557,11 +663,57 @@ declare module 'stripe' {
557
663
  */
558
664
  discount: string | Stripe.Discount | null;
559
665
 
666
+ /**
667
+ * Details to determine how long the discount should be applied for.
668
+ */
669
+ discount_end?: Discount.DiscountEnd | null;
670
+
560
671
  /**
561
672
  * ID of the promotion code to create a new discount for.
562
673
  */
563
674
  promotion_code: string | Stripe.PromotionCode | null;
564
675
  }
676
+
677
+ namespace Discount {
678
+ interface DiscountEnd {
679
+ /**
680
+ * The discount end timestamp.
681
+ */
682
+ timestamp: number | null;
683
+
684
+ /**
685
+ * The discount end type.
686
+ */
687
+ type: 'timestamp';
688
+ }
689
+ }
690
+
691
+ interface Trial {
692
+ /**
693
+ * List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial.
694
+ */
695
+ converts_to?: Array<string> | null;
696
+
697
+ /**
698
+ * Determines the type of trial for this item.
699
+ */
700
+ type: Trial.Type;
701
+ }
702
+
703
+ namespace Trial {
704
+ type Type = 'free' | 'paid';
705
+ }
706
+ }
707
+
708
+ interface PauseCollection {
709
+ /**
710
+ * The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
711
+ */
712
+ behavior: PauseCollection.Behavior;
713
+ }
714
+
715
+ namespace PauseCollection {
716
+ type Behavior = 'keep_as_draft' | 'mark_uncollectible' | 'void';
565
717
  }
566
718
 
567
719
  type ProrationBehavior =
@@ -580,6 +732,54 @@ declare module 'stripe' {
580
732
  */
581
733
  destination: string | Stripe.Account;
582
734
  }
735
+
736
+ type TrialContinuation = 'continue' | 'none';
737
+
738
+ interface TrialSettings {
739
+ /**
740
+ * Defines how the subscription should behave when a trial ends.
741
+ */
742
+ end_behavior: TrialSettings.EndBehavior | null;
743
+ }
744
+
745
+ namespace TrialSettings {
746
+ interface EndBehavior {
747
+ /**
748
+ * Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
749
+ */
750
+ prorate_up_front: EndBehavior.ProrateUpFront | null;
751
+ }
752
+
753
+ namespace EndBehavior {
754
+ type ProrateUpFront = 'defer' | 'include';
755
+ }
756
+ }
757
+ }
758
+
759
+ interface Prebilling {
760
+ /**
761
+ * ID of the prebilling invoice.
762
+ */
763
+ invoice: string | Stripe.Invoice;
764
+
765
+ /**
766
+ * The end of the last period for which the invoice pre-bills.
767
+ */
768
+ period_end: number;
769
+
770
+ /**
771
+ * The start of the first period for which the invoice pre-bills.
772
+ */
773
+ period_start: number;
774
+
775
+ /**
776
+ * Whether to cancel or preserve `prebilling` if the subscription is updated during the prebilled period.
777
+ */
778
+ update_behavior?: Prebilling.UpdateBehavior;
779
+ }
780
+
781
+ namespace Prebilling {
782
+ type UpdateBehavior = 'prebill' | 'reset';
583
783
  }
584
784
 
585
785
  type Status =