Repository: stripe/stripe-node
Pull request #991 (2020-08-28 19:36:55)

Multiple API changes
Multiple API changes
  * ⚠️ Types are now for the API version `2020-08-27`. This is a breaking change for TypeScript users
  * Removed `authenticated` and `succeeded` on `payment_method_details[card][three_d_secure]` on `Charge`
  * Removed `tax_percent` and `prorate` across all Billing APIs
  * Renamed `plans` to `items` on `SubscriptionSchedule`
  * Removed `display_items` on Checkout `Session`
  * Removed `save_payment_method` and `source` on `PaymentIntent` confirm, create and update. Those parameters still work in the API but are removed from the library
  * Removed `payment_method_details[bitcoin]` on `Charge`
  * Removed `unified_proration` on Billing API as this is a deprecated feature that never shipped publicly
  * Removed `plan` and `quantity` from `Subscription`, use `items` instead
  * Removed `requested_capabilities` on `Account` creation, use `capabilities` instead
  * Removed `failure_url` and `success_url` from `AccountLink`, use `refresh_url` and `return_url` instead
  * Removed `invoice.payment_succeeded` and `payment_method.card_automatically_updated` events.

Codegen for openapi 2aeb1a7

r? @richardm-stripe 
cc @stripe/api-libraries 


Patch:
diff --git a/API_VERSION b/API_VERSION
index f3688a09..085b23ef 100644
--- a/API_VERSION
+++ b/API_VERSION
@@ -1,1 +1,1 @@
-2020-03-02
+2020-08-27
diff --git a/README.md b/README.md
index a18668d6..5e95e823 100644
--- a/README.md
+++ b/README.md
@@ -67,7 +67,7 @@ and instantiate it as `new Stripe()` with the latest API version.
 ```ts
 import Stripe from 'stripe';
 const stripe = new Stripe('sk_test_...', {
-  apiVersion: '2020-03-02',
+  apiVersion: '2020-08-27',
 });
 
 const createCustomer = async () => {
diff --git a/examples/webhook-signing/typescript-node-express/express-ts.ts b/examples/webhook-signing/typescript-node-express/express-ts.ts
index 0cc330e1..09ff4e63 100644
--- a/examples/webhook-signing/typescript-node-express/express-ts.ts
+++ b/examples/webhook-signing/typescript-node-express/express-ts.ts
@@ -6,7 +6,7 @@ import env from 'dotenv';
 env.config();
 
 const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, {
-  apiVersion: '2020-03-02',
+  apiVersion: '2020-08-27',
 });
 
 const webhookSecret: string = process.env.STRIPE_WEBHOOK_SECRET;
diff --git a/package.json b/package.json
index 0e23b72f..5938782e 100644
--- a/package.json
+++ b/package.json
@@ -25,7 +25,7 @@
     "node": "^8.1 || >=10.*"
   },
   "main": "lib/stripe.js",
-  "types": "types/2020-03-02/index.d.ts",
+  "types": "types/2020-08-27/index.d.ts",
   "devDependencies": {
     "@typescript-eslint/eslint-plugin": "^2.13.0",
     "@typescript-eslint/parser": "^2.13.0",
diff --git a/types/2020-03-02/AccountLinks.d.ts b/types/2020-08-27/AccountLinks.d.ts
similarity index 90%
rename from types/2020-03-02/AccountLinks.d.ts
rename to types/2020-08-27/AccountLinks.d.ts
index d79e5660..db5ae58c 100644
--- a/types/2020-03-02/AccountLinks.d.ts
+++ b/types/2020-08-27/AccountLinks.d.ts
@@ -47,11 +47,6 @@ declare module 'stripe' {
        */
       expand?: Array<string>;
 
-      /**
-       * Alternate name for refresh_url to ensure backwards compatibility
-       */
-      failure_url?: string;
-
       /**
        * The URL that the user will be redirected to if the account link is no longer valid. Your `refresh_url` should trigger a method on your server to create a new account link using this API, with the same parameters, and redirect the user to the new account link.
        */
@@ -61,11 +56,6 @@ declare module 'stripe' {
        * The URL that the user will be redirected to upon leaving or completing the linked flow.
        */
       return_url?: string;
-
-      /**
-       * Alternate name for return_url to ensure backwards compatibility
-       */
-      success_url?: string;
     }
 
     namespace AccountLinkCreateParams {
diff --git a/types/2020-03-02/Accounts.d.ts b/types/2020-08-27/Accounts.d.ts
similarity index 98%
rename from types/2020-03-02/Accounts.d.ts
rename to types/2020-08-27/Accounts.d.ts
index f9c63219..41435962 100644
--- a/types/2020-03-02/Accounts.d.ts
+++ b/types/2020-08-27/Accounts.d.ts
@@ -499,6 +499,7 @@ declare module 'stripe' {
             | 'verification_document_id_number_missing'
             | 'verification_document_incomplete'
             | 'verification_document_invalid'
+            | 'verification_document_issue_or_expiry_date_missing'
             | 'verification_document_manipulated'
             | 'verification_document_missing_back'
             | 'verification_document_missing_front'
@@ -506,6 +507,7 @@ declare module 'stripe' {
             | 'verification_document_name_missing'
             | 'verification_document_nationality_mismatch'
             | 'verification_document_not_readable'
+            | 'verification_document_not_signed'
             | 'verification_document_not_uploaded'
             | 'verification_document_photo_mismatch'
             | 'verification_document_too_large'
@@ -517,7 +519,9 @@ declare module 'stripe' {
             | 'verification_failed_keyed_identity'
             | 'verification_failed_keyed_match'
             | 'verification_failed_name_match'
-            | 'verification_failed_other';
+            | 'verification_failed_other'
+            | 'verification_failed_tax_id_match'
+            | 'verification_failed_tax_id_not_issued';
         }
       }
 
@@ -669,17 +673,17 @@ declare module 'stripe' {
         /**
          * The Unix timestamp marking when the Stripe Services Agreement was accepted by the account representative
          */
-        date: number | null;
+        date?: number | null;
 
         /**
          * The IP address from which the Stripe Services Agreement was accepted by the account representative
          */
-        ip: string | null;
+        ip?: string | null;
 
         /**
          * The user agent of the browser from which the Stripe Services Agreement was accepted by the account representative
          */
-        user_agent: string | null;
+        user_agent?: string | null;
       }
 
       type Type = 'custom' | 'express' | 'standard';
@@ -727,7 +731,7 @@ declare module 'stripe' {
       capabilities?: AccountCreateParams.Capabilities;
 
       /**
-       * Information about the company or business. This field is null unless `business_type` is set to `company`, `government_entity`, or `non_profit`.
+       * Information about the company or business. This field is available for any `business_type`.
        */
       company?: AccountCreateParams.Company;
 
@@ -768,11 +772,6 @@ declare module 'stripe' {
        */
       metadata?: MetadataParam | null;
 
-      /**
-       * (Deprecated) Alternative to `capabilities`. The set of capabilities you want to unlock for this account. Each capability will be inactive until you have provided its specific requirements and Stripe has verified them. An account may have some of its requested capabilities be active and some be inactive.
-       */
-      requested_capabilities?: Array<AccountCreateParams.RequestedCapability>;
-
       /**
        * Options for customizing how the account functions within Stripe.
        */
@@ -1345,19 +1344,6 @@ declare module 'stripe' {
         }
       }
 
-      type RequestedCapability =
-        | 'au_becs_debit_payments'
-        | 'bacs_debit_payments'
-        | 'card_issuing'
-        | 'card_payments'
-        | 'cartes_bancaires_payments'
-        | 'fpx_payments'
-        | 'jcb_payments'
-        | 'legacy_payments'
-        | 'tax_reporting_us_1099_k'
-        | 'tax_reporting_us_1099_misc'
-        | 'transfers';
-
       interface Settings {
         /**
          * Settings used to apply the account's branding to email receipts, invoices, Checkout, and other products.
@@ -1557,7 +1543,7 @@ declare module 'stripe' {
       capabilities?: AccountUpdateParams.Capabilities;
 
       /**
-       * Information about the company or business. This field is null unless `business_type` is set to `company`, `government_entity`, or `non_profit`.
+       * Information about the company or business. This field is available for any `business_type`.
        */
       company?: AccountUpdateParams.Company;
 
@@ -1593,11 +1579,6 @@ declare module 'stripe' {
        */
       metadata?: MetadataParam | null;
 
-      /**
-       * (Deprecated) Alternative to `capabilities`. The set of capabilities you want to unlock for this account. Each capability will be inactive until you have provided its specific requirements and Stripe has verified them. An account may have some of its requested capabilities be active and some be inactive.
-       */
-      requested_capabilities?: Array<AccountUpdateParams.RequestedCapability>;
-
       /**
        * Options for customizing how the account functions within Stripe.
        */
@@ -2165,19 +2146,6 @@ declare module 'stripe' {
         }
       }
 
-      type RequestedCapability =
-        | 'au_becs_debit_payments'
-        | 'bacs_debit_payments'
-        | 'card_issuing'
-        | 'card_payments'
-        | 'cartes_bancaires_payments'
-        | 'fpx_payments'
-        | 'jcb_payments'
-        | 'legacy_payments'
-        | 'tax_reporting_us_1099_k'
-        | 'tax_reporting_us_1099_misc'
-        | 'transfers';
-
       interface Settings {
         /**
          * Settings used to apply the account's branding to email receipts, invoices, Checkout, and other products.
diff --git a/types/2020-03-02/AlipayAccounts.d.ts b/types/2020-08-27/AlipayAccounts.d.ts
similarity index 100%
rename from types/2020-03-02/AlipayAccounts.d.ts
rename to types/2020-08-27/AlipayAccounts.d.ts
diff --git a/types/2020-03-02/ApplePayDomains.d.ts b/types/2020-08-27/ApplePayDomains.d.ts
similarity index 100%
rename from types/2020-03-02/ApplePayDomains.d.ts
rename to types/2020-08-27/ApplePayDomains.d.ts
diff --git a/types/2020-03-02/ApplicationFees.d.ts b/types/2020-08-27/ApplicationFees.d.ts
similarity index 100%
rename from types/2020-03-02/ApplicationFees.d.ts
rename to types/2020-08-27/ApplicationFees.d.ts
diff --git a/types/2020-03-02/Applications.d.ts b/types/2020-08-27/Applications.d.ts
similarity index 100%
rename from types/2020-03-02/Applications.d.ts
rename to types/2020-08-27/Applications.d.ts
diff --git a/types/2020-03-02/Balance.d.ts b/types/2020-08-27/Balance.d.ts
similarity index 100%
rename from types/2020-03-02/Balance.d.ts
rename to types/2020-08-27/Balance.d.ts
diff --git a/types/2020-03-02/BalanceTransactions.d.ts b/types/2020-08-27/BalanceTransactions.d.ts
similarity index 100%
rename from types/2020-03-02/BalanceTransactions.d.ts
rename to types/2020-08-27/BalanceTransactions.d.ts
diff --git a/types/2020-03-02/BankAccounts.d.ts b/types/2020-08-27/BankAccounts.d.ts
similarity index 100%
rename from types/2020-03-02/BankAccounts.d.ts
rename to types/2020-08-27/BankAccounts.d.ts
diff --git a/types/2020-03-02/BillingPortal/Sessions.d.ts b/types/2020-08-27/BillingPortal/Sessions.d.ts
similarity index 100%
rename from types/2020-03-02/BillingPortal/Sessions.d.ts
rename to types/2020-08-27/BillingPortal/Sessions.d.ts
diff --git a/types/2020-03-02/BitcoinReceivers.d.ts b/types/2020-08-27/BitcoinReceivers.d.ts
similarity index 100%
rename from types/2020-03-02/BitcoinReceivers.d.ts
rename to types/2020-08-27/BitcoinReceivers.d.ts
diff --git a/types/2020-03-02/BitcoinTransactions.d.ts b/types/2020-08-27/BitcoinTransactions.d.ts
similarity index 100%
rename from types/2020-03-02/BitcoinTransactions.d.ts
rename to types/2020-08-27/BitcoinTransactions.d.ts
diff --git a/types/2020-03-02/Capabilities.d.ts b/types/2020-08-27/Capabilities.d.ts
similarity index 95%
rename from types/2020-03-02/Capabilities.d.ts
rename to types/2020-08-27/Capabilities.d.ts
index ee0ce72e..33e641df 100644
--- a/types/2020-03-02/Capabilities.d.ts
+++ b/types/2020-08-27/Capabilities.d.ts
@@ -115,6 +115,7 @@ declare module 'stripe' {
             | 'verification_document_id_number_missing'
             | 'verification_document_incomplete'
             | 'verification_document_invalid'
+            | 'verification_document_issue_or_expiry_date_missing'
             | 'verification_document_manipulated'
             | 'verification_document_missing_back'
             | 'verification_document_missing_front'
@@ -122,6 +123,7 @@ declare module 'stripe' {
             | 'verification_document_name_missing'
             | 'verification_document_nationality_mismatch'
             | 'verification_document_not_readable'
+            | 'verification_document_not_signed'
             | 'verification_document_not_uploaded'
             | 'verification_document_photo_mismatch'
             | 'verification_document_too_large'
@@ -133,7 +135,9 @@ declare module 'stripe' {
             | 'verification_failed_keyed_identity'
             | 'verification_failed_keyed_match'
             | 'verification_failed_name_match'
-            | 'verification_failed_other';
+            | 'verification_failed_other'
+            | 'verification_failed_tax_id_match'
+            | 'verification_failed_tax_id_not_issued';
         }
       }
 
diff --git a/types/2020-03-02/Cards.d.ts b/types/2020-08-27/Cards.d.ts
similarity index 100%
rename from types/2020-03-02/Cards.d.ts
rename to types/2020-08-27/Cards.d.ts
diff --git a/types/2020-03-02/Charges.d.ts b/types/2020-08-27/Charges.d.ts
similarity index 98%
rename from types/2020-03-02/Charges.d.ts
rename to types/2020-08-27/Charges.d.ts
index f5715dcf..6ce925a3 100644
--- a/types/2020-03-02/Charges.d.ts
+++ b/types/2020-08-27/Charges.d.ts
@@ -390,8 +390,6 @@ declare module 'stripe' {
 
         bancontact?: PaymentMethodDetails.Bancontact;
 
-        bitcoin?: PaymentMethodDetails.Bitcoin;
-
         card?: PaymentMethodDetails.Card;
 
         card_present?: PaymentMethodDetails.CardPresent;
@@ -615,20 +613,6 @@ declare module 'stripe' {
           type PreferredLanguage = 'de' | 'en' | 'fr' | 'nl';
         }
 
-        interface Bitcoin {
-          address: string | null;
-
-          amount: number | null;
-
-          amount_charged: number | null;
-
-          amount_received: number | null;
-
-          amount_returned: number | null;
-
-          refund_address: string | null;
-        }
-
         interface Card {
           /**
            * Card brand. Can be `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.
@@ -759,12 +743,6 @@ declare module 'stripe' {
           }
 
           interface ThreeDSecure {
-            /**
-             * Whether or not authentication was performed. 3D Secure will succeed
-             * without authentication when the card is not enrolled.
-             */
-            authenticated?: boolean;
-
             /**
              * For authenticated transactions: how the customer was authenticated by
              * the issuing bank.
@@ -782,11 +760,6 @@ declare module 'stripe' {
              */
             result_reason: ThreeDSecure.ResultReason | null;
 
-            /**
-             * Whether or not 3D Secure succeeded.
-             */
-            succeeded?: boolean;
-
             /**
              * The version of 3D Secure that was used.
              */
@@ -959,9 +932,9 @@ declare module 'stripe' {
           network: string | null;
 
           /**
-           * How were card details read in this transaction. Can be contact_emv, contactless_emv, magnetic_stripe_fallback, magnetic_stripe_track2, or contactless_magstripe_mode
+           * How card details were read in this transaction.
            */
-          read_method: string | null;
+          read_method: CardPresent.ReadMethod | null;
 
           /**
            * A collection of fields required to be displayed on receipts. Only required for EMV transactions.
@@ -970,6 +943,13 @@ declare module 'stripe' {
         }
 
         namespace CardPresent {
+          type ReadMethod =
+            | 'contact_emv'
+            | 'contactless_emv'
+            | 'contactless_magstripe_mode'
+            | 'magnetic_stripe_fallback'
+            | 'magnetic_stripe_track2';
+
           interface Receipt {
             /**
              * The type of account being debited or credited
@@ -1208,9 +1188,9 @@ declare module 'stripe' {
           network: string | null;
 
           /**
-           * How were card details read in this transaction. Can be contact_emv, contactless_emv, magnetic_stripe_fallback, magnetic_stripe_track2, or contactless_magstripe_mode
+           * How card details were read in this transaction.
            */
-          read_method: string | null;
+          read_method: InteracPresent.ReadMethod | null;
 
           /**
            * A collection of fields required to be displayed on receipts. Only required for EMV transactions.
@@ -1219,6 +1199,13 @@ declare module 'stripe' {
         }
 
         namespace InteracPresent {
+          type ReadMethod =
+            | 'contact_emv'
+            | 'contactless_emv'
+            | 'contactless_magstripe_mode'
+            | 'magnetic_stripe_fallback'
+            | 'magnetic_stripe_track2';
+
           interface Receipt {
             /**
              * The type of account being debited or credited
diff --git a/types/2020-03-02/Checkout/Sessions.d.ts b/types/2020-08-27/Checkout/Sessions.d.ts
similarity index 93%
rename from types/2020-03-02/Checkout/Sessions.d.ts
rename to types/2020-08-27/Checkout/Sessions.d.ts
index cefb1a58..3bd6f13c 100644
--- a/types/2020-03-02/Checkout/Sessions.d.ts
+++ b/types/2020-08-27/Checkout/Sessions.d.ts
@@ -61,7 +61,7 @@ declare module 'stripe' {
          * during the session unless an existing customer was provided when
          * the session was created.
          */
-        customer: string | Stripe.Customer | null;
+        customer: string | Stripe.Customer | Stripe.DeletedCustomer | null;
 
         /**
          * If provided, this value will be used when the Customer object is created.
@@ -72,11 +72,6 @@ declare module 'stripe' {
          */
         customer_email: string | null;
 
-        /**
-         * The line items, plans, or SKUs purchased by the customer. Prefer using `line_items`.
-         */
-        display_items?: Array<Session.DisplayItem>;
-
         /**
          * The line items purchased by the customer.
          */
@@ -156,73 +151,6 @@ declare module 'stripe' {
       namespace Session {
         type BillingAddressCollection = 'auto' | 'required';
 
-        interface DisplayItem {
-          /**
-           * Amount for the display item.
-           */
-          amount?: number;
-
-          /**
-           * Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
-           */
-          currency?: string;
-
-          custom?: DisplayItem.Custom;
-
-          /**
-           * You can now model subscriptions more flexibly using the [Prices API](https://stripe.com/docs/api#prices). 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](https://stripe.com/docs/api#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](https://stripe.com/docs/billing/subscriptions/set-up-subscription) and more about [products and prices](https://stripe.com/docs/billing/prices-guide).
-           */
-          plan?: Stripe.Plan;
-
-          /**
-           * Quantity of the display item being purchased.
-           */
-          quantity?: number;
-
-          /**
-           * Stores representations of [stock keeping units](http://en.wikipedia.org/wiki/Stock_keeping_unit).
-           * SKUs describe specific product variations, taking into account any combination of: attributes,
-           * currency, and cost. For example, a product may be a T-shirt, whereas a specific SKU represents
-           * the `size: large`, `color: red` version of that shirt.
-           *
-           * Can also be used to manage inventory.
-           *
-           * Related guide: [Tax, Shipping, and Inventory](https://stripe.com/docs/orders).
-           */
-          sku?: Stripe.Sku;
-
-          /**
-           * The type of display item. One of `custom`, `plan` or `sku`
-           */
-          type?: string;
-        }
-
-        namespace DisplayItem {
-          interface Custom {
-            /**
-             * The description of the line item.
-             */
-            description: string | null;
-
-            /**
-             * The images of the line item.
-             */
-            images: Array<string> | null;
-
-            /**
-             * The name of the line item.
-             */
-            name: string;
-          }
-        }
-
         type Locale =
           | 'auto'
           | 'bg'
diff --git a/types/2020-03-02/ConnectCollectionTransfers.d.ts b/types/2020-08-27/ConnectCollectionTransfers.d.ts
similarity index 100%
rename from types/2020-03-02/ConnectCollectionTransfers.d.ts
rename to types/2020-08-27/ConnectCollectionTransfers.d.ts
diff --git a/types/2020-03-02/CountrySpecs.d.ts b/types/2020-08-27/CountrySpecs.d.ts
similarity index 100%
rename from types/2020-03-02/CountrySpecs.d.ts
rename to types/2020-08-27/CountrySpecs.d.ts
diff --git a/types/2020-03-02/Coupons.d.ts b/types/2020-08-27/Coupons.d.ts
similarity index 100%
rename from types/2020-03-02/Coupons.d.ts
rename to types/2020-08-27/Coupons.d.ts
diff --git a/types/2020-03-02/CreditNoteLineItems.d.ts b/types/2020-08-27/CreditNoteLineItems.d.ts
similarity index 100%
rename from types/2020-03-02/CreditNoteLineItems.d.ts
rename to types/2020-08-27/CreditNoteLineItems.d.ts
diff --git a/types/2020-03-02/CreditNotes.d.ts b/types/2020-08-27/CreditNotes.d.ts
similarity index 100%
rename from types/2020-03-02/CreditNotes.d.ts
rename to types/2020-08-27/CreditNotes.d.ts
diff --git a/types/2020-03-02/CustomerBalanceTransactions.d.ts b/types/2020-08-27/CustomerBalanceTransactions.d.ts
similarity index 100%
rename from types/2020-03-02/CustomerBalanceTransactions.d.ts
rename to types/2020-08-27/CustomerBalanceTransactions.d.ts
diff --git a/types/2020-03-02/CustomerSources.d.ts b/types/2020-08-27/CustomerSources.d.ts
similarity index 100%
rename from types/2020-03-02/CustomerSources.d.ts
rename to types/2020-08-27/CustomerSources.d.ts
diff --git a/types/2020-03-02/Customers.d.ts b/types/2020-08-27/Customers.d.ts
similarity index 99%
rename from types/2020-03-02/Customers.d.ts
rename to types/2020-08-27/Customers.d.ts
index 4a7b9781..e5afab05 100644
--- a/types/2020-03-02/Customers.d.ts
+++ b/types/2020-08-27/Customers.d.ts
@@ -109,12 +109,12 @@ declare module 'stripe' {
       /**
        * The customer's payment sources, if any.
        */
-      sources: ApiList<CustomerSource> | null;
+      sources?: ApiList<CustomerSource>;
 
       /**
        * The customer's current subscriptions, if any.
        */
-      subscriptions: ApiList<Stripe.Subscription> | null;
+      subscriptions?: ApiList<Stripe.Subscription>;
 
       /**
        * Describes the customer's tax exemption status. One of `none`, `exempt`, or `reverse`. When set to `reverse`, invoice and receipt PDFs include the text **"Reverse charge"**.
@@ -124,7 +124,7 @@ declare module 'stripe' {
       /**
        * The customer's tax IDs.
        */
-      tax_ids: ApiList<Stripe.TaxId> | null;
+      tax_ids: ApiList<Stripe.TaxId>;
     }
 
     namespace Customer {
diff --git a/types/2020-03-02/Discounts.d.ts b/types/2020-08-27/Discounts.d.ts
similarity index 100%
rename from types/2020-03-02/Discounts.d.ts
rename to types/2020-08-27/Discounts.d.ts
diff --git a/types/2020-03-02/Disputes.d.ts b/types/2020-08-27/Disputes.d.ts
similarity index 100%
rename from types/2020-03-02/Disputes.d.ts
rename to types/2020-08-27/Disputes.d.ts
diff --git a/types/2020-03-02/EphemeralKeys.d.ts b/types/2020-08-27/EphemeralKeys.d.ts
similarity index 100%
rename from types/2020-03-02/EphemeralKeys.d.ts
rename to types/2020-08-27/EphemeralKeys.d.ts
diff --git a/types/2020-03-02/Events.d.ts b/types/2020-08-27/Events.d.ts
similarity index 100%
rename from types/2020-03-02/Events.d.ts
rename to types/2020-08-27/Events.d.ts
diff --git a/types/2020-03-02/ExchangeRates.d.ts b/types/2020-08-27/ExchangeRates.d.ts
similarity index 100%
rename from types/2020-03-02/ExchangeRates.d.ts
rename to types/2020-08-27/ExchangeRates.d.ts
diff --git a/types/2020-03-02/ExternalAccounts.d.ts b/types/2020-08-27/ExternalAccounts.d.ts
similarity index 100%
rename from types/2020-03-02/ExternalAccounts.d.ts
rename to types/2020-08-27/ExternalAccounts.d.ts
diff --git a/types/2020-03-02/FeeRefunds.d.ts b/types/2020-08-27/FeeRefunds.d.ts
similarity index 100%
rename from types/2020-03-02/FeeRefunds.d.ts
rename to types/2020-08-27/FeeRefunds.d.ts
diff --git a/types/2020-03-02/FileLinks.d.ts b/types/2020-08-27/FileLinks.d.ts
similarity index 100%
rename from types/2020-03-02/FileLinks.d.ts
rename to types/2020-08-27/FileLinks.d.ts
diff --git a/types/2020-03-02/Files.d.ts b/types/2020-08-27/Files.d.ts
similarity index 100%
rename from types/2020-03-02/Files.d.ts
rename to types/2020-08-27/Files.d.ts
diff --git a/types/2020-03-02/InvoiceItems.d.ts b/types/2020-08-27/InvoiceItems.d.ts
similarity index 97%
rename from types/2020-03-02/InvoiceItems.d.ts
rename to types/2020-08-27/InvoiceItems.d.ts
index 937536ad..b03de827 100644
--- a/types/2020-03-02/InvoiceItems.d.ts
+++ b/types/2020-08-27/InvoiceItems.d.ts
@@ -104,11 +104,6 @@ declare module 'stripe' {
        */
       tax_rates: Array<Stripe.TaxRate> | null;
 
-      /**
-       * For prorations this indicates whether Stripe automatically grouped multiple related debit and credit line items into a single combined line item.
-       */
-      unified_proration?: boolean;
-
       /**
        * Unit Amount (in the `currency` specified) of the invoice item.
        */
@@ -191,7 +186,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * The ID of an existing invoice to add this invoice item to. When left blank, the invoice item will be added to the next upcoming scheduled invoice. This is useful when adding invoice items in response to an invoice.created webhook. You can only add invoice items to draft invoices.
+       * The ID of an existing invoice to add this invoice item to. When left blank, the invoice item will be added to the next upcoming scheduled invoice. This is useful when adding invoice items in response to an invoice.created webhook. You can only add invoice items to draft invoices and there is a maximum of 250 items per invoice.
        */
       invoice?: string;
 
@@ -439,7 +434,7 @@ declare module 'stripe' {
 
     class InvoiceItemsResource {
       /**
-       * Creates an item to be added to a draft invoice. If no invoice is specified, the item will be on the next invoice created for the customer specified.
+       * Creates an item to be added to a draft invoice (up to 250 items per invoice). If no invoice is specified, the item will be on the next invoice created for the customer specified.
        */
       create(
         params: InvoiceItemCreateParams,
diff --git a/types/2020-03-02/InvoiceLineItems.d.ts b/types/2020-08-27/InvoiceLineItems.d.ts
similarity index 94%
rename from types/2020-03-02/InvoiceLineItems.d.ts
rename to types/2020-08-27/InvoiceLineItems.d.ts
index 4fc236ae..6a5ca45a 100644
--- a/types/2020-03-02/InvoiceLineItems.d.ts
+++ b/types/2020-08-27/InvoiceLineItems.d.ts
@@ -106,11 +106,6 @@ declare module 'stripe' {
        * A string identifying the type of the source of this line item, either an `invoiceitem` or a `subscription`.
        */
       type: InvoiceLineItem.Type;
-
-      /**
-       * For prorations this indicates whether Stripe automatically grouped multiple related debit and credit line items into a single combined line item.
-       */
-      unified_proration?: boolean;
     }
 
     namespace InvoiceLineItem {
@@ -232,11 +227,6 @@ declare module 'stripe' {
         InvoiceLineItemListUpcomingParams.SubscriptionItem
       >;
 
-      /**
-       * This field has been renamed to `subscription_proration_behavior`. `subscription_prorate=true` can be replaced with `subscription_proration_behavior=create_prorations` and `subscription_prorate=false` can be replaced with `subscription_proration_behavior=none`.
-       */
-      subscription_prorate?: boolean;
-
       /**
        * Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. Valid values are `create_prorations`, `none`, or `always_invoice`.
        *
@@ -247,7 +237,7 @@ declare module 'stripe' {
       subscription_proration_behavior?: InvoiceLineItemListUpcomingParams.SubscriptionProrationBehavior;
 
       /**
-       * If previewing an update to a subscription, and doing proration, `subscription_proration_date` forces the proration to be calculated as though the update was done at the specified time. The time given must be within the current subscription period, and cannot be before the subscription was on its current plan. If set, `subscription`, and one of `subscription_items`, or `subscription_trial_end` are required. Also, `subscription_proration` cannot be set to false.
+       * If previewing an update to a subscription, and doing proration, `subscription_proration_date` forces the proration to be calculated as though the update was done at the specified time. The time given must be within the current subscription period, and cannot be before the subscription was on its current plan. If set, `subscription`, and one of `subscription_items`, or `subscription_trial_end` are required. Also, `subscription_proration_behavior` cannot be set to 'none'.
        */
       subscription_proration_date?: number;
 
@@ -256,11 +246,6 @@ declare module 'stripe' {
        */
       subscription_start_date?: number;
 
-      /**
-       * If provided, the invoice returned will preview updating or creating a subscription with that tax percent. If set, one of `subscription_items` or `subscription` is required. This field has been deprecated and will be removed in a future API version, for further information view the [migration docs](https://stripe.com/docs/billing/migration/taxes) for `tax_rates`.
-       */
-      subscription_tax_percent?: number;
-
       /**
        * If provided, the invoice returned will preview updating or creating a subscription with that trial end. If set, one of `subscription_items` or `subscription` is required.
        */
diff --git a/types/2020-03-02/Invoices.d.ts b/types/2020-08-27/Invoices.d.ts
similarity index 96%
rename from types/2020-03-02/Invoices.d.ts
rename to types/2020-08-27/Invoices.d.ts
index 22f59d0e..764483d3 100644
--- a/types/2020-03-02/Invoices.d.ts
+++ b/types/2020-08-27/Invoices.d.ts
@@ -286,11 +286,6 @@ declare module 'stripe' {
        */
       tax: number | null;
 
-      /**
-       * This percentage of the subtotal has been added to the total amount of the invoice, including invoice line items and discounts. This field is inherited from the subscription's `tax_percent` field, but can be changed before the invoice is paid. This field defaults to null.
-       */
-      tax_percent: number | null;
-
       threshold_reason?: Invoice.ThresholdReason;
 
       /**
@@ -621,11 +616,6 @@ declare module 'stripe' {
        */
       subscription?: string;
 
-      /**
-       * The percent tax rate applied to the invoice, represented as a decimal number. This field has been deprecated and will be removed in a future API version, for further information view the [migration docs](https://stripe.com/docs/billing/migration/taxes) for `tax_rates`.
-       */
-      tax_percent?: number;
-
       /**
        * If specified, the funds from the invoice will be transferred to the destination and the ID of the resulting transfer will be found on the invoice's charge.
        */
@@ -755,11 +745,6 @@ declare module 'stripe' {
        */
       statement_descriptor?: string;
 
-      /**
-       * The percent tax rate applied to the invoice, represented as a non-negative decimal number (with at most four decimal places) between 0 and 100. To unset a previously-set value, pass an empty string. This field can be updated only on `draft` invoices. This field has been deprecated and will be removed in a future API version, for further information view the [migration docs](https://stripe.com/docs/billing/migration/taxes) for `tax_rates`.
-       */
-      tax_percent?: number | null;
-
       /**
        * If specified, the funds from the invoice will be transferred to the destination and the ID of the resulting transfer will be found on the invoice's charge. This will be unset if you POST an empty value.
        */
@@ -873,17 +858,17 @@ declare module 'stripe' {
       /**
        * In cases where the source used to pay the invoice has insufficient funds, passing `forgive=true` controls whether a charge should be attempted for the full amount available on the source, up to the amount to fully pay the invoice. This effectively forgives the difference between the amount available on the source and the amount due.
        *
-       * Passing `forgive=false` will fail the charge if the source hasn't been pre-funded with the right amount. An example for this case is with ACH Credit Transfers and wires: if the amount wired is less than the amount due by a small amount, you might want to forgive the difference.
+       * Passing `forgive=false` will fail the charge if the source hasn't been pre-funded with the right amount. An example for this case is with ACH Credit Transfers and wires: if the amount wired is less than the amount due by a small amount, you might want to forgive the difference. Defaults to `false`.
        */
       forgive?: boolean;
 
       /**
-       * Indicates if a customer is on or off-session while an invoice payment is attempted.
+       * Indicates if a customer is on or off-session while an invoice payment is attempted. Defaults to `true` (off-session).
        */
       off_session?: boolean;
 
       /**
-       * Boolean representing whether an invoice is paid outside of Stripe. This will result in no charge being made.
+       * Boolean representing whether an invoice is paid outside of Stripe. This will result in no charge being made. Defaults to `false`.
        */
       paid_out_of_band?: boolean;
 
@@ -965,11 +950,6 @@ declare module 'stripe' {
         InvoiceRetrieveUpcomingParams.SubscriptionItem
       >;
 
-      /**
-       * This field has been renamed to `subscription_proration_behavior`. `subscription_prorate=true` can be replaced with `subscription_proration_behavior=create_prorations` and `subscription_prorate=false` can be replaced with `subscription_proration_behavior=none`.
-       */
-      subscription_prorate?: boolean;
-
       /**
        * Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. Valid values are `create_prorations`, `none`, or `always_invoice`.
        *
@@ -980,7 +960,7 @@ declare module 'stripe' {
       subscription_proration_behavior?: InvoiceRetrieveUpcomingParams.SubscriptionProrationBehavior;
 
       /**
-       * If previewing an update to a subscription, and doing proration, `subscription_proration_date` forces the proration to be calculated as though the update was done at the specified time. The time given must be within the current subscription period, and cannot be before the subscription was on its current plan. If set, `subscription`, and one of `subscription_items`, or `subscription_trial_end` are required. Also, `subscription_proration` cannot be set to false.
+       * If previewing an update to a subscription, and doing proration, `subscription_proration_date` forces the proration to be calculated as though the update was done at the specified time. The time given must be within the current subscription period, and cannot be before the subscription was on its current plan. If set, `subscription`, and one of `subscription_items`, or `subscription_trial_end` are required. Also, `subscription_proration_behavior` cannot be set to 'none'.
        */
       subscription_proration_date?: number;
 
@@ -989,11 +969,6 @@ declare module 'stripe' {
        */
       subscription_start_date?: number;
 
-      /**
-       * If provided, the invoice returned will preview updating or creating a subscription with that tax percent. If set, one of `subscription_items` or `subscription` is required. This field has been deprecated and will be removed in a future API version, for further information view the [migration docs](https://stripe.com/docs/billing/migration/taxes) for `tax_rates`.
-       */
-      subscription_tax_percent?: number;
-
       /**
        * If provided, the invoice returned will preview updating or creating a subscription with that trial end. If set, one of `subscription_items` or `subscription` is required.
        */
diff --git a/types/2020-03-02/IssuerFraudRecords.d.ts b/types/2020-08-27/IssuerFraudRecords.d.ts
similarity index 100%
rename from types/2020-03-02/IssuerFraudRecords.d.ts
rename to types/2020-08-27/IssuerFraudRecords.d.ts
diff --git a/types/2020-03-02/Issuing/Authorizations.d.ts b/types/2020-08-27/Issuing/Authorizations.d.ts
similarity index 100%
rename from types/2020-03-02/Issuing/Authorizations.d.ts
rename to types/2020-08-27/Issuing/Authorizations.d.ts
diff --git a/types/2020-03-02/Issuing/CardDetails.d.ts b/types/2020-08-27/Issuing/CardDetails.d.ts
similarity index 100%
rename from types/2020-03-02/Issuing/CardDetails.d.ts
rename to types/2020-08-27/Issuing/CardDetails.d.ts
diff --git a/types/2020-03-02/Issuing/Cardholders.d.ts b/types/2020-08-27/Issuing/Cardholders.d.ts
similarity index 100%
rename from types/2020-03-02/Issuing/Cardholders.d.ts
rename to types/2020-08-27/Issuing/Cardholders.d.ts
diff --git a/types/2020-03-02/Issuing/Cards.d.ts b/types/2020-08-27/Issuing/Cards.d.ts
similarity index 100%
rename from types/2020-03-02/Issuing/Cards.d.ts
rename to types/2020-08-27/Issuing/Cards.d.ts
diff --git a/types/2020-03-02/Issuing/Disputes.d.ts b/types/2020-08-27/Issuing/Disputes.d.ts
similarity index 87%
rename from types/2020-03-02/Issuing/Disputes.d.ts
rename to types/2020-08-27/Issuing/Disputes.d.ts
index 503f527d..45cadfa7 100644
--- a/types/2020-03-02/Issuing/Disputes.d.ts
+++ b/types/2020-08-27/Issuing/Disputes.d.ts
@@ -17,7 +17,7 @@ declare module 'stripe' {
         object: 'issuing.dispute';
 
         /**
-         * List of balance transactions associated with this dispute.
+         * List of balance transactions associated with the dispute.
          */
         balance_transactions: Array<Stripe.BalanceTransaction> | null;
 
@@ -72,7 +72,7 @@ declare module 'stripe' {
 
       class DisputesResource {
         /**
-         * Creates an Issuing Dispute object.
+         * Creates an Issuing Dispute object. Individual pieces of evidence within the evidence object are optional at this point. Stripe only validates that required evidence is present during submission. Refer to [Dispute reasons and evidence](https://stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence) for more details about evidence requirements.
          */
         create(
           params?: DisputeCreateParams,
@@ -96,7 +96,7 @@ declare module 'stripe' {
         ): Promise<Stripe.Response<Stripe.Issuing.Dispute>>;
 
         /**
-         * Updates the specified Issuing Dispute object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+         * Updates the specified Issuing Dispute object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Properties on the evidence object can be unset by passing in an empty string.
          */
         update(
           id: string,
diff --git a/types/2020-03-02/Issuing/Transactions.d.ts b/types/2020-08-27/Issuing/Transactions.d.ts
similarity index 100%
rename from types/2020-03-02/Issuing/Transactions.d.ts
rename to types/2020-08-27/Issuing/Transactions.d.ts
diff --git a/types/2020-03-02/LineItems.d.ts b/types/2020-08-27/LineItems.d.ts
similarity index 100%
rename from types/2020-03-02/LineItems.d.ts
rename to types/2020-08-27/LineItems.d.ts
diff --git a/types/2020-03-02/LoginLinks.d.ts b/types/2020-08-27/LoginLinks.d.ts
similarity index 100%
rename from types/2020-03-02/LoginLinks.d.ts
rename to types/2020-08-27/LoginLinks.d.ts
diff --git a/types/2020-03-02/Mandates.d.ts b/types/2020-08-27/Mandates.d.ts
similarity index 100%
rename from types/2020-03-02/Mandates.d.ts
rename to types/2020-08-27/Mandates.d.ts
diff --git a/types/2020-03-02/OrderItems.d.ts b/types/2020-08-27/OrderItems.d.ts
similarity index 100%
rename from types/2020-03-02/OrderItems.d.ts
rename to types/2020-08-27/OrderItems.d.ts
diff --git a/types/2020-03-02/OrderReturns.d.ts b/types/2020-08-27/OrderReturns.d.ts
similarity index 100%
rename from types/2020-03-02/OrderReturns.d.ts
rename to types/2020-08-27/OrderReturns.d.ts
diff --git a/types/2020-03-02/Orders.d.ts b/types/2020-08-27/Orders.d.ts
similarity index 100%
rename from types/2020-03-02/Orders.d.ts
rename to types/2020-08-27/Orders.d.ts
diff --git a/types/2020-03-02/PaymentIntents.d.ts b/types/2020-08-27/PaymentIntents.d.ts
similarity index 95%
rename from types/2020-03-02/PaymentIntents.d.ts
rename to types/2020-08-27/PaymentIntents.d.ts
index 5ddee908..cb52f2fb 100644
--- a/types/2020-03-02/PaymentIntents.d.ts
+++ b/types/2020-08-27/PaymentIntents.d.ts
@@ -644,15 +644,6 @@ declare module 'stripe' {
        */
       return_url?: string;
 
-      /**
-       * If the PaymentIntent has a `payment_method` and a `customer` or if you're attaching a payment method to the PaymentIntent in this request, you can pass `save_payment_method=true` to save the payment method to the customer immediately.
-       *
-       * If the payment method is already saved to a customer, this parameter does nothing. If this type of payment method cannot be saved to a customer, the request will error.
-       *
-       * Saving a payment method using this parameter is _not recommended_ because it will save the payment method even if it cannot be charged (e.g. the user made a typo). To ensure that only payment methods which are likely to be chargeable are saved to a customer, use the (setup_future_usage)[#payment_intents/object#payment_intent_object-setup_future_usage] property, which saves the payment method after the PaymentIntent has been confirmed and all required actions by the customer are complete.
-       */
-      save_payment_method?: boolean;
-
       /**
        * Indicates that you intend to make future payments with this PaymentIntent's payment method.
        *
@@ -667,11 +658,6 @@ declare module 'stripe' {
        */
       shipping?: PaymentIntentCreateParams.Shipping;
 
-      /**
-       * This is a legacy field that will be removed in the future. It is the ID of the Source object to attach to this PaymentIntent. Please use the `payment_method` field instead, which also supports Cards and [compatible Source](https://stripe.com/docs/payments/payment-methods#compatibility) objects.If neither the `payment_method` parameter nor the `source` parameter are provided with `confirm=true`, this field will be automatically populated with `customer.default_source` to improve the migration experience for users of the Charges API. We recommend that you explicitly provide the `source` or `payment_method` parameter going forward.
-       */
-      source?: string;
-
       /**
        * For non-card charges, you can use this value as the complete description that appears on your customers' statements. Must contain at least one letter, maximum 22 characters.
        */
@@ -860,7 +846,7 @@ declare module 'stripe' {
           /**
            * Billing address.
            */
-          address?: BillingDetails.Address;
+          address?: BillingDetails.Address | null;
 
           /**
            * Email address.
@@ -993,7 +979,6 @@ declare module 'stripe' {
           | 'au_becs_debit'
           | 'bacs_debit'
           | 'bancontact'
-          | 'card_present'
           | 'eps'
           | 'fpx'
           | 'giropay'
@@ -1241,15 +1226,6 @@ declare module 'stripe' {
        */
       receipt_email?: string | null;
 
-      /**
-       * If the PaymentIntent has a `payment_method` and a `customer` or if you're attaching a payment method to the PaymentIntent in this request, you can pass `save_payment_method=true` to save the payment method to the customer immediately.
-       *
-       * If the payment method is already saved to a customer, this parameter does nothing. If this type of payment method cannot be saved to a customer, the request will error.
-       *
-       * Saving a payment method using this parameter is _not recommended_ because it will save the payment method even if it cannot be charged (e.g. the user made a typo). To ensure that only payment methods which are likely to be chargeable are saved to a customer, use the (setup_future_usage)[#payment_intents/object#payment_intent_object-setup_future_usage] property, which saves the payment method after the PaymentIntent has been confirmed and all required actions by the customer are complete.
-       */
-      save_payment_method?: boolean;
-
       /**
        * Indicates that you intend to make future payments with this PaymentIntent's payment method.
        *
@@ -1266,11 +1242,6 @@ declare module 'stripe' {
        */
       shipping?: PaymentIntentUpdateParams.Shipping | null;
 
-      /**
-       * This is a legacy field that will be removed in the future. It is the ID of the Source object to attach to this PaymentIntent. Please use the `payment_method` field instead, which also supports Cards and [compatible Source](https://stripe.com/docs/payments/payment-methods#compatibility) objects.
-       */
-      source?: string;
-
       /**
        * For non-card charges, you can use this value as the complete description that appears on your customers' statements. Must contain at least one letter, maximum 22 characters.
        */
@@ -1398,7 +1369,7 @@ declare module 'stripe' {
           /**
            * Billing address.
            */
-          address?: BillingDetails.Address;
+          address?: BillingDetails.Address | null;
 
           /**
            * Email address.
@@ -1531,7 +1502,6 @@ declare module 'stripe' {
           | 'au_becs_debit'
           | 'bacs_debit'
           | 'bancontact'
-          | 'card_present'
           | 'eps'
           | 'fpx'
           | 'giropay'
@@ -1822,15 +1792,6 @@ declare module 'stripe' {
        */
       return_url?: string;
 
-      /**
-       * If the PaymentIntent has a `payment_method` and a `customer` or if you're attaching a payment method to the PaymentIntent in this request, you can pass `save_payment_method=true` to save the payment method to the customer immediately.
-       *
-       * If the payment method is already saved to a customer, this parameter does nothing. If this type of payment method cannot be saved to a customer, the request will error.
-       *
-       * Saving a payment method using this parameter is _not recommended_ because it will save the payment method even if it cannot be charged (e.g. the user made a typo). To ensure that only payment methods which are likely to be chargeable are saved to a customer, use the (setup_future_usage)[#payment_intents/object#payment_intent_object-setup_future_usage] property, which saves the payment method after the PaymentIntent has been confirmed and all required actions by the customer are complete.
-       */
-      save_payment_method?: boolean;
-
       /**
        * Indicates that you intend to make future payments with this PaymentIntent's payment method.
        *
@@ -1847,11 +1808,6 @@ declare module 'stripe' {
        */
       shipping?: PaymentIntentConfirmParams.Shipping | null;
 
-      /**
-       * This is a legacy field that will be removed in the future. It is the ID of the Source object to attach to this PaymentIntent. Please use the `payment_method` field instead, which also supports Cards and [compatible Source](https://stripe.com/docs/payments/payment-methods#compatibility) objects.
-       */
-      source?: string;
-
       /**
        * Set to `true` only when using manual confirmation and the iOS or Android SDKs to handle additional authentication steps.
        */
@@ -2050,7 +2006,7 @@ declare module 'stripe' {
           /**
            * Billing address.
            */
-          address?: BillingDetails.Address;
+          address?: BillingDetails.Address | null;
 
           /**
            * Email address.
@@ -2183,7 +2139,6 @@ declare module 'stripe' {
           | 'au_becs_debit'
           | 'bacs_debit'
           | 'bancontact'
-          | 'card_present'
           | 'eps'
           | 'fpx'
           | 'giropay'
diff --git a/types/2020-03-02/PaymentMethods.d.ts b/types/2020-08-27/PaymentMethods.d.ts
similarity index 99%
rename from types/2020-03-02/PaymentMethods.d.ts
rename to types/2020-08-27/PaymentMethods.d.ts
index 93242377..f596d016 100644
--- a/types/2020-03-02/PaymentMethods.d.ts
+++ b/types/2020-08-27/PaymentMethods.d.ts
@@ -449,7 +449,6 @@ declare module 'stripe' {
         | 'bacs_debit'
         | 'bancontact'
         | 'card'
-        | 'card_present'
         | 'eps'
         | 'fpx'
         | 'giropay'
@@ -583,7 +582,7 @@ declare module 'stripe' {
         /**
          * Billing address.
          */
-        address?: BillingDetails.Address;
+        address?: BillingDetails.Address | null;
 
         /**
          * Email address.
@@ -743,7 +742,6 @@ declare module 'stripe' {
         | 'bacs_debit'
         | 'bancontact'
         | 'card'
-        | 'card_present'
         | 'eps'
         | 'fpx'
         | 'giropay'
@@ -798,7 +796,7 @@ declare module 'stripe' {
         /**
          * Billing address.
          */
-        address?: BillingDetails.Address;
+        address?: BillingDetails.Address | null;
 
         /**
          * Email address.
diff --git a/types/2020-03-02/Payouts.d.ts b/types/2020-08-27/Payouts.d.ts
similarity index 100%
rename from types/2020-03-02/Payouts.d.ts
rename to types/2020-08-27/Payouts.d.ts
diff --git a/types/2020-03-02/Persons.d.ts b/types/2020-08-27/Persons.d.ts
similarity index 99%
rename from types/2020-03-02/Persons.d.ts
rename to types/2020-08-27/Persons.d.ts
index 4a6f3c5b..d0a00078 100644
--- a/types/2020-03-02/Persons.d.ts
+++ b/types/2020-08-27/Persons.d.ts
@@ -313,6 +313,7 @@ declare module 'stripe' {
             | 'verification_document_id_number_missing'
             | 'verification_document_incomplete'
             | 'verification_document_invalid'
+            | 'verification_document_issue_or_expiry_date_missing'
             | 'verification_document_manipulated'
             | 'verification_document_missing_back'
             | 'verification_document_missing_front'
@@ -320,6 +321,7 @@ declare module 'stripe' {
             | 'verification_document_name_missing'
             | 'verification_document_nationality_mismatch'
             | 'verification_document_not_readable'
+            | 'verification_document_not_signed'
             | 'verification_document_not_uploaded'
             | 'verification_document_photo_mismatch'
             | 'verification_document_too_large'
@@ -331,7 +333,9 @@ declare module 'stripe' {
             | 'verification_failed_keyed_identity'
             | 'verification_failed_keyed_match'
             | 'verification_failed_name_match'
-            | 'verification_failed_other';
+            | 'verification_failed_other'
+            | 'verification_failed_tax_id_match'
+            | 'verification_failed_tax_id_not_issued';
         }
       }
 
diff --git a/types/2020-03-02/Plans.d.ts b/types/2020-08-27/Plans.d.ts
similarity index 99%
rename from types/2020-03-02/Plans.d.ts
rename to types/2020-08-27/Plans.d.ts
index b497b1f4..a4469cf6 100644
--- a/types/2020-03-02/Plans.d.ts
+++ b/types/2020-08-27/Plans.d.ts
@@ -85,7 +85,7 @@ declare module 'stripe' {
       /**
        * Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`.
        */
-      tiers: Array<Plan.Tier> | null;
+      tiers?: Array<Plan.Tier>;
 
       /**
        * 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.
diff --git a/types/2020-03-02/PlatformTaxFees.d.ts b/types/2020-08-27/PlatformTaxFees.d.ts
similarity index 100%
rename from types/2020-03-02/PlatformTaxFees.d.ts
rename to types/2020-08-27/PlatformTaxFees.d.ts
diff --git a/types/2020-03-02/Prices.d.ts b/types/2020-08-27/Prices.d.ts
similarity index 100%
rename from types/2020-03-02/Prices.d.ts
rename to types/2020-08-27/Prices.d.ts
diff --git a/types/2020-03-02/Products.d.ts b/types/2020-08-27/Products.d.ts
similarity index 100%
rename from types/2020-03-02/Products.d.ts
rename to types/2020-08-27/Products.d.ts
diff --git a/types/2020-03-02/PromotionCodes.d.ts b/types/2020-08-27/PromotionCodes.d.ts
similarity index 100%
rename from types/2020-03-02/PromotionCodes.d.ts
rename to types/2020-08-27/PromotionCodes.d.ts
diff --git a/types/2020-03-02/Radar/EarlyFraudWarnings.d.ts b/types/2020-08-27/Radar/EarlyFraudWarnings.d.ts
similarity index 100%
rename from types/2020-03-02/Radar/EarlyFraudWarnings.d.ts
rename to types/2020-08-27/Radar/EarlyFraudWarnings.d.ts
diff --git a/types/2020-03-02/Radar/ValueListItems.d.ts b/types/2020-08-27/Radar/ValueListItems.d.ts
similarity index 100%
rename from types/2020-03-02/Radar/ValueListItems.d.ts
rename to types/2020-08-27/Radar/ValueListItems.d.ts
diff --git a/types/2020-03-02/Radar/ValueLists.d.ts b/types/2020-08-27/Radar/ValueLists.d.ts
similarity index 100%
rename from types/2020-03-02/Radar/ValueLists.d.ts
rename to types/2020-08-27/Radar/ValueLists.d.ts
diff --git a/types/2020-03-02/Recipients.d.ts b/types/2020-08-27/Recipients.d.ts
similarity index 100%
rename from types/2020-03-02/Recipients.d.ts
rename to types/2020-08-27/Recipients.d.ts
diff --git a/types/2020-03-02/Refunds.d.ts b/types/2020-08-27/Refunds.d.ts
similarity index 100%
rename from types/2020-03-02/Refunds.d.ts
rename to types/2020-08-27/Refunds.d.ts
diff --git a/types/2020-03-02/Reporting/ReportRuns.d.ts b/types/2020-08-27/Reporting/ReportRuns.d.ts
similarity index 100%
rename from types/2020-03-02/Reporting/ReportRuns.d.ts
rename to types/2020-08-27/Reporting/ReportRuns.d.ts
diff --git a/types/2020-03-02/Reporting/ReportTypes.d.ts b/types/2020-08-27/Reporting/ReportTypes.d.ts
similarity index 100%
rename from types/2020-03-02/Reporting/ReportTypes.d.ts
rename to types/2020-08-27/Reporting/ReportTypes.d.ts
diff --git a/types/2020-03-02/ReserveTransactions.d.ts b/types/2020-08-27/ReserveTransactions.d.ts
similarity index 100%
rename from types/2020-03-02/ReserveTransactions.d.ts
rename to types/2020-08-27/ReserveTransactions.d.ts
diff --git a/types/2020-03-02/Reviews.d.ts b/types/2020-08-27/Reviews.d.ts
similarity index 100%
rename from types/2020-03-02/Reviews.d.ts
rename to types/2020-08-27/Reviews.d.ts
diff --git a/types/2020-03-02/SKUs.d.ts b/types/2020-08-27/SKUs.d.ts
similarity index 100%
rename from types/2020-03-02/SKUs.d.ts
rename to types/2020-08-27/SKUs.d.ts
diff --git a/types/2020-03-02/SetupIntents.d.ts b/types/2020-08-27/SetupIntents.d.ts
similarity index 100%
rename from types/2020-03-02/SetupIntents.d.ts
rename to types/2020-08-27/SetupIntents.d.ts
diff --git a/types/2020-03-02/Sigma/ScheduledQueryRuns.d.ts b/types/2020-08-27/Sigma/ScheduledQueryRuns.d.ts
similarity index 100%
rename from types/2020-03-02/Sigma/ScheduledQueryRuns.d.ts
rename to types/2020-08-27/Sigma/ScheduledQueryRuns.d.ts
diff --git a/types/2020-03-02/SourceMandateNotifications.d.ts b/types/2020-08-27/SourceMandateNotifications.d.ts
similarity index 100%
rename from types/2020-03-02/SourceMandateNotifications.d.ts
rename to types/2020-08-27/SourceMandateNotifications.d.ts
diff --git a/types/2020-03-02/SourceTransactions.d.ts b/types/2020-08-27/SourceTransactions.d.ts
similarity index 100%
rename from types/2020-03-02/SourceTransactions.d.ts
rename to types/2020-08-27/SourceTransactions.d.ts
diff --git a/types/2020-03-02/Sources.d.ts b/types/2020-08-27/Sources.d.ts
similarity index 100%
rename from types/2020-03-02/Sources.d.ts
rename to types/2020-08-27/Sources.d.ts
diff --git a/types/2020-03-02/SubscriptionItems.d.ts b/types/2020-08-27/SubscriptionItems.d.ts
similarity index 96%
rename from types/2020-03-02/SubscriptionItems.d.ts
rename to types/2020-08-27/SubscriptionItems.d.ts
index a3f61068..bc7f2b3c 100644
--- a/types/2020-03-02/SubscriptionItems.d.ts
+++ b/types/2020-08-27/SubscriptionItems.d.ts
@@ -144,11 +144,6 @@ declare module 'stripe' {
        */
       price_data?: SubscriptionItemCreateParams.PriceData;
 
-      /**
-       * This field has been renamed to `proration_behavior`. `prorate=true` can be replaced with `proration_behavior=create_prorations` and `prorate=false` can be replaced with `proration_behavior=none`.
-       */
-      prorate?: boolean;
-
       /**
        * Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. Valid values are `create_prorations`, `none`, or `always_invoice`.
        *
@@ -287,11 +282,6 @@ declare module 'stripe' {
        */
       price_data?: SubscriptionItemUpdateParams.PriceData;
 
-      /**
-       * This field has been renamed to `proration_behavior`. `prorate=true` can be replaced with `proration_behavior=create_prorations` and `prorate=false` can be replaced with `proration_behavior=none`.
-       */
-      prorate?: boolean;
-
       /**
        * Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. Valid values are `create_prorations`, `none`, or `always_invoice`.
        *
@@ -396,11 +386,6 @@ declare module 'stripe' {
        */
       clear_usage?: boolean;
 
-      /**
-       * This field has been renamed to `proration_behavior`. `prorate=true` can be replaced with `proration_behavior=create_prorations` and `prorate=false` can be replaced with `proration_behavior=none`.
-       */
-      prorate?: boolean;
-
       /**
        * Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. Valid values are `create_prorations`, `none`, or `always_invoice`.
        *
diff --git a/types/2020-03-02/SubscriptionSchedules.d.ts b/types/2020-08-27/SubscriptionSchedules.d.ts
similarity index 94%
rename from types/2020-03-02/SubscriptionSchedules.d.ts
rename to types/2020-08-27/SubscriptionSchedules.d.ts
index aa6dc205..a3c9a4b1 100644
--- a/types/2020-03-02/SubscriptionSchedules.d.ts
+++ b/types/2020-08-27/SubscriptionSchedules.d.ts
@@ -123,7 +123,7 @@ declare module 'stripe' {
         invoice_settings: DefaultSettings.InvoiceSettings | null;
 
         /**
-         * 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.
+         * The account (if any) the associated 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.
          */
         transfer_data: DefaultSettings.TransferData | null;
       }
@@ -219,14 +219,14 @@ declare module 'stripe' {
         invoice_settings: Phase.InvoiceSettings | null;
 
         /**
-         * Plans to subscribe during this phase of the subscription schedule.
+         * Subscription items to configure the subscription to during this phase of the subscription schedule.
          */
-        plans: Array<Phase.Plan>;
+        items: Array<Phase.Item>;
 
         /**
          * If the subscription schedule will prorate when transitioning to this phase. Possible values are `create_prorations` and `none`.
          */
-        proration_behavior: Phase.ProrationBehavior | null;
+        proration_behavior: Phase.ProrationBehavior;
 
         /**
          * The start of this phase of the subscription schedule.
@@ -234,12 +234,7 @@ declare module 'stripe' {
         start_date: number;
 
         /**
-         * If provided, each invoice created during this phase of the subscription schedule will apply the tax rate, increasing the amount billed to the customer.
-         */
-        tax_percent: number | null;
-
-        /**
-         * 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.
+         * The account (if any) the associated 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.
          */
         transfer_data: Phase.TransferData | null;
 
@@ -285,11 +280,11 @@ declare module 'stripe' {
           days_until_due: number | null;
         }
 
-        interface Plan {
+        interface Item {
           /**
            * Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period
            */
-          billing_thresholds: Plan.BillingThresholds | null;
+          billing_thresholds: Item.BillingThresholds | null;
 
           /**
            * ID of the plan to which the customer should be subscribed.
@@ -304,7 +299,7 @@ declare module 'stripe' {
           /**
            * Quantity of the plan to which the customer should be subscribed.
            */
-          quantity: number | null;
+          quantity?: number;
 
           /**
            * 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`.
@@ -312,7 +307,7 @@ declare module 'stripe' {
           tax_rates?: Array<Stripe.TaxRate> | null;
         }
 
-        namespace Plan {
+        namespace Item {
           interface BillingThresholds {
             /**
              * Usage threshold that triggers the subscription to create an invoice
@@ -417,7 +412,7 @@ declare module 'stripe' {
         invoice_settings?: DefaultSettings.InvoiceSettings;
 
         /**
-         * The data with which to automatically create a Transfer for each of the subscription's invoices.
+         * The data with which to automatically create a Transfer for each of the associated subscription's invoices.
          */
         transfer_data?: DefaultSettings.TransferData | null;
       }
@@ -513,14 +508,14 @@ declare module 'stripe' {
         invoice_settings?: Phase.InvoiceSettings;
 
         /**
-         * Integer representing the multiplier applied to the price interval. For example, `iterations=2` applied to a price with `interval=month` and `interval_count=3` results in a phase of duration `2 * 3 months = 6 months`. If set, `end_date` must not be set.
+         * List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
          */
-        iterations?: number;
+        items: Array<Phase.Item>;
 
         /**
-         * List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
+         * Integer representing the multiplier applied to the price interval. For example, `iterations=2` applied to a price with `interval=month` and `interval_count=3` results in a phase of duration `2 * 3 months = 6 months`. If set, `end_date` must not be set.
          */
-        plans: Array<Phase.Plan>;
+        iterations?: number;
 
         /**
          * If a subscription schedule will create prorations when transitioning to this phase. Possible values are `create_prorations` or `none`, and the default value is `create_prorations`. See [Prorations](https://stripe.com/docs/billing/subscriptions/prorations).
@@ -528,12 +523,7 @@ declare module 'stripe' {
         proration_behavior?: Phase.ProrationBehavior;
 
         /**
-         * A non-negative decimal (with at most four decimal places) between 0 and 100. This represents the percentage of the subscription invoice subtotal that will be calculated and added as tax to the final amount in each billing period during thise phase of the schedule. For example, a price which charges $10/month with a `tax_percent` of `20.0` will charge $12 per invoice. To unset a previously-set value, pass an empty string. This field has been deprecated and will be removed in a future API version, for further information view the [migration docs](https://stripe.com/docs/billing/migration/taxes) for `tax_rates`.
-         */
-        tax_percent?: number;
-
-        /**
-         * The data with which to automatically create a Transfer for each of the subscription's invoices.
+         * The data with which to automatically create a Transfer for each of the associated subscription's invoices.
          */
         transfer_data?: Phase.TransferData;
 
@@ -613,11 +603,11 @@ declare module 'stripe' {
           days_until_due?: number;
         }
 
-        interface Plan {
+        interface Item {
           /**
            * 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.
            */
-          billing_thresholds?: Plan.BillingThresholds | null;
+          billing_thresholds?: Item.BillingThresholds | null;
 
           /**
            * The plan ID to subscribe to. You may specify the same ID in `plan` and `price`.
@@ -632,7 +622,7 @@ declare module 'stripe' {
           /**
            * Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
            */
-          price_data?: Plan.PriceData;
+          price_data?: Item.PriceData;
 
           /**
            * Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`.
@@ -645,7 +635,7 @@ declare module 'stripe' {
           tax_rates?: Array<string> | null;
         }
 
-        namespace Plan {
+        namespace Item {
           interface BillingThresholds {
             /**
              * Usage threshold that triggers the subscription to advance to a new billing period
@@ -751,11 +741,6 @@ declare module 'stripe' {
        */
       phases?: Array<SubscriptionScheduleUpdateParams.Phase>;
 
-      /**
-       * This field has been renamed to `proration_behavior`. `prorate=true` can be replaced with `proration_behavior=create_prorations` and `prorate=false` can be replaced with `proration_behavior=none`.
-       */
-      prorate?: boolean;
-
       /**
        * If the update changes the current phase, indicates if the changes should be prorated. Possible values are `create_prorations` or `none`, and the default value is `create_prorations`.
        */
@@ -790,7 +775,7 @@ declare module 'stripe' {
         invoice_settings?: DefaultSettings.InvoiceSettings;
 
         /**
-         * The data with which to automatically create a Transfer for each of the subscription's invoices.
+         * The data with which to automatically create a Transfer for each of the associated subscription's invoices.
          */
         transfer_data?: DefaultSettings.TransferData | null;
       }
@@ -886,14 +871,14 @@ declare module 'stripe' {
         invoice_settings?: Phase.InvoiceSettings;
 
         /**
-         * Integer representing the multiplier applied to the price interval. For example, `iterations=2` applied to a price with `interval=month` and `interval_count=3` results in a phase of duration `2 * 3 months = 6 months`. If set, `end_date` must not be set.
+         * List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
          */
-        iterations?: number;
+        items: Array<Phase.Item>;
 
         /**
-         * List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
+         * Integer representing the multiplier applied to the price interval. For example, `iterations=2` applied to a price with `interval=month` and `interval_count=3` results in a phase of duration `2 * 3 months = 6 months`. If set, `end_date` must not be set.
          */
-        plans: Array<Phase.Plan>;
+        iterations?: number;
 
         /**
          * If a subscription schedule will create prorations when transitioning to this phase. Possible values are `create_prorations` or `none`, and the default value is `create_prorations`. See [Prorations](https://stripe.com/docs/billing/subscriptions/prorations).
@@ -906,12 +891,7 @@ declare module 'stripe' {
         start_date?: number | 'now';
 
         /**
-         * A non-negative decimal (with at most four decimal places) between 0 and 100. This represents the percentage of the subscription invoice subtotal that will be calculated and added as tax to the final amount in each billing period during thise phase of the schedule. For example, a price which charges $10/month with a `tax_percent` of `20.0` will charge $12 per invoice. To unset a previously-set value, pass an empty string. This field has been deprecated and will be removed in a future API version, for further information view the [migration docs](https://stripe.com/docs/billing/migration/taxes) for `tax_rates`.
-         */
-        tax_percent?: number;
-
-        /**
-         * The data with which to automatically create a Transfer for each of the subscription's invoices.
+         * The data with which to automatically create a Transfer for each of the associated subscription's invoices.
          */
         transfer_data?: Phase.TransferData;
 
@@ -991,11 +971,11 @@ declare module 'stripe' {
           days_until_due?: number;
         }
 
-        interface Plan {
+        interface Item {
           /**
            * 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.
            */
-          billing_thresholds?: Plan.BillingThresholds | null;
+          billing_thresholds?: Item.BillingThresholds | null;
 
           /**
            * The plan ID to subscribe to. You may specify the same ID in `plan` and `price`.
@@ -1010,7 +990,7 @@ declare module 'stripe' {
           /**
            * Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
            */
-          price_data?: Plan.PriceData;
+          price_data?: Item.PriceData;
 
           /**
            * Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`.
@@ -1023,7 +1003,7 @@ declare module 'stripe' {
           tax_rates?: Array<string> | null;
         }
 
-        namespace Plan {
+        namespace Item {
           interface BillingThresholds {
             /**
              * Usage threshold that triggers the subscription to advance to a new billing period
diff --git a/types/2020-03-02/Subscriptions.d.ts b/types/2020-08-27/Subscriptions.d.ts
similarity index 95%
rename from types/2020-03-02/Subscriptions.d.ts
rename to types/2020-08-27/Subscriptions.d.ts
index 2f50021e..bf23db82 100644
--- a/types/2020-03-02/Subscriptions.d.ts
+++ b/types/2020-08-27/Subscriptions.d.ts
@@ -145,16 +145,6 @@ declare module 'stripe' {
        */
       pending_update: Subscription.PendingUpdate | null;
 
-      /**
-       * Hash describing the plan the customer is subscribed to. Only set if the subscription contains a single plan.
-       */
-      plan: Stripe.Plan | null;
-
-      /**
-       * The quantity of the plan to which the customer is subscribed. For example, if your plan is $10/user/month, and your customer has 5 users, you could pass 5 as the quantity to have the customer charged $50 (5 x $10) monthly. Only set if the subscription contains a single plan.
-       */
-      quantity: number | null;
-
       /**
        * The schedule attached to the subscription
        */
@@ -178,11 +168,6 @@ declare module 'stripe' {
        */
       status: Subscription.Status;
 
-      /**
-       * If provided, each invoice created by this subscription will apply the tax rate, increasing the amount billed to the customer.
-       */
-      tax_percent: number | null;
-
       /**
        * 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.
        */
@@ -405,11 +390,6 @@ declare module 'stripe' {
        */
       promotion_code?: string;
 
-      /**
-       * This field has been renamed to `proration_behavior`. `prorate=true` can be replaced with `proration_behavior=create_prorations` and `prorate=false` can be replaced with `proration_behavior=none`.
-       */
-      prorate?: boolean;
-
       /**
        * Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations) resulting from the `billing_cycle_anchor`. Valid values are `create_prorations` or `none`.
        *
@@ -417,11 +397,6 @@ declare module 'stripe' {
        */
       proration_behavior?: SubscriptionCreateParams.ProrationBehavior;
 
-      /**
-       * A non-negative decimal (with at most four decimal places) between 0 and 100. This represents the percentage of the subscription invoice subtotal that will be calculated and added as tax to the final amount in each billing period. For example, a plan which charges $10/month with a `tax_percent` of `20.0` will charge $12 per invoice. To unset a previously-set value, pass an empty string. This field has been deprecated and will be removed in a future API version, for further information view the [migration docs](https://stripe.com/docs/billing/migration/taxes) for `tax_rates`.
-       */
-      tax_percent?: number | null;
-
       /**
        * If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges.
        */
@@ -738,11 +713,6 @@ declare module 'stripe' {
        */
       promotion_code?: string;
 
-      /**
-       * This field has been renamed to `proration_behavior`. `prorate=true` can be replaced with `proration_behavior=create_prorations` and `prorate=false` can be replaced with `proration_behavior=none`.
-       */
-      prorate?: boolean;
-
       /**
        * Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. Valid values are `create_prorations`, `none`, or `always_invoice`.
        *
@@ -757,11 +727,6 @@ declare module 'stripe' {
        */
       proration_date?: number;
 
-      /**
-       * A non-negative decimal (with at most four decimal places) between 0 and 100. This represents the percentage of the subscription invoice subtotal that will be calculated and added as tax to the final amount in each billing period. For example, a plan which charges $10/month with a `tax_percent` of `20.0` will charge $12 per invoice. To unset a previously-set value, pass an empty string. This field has been deprecated and will be removed in a future API version, for further information view the [migration docs](https://stripe.com/docs/billing/migration/taxes) for `tax_rates`.
-       */
-      tax_percent?: number | null;
-
       /**
        * If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges. This will be unset if you POST an empty value.
        */
diff --git a/types/2020-03-02/TaxDeductedAtSources.d.ts b/types/2020-08-27/TaxDeductedAtSources.d.ts
similarity index 100%
rename from types/2020-03-02/TaxDeductedAtSources.d.ts
rename to types/2020-08-27/TaxDeductedAtSources.d.ts
diff --git a/types/2020-03-02/TaxIds.d.ts b/types/2020-08-27/TaxIds.d.ts
similarity index 100%
rename from types/2020-03-02/TaxIds.d.ts
rename to types/2020-08-27/TaxIds.d.ts
diff --git a/types/2020-03-02/TaxRates.d.ts b/types/2020-08-27/TaxRates.d.ts
similarity index 100%
rename from types/2020-03-02/TaxRates.d.ts
rename to types/2020-08-27/TaxRates.d.ts
diff --git a/types/2020-03-02/Terminal/ConnectionTokens.d.ts b/types/2020-08-27/Terminal/ConnectionTokens.d.ts
similarity index 100%
rename from types/2020-03-02/Terminal/ConnectionTokens.d.ts
rename to types/2020-08-27/Terminal/ConnectionTokens.d.ts
diff --git a/types/2020-03-02/Terminal/Locations.d.ts b/types/2020-08-27/Terminal/Locations.d.ts
similarity index 100%
rename from types/2020-03-02/Terminal/Locations.d.ts
rename to types/2020-08-27/Terminal/Locations.d.ts
diff --git a/types/2020-03-02/Terminal/Readers.d.ts b/types/2020-08-27/Terminal/Readers.d.ts
similarity index 100%
rename from types/2020-03-02/Terminal/Readers.d.ts
rename to types/2020-08-27/Terminal/Readers.d.ts
diff --git a/types/2020-03-02/Tokens.d.ts b/types/2020-08-27/Tokens.d.ts
similarity index 100%
rename from types/2020-03-02/Tokens.d.ts
rename to types/2020-08-27/Tokens.d.ts
diff --git a/types/2020-03-02/Topups.d.ts b/types/2020-08-27/Topups.d.ts
similarity index 100%
rename from types/2020-03-02/Topups.d.ts
rename to types/2020-08-27/Topups.d.ts
diff --git a/types/2020-03-02/TransferReversals.d.ts b/types/2020-08-27/TransferReversals.d.ts
similarity index 100%
rename from types/2020-03-02/TransferReversals.d.ts
rename to types/2020-08-27/TransferReversals.d.ts
diff --git a/types/2020-03-02/Transfers.d.ts b/types/2020-08-27/Transfers.d.ts
similarity index 100%
rename from types/2020-03-02/Transfers.d.ts
rename to types/2020-08-27/Transfers.d.ts
diff --git a/types/2020-03-02/UsageRecordSummaries.d.ts b/types/2020-08-27/UsageRecordSummaries.d.ts
similarity index 100%
rename from types/2020-03-02/UsageRecordSummaries.d.ts
rename to types/2020-08-27/UsageRecordSummaries.d.ts
diff --git a/types/2020-03-02/UsageRecords.d.ts b/types/2020-08-27/UsageRecords.d.ts
similarity index 100%
rename from types/2020-03-02/UsageRecords.d.ts
rename to types/2020-08-27/UsageRecords.d.ts
diff --git a/types/2020-03-02/WebhookEndpoints.d.ts b/types/2020-08-27/WebhookEndpoints.d.ts
similarity index 98%
rename from types/2020-03-02/WebhookEndpoints.d.ts
rename to types/2020-08-27/WebhookEndpoints.d.ts
index 70742696..4cbc5f98 100644
--- a/types/2020-03-02/WebhookEndpoints.d.ts
+++ b/types/2020-08-27/WebhookEndpoints.d.ts
@@ -221,7 +221,8 @@ declare module 'stripe' {
         | '2019-10-17'
         | '2019-11-05'
         | '2019-12-03'
-        | '2020-03-02';
+        | '2020-03-02'
+        | '2020-08-27';
 
       type EnabledEvent =
         | '*'
@@ -285,7 +286,6 @@ declare module 'stripe' {
         | 'invoice.paid'
         | 'invoice.payment_action_required'
         | 'invoice.payment_failed'
-        | 'invoice.payment_succeeded'
         | 'invoice.sent'
         | 'invoice.upcoming'
         | 'invoice.updated'
@@ -319,7 +319,6 @@ declare module 'stripe' {
         | 'payment_intent.requires_action'
         | 'payment_intent.succeeded'
         | 'payment_method.attached'
-        | 'payment_method.card_automatically_updated'
         | 'payment_method.detached'
         | 'payment_method.updated'
         | 'payout.canceled'
@@ -487,7 +486,6 @@ declare module 'stripe' {
         | 'invoice.paid'
         | 'invoice.payment_action_required'
         | 'invoice.payment_failed'
-        | 'invoice.payment_succeeded'
         | 'invoice.sent'
         | 'invoice.upcoming'
         | 'invoice.updated'
@@ -521,7 +519,6 @@ declare module 'stripe' {
         | 'payment_intent.requires_action'
         | 'payment_intent.succeeded'
         | 'payment_method.attached'
-        | 'payment_method.card_automatically_updated'
         | 'payment_method.detached'
         | 'payment_method.updated'
         | 'payout.canceled'
diff --git a/types/2020-03-02/index.d.ts b/types/2020-08-27/index.d.ts
similarity index 100%
rename from types/2020-03-02/index.d.ts
rename to types/2020-08-27/index.d.ts
diff --git a/types/lib.d.ts b/types/lib.d.ts
index bfd4f040..78c00f29 100644
--- a/types/lib.d.ts
+++ b/types/lib.d.ts
@@ -5,7 +5,7 @@ import {Agent} from 'http';
 
 declare module 'stripe' {
   namespace Stripe {
-    export type LatestApiVersion = '2020-03-02';
+    export type LatestApiVersion = '2020-08-27';
     export type HttpAgent = Agent;
 
     export interface StripeConfig {


Test patch:
diff --git a/types/test/typescriptTest.ts b/types/test/typescriptTest.ts
index 43ef6d52..b9503ee3 100644
--- a/types/test/typescriptTest.ts
+++ b/types/test/typescriptTest.ts
@@ -5,11 +5,11 @@
  * and to perform a basic sanity check that types are exported as intended.
  */
 
-///<reference types="../2020-03-02" />
+///<reference types="../2020-08-27" />
 import Stripe from 'stripe';
 
 let stripe = new Stripe('sk_test_123', {
-  apiVersion: '2020-03-02',
+  apiVersion: '2020-08-27',
 });
 
 // @ts-ignore lazily ignore apiVersion requirement.
@@ -27,7 +27,7 @@ stripe = new Stripe('sk_test_123', {
 
 // Check config object.
 stripe = new Stripe('sk_test_123', {
-  apiVersion: '2020-03-02',
+  apiVersion: '2020-08-27',
   typescript: true,
   maxNetworkRetries: 1,
   timeout: 1000,
@@ -48,7 +48,7 @@ stripe.setHost('host', 'port', 'protocol');
     description: 'test',
   };
   const opts: Stripe.RequestOptions = {
-    apiVersion: '2020-03-02',
+    apiVersion: '2020-08-27',
   };
   const customer: Stripe.Customer = await stripe.customers.create(params, opts);