Adyen online payment integration demos
This repository showcases a PCI-compliant integration of the Sessions Flow, the default integration that we recommend for merchants. Explore this simplified e-commerce demo to discover the code, libraries and configuration you need to enable various payment options in your checkout experience.
The demo leverages Adyen's API Library for Node.js (GitHub | Docs) on the server side.
Node.js 20+
This repository is configured to work with GitHub Codespaces. Click the badge above to launch a Codespace with all dependencies pre-installed.
For detailed setup instructions, see the GitHub Codespaces Instructions.
Before running any example, you'll need to set up the following environment variables in your Codespace:
ADYEN_API_KEY- Your Adyen API keyREACT_APP_ADYEN_CLIENT_KEY- Your Adyen client key (with REACT_APP prefix for React)ADYEN_MERCHANT_ACCOUNT- Your Adyen merchant accountADYEN_HMAC_KEY- Your Adyen HMAC key for webhook validation
You can set environment variables using one of the following methods:
Option 1: Create a .env file in the project root
ADYEN_API_KEY="your_api_key"
REACT_APP_ADYEN_CLIENT_KEY="your_client_key"
ADYEN_MERCHANT_ACCOUNT="your_merchant_account"
ADYEN_HMAC_KEY="your_hmac_key"Option 2: Use Codespace secrets
- Open your Codespace
- Go to Settings → Secrets and variables → Codespaces
- Add each required environment variable
- Restart your Codespace for changes to take effect
Option 3: Set them in the terminal
export ADYEN_API_KEY="your_api_key"
export REACT_APP_ADYEN_CLIENT_KEY="your_client_key"
export ADYEN_MERCHANT_ACCOUNT="your_merchant_account"
export ADYEN_HMAC_KEY="your_hmac_key"- Clone this repo:
git clone https://github.com/adyen-examples/adyen-react-online-payments.git
- Navigate to the root directory and install dependencies:
npm install
- Create a
./.envfile with your API key, Client Key - Remember to addhttp://localhost:3000as an origin for client key, and merchant account name (all credentials are in string format):
# server-side env variables
ADYEN_API_KEY="your_API_key_here"
ADYEN_MERCHANT_ACCOUNT="your_merchant_account_here"
ADYEN_HMAC_KEY=yourNotificationSetupHMACkey
# client-side env variables: using REACT_APP prefix to be included in the REACT build
REACT_APP_ADYEN_CLIENT_KEY="your_client_key_here"
- Build & Start the server:
This will create a React production build and start the express server
npm run server
- Visit http://localhost:8080/ to select an integration type.
To try out integrations with test card numbers and payment method details, see Test card numbers.
Note
The demo supports cancellation and refunds, processing the incoming Adyen webhook notifications. Make sure webhooks are enabled and processed (see below).
Webhooks deliver asynchronous notifications about the payment status and other events that are important to receive and process. You can find more information about webhooks in this blog post.
In the Customer Area under the Developers → Webhooks section, create a new Standard webhook.
A good practice is to set up basic authentication, copy the generated HMAC Key and set it as an environment variable. The application will use this to verify the HMAC signatures.
Make sure the webhook is enabled, so it can receive notifications.
This demo provides a simple webhook implementation exposed at /api/webhooks/notifications that shows you how to receive, validate and consume the webhook payload.
The following webhooks events should be enabled:
- AUTHORISATION
To make sure that the Adyen platform can reach your application, we have written a Webhooks Testing Guide that explores several options on how you can easily achieve this (e.g. running on localhost or cloud).
