Payment Methods Overview
Stripe's Payment Methods API provides a unified interface for accepting a wide variety of payment instruments globally. This flexibility allows businesses to offer customers their preferred payment options while maintaining a single integration point. The platform now supports over 125 payment methods across different categories, from traditional cards to modern digital wallets and real-time bank transfers.
Our approach to payment methods focuses on providing maximum conversion by offering customers familiar and trusted payment options. When customers can pay using their preferred method, checkout completion rates improve significantly. Stripe handles the complexity of supporting diverse payment methods, allowing developers to focus on building great user experiences rather than managing multiple payment provider integrations.
The Payment Methods API works seamlessly with PaymentIntents to create a robust payment flow. When a customer initiates a payment, Stripe determines the optimal payment methods based on factors like currency, customer location, and transaction characteristics. This intelligent routing helps maximize acceptance rates while reducing failed payments and the associated customer friction.
Payment Methods by the Numbers
125+
Global Payment Methods
135+
Currencies Supported
46
Countries Supported
Understanding PaymentMethod Objects
A PaymentMethod object represents a customer's payment instrument in Stripe's system. Unlike Charges in older APIs, PaymentMethods are distinct resources that can be attached to Customer objects and reused across multiple transactions. This separation of payment instrument from transaction enables important functionality like storing cards for future use, managing subscription billing, and handling one-click checkout experiences.
When you create a PaymentMethod, Stripe generates a unique identifier that your application can store and reference later. The PaymentMethod contains details about the payment instrument type, such as card brand and last four digits for cards, or bank account information for bank transfers. Importantly, sensitive data like full card numbers never touches your servers--Stripe handles all sensitive data collection through secure UI components or direct API interactions.
The PaymentMethod object also includes billing address information when provided, which can be valuable for address verification, tax calculation, and fraud prevention. Additionally, some PaymentMethods include metadata that Stripe uses for risk scoring and authentication requirements. Understanding the structure and capabilities of PaymentMethod objects is fundamental to building sophisticated payment flows that leverage Stripe's full feature set.
PaymentMethods support a wide range of types including card, us_bank_account, sepa_debit, klarna, and many others. Each type has specific properties and behaviors tailored to that payment method. The type field indicates which payment method category the object represents, and additional fields are nested based on the type. This extensible structure allows Stripe to add new payment methods without requiring changes to the core API architecture.
For web development projects, implementing proper PaymentMethod object handling creates a solid foundation for payment acceptance that scales with your business needs.
Integration with PaymentIntents
PaymentMethods work primarily through the PaymentIntent API, which orchestrates the complete payment lifecycle. A PaymentIntent represents a single payment attempt and can be configured to accept multiple payment methods through the automatic_payment_methods parameter. This approach automatically enables all relevant payment methods for the transaction based on your account settings and the payment context.
When creating a PaymentIntent, you specify the amount, currency, and optional configuration for payment methods. The client_secret returned by Stripe enables your frontend to present appropriate payment options and complete the payment flow. The PaymentIntent tracks the payment through various states--requires_payment_method, requires_confirmation, requires_action, processing, succeeded, or canceled--providing clear visibility into each transaction's progress.
The integration pattern involves creating a PaymentIntent on your server, passing the client_secret to your client application, and then using Stripe's frontend libraries to handle payment method collection and confirmation. This split architecture keeps sensitive operations on Stripe's secure infrastructure while giving you full control over the user experience. The PaymentIntent automatically handles 3D Secure authentication, payment method-specific flows, and retry logic for failed attempts.
For businesses implementing complex payment flows, understanding the PaymentIntent states is critical. The requires_payment_method state indicates the initial state awaiting payment details. When a customer selects a payment method and submits, the state transitions to requires_confirmation or requires_action if additional authentication is needed. Webhooks notify your application of each state transition, enabling real-time order management and customer communication.
See our guide on Payment Intents for detailed implementation patterns and lifecycle management.
Card-Based Payment Methods
Credit and debit cards remain the most widely accepted payment method globally, and Stripe provides comprehensive support for card transactions. The platform processes major card networks including Visa, Mastercard, American Express, Discover, JCB, and UnionPay, covering the vast majority of card transactions worldwide. Card payments are the foundation of most e-commerce implementations due to their familiarity and widespread adoption among consumers.
Stripe's Cards functionality extends beyond basic authorization and capture. The platform supports features like card authentication (3D Secure), which helps reduce fraud while shifting liability for fraudulent transactions to the card issuer. Card updates allow you to handle expired or replaced cards without requiring customers to re-enter their information. Authorization holds enable pre-authorization for variable amounts, common in hospitality and automotive industries.
Card funding source detection identifies whether a card is credit, debit, or prepaid, enabling businesses to implement appropriate business logic. BIN/IIN lookup provides issuer information that can inform fraud decisions and promotional offers. Tokenization ensures that sensitive card data never reaches your servers, maintaining PCI compliance while enabling smooth checkout experiences.
Stripe Terminal for In-Person Payments
For businesses accepting card payments in person, Stripe Terminal extends card payment capabilities to physical retail environments. Terminal works with Stripe's broader payment infrastructure, meaning you can manage both online and in-person payments from a single dashboard. The Terminal SDK supports various hardware readers from Stripe's partner manufacturers, providing flexibility in hardware selection based on business needs and budget.
1// Stripe Terminal - Collect Payment2import Stripe from 'stripe';3 4const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);5 6// Register a reader for in-person payments7const reader = await stripe.terminal.readers.create({8 registration_code: 'pws试点工作_A4DB',9 label: 'Store Checkout #1',10 location: 'tml_12345',11});12 13// Create a connection token for the terminal SDK14const connectionToken = await stripe.terminal.connectionTokens.create();Digital Wallets
Digital wallets have transformed online checkout experiences by reducing friction and increasing conversion rates. Stripe supports major wallets including Apple Pay, Google Pay, and Link, each offering distinct advantages for different customer segments and use cases. Wallets store payment credentials securely and enable one-tap checkout, eliminating the need to manually enter card details for returning customers.
Apple Pay and Google Pay
Apple Pay and Google Pay leverage device-level security features like biometric authentication (Face ID, Touch ID, fingerprint) to verify customer identity before payment. This additional layer of security reduces fraud while providing a seamless payment experience. Both wallets support cards stored in the device's native wallet and can also present card-on-file credentials from the associated merchant accounts. Apple Pay is particularly effective on iOS devices and Safari browser, while Google Pay excels on Android devices and Chrome.
Link Checkout
Link represents Stripe's own wallet solution, offering a unified experience across merchants using Stripe for payment processing. Link customers can save their payment details once and use them across any merchant that offers Link checkout. The service automatically populates payment, shipping, and billing information, dramatically reducing form fields and associated abandonment rates. For businesses, Link offers valuable customer insights through the Stripe dashboard, including purchase patterns and return customer metrics.
The implementation requires minimal changes to existing checkout flows. You can enable Link through the Payment Element, which automatically presents Link as a payment option when appropriate. Alternatively, Link can be used as a standalone payment button for express checkout scenarios. The service handles address collection and validation, reducing the data your application needs to manage.
For businesses looking to implement seamless payment experiences, integrating digital wallets through Stripe complements AI automation strategies that streamline customer interactions and reduce manual touchpoints in the checkout process.
Apple Pay
Secure, biometric-protected payments on iOS and Safari
Google Pay
Fast checkout on Android devices and Chrome browser
Link
Stripe's wallet with saved payment and address autofill
Bank-Based Payments
Bank transfer payments offer an alternative to card networks, often with lower processing fees and broader reach in certain markets. Stripe supports various bank-based payment methods including ACH debits in the United States, SEPA Direct Debit in Europe, Bacs Direct Debit in the United Kingdom, and similar schemes in other regions. These methods are particularly popular for recurring payments, high-value transactions, and markets with strong bank account penetration.
ACH Payments
ACH (Automated Clearing House) payments in the United States enable low-cost transfers between bank accounts, making them attractive for subscription services and business-to-business transactions. While ACH payments typically take several days to settle, Stripe provides webhook notifications to track payment progress and notify when funds are available. The platform supports both ACH credit and debit transactions, with debit being the more common choice for customer payments.
SEPA Direct Debit
SEPA (Single Euro Payments Area) Direct Debit provides a standardized mechanism for euro-denominated bank transfers across European member countries. This method offers strong consumer protections, including the ability to cancel payments and dispute unauthorized transactions. SEPA is particularly valuable for subscription businesses serving European customers, as it eliminates the need for multiple local direct debit schemes.
Regional Real-Time Payment Methods
Beyond traditional bank transfers, Stripe supports real-time and same-day bank transfer options in different regions. Pix enables instant bank-to-bank transfers in Brazil, with customers scanning QR codes or entering payment identifiers to complete transactions. UPI (Unified Payments Interface) serves similar purposes in India, providing a unified layer across multiple bank accounts and payment apps. These methods often provide faster settlement than traditional card networks while maintaining broad accessibility through customers' existing bank accounts.
1// Create ACH Payment Method and PaymentIntent2const paymentIntent = await stripe.paymentIntents.create({3 amount: 50000, // $500.004 currency: 'usd',5 payment_method_types: ['us_bank_account'],6 payment_method_options: {7 us_bank_account: {8 financial_connections: {9 permissions: ['payment_method', 'balances'],10 },11 },12 },13});Buy Now, Pay Later
Buy Now, Pay Later (BNPL) services have gained significant traction as an alternative payment method that allows customers to spread payments over time. Stripe supports multiple BNPL providers including Afterpay, Klarna, and Affirm, each offering distinct approaches to installment payments and consumer financing. These options can increase average order values and conversion rates, particularly for higher-priced items.
BNPL services work by paying the merchant immediately and collecting installments from the customer over time. This arrangement benefits merchants by reducing collection risk while offering customers flexible payment terms without traditional credit checks. Different BNPL providers offer varying numbers of installments (typically 4 or 6), interest-free periods, and geographic availability.
Regulatory Considerations
While BNPL can improve conversion and average order value, merchants should consider several factors when implementing these payment methods. Consumer protection regulations in various jurisdictions apply to BNPL transactions similarly to other credit products, meaning merchants need to ensure clear disclosure of payment terms and compliance with applicable regulations. Customer service responsibilities may shift partially to the BNPL provider for payment-related inquiries. Some markets have introduced specific rules for BNPL services regarding affordability checks and fee transparency. Staying current with regulatory developments ensures your BNPL implementation remains compliant as the landscape evolves.
| Provider | Installments | Interest | Availability | Best For |
|---|---|---|---|---|
| Afterpay | 4 payments | Interest-free | US, UK, AU, NZ | Retail, Fashion |
| Klarna | 4 payments | Interest-free | US, EU, UK | General e-commerce |
| Affirm | 4-36 months | 0-30% APR | US, Canada | High-value items |
Alternative Payment Methods
Beyond traditional cards, wallets, and bank transfers, Stripe supports numerous alternative payment methods tailored to specific markets and use cases. These include cash-based payments for customers without bank accounts or digital payment preferences, prepaid cards and vouchers, and region-specific methods that dominate local commerce. The breadth of alternative payment method support enables businesses to serve diverse customer bases without maintaining multiple integrations.
Regional Payment Methods
Regional payment methods often dominate local commerce in specific countries, making their acceptance essential for businesses targeting those markets. Examples include iDEAL in the Netherlands, Sofort in Germany and Austria, and Przelewy24 in Poland. These methods typically redirect customers to their bank's portal to authorize payment, then return them to the merchant upon completion. Cash-based solutions like cash vouchers allow customers to complete online purchases using payment codes purchased at retail locations.
Real-Time and Crypto Payments
Stripe has expanded support to include real-time payment methods and cryptocurrency options for forward-looking payment acceptance. Real-time payment methods like Pix (Brazil), UPI (India), and FPS (UK) enable instant settlement, reducing the payment delay that characterizes traditional card networks. Cryptocurrency payment acceptance represents an emerging category that Stripe supports through stablecoin integration, enabling merchants to accept USDC while receiving settlements in their preferred fiat currency. These methods are particularly valuable for time-sensitive transactions and markets where instant settlement has become the norm.
1// Create PaymentIntent with multiple payment method types2const paymentIntent = await stripe.paymentIntents.create({3 amount: 10000,4 currency: 'eur',5 automatic_payment_methods: {6 enabled: true,7 allow_redirects: 'always',8 },9});10 11// Enable specific payment methods12const paymentIntent = await stripe.paymentIntents.create({13 amount: 10000,14 currency: 'eur',15 payment_method_types: [16 'card',17 'klarna',18 'sepa_debit',19 'link',20 ],21});Payment API Integration Patterns
Implementing payment methods with Stripe follows established patterns that balance security, user experience, and operational simplicity. The recommended approach uses PaymentIntents with automatic payment method detection, enabling Stripe to optimize payment method presentation based on transaction context. This reduces the integration complexity while ensuring optimal payment acceptance across different customer scenarios.
For applications requiring specific payment method control, the PaymentIntent API allows explicit configuration of enabled payment method types. You can filter to relevant methods based on customer location, transaction characteristics, or business requirements. The payment_method_types parameter accepts an array of payment method identifiers, giving precise control over which options appear at checkout. Webhook integration ensures your application receives timely notification of payment events, enabling accurate order fulfillment, inventory management, and customer communication.
Handling Payment Method Lifecycle
Managing payment methods throughout their lifecycle--from creation through updates and eventual deletion--requires understanding the relevant API operations and their implications. Creating a payment method typically occurs during checkout, either explicitly through the API or implicitly when attaching to a PaymentIntent. The created payment method can then be saved to a Customer object for future use. Updates to saved payment methods allow customers to modify billing address information or replace expiring cards. Detaching a payment method removes it from a customer and revokes future usage permission, which should be implemented when customers request account closure or when payment methods are compromised.
For web development teams implementing payment solutions, following these integration patterns ensures secure, scalable, and maintainable payment infrastructure that adapts to changing customer needs and market conditions.
1// Complete PaymentIntent flow with Payment Element2import { loadStripe } from '@stripe/stripe-js';3import { Elements, PaymentElement, useStripe, useElements } from '@stripe/react-stripe-js';4 5const stripePromise = loadStripe(process.env.NEXT_PUBLIC_STRIPE_KEY!);6 7function CheckoutForm() {8 const stripe = useStripe();9 const elements = useElements();10 11 const handleSubmit = async (event: React.FormEvent) => {12 event.preventDefault();13 14 if (!stripe || !elements) return;15 16 const { error } = await stripe.confirmPayment({17 elements,18 confirmParams: {19 return_url: `${window.location.origin}/payment-complete`,20 payment_method_data: {21 billing_details: {22 name: 'Customer Name',23 email: '[email protected]',24 },25 },26 },27 });28 29 if (error) {30 console.error('Payment failed:', error.message);31 }32 };33 34 return (35 <form onSubmit={handleSubmit}>36 <PaymentElement />37 <button type="submit" disabled={!stripe}>38 Pay Now39 </button>40 </form>41 );42}1// Create and attach payment method to customer2const paymentMethod = await stripe.paymentMethods.create({3 type: 'card',4 card: {5 token: 'tok_visa',6 },7});8 9const attachedPaymentMethod = await stripe.paymentMethods.attach(10 paymentMethod.id,11 { customer: 'cus_123456789' }12);13 14// Update billing address on payment method15await stripe.paymentMethods.update(paymentMethod.id, {16 billing_details: {17 address: {18 city: 'Toronto',19 country: 'CA',20 line1: '123 Main St',21 postal_code: 'M5V 2T6',22 },23 },24});25 26// Detach payment method when no longer needed27await stripe.paymentMethods.detach(paymentMethod.id);Security and Compliance
Payment method security encompasses multiple dimensions including data protection, fraud prevention, and regulatory compliance. Stripe handles PCI compliance for merchants using Elements or Checkout, eliminating the significant burden of maintaining PCI-compliant infrastructure. Understanding what compliance responsibilities remain with the merchant helps ensure your implementation meets all requirements.
PCI Compliance
The Payment Card Industry Data Security Standard (PCI DSS) applies to any entity that stores, processes, or transmits cardholder data. By using Stripe's hosted payment pages or Elements components, card data never touches your servers, significantly simplifying PCI compliance. You typically need only to complete a self-assessment questionnaire and maintain secure development practices for other application components. This approach keeps your infrastructure out of PCI compliance scope while providing the same security guarantees.
Fraud Prevention
Fraud prevention through Stripe Radar leverages machine learning trained on millions of transactions across Stripe's network. Radar provides risk scores for each transaction, enabling merchants to set rules that automatically block or flag high-risk attempts. Custom rules allow businesses to incorporate their specific fraud patterns and business logic into the automated decision-making process. The machine learning models continuously improve based on outcomes across the entire Stripe network.
Regulatory Considerations
Different payment methods carry varying regulatory requirements depending on the jurisdiction and transaction type. KYC and AML requirements can apply to certain payment methods, particularly high-value transactions or specific payment types. Bank transfers may require specific disclosures or authorization flows. BNPL services often fall under consumer credit regulations requiring affordability assessments and clear fee communication. Data protection regulations including GDPR in Europe and similar laws elsewhere affect how payment information can be stored and processed.
For businesses implementing payment solutions, understanding these security considerations is essential for maintaining trust and compliance. Our web development expertise includes secure payment integration that prioritizes both user experience and regulatory compliance.
Cards (PCI-DSS)
Use Stripe Elements to minimize compliance scope
Bank Transfers (AML/KYC)
Monitor for large transactions and suspicious activity
BNPL (Consumer Credit)
Disclose payment terms and fee structures clearly
Crypto (Evolving)
Stay current with local regulations on digital assets
Frequently Asked Questions
Sources
- Stripe Payment Methods API Documentation - Core documentation for PaymentMethod objects and usage with PaymentIntents
- Stripe Sessions 2025 Product Updates - Information on expanded payment method support including crypto and real-time payments
- Stripe Knowledge Base: Payments - Internal documentation on Stripe features and implementation patterns