Skip to main content

Sessions vs Advanced Flow

Compare Adyen's two server-side flows so you can choose the right integration for your payments.

Adyen offers two server-side flows for building your integration: the Sessions flow and the Advanced flow. This page explains the difference so you can choose the right one. There is also a middle option, the Sessions flow with additional methods.

Sessions flow

The Sessions flow is the default integration that Adyen recommends, and it meets the requirements for most online payments integrations. Your server makes a single Checkout API request to the /sessions endpoint. Adyen sends the payment data from its server to your client-side application, where Drop-in or a Component handles redirects and additional actions such as 3D Secure.

  • Lightest integration effort.

  • One request from your server.

  • Redirects and additional actions are handled client-side.

POST /v71/sessions
X-API-Key: YOUR_API_KEY

{
  "merchantAccount": "YOUR_MERCHANT_ACCOUNT",
  "amount": { "currency": "USD", "value": 1000 },
  "reference": "ORDER-12345",
  "returnUrl": "https://your-site.com/checkout/return",
  "store": "YOUR_STORE_ID"
}

Advanced flow

The Advanced flow gives you more control and supports more use cases. Your server makes three Checkout API requests: /paymentMethods, /payments, and /payments/details. Adyen sends the payment data from its server to your server, so you can confirm redirects and additional actions server-side.

Use the Advanced flow when you need to:

  • Update the payment amount before making a payment, for example when the shopper changes their cart.

  • Implement Apple Pay and Google Pay express checkout.

  • Change the order of payment methods for an individual transaction.

  • Insert a separate page for the shopper to agree to terms and conditions before paying.

Sessions flow with additional methods

This is the middle option. You keep the single /sessions request, but use additional client-side methods that send requests from your server to /payments and /payments/details, so you get the responses on your server. This adds server-side handling of redirects and additional actions, and lets you update the payment amount before making a payment, without moving to the full Advanced flow.

Comparison

Feature

Sessions flow

Sessions flow with additional methods

Advanced flow

Integration effort

Light

Medium

Medium

Server-side requests

1

2 or 3

3

Handling redirects

Client-side

Client-side and server-side

Client-side and server-side

Handling additional actions

Client-side

Client-side and server-side

Client-side and server-side

Which should you use

  • Start with the Sessions flow. It covers most integrations with the least effort.

  • Choose the Sessions flow with additional methods if you need to update the amount before payment or confirm redirects and actions on your server, but want to keep a single session request.

  • Choose the Advanced flow when you need express checkout for Apple Pay or Google Pay, want to reorder payment methods per transaction, or need an extra step such as terms and conditions before payment.

Did this answer your question?