POST /v1/charges

This method is no longer recommended—use the Payment Intents API to initiate a new payment instead. Confirmation of the PaymentIntent creates the Charge object used to request payment.

Servers

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/x-www-form-urlencoded"

Request body fields

Name Type Required Description
source String No

A payment source to be charged. This can be the ID of a card (i.e., credit or debit card), a bank account, a source, a token, or a connected account. For certain sources---namely, cards, bank accounts, and attached sources---you must also pass the ID of the associated customer.

application_fee Integer No
description String No

An arbitrary string which you can attach to a Charge object. It is displayed when in the web interface alongside the charge. Note that if you use Stripe to send automatic email receipts to your customers, your receipt emails will include the description of the charge(s) that they are describing.

destination No
expand[] Array No

Specifies which fields in the response should be expanded.

application_fee_amount Integer No

A fee in cents (or local equivalent) that will be applied to the charge and transferred to the application owner's Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees documentation.

metadata No

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.

transfer_group String No

A string that identifies this transaction as part of a group. For details, see Grouping transactions.

receipt_email String No

The email address to which this charge's receipt will be sent. The receipt will not be sent until the charge is paid, and no receipts will be sent for test mode charges. If this charge is for a Customer, the email address specified here will override the customer's email address. If receipt_email is specified for a charge in live mode, a receipt will be sent regardless of your email settings.

card No

A token, like the ones returned by Stripe.js.

statement_descriptor_suffix String No

Provides information about a card charge. Concatenated to the account's statement descriptor prefix to form the complete statement descriptor that appears on the customer's statement. If the account has no prefix value, the suffix is concatenated to the account's statement descriptor.

currency String No

Three-letter ISO currency code, in lowercase. Must be a supported currency.

on_behalf_of String No

The Stripe account ID for which these funds are intended. Automatically set if you use the destination parameter. For details, see Creating Separate Charges and Transfers.

customer String No

The ID of an existing customer that will be charged in this request.

capture Boolean No

Whether to immediately capture the charge. Defaults to true. When false, the charge issues an authorization (or pre-authorization), and will need to be captured later. Uncaptured charges expire after a set number of days (7 by default). For more information, see the authorizing charges and settling later documentation.

amount Integer No

Amount intended to be collected by this payment. 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).

shipping Object No

Shipping information for the charge. Helps prevent fraud on charges for physical goods.

shipping.name String Yes
shipping.carrier String No
shipping.phone String No
shipping.address Object Yes
shipping.address.line2 String No
shipping.address.line1 String No
shipping.address.postal_code String No
shipping.address.country String No
shipping.address.state String No
shipping.address.city String No
shipping.tracking_number String No
radar_options Object No

Options to configure Radar. See Radar Session for more information.

radar_options.session String No
statement_descriptor String No

For a non-card charge, text that appears on the customer's statement as the statement descriptor. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see the Statement Descriptor docs.

For a card charge, this value is ignored unless you don't specify a statement_descriptor_suffix, in which case this value is used as the suffix.

transfer_data Object No

An optional dictionary including the account to automatically transfer to as part of a destination charge. See the Connect documentation for details.

transfer_data.destination String Yes
transfer_data.amount Integer No

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.