code: import stripe
  stripe.api_key = "sk_test_your_key"
  
  stripe.PaymentIntent.create(
    amount=2000,
    currency="usd",
    payment_method_types=["card"],
  )
  '''Response {
    "id": "pi_1DrPsv2eZvKYlo2CEDzqXfPH",
    "object": "payment_intent",
    "amount": 2000,
    "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": {},
    "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: Create a PaymentIntentCreates a PaymentIntent object.
  After the PaymentIntent is created, attach a payment method and confirm
  to continue the payment. You can read more about the different payment flows
  available via the Payment Intents API here.
  When confirm=true is used during creation, it is equivalent to creating
  and confirming the PaymentIntent in the same call. You may use any parameters
  available in the confirm API when confirm=true
  is supplied.Parameters amount required 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 required Three-letter ISO currency code, in lowercase. Must be a supported currency. automatic_payment_methods optional dictionary When enabled, this PaymentIntent will accept payment methods that you have enabled in the Dashboard and are compatible with this PaymentIntent’s other parameters.Show child parameters confirm optional Set to true to attempt to confirm this PaymentIntent immediately. This parameter defaults to false. When creating and confirming a PaymentIntent at the same time, parameters available in the confirm API may also be provided. 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. off_session optional only when confirm=true Set to true to indicate that the customer is not in your checkout flow during this payment attempt, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. This parameter can only be used with confirm=true. payment_method optional ID of the payment method (a PaymentMethod, Card, or compatible Source object) to attach to this PaymentIntent.
  If this parameter is omitted with confirm=true, customer.default_source will be attached as this PaymentIntent’s payment instrument to improve the migration experience for users of the Charges API. We recommend that you explicitly provide the payment_method going forward. payment_method_types optional The list of payment method types that this PaymentIntent is allowed to use.
  If this is not provided, defaults to [“card”].
  Valid payment method types include: acss_debit, affirm, afterpay_clearpay, alipay, au_becs_debit, bacs_debit, bancontact, blik, boleto, card, card_present, eps, fpx, giropay, grabpay, ideal, klarna, konbini, link, oxxo, p24, paynow, promptpay, sepa_debit, sofort, us_bank_account, and wechat_pay. 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.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   confirmation_method optional enum   error_on_requires_action optional only when confirm=true   mandate optional only when confirm=true   mandate_data optional dictionary only when confirm=true   on_behalf_of optional Connect only   payment_method_data optional dictionary   payment_method_options optional dictionary   radar_options optional dictionary   return_url optional only when confirm=true   transfer_data optional dictionary Connect only   transfer_group optional Connect only   use_stripe_sdk optional ReturnsReturns a PaymentIntent object