{"title":"Build your integration","category":"default","creationDate":1776961627,"content":"<p>You can integrate Adyen's <a href=\"https:\/\/github.com\/Adyen\/#client-side\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">client-side libraries<\/a> with different server-side flows. Sessions flow is the default integration that we recommend and that meets the requirements for most online payments integrations.<\/p>\n<h2>Choose your server-side implementation<\/h2>\n<p>Before you integrate with a client-side library, choose the server-side flow depending on the technical details and depending on the <a href=\"#supported-use-cases\">use cases<\/a> that you want your integration to support.<\/p>\n<div class=\"row\" style=\"align-items: top;justify-content: center;\">\n<div class=\"col col-12 col-md-6\" style=\"background-color:transparent;;\"><h3>Sessions flow: a single API request<\/h3><p>Your server makes a single Checkout API request to the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/sessions\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/sessions<\/a> endpoint. Adyen sends payment data from our server to your client-side application. You can optionally implement additional client-side methods to support some <a href=\"#sessions-flow-with-additional-methods\">additional use cases<\/a>.<br><a rel=\"lightbox\" href=\"\/user\/pages\/docs\/02.online-payments\/07.build-your-integration\/sessions-flow.svg\" src=\"\"><img alt=\"\" src=\"\/user\/pages\/docs\/02.online-payments\/07.build-your-integration\/sessions-flow.svg\"><\/a><\/p><\/div><div class=\"col col-12 col-md-6\" style=\"background-color:transparent;;\"><h3>Advanced flow: three API requests<\/h3><p>Your server makes three Checkout API requests:  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentMethods\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentMethods<\/a>,  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a>, and  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/details<\/a>. Adyen sends payment data from our server to your server. This flow supports more use cases.<br><a rel=\"lightbox\" href=\"\/user\/pages\/docs\/02.online-payments\/07.build-your-integration\/advanced-flow.svg\" src=\"\"><img alt=\"\" src=\"\/user\/pages\/docs\/02.online-payments\/07.build-your-integration\/advanced-flow.svg\"><\/a><\/p><\/div><\/div>\n<div class=\"accordion-shortcode adl-accordion adl-accordion--max-height-transition\" data-expand=\"true\" data-ignore=\"anchorjs-link\">\n    \n    <div class=\"adl-accordion__item\" style=\"\">\n        <div tabindex=\"0\" role=\"item\" aria-expanded=\"false\" class=\"adl-accordion__header\">\n            <i class=\"adl-accordion__toggle adl-icon-chevron-down\"><\/i>\n            <div class=\"adl-accordion__title-wrapper\" data-accordion=\"#sessions-flow-with-additional-methods\">\n                                    <h3 class=\"adl-accordion__title\">Sessions flow with additional methods<\/h3>\n                            <\/div>\n        <\/div>\n        <div role=\"region\" class=\"adl-accordion__content\">\n            \n<p>The client-side libraries include additional methods that to make requests from your server to the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> and  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/details<\/a> endpoints, so that you get responses on your server.<br \/>\n<a rel=\"lightbox\" href=\"\/user\/pages\/docs\/02.online-payments\/07.build-your-integration\/sessions-flow-with-additional-methods.svg\" src=\"\">\n  <img width=\"400\" alt=\"\" src=\"\/user\/pages\/docs\/02.online-payments\/07.build-your-integration\/sessions-flow-with-additional-methods.svg\" \/>\n<\/a><\/p>\n\n        <\/div>\n    <\/div>\n<\/div>\n\n<h3 id=\"supported-use-cases\">Supported use cases<\/h3>\n<table>\n<thead>\n<tr>\n<th>Description<\/th>\n<th style=\"text-align: center;\">Sessions flow<\/th>\n<th style=\"text-align: center;\">Sessions flow with additional methods<\/th>\n<th style=\"text-align: center;\">Advanced flow<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Make a payment with any available payment method.<\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>Make a partial payment with a gift card and the rest with another payment method.<\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>Confirm an additional action on your server.<\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>Confirm a redirect on your server.<\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>Implement checks on your server, like inventory checks, before making a payment.<\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>Update the payment amount before making a payment, for example, when the shopper updates their shopping cart.<\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>Implement Apple Pay and Google Pay <a href=\"\/payment-methods\/express-checkout\">express checkout<\/a>.<\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>Change the order of payment methods for an individual transaction.<\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>Insert a separate page for the shopper to agree to terms and conditions before making a payment.<\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Integration comparison<\/h3>\n<table>\n<thead>\n<tr>\n<th>Integration features<\/th>\n<th style=\"text-align: right;\">Sessions flow<\/th>\n<th style=\"text-align: right;\">Sessions flow with additional methods<\/th>\n<th style=\"text-align: right;\">Advanced flow<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Integration effort<\/td>\n<td style=\"text-align: right;\">Light<\/td>\n<td style=\"text-align: right;\">Medium<\/td>\n<td style=\"text-align: right;\">Medium<\/td>\n<\/tr>\n<tr>\n<td>Number of endpoint requests from your server<\/td>\n<td style=\"text-align: right;\">1<\/td>\n<td style=\"text-align: right;\">2 or 3<\/td>\n<td style=\"text-align: right;\">3<\/td>\n<\/tr>\n<tr>\n<td>Handling redirects<\/td>\n<td style=\"text-align: right;\">Client-side<\/td>\n<td style=\"text-align: right;\">Client-side and server-side<\/td>\n<td style=\"text-align: right;\">Client-side and server-side<\/td>\n<\/tr>\n<tr>\n<td>Handling additional actions<\/td>\n<td style=\"text-align: right;\">Client-side<\/td>\n<td style=\"text-align: right;\">Client-side and server-side<\/td>\n<td style=\"text-align: right;\">Client-side and server-side<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Get started<\/h2>\n<p>Choose the server-side implementation that meets your needs to learn how to integrate with Adyen. We offer solutions for web, mobile devices, and cross-platform.<\/p>\n<div class=\"next-steps\" id=\"next-steps\" >\n<a href=\"\/online-payments\/build-your-integration\/sessions-flow\" class=\"next-steps__step\" style=\"width:45%;\" target=\"_self\"><p class=\"next-steps__body\"><div style=\"text-align: center;\"><h6 class=\"next-steps__title\">Sessions flow<\/h6><p>Your server makes one Checkout API request.<\/p><\/div><\/p><\/a><a href=\"\/online-payments\/build-your-integration\/advanced-flow\" class=\"next-steps__step\" style=\"width:45%;\" target=\"_self\"><p class=\"next-steps__body\"><div style=\"text-align: center;\"><h6 class=\"next-steps__title\">Advanced flow<\/h6><p>Your server makes three Checkout API requests.<\/p><\/div><\/p><\/a><\/div>\n","url":"https:\/\/docs.adyen.com\/online-payments\/build-your-integration","articleFields":{"description":"Start building your server-side integration","feedback_component":false,"process":{"markdown":true,"twig":true},"twig_first":true,"never_cache_twig":true,"filters_component":false},"algolia":{"url":"https:\/\/docs.adyen.com\/online-payments\/build-your-integration","title":"Build your integration","content":"You can integrate Adyen's client-side libraries with different server-side flows. Sessions flow is the default integration that we recommend and that meets the requirements for most online payments integrations.\nChoose your server-side implementation\nBefore you integrate with a client-side library, choose the server-side flow depending on the technical details and depending on the use cases that you want your integration to support.\n\nSessions flow: a single API requestYour server makes a single Checkout API request to the  \/sessions endpoint. Adyen sends payment data from our server to your client-side application. You can optionally implement additional client-side methods to support some additional use cases.Advanced flow: three API requestsYour server makes three Checkout API requests:  \/paymentMethods,  \/payments, and  \/payments\/details. Adyen sends payment data from our server to your server. This flow supports more use cases.\n\n    \n    \n        \n            \n            \n                                    Sessions flow with additional methods\n                            \n        \n        \n            \nThe client-side libraries include additional methods that to make requests from your server to the  \/payments and  \/payments\/details endpoints, so that you get responses on your server.\n\n  \n\n\n        \n    \n\n\nSupported use cases\n\n\n\nDescription\nSessions flow\nSessions flow with additional methods\nAdvanced flow\n\n\n\n\nMake a payment with any available payment method.\n\n\n\n\n\nMake a partial payment with a gift card and the rest with another payment method.\n\n\n\n\n\nConfirm an additional action on your server.\n\n\n\n\n\nConfirm a redirect on your server.\n\n\n\n\n\nImplement checks on your server, like inventory checks, before making a payment.\n\n\n\n\n\nUpdate the payment amount before making a payment, for example, when the shopper updates their shopping cart.\n\n\n\n\n\nImplement Apple Pay and Google Pay express checkout.\n\n\n\n\n\nChange the order of payment methods for an individual transaction.\n\n\n\n\n\nInsert a separate page for the shopper to agree to terms and conditions before making a payment.\n\n\n\n\n\n\nIntegration comparison\n\n\n\nIntegration features\nSessions flow\nSessions flow with additional methods\nAdvanced flow\n\n\n\n\nIntegration effort\nLight\nMedium\nMedium\n\n\nNumber of endpoint requests from your server\n1\n2 or 3\n3\n\n\nHandling redirects\nClient-side\nClient-side and server-side\nClient-side and server-side\n\n\nHandling additional actions\nClient-side\nClient-side and server-side\nClient-side and server-side\n\n\n\nGet started\nChoose the server-side implementation that meets your needs to learn how to integrate with Adyen. We offer solutions for web, mobile devices, and cross-platform.\n\nSessions flowYour server makes one Checkout API request.Advanced flowYour server makes three Checkout API requests.\n","type":"page","locale":"en","boost":18,"hierarchy":{"lvl0":"Home","lvl1":"Online payments","lvl2":"Build your integration"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/","lvl1":"https:\/\/docs.adyen.com\/online-payments","lvl2":"\/online-payments\/build-your-integration"},"levels":3,"category":"Online Payments","category_color":"green","tags":["Build","integration"]},"articleFiles":{"advanced-flow.svg":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/user\/pages\/docs\/02.online-payments\/07.build-your-integration\/advanced-flow.svg\" \/>","sessions-flow-with-additional-methods.svg":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/user\/pages\/docs\/02.online-payments\/07.build-your-integration\/sessions-flow-with-additional-methods.svg\" \/>","sessions-flow.svg":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/user\/pages\/docs\/02.online-payments\/07.build-your-integration\/sessions-flow.svg\" \/>"}}
