Stripe Payment Method API
The Payment Methods API allows you to accept a variety of payment methods through a single API. A PaymentMethod object contains the payment method details to create payments.
The Payment Methods API allows you to accept a variety of payment methods through a single API. A PaymentMethod object contains the payment method details to create payments.
openapi: 3.0.0
info:
title: Stripe Payment Method API
description: >-
The Payment Methods API allows you to accept a variety of payment methods
through a single API. A PaymentMethod object contains the payment method
details to create payments.
contact:
email: [email protected]
name: Stripe Dev Platform Team
url: https://stripe.com
termsOfService: https://stripe.com/us/terms/
version: '2023-10-16'
x-stripeSpecFilename: spec3
security:
- basicAuth: []
- bearerAuth: []
servers:
- url: https://api.stripe.com/
paths:
/v1/payment_method_configurations:
get:
description: <p>List payment method configurations</p>
operationId: getPaymentMethodConfigurations
parameters:
- description: The Connect application to filter by.
explode: true
in: query
name: application
required: false
schema:
anyOf:
- maxLength: 100
type: string
- enum:
- ''
type: string
style: deepObject
- description: Specifies which fields in the response should be expanded.
explode: true
in: query
name: expand
required: false
schema:
items:
maxLength: 5000
type: string
type: array
style: deepObject
requestBody:
content:
application/x-www-form-urlencoded:
encoding: {}
schema:
additionalProperties: false
$ref: '#/components/schemas/GetPaymentMethodConfigurationsRequest'
required: false
responses:
'200':
content:
application/json:
schema:
description: ''
x-expandableFields:
- data
$ref: >-
#/components/schemas/PaymentMethodConfigResourcePaymentMethodConfigurationsList
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Get Payment Method Configurations
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Configurations
- Get
- Method
- Payments
post:
description: <p>Creates a payment method configuration</p>
operationId: postPaymentMethodConfigurations
requestBody:
content:
application/x-www-form-urlencoded:
encoding:
acss_debit:
explode: true
style: deepObject
affirm:
explode: true
style: deepObject
afterpay_clearpay:
explode: true
style: deepObject
alipay:
explode: true
style: deepObject
apple_pay:
explode: true
style: deepObject
apple_pay_later:
explode: true
style: deepObject
au_becs_debit:
explode: true
style: deepObject
bacs_debit:
explode: true
style: deepObject
bancontact:
explode: true
style: deepObject
blik:
explode: true
style: deepObject
boleto:
explode: true
style: deepObject
card:
explode: true
style: deepObject
cartes_bancaires:
explode: true
style: deepObject
cashapp:
explode: true
style: deepObject
eps:
explode: true
style: deepObject
expand:
explode: true
style: deepObject
fpx:
explode: true
style: deepObject
giropay:
explode: true
style: deepObject
google_pay:
explode: true
style: deepObject
grabpay:
explode: true
style: deepObject
ideal:
explode: true
style: deepObject
jcb:
explode: true
style: deepObject
klarna:
explode: true
style: deepObject
konbini:
explode: true
style: deepObject
link:
explode: true
style: deepObject
oxxo:
explode: true
style: deepObject
p24:
explode: true
style: deepObject
paynow:
explode: true
style: deepObject
paypal:
explode: true
style: deepObject
promptpay:
explode: true
style: deepObject
revolut_pay:
explode: true
style: deepObject
sepa_debit:
explode: true
style: deepObject
sofort:
explode: true
style: deepObject
us_bank_account:
explode: true
style: deepObject
wechat_pay:
explode: true
style: deepObject
schema:
additionalProperties: false
$ref: '#/components/schemas/PostPaymentMethodConfigurationsRequest'
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/payment_method_configuration'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Post Payment Method Configurations
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Configurations
- Method
- Payments
- Post
/v1/payment_method_configurations/{configuration}:
get:
description: <p>Retrieve payment method configuration</p>
operationId: getPaymentMethodConfigurationsConfiguration
parameters:
- in: path
name: configuration
required: true
schema:
maxLength: 5000
type: string
style: simple
- description: Specifies which fields in the response should be expanded.
explode: true
in: query
name: expand
required: false
schema:
items:
maxLength: 5000
type: string
type: array
style: deepObject
requestBody:
content:
application/x-www-form-urlencoded:
encoding: {}
schema:
additionalProperties: false
$ref: >-
#/components/schemas/GetPaymentMethodConfigurationsConfigurationRequest
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/payment_method_configuration'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Get Payment Method Configurations
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Configurations
- Get
- Method
- Payments
post:
description: <p>Update payment method configuration</p>
operationId: postPaymentMethodConfigurationsConfiguration
parameters:
- in: path
name: configuration
required: true
schema:
maxLength: 5000
type: string
style: simple
requestBody:
content:
application/x-www-form-urlencoded:
encoding:
acss_debit:
explode: true
style: deepObject
affirm:
explode: true
style: deepObject
afterpay_clearpay:
explode: true
style: deepObject
alipay:
explode: true
style: deepObject
apple_pay:
explode: true
style: deepObject
apple_pay_later:
explode: true
style: deepObject
au_becs_debit:
explode: true
style: deepObject
bacs_debit:
explode: true
style: deepObject
bancontact:
explode: true
style: deepObject
blik:
explode: true
style: deepObject
boleto:
explode: true
style: deepObject
card:
explode: true
style: deepObject
cartes_bancaires:
explode: true
style: deepObject
cashapp:
explode: true
style: deepObject
eps:
explode: true
style: deepObject
expand:
explode: true
style: deepObject
fpx:
explode: true
style: deepObject
giropay:
explode: true
style: deepObject
google_pay:
explode: true
style: deepObject
grabpay:
explode: true
style: deepObject
ideal:
explode: true
style: deepObject
jcb:
explode: true
style: deepObject
klarna:
explode: true
style: deepObject
konbini:
explode: true
style: deepObject
link:
explode: true
style: deepObject
oxxo:
explode: true
style: deepObject
p24:
explode: true
style: deepObject
paynow:
explode: true
style: deepObject
paypal:
explode: true
style: deepObject
promptpay:
explode: true
style: deepObject
revolut_pay:
explode: true
style: deepObject
sepa_debit:
explode: true
style: deepObject
sofort:
explode: true
style: deepObject
us_bank_account:
explode: true
style: deepObject
wechat_pay:
explode: true
style: deepObject
schema:
additionalProperties: false
$ref: >-
#/components/schemas/PostPaymentMethodConfigurationsConfigurationRequest
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/payment_method_configuration'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Post Payment Method Configurations
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Configurations
- Method
- Payments
- Post
/v1/payment_method_domains:
get:
description: <p>Lists the details of existing payment method domains.</p>
operationId: getPaymentMethodDomains
parameters:
- description: The domain name that this payment method domain object represents.
in: query
name: domain_name
required: false
schema:
maxLength: 5000
type: string
style: form
- description: >-
Whether this payment method domain is enabled. If the domain is not
enabled, payment methods will not appear in Elements
in: query
name: enabled
required: false
schema:
type: boolean
style: form
- description: >-
A cursor for use in pagination. `ending_before` is an object ID that
defines your place in the list. For instance, if you make a list
request and receive 100 objects, starting with `obj_bar`, your
subsequent call can include `ending_before=obj_bar` in order to
fetch the previous page of the list.
in: query
name: ending_before
required: false
schema:
maxLength: 5000
type: string
style: form
- description: Specifies which fields in the response should be expanded.
explode: true
in: query
name: expand
required: false
schema:
items:
maxLength: 5000
type: string
type: array
style: deepObject
- description: >-
A limit on the number of objects to be returned. Limit can range
between 1 and 100, and the default is 10.
in: query
name: limit
required: false
schema:
type: integer
style: form
- description: >-
A cursor for use in pagination. `starting_after` is an object ID
that defines your place in the list. For instance, if you make a
list request and receive 100 objects, ending with `obj_foo`, your
subsequent call can include `starting_after=obj_foo` in order to
fetch the next page of the list.
in: query
name: starting_after
required: false
schema:
maxLength: 5000
type: string
style: form
requestBody:
content:
application/x-www-form-urlencoded:
encoding: {}
schema:
additionalProperties: false
$ref: '#/components/schemas/GetPaymentMethodDomainsRequest'
required: false
responses:
'200':
content:
application/json:
schema:
description: ''
x-expandableFields:
- data
$ref: >-
#/components/schemas/PaymentMethodDomainResourcePaymentMethodDomainList
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Get Payment Method Domains
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Domains
- Get
- Method
- Payments
post:
description: <p>Creates a payment method domain.</p>
operationId: postPaymentMethodDomains
requestBody:
content:
application/x-www-form-urlencoded:
encoding:
expand:
explode: true
style: deepObject
schema:
additionalProperties: false
$ref: '#/components/schemas/PostPaymentMethodDomainsRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/payment_method_domain'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Post Payment Method Domains
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Domains
- Method
- Payments
- Post
/v1/payment_method_domains/{payment_method_domain}:
get:
description: <p>Retrieves the details of an existing payment method domain.</p>
operationId: getPaymentMethodDomainsPaymentMethodDomain
parameters:
- description: Specifies which fields in the response should be expanded.
explode: true
in: query
name: expand
required: false
schema:
items:
maxLength: 5000
type: string
type: array
style: deepObject
- in: path
name: payment_method_domain
required: true
schema:
maxLength: 5000
type: string
style: simple
requestBody:
content:
application/x-www-form-urlencoded:
encoding: {}
schema:
additionalProperties: false
$ref: >-
#/components/schemas/GetPaymentMethodDomainsPaymentMethodDomainRequest
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/payment_method_domain'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Get Payment Method Domains
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Domains
- Get
- Method
- Payments
post:
description: <p>Updates an existing payment method domain.</p>
operationId: postPaymentMethodDomainsPaymentMethodDomain
parameters:
- in: path
name: payment_method_domain
required: true
schema:
maxLength: 5000
type: string
style: simple
requestBody:
content:
application/x-www-form-urlencoded:
encoding:
expand:
explode: true
style: deepObject
schema:
additionalProperties: false
$ref: >-
#/components/schemas/PostPaymentMethodDomainsPaymentMethodDomainRequest
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/payment_method_domain'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Post Payment Method Domains
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Domains
- Method
- Payments
- Post
/v1/payment_method_domains/{payment_method_domain}/validate:
post:
description: >-
<p>Some payment methods such as Apple Pay require additional steps to
verify a domain. If the requirements weren’t satisfied when the domain
was created, the payment method will be inactive on the domain.
The payment method doesn’t appear in Elements for this domain until it
is active.</p>
<p>To activate a payment method on an existing payment method domain,
complete the required validation steps specific to the payment method,
and then validate the payment method domain with this endpoint.</p>
<p>Related guides: <a
href="/docs/payments/payment-methods/pmd-registration">Payment method
domains</a>.</p>
operationId: postPaymentMethodDomainsPaymentMethodDomainValidate
parameters:
- in: path
name: payment_method_domain
required: true
schema:
maxLength: 5000
type: string
style: simple
requestBody:
content:
application/x-www-form-urlencoded:
encoding:
expand:
explode: true
style: deepObject
schema:
additionalProperties: false
$ref: >-
#/components/schemas/PostPaymentMethodDomainsPaymentMethodDomainValidateRequest
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/payment_method_domain'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Post Payment Method Domains Validate
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Domains
- Method
- Payments
- Post
- Validate
/v1/payment_methods:
get:
description: >-
<p>Returns a list of PaymentMethods for Treasury flows. If you want to
list the PaymentMethods attached to a Customer for payments, you should
use the <a href="/docs/api/payment_methods/customer_list">List a
Customer’s PaymentMethods</a> API instead.</p>
operationId: getPaymentMethods
parameters:
- description: The ID of the customer whose PaymentMethods will be retrieved.
in: query
name: customer
required: false
schema:
maxLength: 5000
type: string
style: form
- description: >-
A cursor for use in pagination. `ending_before` is an object ID that
defines your place in the list. For instance, if you make a list
request and receive 100 objects, starting with `obj_bar`, your
subsequent call can include `ending_before=obj_bar` in order to
fetch the previous page of the list.
in: query
name: ending_before
required: false
schema:
type: string
style: form
- description: Specifies which fields in the response should be expanded.
explode: true
in: query
name: expand
required: false
schema:
items:
maxLength: 5000
type: string
type: array
style: deepObject
- description: >-
A limit on the number of objects to be returned. Limit can range
between 1 and 100, and the default is 10.
in: query
name: limit
required: false
schema:
type: integer
style: form
- description: >-
A cursor for use in pagination. `starting_after` is an object ID
that defines your place in the list. For instance, if you make a
list request and receive 100 objects, ending with `obj_foo`, your
subsequent call can include `starting_after=obj_foo` in order to
fetch the next page of the list.
in: query
name: starting_after
required: false
schema:
type: string
style: form
- description: >-
An optional filter on the list, based on the object `type` field.
Without the filter, the list includes all current and future payment
method types. If your integration expects only one type of payment
method in the response, make sure to provide a type value in the
request.
in: query
name: type
required: false
schema:
enum:
- acss_debit
- affirm
- afterpay_clearpay
- alipay
- au_becs_debit
- bacs_debit
- bancontact
- blik
- boleto
- card
- cashapp
- customer_balance
- eps
- fpx
- giropay
- grabpay
- ideal
- klarna
- konbini
- link
- oxxo
- p24
- paynow
- paypal
- pix
- promptpay
- revolut_pay
- sepa_debit
- sofort
- us_bank_account
- wechat_pay
- zip
type: string
x-stripeBypassValidation: true
style: form
requestBody:
content:
application/x-www-form-urlencoded:
encoding: {}
schema:
additionalProperties: false
$ref: '#/components/schemas/GetPaymentMethodsRequest'
required: false
responses:
'200':
content:
application/json:
schema:
description: ''
x-expandableFields:
- data
$ref: '#/components/schemas/PaymentFlowsPaymentMethodList'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Get Payment Methods
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Get
- Methods
- Payments
post:
description: >-
<p>Creates a PaymentMethod object. Read the <a
href="/docs/stripe-js/reference#stripe-create-payment-method">Stripe.js
reference</a> to learn how to create PaymentMethods via Stripe.js.</p>
<p>Instead of creating a PaymentMethod directly, we recommend using the
<a href="/docs/payments/accept-a-payment">PaymentIntents</a> API to
accept a payment immediately or the <a
href="/docs/payments/save-and-reuse">SetupIntent</a> API to collect
payment method details ahead of a future payment.</p>
operationId: postPaymentMethods
requestBody:
content:
application/x-www-form-urlencoded:
encoding:
acss_debit:
explode: true
style: deepObject
affirm:
explode: true
style: deepObject
afterpay_clearpay:
explode: true
style: deepObject
alipay:
explode: true
style: deepObject
au_becs_debit:
explode: true
style: deepObject
bacs_debit:
explode: true
style: deepObject
bancontact:
explode: true
style: deepObject
billing_details:
explode: true
style: deepObject
blik:
explode: true
style: deepObject
boleto:
explode: true
style: deepObject
card:
explode: true
style: deepObject
cashapp:
explode: true
style: deepObject
customer_balance:
explode: true
style: deepObject
eps:
explode: true
style: deepObject
expand:
explode: true
style: deepObject
fpx:
explode: true
style: deepObject
giropay:
explode: true
style: deepObject
grabpay:
explode: true
style: deepObject
ideal:
explode: true
style: deepObject
interac_present:
explode: true
style: deepObject
klarna:
explode: true
style: deepObject
konbini:
explode: true
style: deepObject
link:
explode: true
style: deepObject
metadata:
explode: true
style: deepObject
oxxo:
explode: true
style: deepObject
p24:
explode: true
style: deepObject
paynow:
explode: true
style: deepObject
paypal:
explode: true
style: deepObject
pix:
explode: true
style: deepObject
promptpay:
explode: true
style: deepObject
radar_options:
explode: true
style: deepObject
revolut_pay:
explode: true
style: deepObject
sepa_debit:
explode: true
style: deepObject
sofort:
explode: true
style: deepObject
us_bank_account:
explode: true
style: deepObject
wechat_pay:
explode: true
style: deepObject
zip:
explode: true
style: deepObject
schema:
additionalProperties: false
$ref: '#/components/schemas/PostPaymentMethodsRequest'
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/payment_method'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Post Payment Methods
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Methods
- Payments
- Post
/v1/payment_methods/{payment_method}:
get:
description: >-
<p>Retrieves a PaymentMethod object attached to the StripeAccount. To
retrieve a payment method attach
# --- truncated at 32 KB (138 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/stripe/refs/heads/main/openapi/stripe-payment-method-api-openapi.yml