Skip to main content

PostCharges

<p>To charge a credit card or other payment source, you create a <code>Charge</code> object. If your API key is in test mode, the supplied payment source (e.g., card) won’t actually be charged, although everything else will occur as if in live mode. (Stripe assumes that the charge would have completed successfully).</p>

POST/v1/charges
Source
openapi/spec3.json
Commit
d70de345383d
Active snapshot
da69df7e6e11

Request

Authorization
Read-only

Credentials are never accepted or stored on this documentation page.

basicAuth http
required

Send credentials in the Authorization request header using the Basic scheme.

Basic HTTP authentication. Allowed headers-- Authorization: Basic <api_key> | Authorization: Basic <base64 hash of `api_key:`>

Request header
Authorization
Scheme
basic
bearerAuth http
required

Send the token in the Authorization request header using the Bearer scheme.

Bearer HTTP authentication. Allowed headers-- Authorization: Bearer <api_key>

Request header
Authorization
Scheme
bearer
Bearer format
auth-scheme
Body Params
optional
application/x-www-form-urlencodedobject
amount integer
optional

Amount intended to be collected by this payment. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (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](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).

application_fee integer
optional
application_fee_amount integer
optional

A fee in %s 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](https://stripe.com/docs/connect/direct-charges#collecting-fees).

capture boolean
optional

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](https://stripe.com/docs/api#capture_charge) later. Uncaptured charges expire after a set number of days (7 by default). For more information, see the [authorizing charges and settling later](https://stripe.com/docs/charges/placing-a-hold) documentation.

card
optional

A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js).

currency string
optional

Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).

customer string
optional

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

description string
optional

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
optional
expand array[string]
optional

Specifies which fields in the response should be expanded.

metadata
optional

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`.

on_behalf_of string
optional

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](https://stripe.com/docs/connect/charges-transfers#on-behalf-of).

receipt_email string
optional

The email address to which this charge's [receipt](https://stripe.com/docs/dashboard/receipts) 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](https://stripe.com/docs/api/customers/object), 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](https://dashboard.stripe.com/account/emails).

shipping optional_fields_shipping object
optional

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

address optional_fields_address object
required
city string
optional
country string
optional
line1 string
optional
line2 string
optional
postal_code string
optional
state string
optional
carrier string
optional
name string
required
phone string
optional
tracking_number string
optional
source string
optional

A payment source to be charged. This can be the ID of a [card](https://stripe.com/docs/api#cards) (i.e., credit or debit card), a [bank account](https://stripe.com/docs/api#bank_accounts), a [source](https://stripe.com/docs/api#sources), a [token](https://stripe.com/docs/api#tokens), or a [connected account](https://stripe.com/docs/connect/account-debits#charging-a-connected-account). For certain sources---namely, [cards](https://stripe.com/docs/api#cards), [bank accounts](https://stripe.com/docs/api#bank_accounts), and attached [sources](https://stripe.com/docs/api#sources)---you must also pass the ID of the associated customer.

statement_descriptor string
optional

For card charges, use `statement_descriptor_suffix` instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters.

statement_descriptor_suffix string
optional

Provides information about the charge 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.

transfer_data transfer_data_specs object
optional

An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details.

amount integer
optional
destination string
required
transfer_group string
optional

A string that identifies this transaction as part of a group. For details, see [Grouping transactions](https://stripe.com/docs/connect/charges-transfers#transfer-options).

Responses

application/json Charge object

Successful response.

amount integer
required

Amount intended to be collected by this payment. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (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](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).

amount_captured integer
required

Amount in %s captured (can be less than the amount attribute on the charge if a partial capture was made).

amount_refunded integer
required

Amount in %s refunded (can be less than the amount attribute on the charge if a partial refund was issued).

application
optionalnullable

ID of the Connect application that created the charge.

application_fee
optionalnullable

The application fee (if any) for the charge. [See the Connect documentation](https://stripe.com/docs/connect/direct-charges#collecting-fees) for details.

application_fee_amount integer
optionalnullable

The amount of the application fee (if any) requested for the charge. [See the Connect documentation](https://stripe.com/docs/connect/direct-charges#collecting-fees) for details.

balance_transaction
optionalnullable

ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes).

billing_details billing_details object
required
address
optionalnullable

Billing address.

email string
optionalnullable

Email address.

name string
optionalnullable

Full name.

phone string
optionalnullable

Billing phone number (including extension).

calculated_statement_descriptor string
optionalnullable

The full statement descriptor that is passed to card networks, and that is displayed on your customers' credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined.

captured boolean
required

If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured.

created integer<unix-time>
required

Time at which the object was created. Measured in seconds since the Unix epoch.

currency string
required

Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).

customer
optionalnullable

ID of the customer this charge is for if one exists.

description string
optionalnullable

An arbitrary string attached to the object. Often useful for displaying to users.

disputed boolean
required

Whether the charge has been disputed.

failure_code string
optionalnullable

Error code explaining reason for charge failure if available (see [the errors section](https://stripe.com/docs/api#errors) for a list of codes).

failure_message string
optionalnullable

Message to user further explaining reason for charge failure if available.

fraud_details
optionalnullable

Information on fraud assessments for the charge.

id string
required

Unique identifier for the object.

invoice
optionalnullable

ID of the invoice this charge is for if one exists.

livemode boolean
required

Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.

metadata object
required

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.

object string
required

String representing the object's type. Objects of the same type share the same value.

on_behalf_of
optionalnullable

The account (if any) the charge was made on behalf of without triggering an automatic transfer. See the [Connect documentation](https://stripe.com/docs/connect/charges-transfers) for details.

order
optionalnullable

ID of the order this charge is for if one exists.

outcome
optionalnullable

Details about whether the payment was accepted, and why. See [understanding declines](https://stripe.com/docs/declines) for details.

paid boolean
required

`true` if the charge succeeded, or was successfully authorized for later capture.

payment_intent
optionalnullable

ID of the PaymentIntent associated with this charge, if one exists.

payment_method string
optionalnullable

ID of the payment method used in this charge.

payment_method_details
optionalnullable

Details about the payment method at the time of the transaction.

receipt_email string
optionalnullable

This is the email address that the receipt for this charge was sent to.

receipt_number string
optionalnullable

This is the transaction number that appears on email receipts sent for this charge. This attribute will be `null` until a receipt has been sent.

receipt_url string
optionalnullable

This is the URL to view the receipt for this charge. The receipt is kept up-to-date to the latest state of the charge, including any refunds. If the charge is for an Invoice, the receipt will be stylized as an Invoice receipt.

refunded boolean
required

Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.

refunds RefundList object
required

A list of refunds that have been applied to the charge.

data array[Refund object]
required

Details about each object.

items Refund object

`Refund` objects allow you to refund a charge that has previously been created but not yet refunded. Funds will be refunded to the credit or debit card that was originally charged. Related guide: [Refunds](https://stripe.com/docs/refunds).

amount integer
required

Amount, in %s.

balance_transaction
optionalnullable

Balance transaction that describes the impact on your account balance.

charge
optionalnullable

ID of the charge that was refunded.

created integer<unix-time>
required

Time at which the object was created. Measured in seconds since the Unix epoch.

currency string
required

Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).

description string
optional

An arbitrary string attached to the object. Often useful for displaying to users. (Available on non-card refunds only)

failure_balance_transaction
optional

If the refund failed, this balance transaction describes the adjustment made on your account balance that reverses the initial balance transaction.

failure_reason string
optional

If the refund failed, the reason for refund failure if known. Possible values are `lost_or_stolen_card`, `expired_or_canceled_card`, or `unknown`.

id string
required

Unique identifier for the object.

metadata object
optionalnullable

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.

object string
required

String representing the object's type. Objects of the same type share the same value.

payment_intent
optionalnullable

ID of the PaymentIntent that was refunded.

reason string
optionalnullable

Reason for the refund, either user-provided (`duplicate`, `fraudulent`, or `requested_by_customer`) or generated by Stripe internally (`expired_uncaptured_charge`).

receipt_number string
optionalnullable

This is the transaction number that appears on email receipts sent for this refund.

source_transfer_reversal
optionalnullable

The transfer reversal that is associated with the refund. Only present if the charge came from another Stripe account. See the Connect documentation for details.

status string
optionalnullable

Status of the refund. For credit card refunds, this can be `pending`, `succeeded`, or `failed`. For other types of refunds, it can be `pending`, `succeeded`, `failed`, or `canceled`. Refer to our [refunds](https://stripe.com/docs/refunds#failed-refunds) documentation for more details.

transfer_reversal
optionalnullable

If the accompanying transfer was reversed, the transfer reversal object. Only applicable if the charge was created using the destination parameter.

has_more boolean
required

True if this list has another page of items after this one that can be fetched.

object string
required

String representing the object's type. Objects of the same type share the same value. Always has the value `list`.

url string
required

The URL where this list can be accessed.

review
optionalnullable

ID of the review associated with this charge if one exists.

shipping
optionalnullable

Shipping information for the charge.

source_transfer
optionalnullable

The transfer ID which created this charge. Only present if the charge came from another Stripe account. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details.

statement_descriptor string
optionalnullable

For card charges, use `statement_descriptor_suffix` instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters.

statement_descriptor_suffix string
optionalnullable

Provides information about the charge 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.

status string
required

The status of the payment is either `succeeded`, `pending`, or `failed`.

transfer
optional

ID of the transfer to the `destination` account (only applicable if the charge was created using the `destination` parameter).

transfer_data
optionalnullable

An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details.

transfer_group string
optionalnullable

A string that identifies this transaction as part of a group. See the [Connect documentation](https://stripe.com/docs/connect/charges-transfers#transfer-options) for details.

application/json error object

Error response.

error APIErrors object
required
charge string
optional

For card errors, the ID of the failed charge.

code string
optional

For some errors that could be handled programmatically, a short string indicating the [error code](https://stripe.com/docs/error-codes) reported.

decline_code string
optional

For card errors resulting from a card issuer decline, a short string indicating the [card issuer's reason for the decline](https://stripe.com/docs/declines#issuer-declines) if they provide one.

doc_url string
optional

A URL to more information about the [error code](https://stripe.com/docs/error-codes) reported.

message string
optional

A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.

param string
optional

If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.

payment_intent PaymentIntent object
optional

A PaymentIntent guides you through the process of collecting a payment from your customer. We recommend that you create exactly one PaymentIntent for each order or customer session in your system. You can reference the PaymentIntent later to see the history of payment attempts for a particular session. A PaymentIntent transitions through [multiple statuses](https://stripe.com/docs/payments/intents#intent-statuses) throughout its lifetime as it interfaces with Stripe.js to perform authentication flows and ultimately creates at most one successful charge. Related guide: [Payment Intents API](https://stripe.com/docs/payments/payment-intents).

amount integer
required

Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (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](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).

amount_capturable integer
optional

Amount that can be captured from this PaymentIntent.

amount_received integer
optional

Amount that was collected by this PaymentIntent.

application
optionalnullable

ID of the Connect application that created the PaymentIntent.

application_fee_amount integer
optionalnullable

The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).

automatic_payment_methods
optionalnullable

Settings to configure compatible payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods)

canceled_at integer<unix-time>
optionalnullable

Populated when `status` is `canceled`, this is the time at which the PaymentIntent was canceled. Measured in seconds since the Unix epoch.

cancellation_reason string
optionalnullable

Reason for cancellation of this PaymentIntent, either user-provided (`duplicate`, `fraudulent`, `requested_by_customer`, or `abandoned`) or generated by Stripe internally (`failed_invoice`, `void_invoice`, or `automatic`).

capture_method string
required

Controls when the funds will be captured from the customer's account.

charges PaymentFlowsPaymentIntentResourceChargeList object
optional

Charges that were created by this PaymentIntent, if any.

data array
required

This list only contains the latest charge, even if there were previously multiple unsuccessful charges. To view all previous charges for a PaymentIntent, you can filter the charges list using the `payment_intent` [parameter](https://stripe.com/docs/api/charges/list#list_charges-payment_intent).

has_more boolean
required

True if this list has another page of items after this one that can be fetched.

object string
required

String representing the object's type. Objects of the same type share the same value. Always has the value `list`.

url string
required

The URL where this list can be accessed.

client_secret string
optionalnullable

The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key. The client secret can be used to complete a payment from your frontend. It should not be stored, logged, embedded in URLs, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret. Refer to our docs to [accept a payment](https://stripe.com/docs/payments/accept-a-payment?integration=elements) and learn about how `client_secret` should be handled.

confirmation_method string
required
created integer<unix-time>
required

Time at which the object was created. Measured in seconds since the Unix epoch.

currency string
required

Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).

customer
optionalnullable

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](https://stripe.com/docs/api#payment_intent_object-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 string
optionalnullable

An arbitrary string attached to the object. Often useful for displaying to users.

id string
required

Unique identifier for the object.

invoice
optionalnullable

ID of the invoice that created this PaymentIntent, if it exists.

last_payment_error
optionalnullable

The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if the PaymentIntent is later updated for any reason.

livemode boolean
required

Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.

metadata object
optional

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).

next_action
optionalnullable

If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source.

object string
required

String representing the object's type. Objects of the same type share the same value.

on_behalf_of
optionalnullable

The account (if any) for which the funds of the PaymentIntent are intended. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) for details.

payment_method
optionalnullable

ID of the payment method used in this PaymentIntent.

payment_method_options
optionalnullable

Payment-method-specific configuration for this PaymentIntent.

payment_method_types array[string]
required

The list of payment method types (e.g. card) that this PaymentIntent is allowed to use.

processing
optionalnullable

If present, this property tells you about the processing state of the payment.

receipt_email string
optionalnullable

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](https://dashboard.stripe.com/account/emails).

review
optionalnullable

ID of the review associated with this PaymentIntent, if any.

setup_future_usage string
optionalnullable

Indicates that you intend to make future payments with this PaymentIntent's payment method. Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) 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](https://stripe.com/docs/api/payment_methods/attach) 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](https://stripe.com/docs/strong-customer-authentication).

shipping
optionalnullable

Shipping information for this PaymentIntent.

statement_descriptor string
optionalnullable

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 string
optionalnullable

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.

status string
required

Status of this PaymentIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `requires_capture`, `canceled`, or `succeeded`. Read more about each PaymentIntent [status](https://stripe.com/docs/payments/intents#intent-statuses).

transfer_data
optionalnullable

The data with which to automatically create a Transfer when the payment is finalized. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) for details.

transfer_group string
optionalnullable

A string that identifies the resulting payment as part of a group. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) for details.

payment_method PaymentMethod object
optional

PaymentMethod objects represent your customer's payment instruments. They can be used with [PaymentIntents](https://stripe.com/docs/payments/payment-intents) to collect payments or saved to Customer objects to store instrument details for future payments. Related guides: [Payment Methods](https://stripe.com/docs/payments/payment-methods) and [More Payment Scenarios](https://stripe.com/docs/payments/more-payment-scenarios).

acss_debit payment_method_acss_debit object
optional
bank_name string
optionalnullable

Name of the bank associated with the bank account.

fingerprint string
optionalnullable

Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.

institution_number string
optionalnullable

Institution number of the bank account.

last4 string
optionalnullable

Last four digits of the bank account number.

transit_number string
optionalnullable

Transit number of the bank account.

afterpay_clearpay payment_method_afterpay_clearpay object
optional
alipay PaymentFlowsPrivatePaymentMethodsAlipay object
optional
au_becs_debit payment_method_au_becs_debit object
optional
bsb_number string
optionalnullable

Six-digit number identifying bank and branch associated with this bank account.

fingerprint string
optionalnullable

Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.

last4 string
optionalnullable

Last four digits of the bank account number.

bacs_debit payment_method_bacs_debit object
optional
fingerprint string
optionalnullable

Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.

last4 string
optionalnullable

Last four digits of the bank account number.

sort_code string
optionalnullable

Sort code of the bank account. (e.g., `10-20-30`)

bancontact payment_method_bancontact object
optional
billing_details billing_details object
required
address
optionalnullable

Billing address.

email string
optionalnullable

Email address.

name string
optionalnullable

Full name.

phone string
optionalnullable

Billing phone number (including extension).

boleto payment_method_boleto object
optional
tax_id string
required

Uniquely identifies the customer tax id (CNPJ or CPF)

card payment_method_card object
optional
brand string
required

Card brand. Can be `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.

checks
optionalnullable

Checks on Card address and CVC if provided.

country string
optionalnullable

Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.

exp_month integer
required

Two-digit number representing the card's expiration month.

exp_year integer
required

Four-digit number representing the card's expiration year.

fingerprint string
optionalnullable

Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. *Starting May 1, 2021, card fingerprint in India for Connect will change to allow two fingerprints for the same card --- one for India and one for the rest of the world.*

funding string
required

Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.

generated_from
optionalnullable

Details of the original PaymentMethod that created this object.

last4 string
required

The last four digits of the card.

networks
optionalnullable

Contains information about card networks that can be used to process the payment.

three_d_secure_usage
optionalnullable

Contains details on how this Card maybe be used for 3D Secure authentication.

wallet
optionalnullable

If this Card is part of a card wallet, this contains the details of the card wallet.

card_present payment_method_card_present object
optional
created integer<unix-time>
required

Time at which the object was created. Measured in seconds since the Unix epoch.

customer
optionalnullable

The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.

eps payment_method_eps object
optional
bank string
optionalnullable

The customer's bank. Should be one of `arzte_und_apotheker_bank`, `austrian_anadi_bank_ag`, `bank_austria`, `bankhaus_carl_spangler`, `bankhaus_schelhammer_und_schattera_ag`, `bawag_psk_ag`, `bks_bank_ag`, `brull_kallmus_bank_ag`, `btv_vier_lander_bank`, `capital_bank_grawe_gruppe_ag`, `dolomitenbank`, `easybank_ag`, `erste_bank_und_sparkassen`, `hypo_alpeadriabank_international_ag`, `hypo_noe_lb_fur_niederosterreich_u_wien`, `hypo_oberosterreich_salzburg_steiermark`, `hypo_tirol_bank_ag`, `hypo_vorarlberg_bank_ag`, `hypo_bank_burgenland_aktiengesellschaft`, `marchfelder_bank`, `oberbank_ag`, `raiffeisen_bankengruppe_osterreich`, `schoellerbank_ag`, `sparda_bank_wien`, `volksbank_gruppe`, `volkskreditbank_ag`, or `vr_bank_braunau`.

fpx payment_method_fpx object
optional
bank string
required

The customer's bank, if provided. Can be one of `affin_bank`, `agrobank`, `alliance_bank`, `ambank`, `bank_islam`, `bank_muamalat`, `bank_rakyat`, `bsn`, `cimb`, `hong_leong_bank`, `hsbc`, `kfh`, `maybank2u`, `ocbc`, `public_bank`, `rhb`, `standard_chartered`, `uob`, `deutsche_bank`, `maybank2e`, or `pb_enterprise`.

giropay payment_method_giropay object
optional
grabpay payment_method_grabpay object
optional
id string
required

Unique identifier for the object.

ideal payment_method_ideal object
optional
bank string
optionalnullable

The customer's bank, if provided. Can be one of `abn_amro`, `asn_bank`, `bunq`, `handelsbanken`, `ing`, `knab`, `moneyou`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, or `van_lanschot`.

bic string
optionalnullable

The Bank Identifier Code of the customer's bank, if the bank was provided.

interac_present payment_method_interac_present object
optional
klarna payment_method_klarna object
optional
dob
optionalnullable

The customer's date of birth, if provided.

livemode boolean
required

Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.

metadata object
optionalnullable

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.

object string
required

String representing the object's type. Objects of the same type share the same value.

oxxo payment_method_oxxo object
optional
p24 payment_method_p24 object
optional
bank string
optionalnullable

The customer's bank, if provided.

sepa_debit payment_method_sepa_debit object
optional
bank_code string
optionalnullable

Bank code of bank associated with the bank account.

branch_code string
optionalnullable

Branch code of bank associated with the bank account.

country string
optionalnullable

Two-letter ISO code representing the country the bank account is located in.

fingerprint string
optionalnullable

Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.

generated_from
optionalnullable

Information about the object that generated this PaymentMethod.

last4 string
optionalnullable

Last four characters of the IBAN.

sofort payment_method_sofort object
optional
country string
optionalnullable

Two-letter ISO code representing the country the bank account is located in.

type string
required

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.

wechat_pay payment_method_wechat_pay object
optional
payment_method_type string
optional

If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors.

setup_intent SetupIntent object
optional

A SetupIntent guides you through the process of setting up and saving a customer's payment credentials for future payments. For example, you could use a SetupIntent to set up and save your customer's card without immediately collecting a payment. Later, you can use [PaymentIntents](https://stripe.com/docs/api#payment_intents) to drive the payment flow. Create a SetupIntent as soon as you're ready to collect your customer's payment credentials. Do not maintain long-lived, unconfirmed SetupIntents as they may no longer be valid. The SetupIntent then transitions through multiple [statuses](https://stripe.com/docs/payments/intents#intent-statuses) as it guides you through the setup process. Successful SetupIntents result in payment credentials that are optimized for future payments. For example, cardholders in [certain regions](/guides/strong-customer-authentication) may need to be run through [Strong Customer Authentication](https://stripe.com/docs/strong-customer-authentication) at the time of payment method collection in order to streamline later [off-session payments](https://stripe.com/docs/payments/setup-intents). If the SetupIntent is used with a [Customer](https://stripe.com/docs/api#setup_intent_object-customer), upon success, it will automatically attach the resulting payment method to that Customer. We recommend using SetupIntents or [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) on PaymentIntents to save payment methods in order to prevent saving invalid or unoptimized payment methods. By using SetupIntents, you ensure that your customers experience the minimum set of required friction, even as regulations change over time. Related guide: [Setup Intents API](https://stripe.com/docs/payments/setup-intents).

application
optionalnullable

ID of the Connect application that created the SetupIntent.

cancellation_reason string
optionalnullable

Reason for cancellation of this SetupIntent, one of `abandoned`, `requested_by_customer`, or `duplicate`.

client_secret string
optionalnullable

The client secret of this SetupIntent. Used for client-side retrieval using a publishable key. The client secret can be used to complete payment setup from your frontend. It should not be stored, logged, embedded in URLs, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.

created integer<unix-time>
required

Time at which the object was created. Measured in seconds since the Unix epoch.

customer
optionalnullable

ID of the Customer this SetupIntent belongs to, if one exists. If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.

description string
optionalnullable

An arbitrary string attached to the object. Often useful for displaying to users.

id string
required

Unique identifier for the object.

last_setup_error
optionalnullable

The error encountered in the previous SetupIntent confirmation.

latest_attempt
optionalnullable

The most recent SetupAttempt for this SetupIntent.

livemode boolean
required

Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.

mandate
optionalnullable

ID of the multi use Mandate generated by the SetupIntent.

metadata object
optionalnullable

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.

next_action
optionalnullable

If present, this property tells you what actions you need to take in order for your customer to continue payment setup.

object string
required

String representing the object's type. Objects of the same type share the same value.

on_behalf_of
optionalnullable

The account (if any) for which the setup is intended.

payment_method
optionalnullable

ID of the payment method used with this SetupIntent.

payment_method_options
optionalnullable

Payment-method-specific configuration for this SetupIntent.

payment_method_types array[string]
required

The list of payment method types (e.g. card) that this SetupIntent is allowed to set up.

single_use_mandate
optionalnullable

ID of the single_use Mandate generated by the SetupIntent.

status string
required

[Status](https://stripe.com/docs/payments/intents#intent-statuses) of this SetupIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `canceled`, or `succeeded`.

usage string
required

Indicates how the payment method is intended to be used in the future. Use `on_session` if you intend to only reuse the payment method when the customer is in your checkout flow. Use `off_session` if your customer may or may not be in your checkout flow. If not provided, this value defaults to `off_session`.

source
optional

The source object for errors returned on a request involving a source.

type string
required

The type of error returned. One of `api_error`, `card_error`, `idempotency_error`, or `invalid_request_error`