POST
/v1/payment_methodsCreate a PaymentMethod
Creates a PaymentMethod object. Read the Stripe.js reference to learn how to create PaymentMethods via Stripe.js.
Instead of creating a PaymentMethod directly, we recommend using the PaymentIntents API to accept a payment immediately or the SetupIntent API to collect payment method details ahead of a future payment.
- RetriesRetries up to 2×, 500ms backoff, 30s timeout.
- IdempotentThe SDK sends
Idempotency-Key, so a retried request is only applied once.
acss_debitobjectoptional
If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method.
affirmobjectoptional
If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method.
afterpay_clearpayobjectoptional
If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method.
alipayobjectoptional
If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method.
allow_redisplaystringoptional
This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`.
almaobjectoptional
If this is a Alma PaymentMethod, this hash contains details about the Alma payment method.
amazon_payobjectoptional
If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method.
au_becs_debitobjectoptional
If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account.
bacs_debitobjectoptional
If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
bancontactobjectoptional
If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method.
billieobjectoptional
If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method.
billing_detailsobjectoptional
Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
bizumobjectoptional
If this is a `bizum` PaymentMethod, this hash contains details about the Bizum payment method.
blikobjectoptional
If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method.
boletoobjectoptional
If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method.
cardobjectoptional
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.
cashappobjectoptional
If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method.
cryptoobjectoptional
If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method.
customobjectoptional
If this is a `custom` PaymentMethod, this hash contains details about the Custom payment method.
customerstringoptional
The `Customer` to whom the original PaymentMethod is attached.
customer_balanceobjectoptional
If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method.
epsobjectoptional
If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method.
expandarray<string>optional
Specifies which fields in the response should be expanded.
fpxobjectoptional
If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method.
giropayobjectoptional
If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method.
grabpayobjectoptional
If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method.
idealobjectoptional
If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method.
interac_presentobjectoptional
If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method.
kakao_payobjectoptional
If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method.
klarnaobjectoptional
If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method.
konbiniobjectoptional
If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method.
kr_cardobjectoptional
If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method.
linkobjectoptional
If this is an `Link` PaymentMethod, this hash contains details about the Link payment method (Link is also known as Onelink in the UK).
mb_wayobjectoptional
If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method.
metadataobjectoptional
Set of [key-value pairs](https://docs.stripe.com/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`.
mobilepayobjectoptional
If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method.
multibancoobjectoptional
If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method.
naver_payobjectoptional
If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method.
nz_bank_accountobjectoptional
If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method.
oxxoobjectoptional
If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method.
p24objectoptional
If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method.
pay_by_bankobjectoptional
If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method.
paycoobjectoptional
If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method.
payment_methodstringoptional
The PaymentMethod to share.
paynowobjectoptional
If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method.
paypalobjectoptional
If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method.
paytoobjectoptional
If this is a `payto` PaymentMethod, this hash contains details about the PayTo payment method.
pixobjectoptional
If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method.
promptpayobjectoptional
If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method.
radar_optionsobjectoptional
Options to configure Radar. See [Radar Session](https://docs.stripe.com/radar/radar-session) for more information.
revolut_payobjectoptional
If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method.
samsung_payobjectoptional
If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method.
satispayobjectoptional
If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method.
scalapayobjectoptional
If this is a Scalapay PaymentMethod, this hash contains details about the Scalapay payment method.
sepa_debitobjectoptional
If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account.
sofortobjectoptional
If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method.
sunbitobjectoptional
If this is a `sunbit` PaymentMethod, this hash contains details about the Sunbit payment method.
swishobjectoptional
If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method.
twintobjectoptional
If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
typestringoptional
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.
upiobjectoptional
If this is a `upi` PaymentMethod, this hash contains details about the UPI payment method.
us_bank_accountobjectoptional
If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method.
wechat_payobjectoptional
If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method.
zipobjectoptional
If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method.
200Successful response.
acss_debitobjectoptional
affirmobjectoptional
afterpay_clearpayobjectoptional
alipayobjectoptional
allow_redisplaystringoptional
This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified”.
almaobjectoptional
amazon_payobjectoptional
au_becs_debitobjectoptional
bacs_debitobjectoptional
bancontactobjectoptional
billieobjectoptional
billing_detailsobjectrequired
bizumobjectoptional
blikobjectoptional
boletoobjectoptional
cardobjectoptional
card_presentobjectoptional
cashappobjectoptional
createdintegerrequired
Time at which the object was created. Measured in seconds since the Unix epoch.
cryptoobjectoptional
customobjectoptional
customerstringoptional
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.
customer_accountstringoptional
customer_balanceobjectoptional
epsobjectoptional
fpxobjectoptional
giropayobjectoptional
grabpayobjectoptional
idstringrequired
Unique identifier for the object.
idealobjectoptional
interac_presentobjectoptional
kakao_payobjectoptional
klarnaobjectoptional
konbiniobjectoptional
kr_cardobjectoptional
linkobjectoptional
livemodebooleanrequired
If the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
mb_wayobjectoptional
metadataobjectoptional
Set of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
mobilepayobjectoptional
multibancoobjectoptional
naver_payobjectoptional
nz_bank_accountobjectoptional
objectstringrequired
String representing the object's type. Objects of the same type share the same value.
oxxoobjectoptional
p24objectoptional
pay_by_bankobjectoptional
paycoobjectoptional
paynowobjectoptional
paypalobjectoptional
paytoobjectoptional
pixobjectoptional
promptpayobjectoptional
radar_optionsobjectoptional
Options to configure Radar. See [Radar Session](https://docs.stripe.com/radar/radar-session) for more information.
revolut_payobjectoptional
samsung_payobjectoptional
satispayobjectoptional
scalapayobjectoptional
sepa_debitobjectoptional
sofortobjectoptional
sunbitobjectoptional
swishobjectoptional
twintobjectoptional
typestringrequired
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.
upiobjectoptional
us_bank_accountobjectoptional
wechat_payobjectoptional
zipobjectoptional
defaultError response.
errorobjectrequired
Error handling
Any other status is an error: Error response.