Repository: stripe/stripe-node
Pull request #940 (2020-07-01 18:52:30)

Document but discourage `protocol` config option
r? @ob-stripe 
cc @stripe/api-libraries 
Throws an exception when the stripe client is initialized if the `http` protocol is specified without configuring a non-stripe.com host.
Also documents the `protocol` configuration option.
Fixes https://github.com/stripe/stripe-node/pull/938


Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 60adfaf3..e129dd43 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,23 +1,5 @@
 # CHANGELOG
 
-## 8.67.0 - 2020-06-24
-* [#929](https://github.com/stripe/stripe-node/pull/929) Add support for `invoice.paid` event
-
-## 8.66.0 - 2020-06-23
-* [#927](https://github.com/stripe/stripe-node/pull/927) Add support for `payment_method_data` on `PaymentIntent`
-
-## 8.65.0 - 2020-06-23
-* [#926](https://github.com/stripe/stripe-node/pull/926) Multiple API changes
-  * Add `discounts` on `LineItem`
-  * Add `document_provider_identity_document` as a `purpose` on `File`
-  * Support nullable `metadata` on Issuing `Dispute`
-  * Add `klarna[shipping_delay]` on `Source`
-
-## 8.64.0 - 2020-06-18
-* [#924](https://github.com/stripe/stripe-node/pull/924) Multiple API changes
-  * Add support for `refresh_url` and `return_url` on `AccountLink`
-  * Add support for `issuing_dispute.*` events
-
 ## 8.63.0 - 2020-06-11
 * [#919](https://github.com/stripe/stripe-node/pull/919) Multiple API changes
   * Add `transaction` on Issuing `Dispute`
diff --git a/README.md b/README.md
index 9775f781..a18668d6 100644
--- a/README.md
+++ b/README.md
@@ -175,6 +175,7 @@ const stripe = Stripe('sk_test_...', {
 | `timeout`           | 80000              | [Maximum time each request can take in ms.](#configuring-timeout)                     |
 | `host`              | `'api.stripe.com'` | Host that requests are made to.                                                       |
 | `port`              | 443                | Port that requests are made to.                                                       |
+| `protocol`          | `'https'`          | `'https'` or `'http'`. `http` is never appropriate for sending requests to Stripe servers, and we strongly discourage `http`, even in local testing scenarios, as this can result in your credentials being transmitted over an insecure channel.
 | `telemetry`         | `true`             | Allow Stripe to send latency [telemetry](#request-latency-telemetry).                 |
 
 Note: Both `maxNetworkRetries` and `timeout` can be overridden on a per-request basis.
diff --git a/VERSION b/VERSION
index 3fa677fc..661bb99f 100644
--- a/VERSION
+++ b/VERSION
@@ -1,1 +1,1 @@
-8.67.0
+8.63.0
diff --git a/lib/stripe.js b/lib/stripe.js
index 929a7915..2abeb88c 100644
--- a/lib/stripe.js
+++ b/lib/stripe.js
@@ -65,6 +65,16 @@ function Stripe(key, config = {}) {
   this.once = this._emitter.once.bind(this._emitter);
   this.off = this._emitter.removeListener.bind(this._emitter);
 
+  if (
+    props.protocol &&
+    props.protocol !== 'https' &&
+    (!props.host || /\.stripe\.com$/.test(props.host))
+  ) {
+    throw new Error(
+      'The `https` protocol must be used when sending requests to `*.stripe.com`'
+    );
+  }
+
   this._api = {
     auth: null,
     host: props.host || DEFAULT_HOST,
diff --git a/package.json b/package.json
index 9c4538f2..18887f85 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "stripe",
-  "version": "8.67.0",
+  "version": "8.63.0",
   "description": "Stripe API wrapper",
   "keywords": [
     "stripe",
diff --git a/types/2020-03-02/AccountLinks.d.ts b/types/2020-03-02/AccountLinks.d.ts
index daf62c43..2e21f641 100644
--- a/types/2020-03-02/AccountLinks.d.ts
+++ b/types/2020-03-02/AccountLinks.d.ts
@@ -32,39 +32,29 @@ declare module 'stripe' {
       account: string;
 
       /**
-       * The type of account link the user is requesting. Possible values are `custom_account_verification` or `custom_account_update`.
-       */
-      type: AccountLinkCreateParams.Type;
-
-      /**
-       * Which information the platform needs to collect from the user. One of `currently_due` or `eventually_due`. Default is `currently_due`.
-       */
-      collect?: AccountLinkCreateParams.Collect;
-
-      /**
-       * Specifies which fields in the response should be expanded.
+       * The URL that the user will be redirected to if the account link is no longer valid.
        */
-      expand?: Array<string>;
+      failure_url: string;
 
       /**
-       * Alternate name for refresh_url to ensure backwards compatibility
+       * The URL that the user will be redirected to upon leaving or completing the linked flow successfully.
        */
-      failure_url?: string;
+      success_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.
+       * The type of account link the user is requesting. Possible values are `custom_account_verification` or `custom_account_update`.
        */
-      refresh_url?: string;
+      type: AccountLinkCreateParams.Type;
 
       /**
-       * The URL that the user will be redirected to upon leaving or completing the linked flow.
+       * Which information the platform needs to collect from the user. One of `currently_due` or `eventually_due`. Default is `currently_due`.
        */
-      return_url?: string;
+      collect?: AccountLinkCreateParams.Collect;
 
       /**
-       * Alternate name for return_url to ensure backwards compatibility
+       * Specifies which fields in the response should be expanded.
        */
-      success_url?: string;
+      expand?: Array<string>;
     }
 
     namespace AccountLinkCreateParams {
@@ -75,7 +65,7 @@ declare module 'stripe' {
 
     class AccountLinksResource {
       /**
-       * Creates an AccountLink object that includes a single-use Stripe URL that the platform can redirect their user to in order to take them through the Connect Onboarding flow.
+       * Creates an AccountLink object that returns a single-use Stripe URL that the user can redirect their user to in order to take them through the Connect Onboarding flow.
        */
       create(
         params: AccountLinkCreateParams,
diff --git a/types/2020-03-02/Accounts.d.ts b/types/2020-03-02/Accounts.d.ts
index 8f986a11..c143f531 100644
--- a/types/2020-03-02/Accounts.d.ts
+++ b/types/2020-03-02/Accounts.d.ts
@@ -73,7 +73,7 @@ declare module 'stripe' {
       individual?: Stripe.Person;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata?: Metadata;
 
@@ -744,7 +744,7 @@ declare module 'stripe' {
       individual?: AccountCreateParams.Individual;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -1073,7 +1073,7 @@ declare module 'stripe' {
         maiden_name?: string;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
 
@@ -1419,7 +1419,7 @@ declare module 'stripe' {
       individual?: AccountUpdateParams.Individual;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -1743,7 +1743,7 @@ declare module 'stripe' {
         maiden_name?: string;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/AlipayAccounts.d.ts b/types/2020-03-02/AlipayAccounts.d.ts
index 43d3d646..fbe89baf 100644
--- a/types/2020-03-02/AlipayAccounts.d.ts
+++ b/types/2020-03-02/AlipayAccounts.d.ts
@@ -37,7 +37,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata?: Metadata;
 
diff --git a/types/2020-03-02/BankAccounts.d.ts b/types/2020-03-02/BankAccounts.d.ts
index fadf56e2..7ed881b3 100644
--- a/types/2020-03-02/BankAccounts.d.ts
+++ b/types/2020-03-02/BankAccounts.d.ts
@@ -67,7 +67,7 @@ declare module 'stripe' {
       last4: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata?: Metadata | null;
 
diff --git a/types/2020-03-02/BitcoinReceivers.d.ts b/types/2020-03-02/BitcoinReceivers.d.ts
index e21453f3..3664825b 100644
--- a/types/2020-03-02/BitcoinReceivers.d.ts
+++ b/types/2020-03-02/BitcoinReceivers.d.ts
@@ -87,7 +87,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
diff --git a/types/2020-03-02/Cards.d.ts b/types/2020-03-02/Cards.d.ts
index 2234c454..ee5ddb4d 100644
--- a/types/2020-03-02/Cards.d.ts
+++ b/types/2020-03-02/Cards.d.ts
@@ -139,7 +139,7 @@ declare module 'stripe' {
       last4: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
diff --git a/types/2020-03-02/Charges.d.ts b/types/2020-03-02/Charges.d.ts
index 2aca5d2e..d3d4bc2a 100644
--- a/types/2020-03-02/Charges.d.ts
+++ b/types/2020-03-02/Charges.d.ts
@@ -126,7 +126,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -1444,7 +1444,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -1571,7 +1571,7 @@ declare module 'stripe' {
       fraud_details?: ChargeUpdateParams.FraudDetails;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/Checkout/Sessions.d.ts b/types/2020-03-02/Checkout/Sessions.d.ts
index 9690e231..3e5907ab 100644
--- a/types/2020-03-02/Checkout/Sessions.d.ts
+++ b/types/2020-03-02/Checkout/Sessions.d.ts
@@ -73,7 +73,7 @@ declare module 'stripe' {
         locale: Session.Locale | null;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
         metadata: Metadata | null;
 
@@ -585,7 +585,7 @@ declare module 'stripe' {
         locale?: SessionCreateParams.Locale;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam;
 
@@ -721,7 +721,7 @@ declare module 'stripe' {
               images?: Array<string>;
 
               /**
-               * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+               * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
                */
               metadata?: MetadataParam;
 
@@ -803,7 +803,7 @@ declare module 'stripe' {
           description?: string;
 
           /**
-           * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+           * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
            */
           metadata?: MetadataParam;
 
@@ -928,7 +928,7 @@ declare module 'stripe' {
           description?: string;
 
           /**
-           * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+           * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
            */
           metadata?: MetadataParam;
 
@@ -1213,7 +1213,7 @@ declare module 'stripe' {
           items?: Array<SubscriptionData.Item>;
 
           /**
-           * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+           * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
            */
           metadata?: MetadataParam;
 
diff --git a/types/2020-03-02/Coupons.d.ts b/types/2020-03-02/Coupons.d.ts
index 45ac0c1f..97b199f0 100644
--- a/types/2020-03-02/Coupons.d.ts
+++ b/types/2020-03-02/Coupons.d.ts
@@ -52,7 +52,7 @@ declare module 'stripe' {
       max_redemptions: number | null;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -143,7 +143,7 @@ declare module 'stripe' {
       max_redemptions?: number;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -181,7 +181,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/CreditNoteLineItems.d.ts b/types/2020-03-02/CreditNoteLineItems.d.ts
index 76342345..41f1470f 100644
--- a/types/2020-03-02/CreditNoteLineItems.d.ts
+++ b/types/2020-03-02/CreditNoteLineItems.d.ts
@@ -130,7 +130,7 @@ declare module 'stripe' {
       memo?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
 
diff --git a/types/2020-03-02/CreditNotes.d.ts b/types/2020-03-02/CreditNotes.d.ts
index be40fa70..c07f82bb 100644
--- a/types/2020-03-02/CreditNotes.d.ts
+++ b/types/2020-03-02/CreditNotes.d.ts
@@ -68,7 +68,7 @@ declare module 'stripe' {
       memo: string | null;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -189,7 +189,7 @@ declare module 'stripe' {
       memo?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
 
@@ -287,7 +287,7 @@ declare module 'stripe' {
       memo?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
     }
@@ -341,7 +341,7 @@ declare module 'stripe' {
       memo?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
 
diff --git a/types/2020-03-02/CustomerBalanceTransactions.d.ts b/types/2020-03-02/CustomerBalanceTransactions.d.ts
index 89759857..16f4c0ca 100644
--- a/types/2020-03-02/CustomerBalanceTransactions.d.ts
+++ b/types/2020-03-02/CustomerBalanceTransactions.d.ts
@@ -60,7 +60,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata | null;
 
@@ -105,7 +105,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
     }
@@ -129,7 +129,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
     }
diff --git a/types/2020-03-02/CustomerSources.d.ts b/types/2020-03-02/CustomerSources.d.ts
index b24e3bf8..6e01e081 100644
--- a/types/2020-03-02/CustomerSources.d.ts
+++ b/types/2020-03-02/CustomerSources.d.ts
@@ -12,7 +12,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
     }
@@ -81,7 +81,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/Customers.d.ts b/types/2020-03-02/Customers.d.ts
index 443a2bcd..46fff33d 100644
--- a/types/2020-03-02/Customers.d.ts
+++ b/types/2020-03-02/Customers.d.ts
@@ -76,7 +76,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -244,7 +244,7 @@ declare module 'stripe' {
       invoice_settings?: CustomerCreateParams.InvoiceSettings;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -441,7 +441,7 @@ declare module 'stripe' {
       invoice_settings?: CustomerUpdateParams.InvoiceSettings;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/Disputes.d.ts b/types/2020-03-02/Disputes.d.ts
index 14d43b2e..c5ad28b0 100644
--- a/types/2020-03-02/Disputes.d.ts
+++ b/types/2020-03-02/Disputes.d.ts
@@ -54,7 +54,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -269,7 +269,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/ExternalAccounts.d.ts b/types/2020-03-02/ExternalAccounts.d.ts
index a15c3444..a4ab897f 100644
--- a/types/2020-03-02/ExternalAccounts.d.ts
+++ b/types/2020-03-02/ExternalAccounts.d.ts
@@ -17,7 +17,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
     }
@@ -91,7 +91,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/FeeRefunds.d.ts b/types/2020-03-02/FeeRefunds.d.ts
index 38598a09..28ca8ad1 100644
--- a/types/2020-03-02/FeeRefunds.d.ts
+++ b/types/2020-03-02/FeeRefunds.d.ts
@@ -40,7 +40,7 @@ declare module 'stripe' {
       fee: string | Stripe.ApplicationFee;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
     }
@@ -57,7 +57,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
     }
@@ -76,7 +76,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
     }
diff --git a/types/2020-03-02/FileLinks.d.ts b/types/2020-03-02/FileLinks.d.ts
index caa7a4fe..29b328c4 100644
--- a/types/2020-03-02/FileLinks.d.ts
+++ b/types/2020-03-02/FileLinks.d.ts
@@ -40,7 +40,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -67,7 +67,7 @@ declare module 'stripe' {
       expires_at?: number;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
     }
@@ -91,7 +91,7 @@ declare module 'stripe' {
       expires_at?: 'now' | number | '';
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
     }
diff --git a/types/2020-03-02/Files.d.ts b/types/2020-03-02/Files.d.ts
index 2ce3dae6..07bba9b3 100644
--- a/types/2020-03-02/Files.d.ts
+++ b/types/2020-03-02/Files.d.ts
@@ -30,7 +30,7 @@ declare module 'stripe' {
       links?: ApiList<Stripe.FileLink> | null;
 
       /**
-       * The purpose of the file. Possible values are `additional_verification`, `business_icon`, `business_logo`, `customer_signature`, `dispute_evidence`, `document_provider_identity_document`, `finance_report_run`, `identity_document`, `pci_document`, `sigma_scheduled_query`, or `tax_document_user_upload`.
+       * The purpose of the file. Possible values are `additional_verification`, `business_icon`, `business_logo`, `customer_signature`, `dispute_evidence`, `finance_report_run`, `identity_document`, `pci_document`, `sigma_scheduled_query`, or `tax_document_user_upload`.
        */
       purpose: string;
 
@@ -85,7 +85,6 @@ declare module 'stripe' {
         | 'business_logo'
         | 'customer_signature'
         | 'dispute_evidence'
-        | 'document_provider_identity_document'
         | 'finance_report_run'
         | 'identity_document'
         | 'pci_document'
diff --git a/types/2020-03-02/InvoiceItems.d.ts b/types/2020-03-02/InvoiceItems.d.ts
index dd58fe61..cf0a1f6f 100644
--- a/types/2020-03-02/InvoiceItems.d.ts
+++ b/types/2020-03-02/InvoiceItems.d.ts
@@ -57,7 +57,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -185,7 +185,7 @@ declare module 'stripe' {
       invoice?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -295,7 +295,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/InvoiceLineItems.d.ts b/types/2020-03-02/InvoiceLineItems.d.ts
index e145d4e7..16350685 100644
--- a/types/2020-03-02/InvoiceLineItems.d.ts
+++ b/types/2020-03-02/InvoiceLineItems.d.ts
@@ -45,7 +45,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Note that for line items with `type=subscription` this will reflect the metadata of the subscription that caused the line item to be created.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Note that for line items with `type=subscription` this will reflect the metadata of the subscription that caused the line item to be created.
        */
       metadata: Metadata;
 
@@ -275,7 +275,7 @@ declare module 'stripe' {
         invoiceitem?: string;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
 
@@ -372,7 +372,7 @@ declare module 'stripe' {
         id?: string;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/Invoices.d.ts b/types/2020-03-02/Invoices.d.ts
index 70af923b..a17d197d 100644
--- a/types/2020-03-02/Invoices.d.ts
+++ b/types/2020-03-02/Invoices.d.ts
@@ -192,7 +192,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata | null;
 
@@ -577,7 +577,7 @@ declare module 'stripe' {
       footer?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -699,7 +699,7 @@ declare module 'stripe' {
       footer?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -972,7 +972,7 @@ declare module 'stripe' {
         invoiceitem?: string;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
 
@@ -1069,7 +1069,7 @@ declare module 'stripe' {
         id?: string;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/Issuing/Authorizations.d.ts b/types/2020-03-02/Issuing/Authorizations.d.ts
index 33fdd02d..19634dae 100644
--- a/types/2020-03-02/Issuing/Authorizations.d.ts
+++ b/types/2020-03-02/Issuing/Authorizations.d.ts
@@ -73,7 +73,7 @@ declare module 'stripe' {
         merchant_data: Authorization.MerchantData;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
         metadata: Metadata;
 
@@ -280,7 +280,7 @@ declare module 'stripe' {
         expand?: Array<string>;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
       }
@@ -328,7 +328,7 @@ declare module 'stripe' {
         expand?: Array<string>;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
       }
@@ -340,7 +340,7 @@ declare module 'stripe' {
         expand?: Array<string>;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
       }
diff --git a/types/2020-03-02/Issuing/Cardholders.d.ts b/types/2020-03-02/Issuing/Cardholders.d.ts
index 313258c4..b842ca23 100644
--- a/types/2020-03-02/Issuing/Cardholders.d.ts
+++ b/types/2020-03-02/Issuing/Cardholders.d.ts
@@ -43,7 +43,7 @@ declare module 'stripe' {
         livemode: boolean;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
         metadata: Metadata;
 
@@ -1137,7 +1137,7 @@ declare module 'stripe' {
         individual?: CardholderCreateParams.Individual;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam;
 
@@ -2228,7 +2228,7 @@ declare module 'stripe' {
         individual?: CardholderUpdateParams.Individual;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam;
 
diff --git a/types/2020-03-02/Issuing/Cards.d.ts b/types/2020-03-02/Issuing/Cards.d.ts
index 321ca3b1..c937028e 100644
--- a/types/2020-03-02/Issuing/Cards.d.ts
+++ b/types/2020-03-02/Issuing/Cards.d.ts
@@ -68,7 +68,7 @@ declare module 'stripe' {
         livemode: boolean;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
         metadata: Metadata;
 
@@ -1123,7 +1123,7 @@ declare module 'stripe' {
         expand?: Array<string>;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam;
 
@@ -2156,7 +2156,7 @@ declare module 'stripe' {
         expand?: Array<string>;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/Issuing/Disputes.d.ts b/types/2020-03-02/Issuing/Disputes.d.ts
index c80a3b23..a3deb6f1 100644
--- a/types/2020-03-02/Issuing/Disputes.d.ts
+++ b/types/2020-03-02/Issuing/Disputes.d.ts
@@ -38,7 +38,7 @@ declare module 'stripe' {
         expand?: Array<string>;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam;
       }
@@ -57,9 +57,9 @@ declare module 'stripe' {
         expand?: Array<string>;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
-        metadata?: MetadataParam | null;
+        metadata?: MetadataParam;
       }
 
       interface DisputeListParams extends PaginationParams {
diff --git a/types/2020-03-02/Issuing/Transactions.d.ts b/types/2020-03-02/Issuing/Transactions.d.ts
index 49363c5e..3c002949 100644
--- a/types/2020-03-02/Issuing/Transactions.d.ts
+++ b/types/2020-03-02/Issuing/Transactions.d.ts
@@ -68,7 +68,7 @@ declare module 'stripe' {
         merchant_data: Transaction.MerchantData;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
         metadata: Metadata;
 
@@ -284,7 +284,7 @@ declare module 'stripe' {
         expand?: Array<string>;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
       }
diff --git a/types/2020-03-02/LineItems.d.ts b/types/2020-03-02/LineItems.d.ts
index 77492168..3fc808f1 100644
--- a/types/2020-03-02/LineItems.d.ts
+++ b/types/2020-03-02/LineItems.d.ts
@@ -34,11 +34,6 @@ declare module 'stripe' {
        */
       description: string;
 
-      /**
-       * The discounts applied to the line item.
-       */
-      discounts?: Array<LineItem.Discount>;
-
       /**
        * Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products.
        * [Products](https://stripe.com/docs/api#products) help you track inventory or provisioning, and prices help you track payment terms. Different physical goods or levels of service should be represented by products, and pricing options should be represented by prices. This approach lets you change prices without having to change your provisioning scheme.
@@ -61,22 +56,6 @@ declare module 'stripe' {
     }
 
     namespace LineItem {
-      interface Discount {
-        /**
-         * Discount amount for this line item.
-         */
-        amount: number;
-
-        /**
-         * A discount represents the actual application of a coupon to a particular
-         * customer. It contains information about when the discount began and when it
-         * will end.
-         *
-         * Related guide: [Applying Discounts to Subscriptions](https://stripe.com/docs/billing/subscriptions/discounts).
-         */
-        discount: Stripe.Discount;
-      }
-
       interface Tax {
         /**
          * Amount of tax for this line item.
diff --git a/types/2020-03-02/Orders.d.ts b/types/2020-03-02/Orders.d.ts
index 1040cec9..4cdb6be0 100644
--- a/types/2020-03-02/Orders.d.ts
+++ b/types/2020-03-02/Orders.d.ts
@@ -75,7 +75,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -251,7 +251,7 @@ declare module 'stripe' {
       items?: Array<OrderCreateParams.Item>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
 
@@ -323,7 +323,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -442,7 +442,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
 
diff --git a/types/2020-03-02/PaymentIntents.d.ts b/types/2020-03-02/PaymentIntents.d.ts
index af450f0a..06ac923b 100644
--- a/types/2020-03-02/PaymentIntents.d.ts
+++ b/types/2020-03-02/PaymentIntents.d.ts
@@ -110,7 +110,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. For more information, see the [documentation](https://stripe.com/docs/payments/payment-intents/creating-payment-intents#storing-information-in-metadata).
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. For more information, see the [documentation](https://stripe.com/docs/payments/payment-intents/creating-payment-intents#storing-information-in-metadata).
        */
       metadata: Metadata;
 
@@ -516,7 +516,9 @@ declare module 'stripe' {
       currency: string;
 
       /**
-       * The amount of the application fee (if any) that will be applied to the payment and transferred to the application owner's Stripe account. Must be greater than zero when provided. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
+       * The amount of the application fee (if any) that will be applied to the
+       * payment and transferred to the application owner's Stripe account. For
+       * more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
        */
       application_fee_amount?: number;
 
@@ -567,7 +569,7 @@ declare module 'stripe' {
       mandate_data?: PaymentIntentCreateParams.MandateData;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
 
@@ -588,13 +590,6 @@ declare module 'stripe' {
        */
       payment_method?: string;
 
-      /**
-       * If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear
-       * in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method)
-       * property on the PaymentIntent.
-       */
-      payment_method_data?: PaymentIntentCreateParams.PaymentMethodData;
-
       /**
        * Payment-method-specific configuration for this PaymentIntent.
        */
@@ -726,245 +721,6 @@ declare module 'stripe' {
 
       type OffSession = 'one_off' | 'recurring';
 
-      interface PaymentMethodData {
-        /**
-         * If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account.
-         */
-        au_becs_debit?: PaymentMethodData.AuBecsDebit;
-
-        /**
-         * If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
-         */
-        bacs_debit?: PaymentMethodData.BacsDebit;
-
-        /**
-         * If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method.
-         */
-        bancontact?: PaymentMethodData.Bancontact;
-
-        /**
-         * Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
-         */
-        billing_details?: PaymentMethodData.BillingDetails;
-
-        /**
-         * If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method.
-         */
-        eps?: PaymentMethodData.Eps;
-
-        /**
-         * If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method.
-         */
-        fpx?: PaymentMethodData.Fpx;
-
-        /**
-         * If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method.
-         */
-        giropay?: PaymentMethodData.Giropay;
-
-        /**
-         * If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method.
-         */
-        ideal?: PaymentMethodData.Ideal;
-
-        /**
-         * If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method.
-         */
-        interac_present?: PaymentMethodData.InteracPresent;
-
-        /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
-         */
-        metadata?: MetadataParam;
-
-        /**
-         * If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method.
-         */
-        p24?: PaymentMethodData.P24;
-
-        /**
-         * If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account.
-         */
-        sepa_debit?: PaymentMethodData.SepaDebit;
-
-        /**
-         * The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
-         */
-        type: PaymentMethodData.Type;
-      }
-
-      namespace PaymentMethodData {
-        interface AuBecsDebit {
-          /**
-           * The account number for the bank account.
-           */
-          account_number: string;
-
-          /**
-           * Bank-State-Branch number of the bank account.
-           */
-          bsb_number: string;
-        }
-
-        interface BacsDebit {
-          /**
-           * Account number of the bank account that the funds will be debited from.
-           */
-          account_number?: string;
-
-          /**
-           * Sort code of the bank account. (e.g., `10-20-30`)
-           */
-          sort_code?: string;
-        }
-
-        interface Bancontact {}
-
-        interface BillingDetails {
-          /**
-           * Billing address.
-           */
-          address?: BillingDetails.Address;
-
-          /**
-           * Email address.
-           */
-          email?: string;
-
-          /**
-           * Full name.
-           */
-          name?: string;
-
-          /**
-           * Billing phone number (including extension).
-           */
-          phone?: string;
-        }
-
-        namespace BillingDetails {
-          interface Address {
-            /**
-             * City, district, suburb, town, or village.
-             */
-            city?: string;
-
-            /**
-             * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
-             */
-            country?: string;
-
-            /**
-             * Address line 1 (e.g., street, PO Box, or company name).
-             */
-            line1?: string;
-
-            /**
-             * Address line 2 (e.g., apartment, suite, unit, or building).
-             */
-            line2?: string;
-
-            /**
-             * ZIP or postal code.
-             */
-            postal_code?: string;
-
-            /**
-             * State, county, province, or region.
-             */
-            state?: string;
-          }
-        }
-
-        interface Eps {}
-
-        interface Fpx {
-          /**
-           * Account holder type for FPX transaction
-           */
-          account_holder_type?: Fpx.AccountHolderType;
-
-          /**
-           * The customer's bank.
-           */
-          bank: Fpx.Bank;
-        }
-
-        namespace Fpx {
-          type AccountHolderType = 'company' | 'individual';
-
-          type Bank =
-            | 'affin_bank'
-            | 'alliance_bank'
-            | 'ambank'
-            | 'bank_islam'
-            | 'bank_muamalat'
-            | 'bank_rakyat'
-            | 'bsn'
-            | 'cimb'
-            | 'deutsche_bank'
-            | 'hong_leong_bank'
-            | 'hsbc'
-            | 'kfh'
-            | 'maybank2e'
-            | 'maybank2u'
-            | 'ocbc'
-            | 'pb_enterprise'
-            | 'public_bank'
-            | 'rhb'
-            | 'standard_chartered'
-            | 'uob';
-        }
-
-        interface Giropay {}
-
-        interface Ideal {
-          /**
-           * The customer's bank.
-           */
-          bank?: Ideal.Bank;
-        }
-
-        namespace Ideal {
-          type Bank =
-            | 'abn_amro'
-            | 'asn_bank'
-            | 'bunq'
-            | 'handelsbanken'
-            | 'ing'
-            | 'knab'
-            | 'moneyou'
-            | 'rabobank'
-            | 'regiobank'
-            | 'sns_bank'
-            | 'triodos_bank'
-            | 'van_lanschot';
-        }
-
-        interface InteracPresent {}
-
-        interface P24 {}
-
-        interface SepaDebit {
-          /**
-           * IBAN of the bank account.
-           */
-          iban: string;
-        }
-
-        type Type =
-          | 'au_becs_debit'
-          | 'bacs_debit'
-          | 'bancontact'
-          | 'card_present'
-          | 'eps'
-          | 'fpx'
-          | 'giropay'
-          | 'ideal'
-          | 'p24'
-          | 'sepa_debit';
-      }
-
       interface PaymentMethodOptions {
         /**
          * If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options.
@@ -1137,7 +893,7 @@ declare module 'stripe' {
       amount?: number;
 
       /**
-       * The amount of the application fee (if any) that will be applied to the payment and transferred to the application owner's Stripe account. Must be greater than zero when provided. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
+       * The amount of the application fee (if any) for the resulting payment. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) for details.
        */
       application_fee_amount?: number | null;
 
@@ -1166,7 +922,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -1175,13 +931,6 @@ declare module 'stripe' {
        */
       payment_method?: string;
 
-      /**
-       * If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear
-       * in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method)
-       * property on the PaymentIntent.
-       */
-      payment_method_data?: PaymentIntentUpdateParams.PaymentMethodData;
-
       /**
        * Payment-method-specific configuration for this PaymentIntent.
        */
@@ -1249,245 +998,6 @@ declare module 'stripe' {
     }
 
     namespace PaymentIntentUpdateParams {
-      interface PaymentMethodData {
-        /**
-         * If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account.
-         */
-        au_becs_debit?: PaymentMethodData.AuBecsDebit;
-
-        /**
-         * If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
-         */
-        bacs_debit?: PaymentMethodData.BacsDebit;
-
-        /**
-         * If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method.
-         */
-        bancontact?: PaymentMethodData.Bancontact;
-
-        /**
-         * Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
-         */
-        billing_details?: PaymentMethodData.BillingDetails;
-
-        /**
-         * If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method.
-         */
-        eps?: PaymentMethodData.Eps;
-
-        /**
-         * If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method.
-         */
-        fpx?: PaymentMethodData.Fpx;
-
-        /**
-         * If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method.
-         */
-        giropay?: PaymentMethodData.Giropay;
-
-        /**
-         * If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method.
-         */
-        ideal?: PaymentMethodData.Ideal;
-
-        /**
-         * If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method.
-         */
-        interac_present?: PaymentMethodData.InteracPresent;
-
-        /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
-         */
-        metadata?: MetadataParam;
-
-        /**
-         * If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method.
-         */
-        p24?: PaymentMethodData.P24;
-
-        /**
-         * If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account.
-         */
-        sepa_debit?: PaymentMethodData.SepaDebit;
-
-        /**
-         * The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
-         */
-        type: PaymentMethodData.Type;
-      }
-
-      namespace PaymentMethodData {
-        interface AuBecsDebit {
-          /**
-           * The account number for the bank account.
-           */
-          account_number: string;
-
-          /**
-           * Bank-State-Branch number of the bank account.
-           */
-          bsb_number: string;
-        }
-
-        interface BacsDebit {
-          /**
-           * Account number of the bank account that the funds will be debited from.
-           */
-          account_number?: string;
-
-          /**
-           * Sort code of the bank account. (e.g., `10-20-30`)
-           */
-          sort_code?: string;
-        }
-
-        interface Bancontact {}
-
-        interface BillingDetails {
-          /**
-           * Billing address.
-           */
-          address?: BillingDetails.Address;
-
-          /**
-           * Email address.
-           */
-          email?: string;
-
-          /**
-           * Full name.
-           */
-          name?: string;
-
-          /**
-           * Billing phone number (including extension).
-           */
-          phone?: string;
-        }
-
-        namespace BillingDetails {
-          interface Address {
-            /**
-             * City, district, suburb, town, or village.
-             */
-            city?: string;
-
-            /**
-             * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
-             */
-            country?: string;
-
-            /**
-             * Address line 1 (e.g., street, PO Box, or company name).
-             */
-            line1?: string;
-
-            /**
-             * Address line 2 (e.g., apartment, suite, unit, or building).
-             */
-            line2?: string;
-
-            /**
-             * ZIP or postal code.
-             */
-            postal_code?: string;
-
-            /**
-             * State, county, province, or region.
-             */
-            state?: string;
-          }
-        }
-
-        interface Eps {}
-
-        interface Fpx {
-          /**
-           * Account holder type for FPX transaction
-           */
-          account_holder_type?: Fpx.AccountHolderType;
-
-          /**
-           * The customer's bank.
-           */
-          bank: Fpx.Bank;
-        }
-
-        namespace Fpx {
-          type AccountHolderType = 'company' | 'individual';
-
-          type Bank =
-            | 'affin_bank'
-            | 'alliance_bank'
-            | 'ambank'
-            | 'bank_islam'
-            | 'bank_muamalat'
-            | 'bank_rakyat'
-            | 'bsn'
-            | 'cimb'
-            | 'deutsche_bank'
-            | 'hong_leong_bank'
-            | 'hsbc'
-            | 'kfh'
-            | 'maybank2e'
-            | 'maybank2u'
-            | 'ocbc'
-            | 'pb_enterprise'
-            | 'public_bank'
-            | 'rhb'
-            | 'standard_chartered'
-            | 'uob';
-        }
-
-        interface Giropay {}
-
-        interface Ideal {
-          /**
-           * The customer's bank.
-           */
-          bank?: Ideal.Bank;
-        }
-
-        namespace Ideal {
-          type Bank =
-            | 'abn_amro'
-            | 'asn_bank'
-            | 'bunq'
-            | 'handelsbanken'
-            | 'ing'
-            | 'knab'
-            | 'moneyou'
-            | 'rabobank'
-            | 'regiobank'
-            | 'sns_bank'
-            | 'triodos_bank'
-            | 'van_lanschot';
-        }
-
-        interface InteracPresent {}
-
-        interface P24 {}
-
-        interface SepaDebit {
-          /**
-           * IBAN of the bank account.
-           */
-          iban: string;
-        }
-
-        type Type =
-          | 'au_becs_debit'
-          | 'bacs_debit'
-          | 'bancontact'
-          | 'card_present'
-          | 'eps'
-          | 'fpx'
-          | 'giropay'
-          | 'ideal'
-          | 'p24'
-          | 'sepa_debit';
-      }
-
       interface PaymentMethodOptions {
         /**
          * If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options.
@@ -1671,7 +1181,9 @@ declare module 'stripe' {
       amount_to_capture?: number;
 
       /**
-       * The amount of the application fee (if any) that will be applied to the payment and transferred to the application owner's Stripe account. Must be greater than zero when provided. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
+       * The amount of the application fee (if any) that will be applied to the
+       * payment and transferred to the application owner's Stripe account. For
+       * more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
        */
       application_fee_amount?: number;
 
@@ -1739,13 +1251,6 @@ declare module 'stripe' {
        */
       payment_method?: string;
 
-      /**
-       * If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear
-       * in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method)
-       * property on the PaymentIntent.
-       */
-      payment_method_data?: PaymentIntentConfirmParams.PaymentMethodData;
-
       /**
        * Payment-method-specific configuration for this PaymentIntent.
        */
@@ -1886,245 +1391,6 @@ declare module 'stripe' {
 
       type OffSession = 'one_off' | 'recurring';
 
-      interface PaymentMethodData {
-        /**
-         * If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account.
-         */
-        au_becs_debit?: PaymentMethodData.AuBecsDebit;
-
-        /**
-         * If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
-         */
-        bacs_debit?: PaymentMethodData.BacsDebit;
-
-        /**
-         * If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method.
-         */
-        bancontact?: PaymentMethodData.Bancontact;
-
-        /**
-         * Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
-         */
-        billing_details?: PaymentMethodData.BillingDetails;
-
-        /**
-         * If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method.
-         */
-        eps?: PaymentMethodData.Eps;
-
-        /**
-         * If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method.
-         */
-        fpx?: PaymentMethodData.Fpx;
-
-        /**
-         * If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method.
-         */
-        giropay?: PaymentMethodData.Giropay;
-
-        /**
-         * If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method.
-         */
-        ideal?: PaymentMethodData.Ideal;
-
-        /**
-         * If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method.
-         */
-        interac_present?: PaymentMethodData.InteracPresent;
-
-        /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
-         */
-        metadata?: MetadataParam;
-
-        /**
-         * If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method.
-         */
-        p24?: PaymentMethodData.P24;
-
-        /**
-         * If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account.
-         */
-        sepa_debit?: PaymentMethodData.SepaDebit;
-
-        /**
-         * The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
-         */
-        type: PaymentMethodData.Type;
-      }
-
-      namespace PaymentMethodData {
-        interface AuBecsDebit {
-          /**
-           * The account number for the bank account.
-           */
-          account_number: string;
-
-          /**
-           * Bank-State-Branch number of the bank account.
-           */
-          bsb_number: string;
-        }
-
-        interface BacsDebit {
-          /**
-           * Account number of the bank account that the funds will be debited from.
-           */
-          account_number?: string;
-
-          /**
-           * Sort code of the bank account. (e.g., `10-20-30`)
-           */
-          sort_code?: string;
-        }
-
-        interface Bancontact {}
-
-        interface BillingDetails {
-          /**
-           * Billing address.
-           */
-          address?: BillingDetails.Address;
-
-          /**
-           * Email address.
-           */
-          email?: string;
-
-          /**
-           * Full name.
-           */
-          name?: string;
-
-          /**
-           * Billing phone number (including extension).
-           */
-          phone?: string;
-        }
-
-        namespace BillingDetails {
-          interface Address {
-            /**
-             * City, district, suburb, town, or village.
-             */
-            city?: string;
-
-            /**
-             * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
-             */
-            country?: string;
-
-            /**
-             * Address line 1 (e.g., street, PO Box, or company name).
-             */
-            line1?: string;
-
-            /**
-             * Address line 2 (e.g., apartment, suite, unit, or building).
-             */
-            line2?: string;
-
-            /**
-             * ZIP or postal code.
-             */
-            postal_code?: string;
-
-            /**
-             * State, county, province, or region.
-             */
-            state?: string;
-          }
-        }
-
-        interface Eps {}
-
-        interface Fpx {
-          /**
-           * Account holder type for FPX transaction
-           */
-          account_holder_type?: Fpx.AccountHolderType;
-
-          /**
-           * The customer's bank.
-           */
-          bank: Fpx.Bank;
-        }
-
-        namespace Fpx {
-          type AccountHolderType = 'company' | 'individual';
-
-          type Bank =
-            | 'affin_bank'
-            | 'alliance_bank'
-            | 'ambank'
-            | 'bank_islam'
-            | 'bank_muamalat'
-            | 'bank_rakyat'
-            | 'bsn'
-            | 'cimb'
-            | 'deutsche_bank'
-            | 'hong_leong_bank'
-            | 'hsbc'
-            | 'kfh'
-            | 'maybank2e'
-            | 'maybank2u'
-            | 'ocbc'
-            | 'pb_enterprise'
-            | 'public_bank'
-            | 'rhb'
-            | 'standard_chartered'
-            | 'uob';
-        }
-
-        interface Giropay {}
-
-        interface Ideal {
-          /**
-           * The customer's bank.
-           */
-          bank?: Ideal.Bank;
-        }
-
-        namespace Ideal {
-          type Bank =
-            | 'abn_amro'
-            | 'asn_bank'
-            | 'bunq'
-            | 'handelsbanken'
-            | 'ing'
-            | 'knab'
-            | 'moneyou'
-            | 'rabobank'
-            | 'regiobank'
-            | 'sns_bank'
-            | 'triodos_bank'
-            | 'van_lanschot';
-        }
-
-        interface InteracPresent {}
-
-        interface P24 {}
-
-        interface SepaDebit {
-          /**
-           * IBAN of the bank account.
-           */
-          iban: string;
-        }
-
-        type Type =
-          | 'au_becs_debit'
-          | 'bacs_debit'
-          | 'bancontact'
-          | 'card_present'
-          | 'eps'
-          | 'fpx'
-          | 'giropay'
-          | 'ideal'
-          | 'p24'
-          | 'sepa_debit';
-      }
-
       interface PaymentMethodOptions {
         /**
          * If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options.
diff --git a/types/2020-03-02/PaymentMethods.d.ts b/types/2020-03-02/PaymentMethods.d.ts
index 6999f601..8e027beb 100644
--- a/types/2020-03-02/PaymentMethods.d.ts
+++ b/types/2020-03-02/PaymentMethods.d.ts
@@ -52,7 +52,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -474,7 +474,7 @@ declare module 'stripe' {
       billing_details?: PaymentMethodCreateParams.BillingDetails;
 
       /**
-       * If this is a `card` PaymentMethod, this hash contains the user's card details. For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format `card: {token: "tok_visa"}`. When providing a card number, you must meet the requirements for [PCI compliance](https://stripe.com/docs/security#validating-pci-compliance). We strongly recommend using Stripe.js instead of interacting with this API directly.
+       * If this is a `card` PaymentMethod, this hash contains the user's card details. For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format `card: {token: "tok_visa"}`. When creating with a card number, you must meet the requirements for [PCI compliance](https://stripe.com/docs/security#validating-pci-compliance). We strongly recommend using Stripe.js instead of interacting with this API directly.
        */
       card?: PaymentMethodCreateParams.Card1 | PaymentMethodCreateParams.Card2;
 
@@ -514,7 +514,7 @@ declare module 'stripe' {
       interac_present?: PaymentMethodCreateParams.InteracPresent;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
 
@@ -534,7 +534,7 @@ declare module 'stripe' {
       sepa_debit?: PaymentMethodCreateParams.SepaDebit;
 
       /**
-       * The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
+       * The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. Required unless `payment_method` is specified (see the [Cloning PaymentMethods](https://stripe.com/docs/payments/payment-methods/connect#cloning-payment-methods) guide)
        */
       type?: PaymentMethodCreateParams.Type;
     }
@@ -767,7 +767,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/Payouts.d.ts b/types/2020-03-02/Payouts.d.ts
index 28a93b2b..290b99e9 100644
--- a/types/2020-03-02/Payouts.d.ts
+++ b/types/2020-03-02/Payouts.d.ts
@@ -81,7 +81,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -142,7 +142,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
 
@@ -182,7 +182,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
     }
diff --git a/types/2020-03-02/Persons.d.ts b/types/2020-03-02/Persons.d.ts
index 55b50203..58a94a7d 100644
--- a/types/2020-03-02/Persons.d.ts
+++ b/types/2020-03-02/Persons.d.ts
@@ -91,7 +91,7 @@ declare module 'stripe' {
       maiden_name?: string | null;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata?: Metadata;
 
@@ -495,7 +495,7 @@ declare module 'stripe' {
       maiden_name?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -730,7 +730,7 @@ declare module 'stripe' {
       maiden_name?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/Plans.d.ts b/types/2020-03-02/Plans.d.ts
index a1412b6e..cb5fe5ce 100644
--- a/types/2020-03-02/Plans.d.ts
+++ b/types/2020-03-02/Plans.d.ts
@@ -67,7 +67,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -234,7 +234,7 @@ declare module 'stripe' {
       interval_count?: number;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -290,7 +290,7 @@ declare module 'stripe' {
         id?: string;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam;
 
@@ -379,7 +379,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/Prices.d.ts b/types/2020-03-02/Prices.d.ts
index cfcf6f83..916ce893 100644
--- a/types/2020-03-02/Prices.d.ts
+++ b/types/2020-03-02/Prices.d.ts
@@ -47,7 +47,7 @@ declare module 'stripe' {
       lookup_key: string | null;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -234,7 +234,7 @@ declare module 'stripe' {
       lookup_key?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
 
@@ -304,7 +304,7 @@ declare module 'stripe' {
         id?: string;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam;
 
@@ -435,7 +435,7 @@ declare module 'stripe' {
       lookup_key?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/Products.d.ts b/types/2020-03-02/Products.d.ts
index ed60f317..817400c0 100644
--- a/types/2020-03-02/Products.d.ts
+++ b/types/2020-03-02/Products.d.ts
@@ -57,7 +57,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -160,7 +160,7 @@ declare module 'stripe' {
       active?: boolean;
 
       /**
-       * A list of up to 5 alphanumeric attributes. Should only be set if type=`good`.
+       * A list of up to 5 alphanumeric attributes.
        */
       attributes?: Array<string>;
 
@@ -195,7 +195,7 @@ declare module 'stripe' {
       images?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
 
@@ -303,7 +303,7 @@ declare module 'stripe' {
       images?: Array<string> | null;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/Radar/ValueLists.d.ts b/types/2020-03-02/Radar/ValueLists.d.ts
index c26b39fd..e5e6b3c2 100644
--- a/types/2020-03-02/Radar/ValueLists.d.ts
+++ b/types/2020-03-02/Radar/ValueLists.d.ts
@@ -48,7 +48,7 @@ declare module 'stripe' {
         livemode: boolean;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
         metadata: Metadata;
 
@@ -111,7 +111,7 @@ declare module 'stripe' {
         item_type?: ValueListCreateParams.ItemType;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam;
       }
@@ -146,7 +146,7 @@ declare module 'stripe' {
         expand?: Array<string>;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam;
 
diff --git a/types/2020-03-02/Recipients.d.ts b/types/2020-03-02/Recipients.d.ts
index ea9724e1..dedd0e9f 100644
--- a/types/2020-03-02/Recipients.d.ts
+++ b/types/2020-03-02/Recipients.d.ts
@@ -46,7 +46,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
diff --git a/types/2020-03-02/Refunds.d.ts b/types/2020-03-02/Refunds.d.ts
index 317697bf..153ea4b9 100644
--- a/types/2020-03-02/Refunds.d.ts
+++ b/types/2020-03-02/Refunds.d.ts
@@ -55,7 +55,7 @@ declare module 'stripe' {
       failure_reason?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -101,7 +101,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -139,7 +139,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
     }
diff --git a/types/2020-03-02/SKUs.d.ts b/types/2020-03-02/SKUs.d.ts
index 7344ecc3..62599d3d 100644
--- a/types/2020-03-02/SKUs.d.ts
+++ b/types/2020-03-02/SKUs.d.ts
@@ -51,7 +51,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -184,7 +184,7 @@ declare module 'stripe' {
       image?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
 
@@ -280,7 +280,7 @@ declare module 'stripe' {
       inventory?: SkuUpdateParams.Inventory;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/SetupIntents.d.ts b/types/2020-03-02/SetupIntents.d.ts
index d55326f6..74c3cbba 100644
--- a/types/2020-03-02/SetupIntents.d.ts
+++ b/types/2020-03-02/SetupIntents.d.ts
@@ -64,7 +64,7 @@ declare module 'stripe' {
       mandate: string | Stripe.Mandate | null;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -302,7 +302,7 @@ declare module 'stripe' {
       mandate_data?: SetupIntentCreateParams.MandateData;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
 
@@ -465,7 +465,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/Sources.d.ts b/types/2020-03-02/Sources.d.ts
index 711eff8b..0f907ac9 100644
--- a/types/2020-03-02/Sources.d.ts
+++ b/types/2020-03-02/Sources.d.ts
@@ -76,7 +76,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata | null;
 
@@ -386,8 +386,6 @@ declare module 'stripe' {
 
         redirect_url?: string;
 
-        shipping_delay?: number;
-
         shipping_first_name?: string;
 
         shipping_last_name?: string;
@@ -1080,7 +1078,7 @@ declare module 'stripe' {
       mandate?: SourceUpdateParams.Mandate;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/SubscriptionItems.d.ts b/types/2020-03-02/SubscriptionItems.d.ts
index 9cd16bff..d865f096 100644
--- a/types/2020-03-02/SubscriptionItems.d.ts
+++ b/types/2020-03-02/SubscriptionItems.d.ts
@@ -27,7 +27,7 @@ declare module 'stripe' {
       deleted?: void;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -115,7 +115,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
 
@@ -253,7 +253,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/SubscriptionSchedules.d.ts b/types/2020-03-02/SubscriptionSchedules.d.ts
index dea15510..d294b358 100644
--- a/types/2020-03-02/SubscriptionSchedules.d.ts
+++ b/types/2020-03-02/SubscriptionSchedules.d.ts
@@ -52,7 +52,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata | null;
 
@@ -359,7 +359,7 @@ declare module 'stripe' {
       from_subscription?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -713,7 +713,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/Subscriptions.d.ts b/types/2020-03-02/Subscriptions.d.ts
index 861b99b6..855d361a 100644
--- a/types/2020-03-02/Subscriptions.d.ts
+++ b/types/2020-03-02/Subscriptions.d.ts
@@ -115,7 +115,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -376,7 +376,7 @@ declare module 'stripe' {
       items?: Array<SubscriptionCreateParams.Item>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -500,7 +500,7 @@ declare module 'stripe' {
         billing_thresholds?: Item.BillingThresholds | null;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam;
 
@@ -699,7 +699,7 @@ declare module 'stripe' {
       items?: Array<SubscriptionUpdateParams.Item>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -847,7 +847,7 @@ declare module 'stripe' {
         id?: string;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/TaxRates.d.ts b/types/2020-03-02/TaxRates.d.ts
index a486fff3..67b4b9d4 100644
--- a/types/2020-03-02/TaxRates.d.ts
+++ b/types/2020-03-02/TaxRates.d.ts
@@ -50,7 +50,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -97,7 +97,7 @@ declare module 'stripe' {
       jurisdiction?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
     }
@@ -136,7 +136,7 @@ declare module 'stripe' {
       jurisdiction?: string;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
     }
diff --git a/types/2020-03-02/Terminal/Locations.d.ts b/types/2020-03-02/Terminal/Locations.d.ts
index f4a2dcb4..1d9da89c 100644
--- a/types/2020-03-02/Terminal/Locations.d.ts
+++ b/types/2020-03-02/Terminal/Locations.d.ts
@@ -30,7 +30,7 @@ declare module 'stripe' {
         livemode: boolean;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
         metadata: Metadata;
       }
@@ -72,7 +72,7 @@ declare module 'stripe' {
         expand?: Array<string>;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
       }
@@ -135,7 +135,7 @@ declare module 'stripe' {
         expand?: Array<string>;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
       }
diff --git a/types/2020-03-02/Terminal/Readers.d.ts b/types/2020-03-02/Terminal/Readers.d.ts
index 50bd1c68..efe6ba1a 100644
--- a/types/2020-03-02/Terminal/Readers.d.ts
+++ b/types/2020-03-02/Terminal/Readers.d.ts
@@ -48,7 +48,7 @@ declare module 'stripe' {
         location: string | null;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          */
         metadata: Metadata;
 
@@ -109,7 +109,7 @@ declare module 'stripe' {
         location?: string;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
       }
@@ -133,7 +133,7 @@ declare module 'stripe' {
         label?: string;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
       }
diff --git a/types/2020-03-02/Tokens.d.ts b/types/2020-03-02/Tokens.d.ts
index 54d244e6..71ff1a54 100644
--- a/types/2020-03-02/Tokens.d.ts
+++ b/types/2020-03-02/Tokens.d.ts
@@ -21,7 +21,7 @@ declare module 'stripe' {
        * destinations on `Account` objects for [Custom accounts](https://stripe.com/docs/connect/custom-accounts).
        * They can be bank accounts or debit cards as well, and are documented in the links above.
        *
-       * Related guide: [Bank Debits and Transfers](https://stripe.com/docs/payments/bank-debits-transfers).
+       * Related guide: [Processing ACH & Bank Transfers](https://stripe.com/docs/payments/ach-bank-transfers).
        */
       bank_account?: Stripe.BankAccount;
 
@@ -345,7 +345,7 @@ declare module 'stripe' {
           maiden_name?: string;
 
           /**
-           * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+           * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
            */
           metadata?: MetadataParam | null;
 
@@ -589,7 +589,7 @@ declare module 'stripe' {
         maiden_name?: string;
 
         /**
-         * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+         * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
          */
         metadata?: MetadataParam | null;
 
diff --git a/types/2020-03-02/Topups.d.ts b/types/2020-03-02/Topups.d.ts
index da88fc4d..c941b9c5 100644
--- a/types/2020-03-02/Topups.d.ts
+++ b/types/2020-03-02/Topups.d.ts
@@ -60,7 +60,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -121,7 +121,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -160,7 +160,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
     }
diff --git a/types/2020-03-02/TransferReversals.d.ts b/types/2020-03-02/TransferReversals.d.ts
index 4a854061..2172719e 100644
--- a/types/2020-03-02/TransferReversals.d.ts
+++ b/types/2020-03-02/TransferReversals.d.ts
@@ -40,7 +40,7 @@ declare module 'stripe' {
       destination_payment_refund: string | Stripe.Refund | null;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -72,7 +72,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -96,7 +96,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
     }
diff --git a/types/2020-03-02/Transfers.d.ts b/types/2020-03-02/Transfers.d.ts
index 4f07e154..68eb11ef 100644
--- a/types/2020-03-02/Transfers.d.ts
+++ b/types/2020-03-02/Transfers.d.ts
@@ -60,7 +60,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -117,7 +117,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam;
 
@@ -160,7 +160,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
     }
diff --git a/types/2020-03-02/WebhookEndpoints.d.ts b/types/2020-03-02/WebhookEndpoints.d.ts
index dfce787c..4e9c004f 100644
--- a/types/2020-03-02/WebhookEndpoints.d.ts
+++ b/types/2020-03-02/WebhookEndpoints.d.ts
@@ -32,7 +32,7 @@ declare module 'stripe' {
       deleted?: void;
 
       /**
-       * An optional description of what the webhook is used for.
+       * An optional description of what the wehbook is used for.
        */
       description: string | null;
 
@@ -47,7 +47,7 @@ declare module 'stripe' {
       livemode: boolean;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        */
       metadata: Metadata;
 
@@ -109,7 +109,7 @@ declare module 'stripe' {
       connect?: boolean;
 
       /**
-       * An optional description of what the webhook is used for.
+       * An optional description of what the wehbook is used for.
        */
       description?: string;
 
@@ -119,7 +119,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
     }
@@ -281,7 +281,6 @@ declare module 'stripe' {
         | 'invoice.deleted'
         | 'invoice.finalized'
         | 'invoice.marked_uncollectible'
-        | 'invoice.paid'
         | 'invoice.payment_action_required'
         | 'invoice.payment_failed'
         | 'invoice.payment_succeeded'
@@ -299,9 +298,6 @@ declare module 'stripe' {
         | 'issuing_card.updated'
         | 'issuing_cardholder.created'
         | 'issuing_cardholder.updated'
-        | 'issuing_dispute.created'
-        | 'issuing_dispute.funds_reinstated'
-        | 'issuing_dispute.updated'
         | 'issuing_transaction.created'
         | 'issuing_transaction.updated'
         | 'mandate.updated'
@@ -392,7 +388,7 @@ declare module 'stripe' {
 
     interface WebhookEndpointUpdateParams {
       /**
-       * An optional description of what the webhook is used for.
+       * An optional description of what the wehbook is used for.
        */
       description?: string;
 
@@ -412,7 +408,7 @@ declare module 'stripe' {
       expand?: Array<string>;
 
       /**
-       * Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
+       * Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
        */
       metadata?: MetadataParam | null;
 
@@ -482,7 +478,6 @@ declare module 'stripe' {
         | 'invoice.deleted'
         | 'invoice.finalized'
         | 'invoice.marked_uncollectible'
-        | 'invoice.paid'
         | 'invoice.payment_action_required'
         | 'invoice.payment_failed'
         | 'invoice.payment_succeeded'
@@ -500,9 +495,6 @@ declare module 'stripe' {
         | 'issuing_card.updated'
         | 'issuing_cardholder.created'
         | 'issuing_cardholder.updated'
-        | 'issuing_dispute.created'
-        | 'issuing_dispute.funds_reinstated'
-        | 'issuing_dispute.updated'
         | 'issuing_transaction.created'
         | 'issuing_transaction.updated'
         | 'mandate.updated'


Test patch:
diff --git a/test/resources/Plans.spec.js b/test/resources/Plans.spec.js
index 3757f7df..4c9be4df 100644
--- a/test/resources/Plans.spec.js
+++ b/test/resources/Plans.spec.js
@@ -6,10 +6,10 @@ const expect = require('chai').expect;
 describe('Plans Resource', () => {
   describe('retrieve', () => {
     it('Sends the correct request', () => {
-      stripe.plans.retrieve('plan_123');
+      stripe.plans.retrieve('planId1');
       expect(stripe.LAST_REQUEST).to.deep.equal({
         method: 'GET',
-        url: '/v1/plans/plan_123',
+        url: '/v1/plans/planId1',
         headers: {},
         data: {},
         settings: {},
@@ -96,14 +96,15 @@ describe('Plans Resource', () => {
 
   describe('update', () => {
     it('Sends the correct request', () => {
-      stripe.plans.update('plan_123', {
-        active: false,
+      stripe.plans.update('planId3', {
+        amount: 1900,
+        currency: 'usd',
       });
       expect(stripe.LAST_REQUEST).to.deep.equal({
         method: 'POST',
-        url: '/v1/plans/plan_123',
+        url: '/v1/plans/planId3',
         headers: {},
-        data: {active: false},
+        data: {amount: 1900, currency: 'usd'},
         settings: {},
       });
     });
@@ -111,10 +112,10 @@ describe('Plans Resource', () => {
 
   describe('del', () => {
     it('Sends the correct request', () => {
-      stripe.plans.del('plan_123');
+      stripe.plans.del('planId4');
       expect(stripe.LAST_REQUEST).to.deep.equal({
         method: 'DELETE',
-        url: '/v1/plans/plan_123',
+        url: '/v1/plans/planId4',
         headers: {},
         data: {},
         settings: {},
diff --git a/test/resources/Prices.spec.js b/test/resources/Prices.spec.js
index 2b368812..132a1b3e 100644
--- a/test/resources/Prices.spec.js
+++ b/test/resources/Prices.spec.js
@@ -50,14 +50,15 @@ describe('Plans Resource', () => {
 
   describe('update', () => {
     it('Sends the correct request', () => {
-      stripe.prices.update('price_123', {
-        active: false,
+      stripe.prices.update('priceId3', {
+        amount: 1900,
+        currency: 'usd',
       });
       expect(stripe.LAST_REQUEST).to.deep.equal({
         method: 'POST',
-        url: '/v1/prices/price_123',
+        url: '/v1/prices/priceId3',
         headers: {},
-        data: {active: false},
+        data: {amount: 1900, currency: 'usd'},
         settings: {},
       });
     });
diff --git a/test/stripe.spec.js b/test/stripe.spec.js
index dc927c0e..08e27ffd 100644
--- a/test/stripe.spec.js
+++ b/test/stripe.spec.js
@@ -58,6 +58,47 @@ describe('Stripe Module', function() {
         });
       }).to.not.throw();
     });
+    it('should forbid sending http to *.stripe.com', () => {
+      expect(() => {
+        Stripe(testUtils.getUserStripeKey(), {
+          host: 'foo.stripe.com',
+          protocol: 'http',
+        });
+      }).to.throw(/The `https` protocol must be used/);
+
+      expect(() => {
+        Stripe(testUtils.getUserStripeKey(), {
+          protocol: 'http',
+        });
+      }).to.throw(/The `https` protocol must be used/);
+
+      expect(() => {
+        Stripe(testUtils.getUserStripeKey(), {
+          protocol: 'http',
+          host: 'api.stripe.com',
+        });
+      }).to.throw(/The `https` protocol must be used/);
+
+      expect(() => {
+        Stripe(testUtils.getUserStripeKey(), {
+          protocol: 'https',
+          host: 'api.stripe.com',
+        });
+      }).not.to.throw();
+
+      expect(() => {
+        Stripe(testUtils.getUserStripeKey(), {
+          host: 'api.stripe.com',
+        });
+      }).not.to.throw();
+
+      expect(() => {
+        Stripe(testUtils.getUserStripeKey(), {
+          protocol: 'http',
+          host: 'localhost',
+        });
+      }).not.to.throw();
+    });
 
     it('should perform a no-op if null, undefined or empty values are passed', () => {
       const cases = [null, undefined, '', {}];