/accept-a-payment

Learn how to accept a payment from customers around the world with a variety of payment methods.

Primary LanguageJavaScriptMIT LicenseMIT

Accept a payment

Learn how to securely accept payments online.

This repository includes examples of 3 types of integration.

Prebuilt Checkout page (docs) Payment Element (docs) Custom payment flow (docs)
Lower complexity. Moderate complexity. Higher complexity.
Customize logo, images, and colors. Customize components with Appearance API. Customize all components with CSS.
Add payment method types with a single line change. Add payment methods with a single line change. Implement each payment method type as a custom integration.
Built-in support for Apple Pay, and Google Pay. Built-in support for Apple Pay and Google Pay. Integrate Apple Pay and Google Pay with extra code.
Redirect to Stripe hosted page. Customers stay on your site, but payment completion triggers a redirect. Customers stay on your site.
Small refactor to collect recurring payments. Large refactor to collect recurring payments. Large refactor to collect recurring payments.
Input validation and error handling built in. Input validation built-in but you must implement error handling. Implement your own input validation and error handling.
Localized in 25+ languages. Localized in 25+ languages. Implement your own localization.
Automate calculation and collection of sales tax, VAT and GST with one line of code. Calculate tax using the Tax API Calculate tax using the Tax API

Payment Method Type Support

Payment Method Type Prebuilt Checkout page (docs) Payment Element (docs) Custom payment flow (docs)
ACH Credit Transfer
ACH Debit
Afterpay/Clearpay
Alipay
Apple Pay
Bacs Direct Debit
Bancontact
BECS Direct Debit
Boleto
Cards
EPS
FPX
giropay
Google Pay
GrabPay
iDEAL
Klarna
Link
Multibanco
OXXO
Przelewy24 (P24)
SEPA Direct Debit
Sofort
WeChat Pay

Installation

The recommended way to use this Stripe Sample is with the Stripe CLI:

stripe samples create accept-a-payment

You can also clone the repository, but there is a bit more manual setup work to configure the .env environment variable file in the server directory.

You'll find more detailed instructions for each integration type in the relevant READMEs:


FAQ

Q: Why did you pick these frameworks?

A: We chose the most minimal framework to convey the key Stripe calls and concepts you need to understand. These demos are meant as an educational tool that helps you roadmap how to integrate Stripe within your own system independent of the framework.

Get support

If you found a bug or want to suggest a new [feature/use case/sample], please file an issue.

If you have questions, comments, or need help with code, we're here to help:

Sign up to stay updated with developer news.

Testing

See TESTING.md.

Authors

Contributors

Made with contrib.rocks.