code: import stripe
  stripe.api_key = "sk_test_your_key"
  
  stripe.PaymentIntent.modify(
    "pi_1DrPsv2eZvKYlo2CEDzqXfPH",
    metadata={"order_id": "6735"},
  )
  '''Response {
    "id": "pi_1DrPsv2eZvKYlo2CEDzqXfPH",
    "object": "payment_intent",
    "amount": 1099,
    "amount_capturable": 0,
    "amount_details": {
      "tip": {}
    },
    "amount_received": 0,
    "application": null,
    "application_fee_amount": null,
    "automatic_payment_methods": null,
    "canceled_at": null,
    "cancellation_reason": null,
    "capture_method": "manual",
    "charges": {
      "object": "list",
      "data": [],
      "has_more": false,
      "url": "/v1/charges?payment_intent=pi_1DrPsv2eZvKYlo2CEDzqXfPH"
    },
    "client_secret": "pi_1DrPsv2eZvKYlo2CEDzqXfPH_secret_DDAO0OLHB8Q8oN5btYX9rg9j2",
    "confirmation_method": "automatic",
    "created": 1547212637,
    "currency": "usd",
    "customer": null,
    "description": null,
    "invoice": null,
    "last_payment_error": null,
    "livemode": false,
    "metadata": {
      "order_id": "6735"
    },
    "next_action": null,
    "on_behalf_of": null,
    "payment_method": null,
    "payment_method_options": {},
    "payment_method_types": [
      "card"
    ],
    "processing": null,
    "receipt_email": null,
    "redaction": null,
    "review": null,
    "setup_future_usage": null,
    "shipping": null,
    "statement_descriptor": null,
    "statement_descriptor_suffix": null,
    "status": "requires_payment_method",
    "transfer_data": null,
    "transfer_group": null
  }'''
nl: Update a PaymentIntentUpdates properties on a PaymentIntent object without confirming.
  Depending on which properties you update, you may need to confirm the
  PaymentIntent again. For example, updating the payment_method will
  always require you to confirm the PaymentIntent again. If you prefer to
  update and confirm at the same time, we recommend updating properties via
  the confirm API instead.Parameters amount optional Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or equivalent in charge currency. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99). currency optional Three-letter ISO currency code, in lowercase. Must be a supported currency. customer optional ID of the Customer this PaymentIntent belongs to, if one exists.
  Payment methods attached to other Customers cannot be used with this PaymentIntent.
  If present in combination with setup_future_usage, this PaymentIntent’s payment method will be attached to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete. description optional An arbitrary string attached to the object. Often useful for displaying to users. metadata optional dictionary 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. payment_method optional ID of the payment method (a PaymentMethod, Card, or compatible Source object) to attach to this PaymentIntent. payment_method_types optional The list of payment method types (e.g. card) that this PaymentIntent is allowed to use. Use automatic_payment_methods to manage payment methods from the Stripe Dashboard. receipt_email optional Email address that the receipt for the resulting payment will be sent to. If receipt_email is specified for a payment in live mode, a receipt will be sent regardless of your email settings. setup_future_usage optional enum Indicates that you intend to make future payments with this PaymentIntent’s payment method.
  Providing this parameter will attach the payment method to the PaymentIntent’s Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be attached to a Customer after the transaction completes.
  When processing card payments, Stripe also uses setup_future_usage to dynamically optimize your payment flow and comply with regional legislation and network rules, such as SCA.
  If setup_future_usage is already set and you are performing a request using a publishable key, you may only update the value from on_session to off_session.Possible enum valueson_session Use on_session if you intend to only reuse the payment method when your customer is present in your checkout flow.off_session Use off_session if your customer may or may not be present in your checkout flow. shipping optional dictionary Shipping information for this PaymentIntent.Show child parameters statement_descriptor optional For non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters. statement_descriptor_suffix optional Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.More parametersExpand all  application_fee_amount optional Connect only   capture_method optional enum secret key only   payment_method_data optional dictionary   payment_method_options optional dictionary   transfer_data optional dictionary Connect only   transfer_group optional Connect only ReturnsReturns a PaymentIntent object