{"title":"Hosted Checkout","category":"default","creationDate":1781186417,"content":"<p>The Hosted Checkout integration redirects the shopper to an Adyen-hosted webpage that handles the complete payment flow for <a href=\"#supported-payment-methods\">supported payment methods<\/a>.<\/p>\n<h2>Requirements<\/h2>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Requirement<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Integration type<\/strong><\/td>\n<td style=\"text-align: left;\">Use this information to build an online payments integration.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Customer Area roles<\/strong><\/td>\n<td style=\"text-align: left;\">Make sure that you have the following roles: <ul><li markdown=\"1\"><strong>Merchant admin role<\/strong><\/li> <li markdown=\"1\"><strong>Manage API credentials<\/strong><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Adyen API credentials<\/strong><\/td>\n<td style=\"text-align: left;\">Make sure that you have created the following: <ul><li markdown=\"1\"><a href=\"\/development-resources\/api-credentials\/#new-credential\">API credential<\/a><\/li> <li markdown=\"1\"><a href=\"\/development-resources\/api-credentials\/#generate-api-key\">API key<\/a><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Adyen API credential roles<\/strong><\/td>\n<td style=\"text-align: left;\">Make sure that you have the roles for payments that are assigned by default.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Webhooks<\/strong><\/td>\n<td style=\"text-align: left;\">Subscribe to the following webhooks: <ul><li markdown=\"1\">Standard webhook with default event codes.<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Setup steps<\/strong><\/td>\n<td style=\"text-align: left;\">Make sure that you have done the following: <ul><li markdown=\"1\">Set up your test account.<\/li><li markdown=\"1\">Got an overview of what is required before you accept live payments.<\/li><\/ul><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>How it works<\/h2>\n<p>For a Hosted Checkout integration, you must integrate the following parts:<\/p>\n<ul>\n<li><strong>Your payment server<\/strong>: Sends the API request to create a Hosted Checkout payment session.\n<ul>\n<li>Use 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 on Checkout API v72 or later.<\/li>\n<li>Use a <a href=\"https:\/\/github.com\/Adyen#server-side\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">server-side library<\/a> released on March 30, 2026 or later.<\/li>\n<\/ul><\/li>\n<li><strong>Your webhook server<\/strong>: Listens for webhook messages that include the outcome of each payment.<\/li>\n<\/ul>\n<h3>Integration steps<\/h3>\n<p>To integrate Hosted Checkout:<\/p>\n<ol>\n<li><a href=\"#install-api-library\">Install an API library<\/a> on your server.<\/li>\n<li><a href=\"#configure-your-theme\">Configure the theme<\/a> for your Hosted Checkout page.<\/li>\n<li><a href=\"#create-a-payment-session\">Create a payment session<\/a>.<\/li>\n<li><a href=\"#redirect-the-shopper-to-the-hosted-checkout-page\">Redirect the shopper<\/a> to the Hosted Checkout page.<\/li>\n<li>Get the payment outcome.<\/li>\n<\/ol>\n<h3>Shopper checkout experience<\/h3>\n<p>When the shopper goes to check out:<\/p>\n<ol>\n<li>You redirect the shopper to an Adyen-hosted Hosted Checkout page.<\/li>\n<li>The shopper completes the payment on the Hosted Checkout page.<\/li>\n<li>The shopper gets redirected to your website where you show the result of the payment session.<\/li>\n<\/ol>\n<h3>Payments integration flow<\/h3>\n<p>Your website\/app, your server and the Hosted Checkout page work together to complete the payment flow:<\/p>\n<ol>\n<li>The shopper chooses to go to check out on your website\/app.<\/li>\n<li>Your website\/app triggers your server to create a payment session.<\/li>\n<li>Your server makes a POST  <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> request to Adyen, to create a payment session. Adyen returns the URL to the Hosted Checkout page.<\/li>\n<li>Your server passes the URL to your website\/app.<\/li>\n<li>Your website\/app redirects the shopper to the Hosted Checkout page.<\/li>\n<li>The shopper completes the payment on the Hosted Checkout page.<\/li>\n<li>The shopper gets redirected to your website\/app with appended session data.<\/li>\n<li>Your website\/app passes appended session data to your server.<\/li>\n<li>Your server makes a GET  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/get\/sessions\/(sessionId)\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/sessions\/{sessionId}<\/a> request to Adyen. Adyen returns the result of the payment session.<\/li>\n<li>Your server passes the result to your website\/app.<\/li>\n<li>Your website\/app shows the result of the payment session to the shopper.<\/li>\n<li>Your webhook server receives webhook message with the payment outcome.<\/li>\n<\/ol>\n<div id=\"mermaid-6a2ac620eb8ff-wrapper\"><div id=\"mermaid-6a2ac620eb8ff\" class=\"mermaid-shortcode loading\">CnNlcXVlbmNlRGlhZ3JhbQogICAgcGFydGljaXBhbnQgU2hvcHBlcgogICAgcGFydGljaXBhbnQgWW91ciB3ZWJzaXRlL2FwcAogICAgcGFydGljaXBhbnQgWW91ciBwYXltZW50IHNlcnZlcgogICAgcGFydGljaXBhbnQgQWR5ZW4gYXMgQWR5ZW4gc2VydmVyL0hvc3RlZCBDaGVja291dCBwYWdlCiAgICBwYXJ0aWNpcGFudCBZb3VyIHdlYmhvb2sgc2VydmVyCgogICAgU2hvcHBlci0+PllvdXIgd2Vic2l0ZS9hcHA6IDEuIEdvIHRvIGNoZWNrb3V0CiAgICBZb3VyIHdlYnNpdGUvYXBwLT4+WW91ciBwYXltZW50IHNlcnZlcjogMi4gVHJpZ2dlciBzZXNzaW9uIGNyZWF0aW9uIHJlcXVlc3QKICAgIFlvdXIgcGF5bWVudCBzZXJ2ZXItPj5BZHllbjogMy4gUmVxdWVzdCB0byBjcmVhdGUgcGF5bWVudCBzZXNzaW9uIChQT1NUIC9zZXNzaW9ucykgCiAgICBBZHllbi0tPj5Zb3VyIHBheW1lbnQgc2VydmVyOiBIb3N0ZWQgQ2hlY2tvdXQgcGFnZSBVUkwKICAgIFlvdXIgcGF5bWVudCBzZXJ2ZXItLT4+WW91ciB3ZWJzaXRlL2FwcDogNC4gUGFzcyBIb3N0ZWQgQ2hlY2tvdXQgcGFnZSBVUkwKICAgIFlvdXIgd2Vic2l0ZS9hcHAtPj5BZHllbjogNS4gUmVkaXJlY3Qgc2hvcHBlciB0byBIb3N0ZWQgQ2hlY2tvdXQgcGFnZSAKICAgIFNob3BwZXItPj5BZHllbjogNi4gQ29tcGxldGUgcGF5bWVudCBvbiBIb3N0ZWQgQ2hlY2tvdXQgcGFnZQogICAgQWR5ZW4tPj5Zb3VyIHdlYnNpdGUvYXBwOiA3LiBSZWRpcmVjdCBzaG9wcGVyIHRvIHlvdXIgd2Vic2l0ZS9hcHAgd2l0aCBhcHBlbmRlZCBzZXNzaW9uIGRhdGEKICAgIFlvdXIgd2Vic2l0ZS9hcHAtPj5Zb3VyIHBheW1lbnQgc2VydmVyOiA4LiBQYXNzIHRoZSBhcHBlbmRlZCBzZXNzaW9uIGRhdGEKICAgIFlvdXIgcGF5bWVudCBzZXJ2ZXItPj5BZHllbjogOS4gUmVxdWVzdCB0byBnZXQgcmVzdWx0IG9mIHBheW1lbnQgc2Vzc2lvbiAoR0VUIC9zZXNzaW9ucy9zZXNzaW9uSWQpCiAgICBBZHllbi0tPj5Zb3VyIHBheW1lbnQgc2VydmVyOiBSZXN1bHQgb2YgcGF5bWVudCBzZXNzaW9uCiAgICBZb3VyIHBheW1lbnQgc2VydmVyLT4+WW91ciB3ZWJzaXRlL2FwcDogMTAuIFBhc3MgcmVzdWx0IG9mIHBheW1lbnQgc2Vzc2lvbgogICAgWW91ciB3ZWJzaXRlL2FwcC0+PlNob3BwZXI6IDExLiBTaG93IHJlc3VsdCBvZiBwYXltZW50IHNlc3Npb24KICAgIEFkeWVuLT4+WW91ciB3ZWJob29rIHNlcnZlcjogMTIuIFdlYmhvb2sgbWVzc2FnZSB3aXRoIHBheW1lbnQgb3V0Y29tZQo=<\/div><\/div>\n<h2 id=\"install-api-library\">Install an API library<\/h2>\n\n<div id=\"tabovmqI\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;\\n&lt;div class=\\&quot;additional-info-block output-inline\\&quot;&gt;\\n&lt;h5 class=\\&quot;article__heading additional-info-block__title\\&quot;&gt;Try our example integration&lt;\\\/h5&gt;&lt;div class=\\&quot;additional-info-block__body\\&quot;&gt;&lt;p&gt;&lt;img alt=\\&quot;Gitpod icon\\&quot; src=\\&quot;\\\/user\\\/pages\\\/docs\\\/standard\\\/integration\\\/hosted-checkout\\\/gitpod-icon.png\\&quot; \\\/&gt;&amp;nbsp;&amp;nbsp;&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/adyen-examples\\\/adyen-rails-online-payments#run-this-integration-in-seconds-using-gitpod\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Run it in Gitpod&lt;\\\/a&gt;. &lt;br&gt;&lt;img alt=\\&quot;GitHub icon\\&quot; src=\\&quot;\\\/user\\\/pages\\\/docs\\\/standard\\\/integration\\\/hosted-checkout\\\/github-icon.png\\&quot; \\\/&gt;&amp;nbsp;&amp;nbsp;&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/adyen-examples\\\/adyen-rails-online-payments\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Clone the repository&lt;\\\/a&gt;.&lt;\\\/p&gt;&lt;\\\/div&gt;&lt;\\\/div&gt;\\n\\n&lt;h4&gt;Requirements&lt;\\\/h4&gt;\\n&lt;ul&gt;\\n&lt;li&gt;Ruby 2.7 or later.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;h4&gt;Installation&lt;\\\/h4&gt;\\n&lt;p&gt;You can use &lt;a href=\\&quot;https:\\\/\\\/rubygems.org\\\/\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;RubyGems&lt;\\\/a&gt;:&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Install the API library&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;bash\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;gem install adyen-ruby-api-library\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;Alternatively, you can download the &lt;a href=\\&quot;https:\\\/\\\/github.com\\\/Adyen\\\/adyen-ruby-api-library\\\/releases\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;release on GitHub&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&lt;p&gt;Run &lt;code&gt;bundle install&lt;\\\/code&gt; to install dependencies.&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\n&lt;div class=\\&quot;additional-info-block output-inline\\&quot;&gt;\\n&lt;h5 class=\\&quot;article__heading additional-info-block__title\\&quot;&gt;Try our example integration&lt;\\\/h5&gt;&lt;div class=\\&quot;additional-info-block__body\\&quot;&gt;&lt;p&gt;&lt;img alt=\\&quot;Gitpod icon\\&quot; src=\\&quot;\\\/user\\\/pages\\\/docs\\\/standard\\\/integration\\\/hosted-checkout\\\/gitpod-icon.png\\&quot; \\\/&gt;&amp;nbsp;&amp;nbsp;&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/adyen-examples\\\/adyen-java-spring-online-payments#checkout-example\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Run it in Gitpod&lt;\\\/a&gt;. &lt;br&gt;&lt;img alt=\\&quot;GitHub icon\\&quot; src=\\&quot;\\\/user\\\/pages\\\/docs\\\/standard\\\/integration\\\/hosted-checkout\\\/github-icon.png\\&quot; \\\/&gt;&amp;nbsp;&amp;nbsp;&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/adyen-examples\\\/adyen-java-spring-online-payments\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Clone the repository&lt;\\\/a&gt;.&lt;\\\/p&gt;&lt;\\\/div&gt;&lt;\\\/div&gt;\\n\\n&lt;h4&gt;Requirements&lt;\\\/h4&gt;\\n&lt;ul&gt;\\n&lt;li&gt;Java 11 or later.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;h4&gt;Installation&lt;\\\/h4&gt;\\n&lt;p&gt;You can use &lt;a href=\\&quot;https:\\\/\\\/maven.apache.org\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Maven&lt;\\\/a&gt;, adding this dependency to your project&#039;s POM.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Add the API library&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;xml\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;&amp;lt;dependency&amp;gt;\\\\n  &amp;lt;groupId&amp;gt;com.adyen&amp;lt;\\\\\\\/groupId&amp;gt;\\\\n  &amp;lt;artifactId&amp;gt;adyen-java-api-library&amp;lt;\\\\\\\/artifactId&amp;gt;\\\\n  &amp;lt;version&amp;gt;LATEST_VERSION&amp;lt;\\\\\\\/version&amp;gt;\\\\n&amp;lt;\\\\\\\/dependency&amp;gt;\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;You can find the latest version on GitHub. Alternatively, you can download the &lt;a href=\\&quot;https:\\\/\\\/github.com\\\/Adyen\\\/adyen-java-api-library\\\/releases\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;release on GitHub&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;\\n&lt;div class=\\&quot;additional-info-block output-inline\\&quot;&gt;\\n&lt;h5 class=\\&quot;article__heading additional-info-block__title\\&quot;&gt;Try our example integration&lt;\\\/h5&gt;&lt;div class=\\&quot;additional-info-block__body\\&quot;&gt;&lt;p&gt;&lt;img alt=\\&quot;Gitpod icon\\&quot; src=\\&quot;\\\/user\\\/pages\\\/docs\\\/standard\\\/integration\\\/hosted-checkout\\\/gitpod-icon.png\\&quot; \\\/&gt;&amp;nbsp;&amp;nbsp;&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/adyen-examples\\\/adyen-php-online-payments#run-this-integration-in-seconds-using-gitpod\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Run it in Gitpod&lt;\\\/a&gt;. &lt;br&gt;&lt;img alt=\\&quot;GitHub icon\\&quot; src=\\&quot;\\\/user\\\/pages\\\/docs\\\/standard\\\/integration\\\/hosted-checkout\\\/github-icon.png\\&quot; \\\/&gt;&amp;nbsp;&amp;nbsp;&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/adyen-examples\\\/adyen-php-online-payments\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Clone the repository&lt;\\\/a&gt;.&lt;\\\/p&gt;&lt;\\\/div&gt;&lt;\\\/div&gt;\\n\\n&lt;h4&gt;Requirements&lt;\\\/h4&gt;\\n&lt;ul&gt;\\n&lt;li&gt;PHP 7.3 or later.&lt;\\\/li&gt;\\n&lt;li&gt;cURL with SSL support.&lt;\\\/li&gt;\\n&lt;li&gt;The JSON PHP extension.&lt;\\\/li&gt;\\n&lt;li&gt;The list of dependencies from the composer require list.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;h4&gt;Installation&lt;\\\/h4&gt;\\n&lt;p&gt;You can use &lt;a href=\\&quot;https:\\\/\\\/getcomposer.org\\\/\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Composer&lt;\\\/a&gt;. Follow the &lt;a href=\\&quot;https:\\\/\\\/getcomposer.org\\\/doc\\\/00-intro.md\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;installation instructions&lt;\\\/a&gt; if you do not already have composer installed.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Install the API library&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;bash\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;composer require adyen\\\\\\\/php-api-library\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;In your PHP script, make sure you include the autoloader:&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Include the autoloader&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;require __DIR__ . &#039;\\\\\\\/vendor\\\\\\\/autoload.php&#039;;&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;Alternatively, you can download the &lt;a href=\\&quot;https:\\\/\\\/github.com\\\/Adyen\\\/adyen-php-api-library\\\/releases\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;release on GitHub&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;\\n&lt;div class=\\&quot;additional-info-block output-inline\\&quot;&gt;\\n&lt;h5 class=\\&quot;article__heading additional-info-block__title\\&quot;&gt;Try our example integration&lt;\\\/h5&gt;&lt;div class=\\&quot;additional-info-block__body\\&quot;&gt;&lt;p&gt;&lt;img alt=\\&quot;Gitpod icon\\&quot; src=\\&quot;\\\/user\\\/pages\\\/docs\\\/standard\\\/integration\\\/hosted-checkout\\\/gitpod-icon.png\\&quot; \\\/&gt;&amp;nbsp;&amp;nbsp;&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/adyen-examples\\\/adyen-python-online-payments#run-this-integration-in-seconds-using-gitpod\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Run it in Gitpod&lt;\\\/a&gt;. &lt;br&gt;&lt;img alt=\\&quot;GitHub icon\\&quot; src=\\&quot;\\\/user\\\/pages\\\/docs\\\/standard\\\/integration\\\/hosted-checkout\\\/github-icon.png\\&quot; \\\/&gt;&amp;nbsp;&amp;nbsp;&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/adyen-examples\\\/adyen-python-online-payments\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Clone the repository&lt;\\\/a&gt;.&lt;\\\/p&gt;&lt;\\\/div&gt;&lt;\\\/div&gt;\\n\\n&lt;h4&gt;Requirements&lt;\\\/h4&gt;\\n&lt;ul&gt;\\n&lt;li&gt;Python 3.6 or later.&lt;\\\/li&gt;\\n&lt;li&gt;(Optional) Packages: Requests or PycURL&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;h4&gt;Installation&lt;\\\/h4&gt;\\n&lt;p&gt;You can use\\u00a0&lt;a href=\\&quot;https:\\\/\\\/pip.pypa.io\\\/en\\\/stable\\\/\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;pip&lt;\\\/a&gt;:&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Install the API library&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;py\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;pip install Adyen\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;Alternatively, you can download the\\u00a0&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/Adyen\\\/adyen-python-api-library\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;release on GitHub&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\n&lt;h4&gt;Requirements&lt;\\\/h4&gt;\\n&lt;ul&gt;\\n&lt;li&gt;.NET standard 2.0 or later.&lt;\\\/li&gt;\\n&lt;li&gt;For Terminal API certificate validation, set the application to either of the following:\\n&lt;ul&gt;\\n&lt;li&gt;.NET core 2.1 or later&lt;\\\/li&gt;\\n&lt;li&gt;.NET framework 4.6.1 or later&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;h4&gt;Installation&lt;\\\/h4&gt;\\n&lt;p&gt;You can use &lt;a href=\\&quot;https:\\\/\\\/www.nuget.org\\\/packages\\\/Adyen\\\/\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;NuGet&lt;\\\/a&gt;:&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Install the API library&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;bash\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;PM&amp;gt; Install-Package Adyen -Version LATEST_VERSION\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;Alternatively, you can download the\\u00a0&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/Adyen\\\/adyen-dotnet-api-library\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;release on GitHub&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;NodeJS&quot;,&quot;content&quot;:&quot;\\n&lt;div class=\\&quot;additional-info-block output-inline\\&quot;&gt;\\n&lt;h5 class=\\&quot;article__heading additional-info-block__title\\&quot;&gt;Try our example integration&lt;\\\/h5&gt;&lt;div class=\\&quot;additional-info-block__body\\&quot;&gt;&lt;p&gt;&lt;img alt=\\&quot;Gitpod icon\\&quot; src=\\&quot;\\\/user\\\/pages\\\/docs\\\/standard\\\/integration\\\/hosted-checkout\\\/gitpod-icon.png\\&quot; \\\/&gt;&amp;nbsp;&amp;nbsp;&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/adyen-examples\\\/adyen-node-online-payments#checkout-example\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Run it in Gitpod&lt;\\\/a&gt;. &lt;br&gt;&lt;img alt=\\&quot;GitHub icon\\&quot; src=\\&quot;\\\/user\\\/pages\\\/docs\\\/standard\\\/integration\\\/hosted-checkout\\\/github-icon.png\\&quot; \\\/&gt;&amp;nbsp;&amp;nbsp;&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/adyen-examples\\\/adyen-node-online-payments\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Clone the repository&lt;\\\/a&gt;.&lt;\\\/p&gt;&lt;\\\/div&gt;&lt;\\\/div&gt;\\n\\n&lt;h4&gt;Requirements&lt;\\\/h4&gt;\\n&lt;ul&gt;\\n&lt;li&gt;Node.js version 18 or later.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;h4&gt;Installation&lt;\\\/h4&gt;\\n&lt;p&gt;You can use &lt;a href=\\&quot;https:\\\/\\\/www.npmjs.com\\\/\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;npm&lt;\\\/a&gt;:&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Install the API library&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;bash\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;npm install --save @adyen\\\\\\\/api-library\\\\nnpm update @adyen\\\\\\\/api-library\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;Alternatively, you can download the &lt;a href=\\&quot;https:\\\/\\\/github.com\\\/Adyen\\\/adyen-node-api-library\\\/releases\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;release on GitHub&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\n&lt;div class=\\&quot;additional-info-block output-inline\\&quot;&gt;\\n&lt;h5 class=\\&quot;article__heading additional-info-block__title\\&quot;&gt;Try our example integration&lt;\\\/h5&gt;&lt;div class=\\&quot;additional-info-block__body\\&quot;&gt;&lt;p&gt;&lt;img alt=\\&quot;Gitpod icon\\&quot; src=\\&quot;\\\/user\\\/pages\\\/docs\\\/standard\\\/integration\\\/hosted-checkout\\\/gitpod-icon.png\\&quot; \\\/&gt;&amp;nbsp;&amp;nbsp;&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/adyen-examples\\\/adyen-golang-online-payments#run-this-integration-in-seconds-using-gitpod\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Run it in Gitpod&lt;\\\/a&gt;. &lt;br&gt;&lt;img alt=\\&quot;GitHub icon\\&quot; src=\\&quot;\\\/user\\\/pages\\\/docs\\\/standard\\\/integration\\\/hosted-checkout\\\/github-icon.png\\&quot; \\\/&gt;&amp;nbsp;&amp;nbsp;&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/adyen-examples\\\/adyen-golang-online-payments\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Clone the repository&lt;\\\/a&gt;.&lt;\\\/p&gt;&lt;\\\/div&gt;&lt;\\\/div&gt;\\n\\n&lt;h4&gt;Requirements&lt;\\\/h4&gt;\\n&lt;ul&gt;\\n&lt;li&gt;Go 1.13 or later.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;h4&gt;Installation&lt;\\\/h4&gt;\\n&lt;p&gt;You can use\\u00a0&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/golang\\\/go\\\/wiki\\\/Modules\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Go modules&lt;\\\/a&gt;:&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Install the API library&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;shell\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;go get github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v7\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;Alternatively, you can download the\\u00a0&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/Adyen\\\/adyen-go-api-library\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;release on GitHub&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='false'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h2 id=\"configure-your-theme\">Configure your theme<\/h2>\n<p>To create a theme, you must have one of the following <a href=\"\/account\/user-roles#account\">user roles<\/a>:<\/p>\n<ul>\n<li>Merchant admin<\/li>\n<li>Hosted Checkout and Pay by Link Settings<\/li>\n<\/ul>\n<p>To create a new theme:<\/p>\n<ol>\n<li>Log in to your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a> and switch to your merchant account if necessary.<\/li>\n<li>Go to <strong>Pay by Link<\/strong> &gt; <strong>Themes<\/strong>.<\/li>\n<li>Select <strong>Create a new theme<\/strong>.<\/li>\n<li>Enter a <strong>Theme name<\/strong>. This name helps you to identify different themes.<\/li>\n<li>Enter a <strong>Display name<\/strong>. This name is visible to the shopper on the Hosted Checkout page.<\/li>\n<li>Upload a brand logo.<\/li>\n<li>If you want this to be the default theme for all Hosted Checkout pages, select <strong>Set as default<\/strong>. Available only on the merchant account.<\/li>\n<li>Select <strong>Create<\/strong>.<\/li>\n<\/ol>\n<p id=\"theme-id\">Get the theme ID:<\/p>\n<ol>\n<li>Go to <strong>Pay by Link<\/strong> &gt; <strong>Themes<\/strong>.<\/li>\n<li>Select the options icon from the theme.<\/li>\n<li>Select <strong>Copy theme ID.<\/strong><br \/>\nThis copies the theme ID to your system's clipboard.<\/li>\n<\/ol>\n<h2>Create a payment session<\/h2>\n<p>When the shopper goes to checkout, for example by selecting a <strong>Checkout<\/strong> button, make a <strong>POST<\/strong>  <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> request from your server, including:<\/p>\n<table>\n<thead>\n<tr>\n<th>Parameter<\/th>\n<th>Required<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>amount<\/code><\/td>\n<td><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>The\u00a0<code>currency<\/code>\u00a0and\u00a0<code>value<\/code>\u00a0of the payment, in <a href=\"\/development-resources\/currency-codes\">minor units<\/a>. This is used to filter the list of available payment methods to your shopper.<\/td>\n<\/tr>\n<tr>\n<td><code>merchantAccount<\/code><\/td>\n<td><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>Your merchant account name.<\/td>\n<\/tr>\n<tr>\n<td><code>returnUrl<\/code><\/td>\n<td><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>URL where to redirect the shopper after they make the payment on the Hosted Checkout page. The URL can contain a maximum of 1024 characters and should include the protocol: <code>http:\/\/<\/code> or <code>https:\/\/<\/code>. You can also include your own additional query parameters, for example, shopper ID or order reference number.  <br> If the URL to return to includes non-ASCII characters, like spaces or special letters, URL encode the value. <br> <div class=\"sc-notice note\"><div> The URL must not include personally identifiable information (PII), for example name or email address. <\/div><\/div><\/td>\n<\/tr>\n<tr>\n<td><code>reference<\/code><\/td>\n<td><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>Your unique reference for the payment. Minimum length: three characters.<\/td>\n<\/tr>\n<tr>\n<td><code>countryCode<\/code><\/td>\n<td><\/td>\n<td>The shopper's country\/region. This is used to filter the list of available payment methods to your shopper. <br>Format: the two-letter <a href=\"https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">ISO-3166-1 alpha-2<\/a> country code. Exception: <strong>QZ<\/strong> (Kosovo).<\/td>\n<\/tr>\n<tr>\n<td><code>shopperEmail<\/code><\/td>\n<td><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>The shopper's email address. Strongly recommended because this field is used in a number of <a href=\"\/risk-management\/configure-your-risk-profile\/risk-field-reference\">risk checks<\/a>, and for 3D Secure.<\/td>\n<\/tr>\n<tr>\n<td><code>shopperReference<\/code><\/td>\n<td><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>Your unique reference for the shopper. Do not include personally identifiable information (PII), such as name or email address. <br> <strong>Format:<\/strong> <ul><li markdown=\"1\">Minimum length: 3 characters.<\/li><li markdown=\"1\">Case-sensitive.<\/li><\/ul> This field is used for the following: <ul><li markdown=\"1\">Risk checks.<\/li><li markdown=\"1\">When storing the shopper's payment details: associating the token with the shopper.<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td><code>mode<\/code><\/td>\n<td><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td><strong>hosted<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>themeId<\/code><\/td>\n<td><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>The <a href=\"#theme-id\">theme ID<\/a> of the theme to use for the Hosted Checkout page.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example request to create a session for Hosted Checkout'\" :id=\"'sessions-hosted'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v72\\\/sessions \\\\\\n-H 'x-API-key: ADYEN_API_KEY' \\\\\\n-H 'idempotency-key: YOUR_IDEMPOTENCY_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n  \\&quot;merchantAccount\\&quot;: \\&quot;ADYEN_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n      \\&quot;value\\&quot;: 1000,\\n      \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;returnUrl\\&quot;: \\&quot;https:\\\/\\\/your-company.example.com\\\/checkout?shopperOrder=12xy..\\&quot;,\\n  \\&quot;reference\\&quot;: \\&quot;Your-payment-reference-123-abc\\&quot;,\\n  \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n  \\&quot;shopperEmail\\&quot;: \\&quot;s.hopper@example.com\\&quot;,\\n  \\&quot;shopperReference\\&quot;: \\&quot;Your-shopper-reference-890-xyz\\&quot;,\\n  \\&quot;mode\\&quot;: \\&quot;hosted\\&quot;,\\n  \\&quot;themeId\\&quot;: \\&quot;AZ1234567\\&quot;\\n}'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v39.3.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.util.*;\\nimport com.adyen.model.RequestOptions;\\nimport com.adyen.service.checkout.*;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Create the request object(s)\\nAmount amount = new Amount()\\n  .currency(\\&quot;EUR\\&quot;)\\n  .value(1000L);\\n\\nCreateCheckoutSessionRequest createCheckoutSessionRequest = new CreateCheckoutSessionRequest()\\n  .reference(\\&quot;Your-payment-reference-123-abc\\&quot;)\\n  .mode(CreateCheckoutSessionRequest.ModeEnum.HOSTED)\\n  .amount(amount)\\n  .merchantAccount(\\&quot;ADYEN_MERCHANT_ACCOUNT\\&quot;)\\n  .countryCode(\\&quot;NL\\&quot;)\\n  .shopperEmail(\\&quot;s.hopper@example.com\\&quot;)\\n  .shopperReference(\\&quot;Your-shopper-reference-890-xyz\\&quot;)\\n  .themeId(\\&quot;AZ1234567\\&quot;)\\n  .returnUrl(\\&quot;https:\\\/\\\/your-company.example.com\\\/checkout?shopperOrder=12xy..\\&quot;);\\n\\n\\\/\\\/ Send the request\\nPaymentsApi service = new PaymentsApi(client);\\nCreateCheckoutSessionResponse response = service.sessions(createCheckoutSessionRequest, new RequestOptions().idempotencyKey(\\&quot;UUID\\&quot;));&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;&lt;?php\\n\\\/\\\/ Adyen PHP API Library v28.2.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\Checkout\\\\Amount;\\nuse Adyen\\\\Model\\\\Checkout\\\\CreateCheckoutSessionRequest;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentsApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Create the request object(s)\\n$amount = new Amount();\\n$amount\\n  -&gt;setCurrency(\\&quot;EUR\\&quot;)\\n  -&gt;setValue(1000);\\n\\n$createCheckoutSessionRequest = new CreateCheckoutSessionRequest();\\n$createCheckoutSessionRequest\\n  -&gt;setReference(\\&quot;Your-payment-reference-123-abc\\&quot;)\\n  -&gt;setMode(\\&quot;hosted\\&quot;)\\n  -&gt;setAmount($amount)\\n  -&gt;setMerchantAccount(\\&quot;ADYEN_MERCHANT_ACCOUNT\\&quot;)\\n  -&gt;setCountryCode(\\&quot;NL\\&quot;)\\n  -&gt;setShopperEmail(\\&quot;s.hopper@example.com\\&quot;)\\n  -&gt;setShopperReference(\\&quot;Your-shopper-reference-890-xyz\\&quot;)\\n  -&gt;setThemeId(\\&quot;AZ1234567\\&quot;)\\n  -&gt;setReturnUrl(\\&quot;https:\\\/\\\/your-company.example.com\\\/checkout?shopperOrder=12xy..\\&quot;);\\n\\n$requestOptions['idempotencyKey'] = 'UUID';\\n\\n\\\/\\\/ Send the request\\n$service = new PaymentsApi($client);\\n$response = $service-&gt;sessions($createCheckoutSessionRequest, $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v32.1.1\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nAmount amount = new Amount\\n{\\n  Currency = \\&quot;EUR\\&quot;,\\n  Value = 1000\\n};\\n\\nCreateCheckoutSessionRequest createCheckoutSessionRequest = new CreateCheckoutSessionRequest\\n{\\n  Reference = \\&quot;Your-payment-reference-123-abc\\&quot;,\\n  Mode = CreateCheckoutSessionRequest.ModeEnum.Hosted,\\n  Amount = amount,\\n  MerchantAccount = \\&quot;ADYEN_MERCHANT_ACCOUNT\\&quot;,\\n  CountryCode = \\&quot;NL\\&quot;,\\n  ShopperEmail = \\&quot;s.hopper@example.com\\&quot;,\\n  ShopperReference = \\&quot;Your-shopper-reference-890-xyz\\&quot;,\\n  ThemeId = \\&quot;AZ1234567\\&quot;,\\n  ReturnUrl = \\&quot;https:\\\/\\\/your-company.example.com\\\/checkout?shopperOrder=12xy..\\&quot;\\n};\\n\\n\\\/\\\/ Send the request\\nvar service = new PaymentsService(client);\\nvar response = service.Sessions(createCheckoutSessionRequest, requestOptions: new RequestOptions { IdempotencyKey = \\&quot;UUID\\&quot;});&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v21.0.0\\nimport (\\n  \\&quot;context\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/common\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/adyen\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/checkout\\&quot;\\n)\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nclient := adyen.NewClient(&amp;common.Config{\\n  ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n  Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Create the request object(s)\\namount := checkout.Amount{\\n  Currency: \\&quot;EUR\\&quot;,\\n  Value: 1000,\\n}\\n\\ncreateCheckoutSessionRequest := checkout.CreateCheckoutSessionRequest{\\n  Reference: \\&quot;Your-payment-reference-123-abc\\&quot;,\\n  Mode: common.PtrString(\\&quot;hosted\\&quot;),\\n  Amount: amount,\\n  MerchantAccount: \\&quot;ADYEN_MERCHANT_ACCOUNT\\&quot;,\\n  CountryCode: common.PtrString(\\&quot;NL\\&quot;),\\n  ShopperEmail: common.PtrString(\\&quot;s.hopper@example.com\\&quot;),\\n  ShopperReference: common.PtrString(\\&quot;Your-shopper-reference-890-xyz\\&quot;),\\n  ThemeId: common.PtrString(\\&quot;AZ1234567\\&quot;),\\n  ReturnUrl: \\&quot;https:\\\/\\\/your-company.example.com\\\/checkout?shopperOrder=12xy..\\&quot;,\\n}\\n\\n\\\/\\\/ Send the request\\nservice := client.Checkout()\\nreq := service.PaymentsApi.SessionsInput().IdempotencyKey(\\&quot;UUID\\&quot;).CreateCheckoutSessionRequest(createCheckoutSessionRequest)\\nres, httpRes, err := service.PaymentsApi.Sessions(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v13.6.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\n# Create the request object(s)\\njson_request = {\\n  \\&quot;merchantAccount\\&quot;: \\&quot;ADYEN_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;value\\&quot;: 1000,\\n    \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;returnUrl\\&quot;: \\&quot;https:\\\/\\\/your-company.example.com\\\/checkout?shopperOrder=12xy..\\&quot;,\\n  \\&quot;reference\\&quot;: \\&quot;Your-payment-reference-123-abc\\&quot;,\\n  \\&quot;mode\\&quot;: \\&quot;hosted\\&quot;,\\n  \\&quot;themeId\\&quot;: \\&quot;AZ1234567\\&quot;,\\n  \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n  \\&quot;shopperEmail\\&quot;: \\&quot;s.hopper@example.com\\&quot;,\\n  \\&quot;shopperReference\\&quot;: \\&quot;Your-shopper-reference-890-xyz\\&quot;\\n}\\n\\n# Send the request\\nresult = adyen.checkout.payments_api.sessions(request=json_request, idempotency_key=\\&quot;UUID\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v10.4.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\n# Create the request object(s)\\nrequest_body = {\\n  :merchantAccount =&gt; 'ADYEN_MERCHANT_ACCOUNT',\\n  :amount =&gt; {\\n    :value =&gt; 1000,\\n    :currency =&gt; 'EUR'\\n  },\\n  :returnUrl =&gt; 'https:\\\/\\\/your-company.example.com\\\/checkout?shopperOrder=12xy..',\\n  :reference =&gt; 'Your-payment-reference-123-abc',\\n  :mode =&gt; 'hosted',\\n  :themeId =&gt; 'AZ1234567',\\n  :countryCode =&gt; 'NL',\\n  :shopperEmail =&gt; 's.hopper@example.com',\\n  :shopperReference =&gt; 'Your-shopper-reference-890-xyz'\\n}\\n\\n# Send the request\\nresult = adyen.checkout.payments_api.sessions(request_body, headers: { 'Idempotency-Key' =&gt; 'UUID' })&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v29.0.0\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nconst config = new Config({\\n  apiKey: \\&quot;ADYEN_API_KEY\\&quot;,\\n  environment: EnvironmentEnum.TEST\\n});\\n\\nconst client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nconst amount: Types.checkout.Amount = {\\n  currency: \\&quot;EUR\\&quot;,\\n  value: 1000\\n};\\n\\nconst createCheckoutSessionRequest: Types.checkout.CreateCheckoutSessionRequest = {\\n  reference: \\&quot;Your-payment-reference-123-abc\\&quot;,\\n  mode: Types.checkout.CreateCheckoutSessionRequest.ModeEnum.Hosted,\\n  amount: amount,\\n  merchantAccount: \\&quot;ADYEN_MERCHANT_ACCOUNT\\&quot;,\\n  countryCode: \\&quot;NL\\&quot;,\\n  shopperEmail: \\&quot;s.hopper@example.com\\&quot;,\\n  shopperReference: \\&quot;Your-shopper-reference-890-xyz\\&quot;,\\n  themeId: \\&quot;AZ1234567\\&quot;,\\n  returnUrl: \\&quot;https:\\\/\\\/your-company.example.com\\\/checkout?shopperOrder=12xy..\\&quot;\\n};\\n\\n\\\/\\\/ Send the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentsApi.sessions(createCheckoutSessionRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>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> response includes the URL (<code>url<\/code>) for the Hosted Checkout page.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example response with the URL for Hosted Checkout page'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"id\\\": \\\"WNKH9MC2XJMLNK82\\\",\\n   \\\"merchantAccount\\\": \\\"TestMerchant\\\",\\n   \\\"amount\\\": {\\n      \\\"currency\\\": \\\"EUR\\\",\\n      \\\"value\\\": 100\\n   },\\n   \\\"returnUrl\\\": \\\"https:\\\/\\\/test-merchant\\u2026.\\\",\\n   \\\"reference\\\": \\\"Your-payment-reference-123-abc\\\",\\n   \\\"countryCode\\\": \\\"NL\\\",\\n   \\\"expiresAt\\\": \\\"2023-15-05T19:31:22+01:00\\\",\\n   \\\"url\\\": \\\"https:\\\/\\\/eu.adyen.link\\\/WNKH9MC2XJMLNK82\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>By default, the Hosted Checkout page expires (<code>expiresAt<\/code>) 1 hour after it was created.<\/p>\n<h2>Redirect the shopper to the Hosted Checkout page<\/h2>\n<p>Redirect the shopper to the URL (<code>url<\/code>) from 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> response. The shopper pays on the Hosted Checkout page.<\/p>\n<p>When using Hosted Checkout for a mobile browser integration, use <a href=\"https:\/\/developer.apple.com\/documentation\/safariservices\/sfsafariviewcontroller\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">SFSafariViewController<\/a> for iOS or <a href=\"https:\/\/developer.chrome.com\/docs\/android\/custom-tabs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Chrome Custom Tabs for Android<\/a>, instead of WebView objects. Some payment methods do not function correctly with WebView objects.<\/p>\n<h2 id=\"get-the-payment-outcome\">Get the payment outcome<\/h2>\n<p>After Hosted Checkout finishes the payment flow, you can show the shopper the current payment status. Adyen sends a webhook with the outcome of the payment.<\/p>\n<h3>Show the result of the payment session<\/h3>\n<ol>\n<li>\n<p>After the shopper makes the payment, they are redirected back to your website.<\/p>\n<\/li>\n<li>\n<p>Get the <code>sessionId<\/code> and <code>sessionResult<\/code> that is appended to the return URL from the Hosted Checkout page. Use it to get the outcome of the payment session.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Example return URL from Hosted Checkout page'\" :id=\"''\" :code-data='[{\"language\":\"bash\",\"tabTitle\":\"\",\"content\":\"https:\\\/\\\/your-company.example.com\\\/checkout?sessionId=WNKH9MC2XJMLNK82&amp;sessionResult=QXhlbFN0b2x0ZW5iZXJnCg\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>Make a <strong>GET<\/strong> <code>\/sessions\/{id}?sessionResult={sessionResult}<\/code> request including the <code>sessionId<\/code> and <code>sessionResult<\/code>. <\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Get outcome of payment session'\" :id=\"'get-outcome-of-payment-session-7071824371'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl -X GET https:\\\/\\\/checkout-test.adyen.com\\\/v72\\\/sessions\\\/WNKH9MC2XJMLNK82?sessionResult=QXhlbFN0b2x0ZW5iZXJnCg&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v39.3.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.service.checkout.*;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nClient client = new Client(\\&quot;\\&quot;, Environment.TEST);\\n\\\/\\\/ Send the request\\nPaymentsApi service = new PaymentsApi(client);\\nSessionResultResponse response = service.getResultOfPaymentSession(\\&quot;sessionId\\&quot;, \\&quot;String\\&quot;, null);&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;&lt;?php\\n\\\/\\\/ Adyen PHP API Library v28.2.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentsApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;\\&quot;);\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n$requestOptions['queryParams'] = array('sessionResult' =&gt; 'string');\\n\\n\\\/\\\/ Send the request\\n$service = new PaymentsApi($client);\\n$response = $service-&gt;getResultOfPaymentSession('sessionId', $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v32.1.1\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Send the request\\nvar service = new PaymentsService(client);\\nvar response = service.GetResultOfPaymentSession(\\&quot;sessionId\\&quot;, sessionResult: \\&quot;string\\&quot;);&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v21.0.0\\nimport (\\n  \\&quot;context\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/common\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/adyen\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/checkout\\&quot;\\n)\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nclient := adyen.NewClient(&amp;common.Config{\\n  ApiKey:      \\&quot;\\&quot;,\\n  Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Send the request\\nservice := client.Checkout()\\nreq := service.PaymentsApi.GetResultOfPaymentSessionInput(\\&quot;sessionId\\&quot;)\\nreq = req.SessionResult(\\&quot;string\\&quot;)\\nres, httpRes, err := service.PaymentsApi.GetResultOfPaymentSession(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v13.6.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;\\&quot;\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\nquery_parameters = {\\n  \\&quot;sessionResult\\&quot; : \\&quot;string\\&quot;\\n}\\n\\n# Send the request\\nresult = adyen.checkout.payments_api.get_result_of_payment_session(sessionId=\\&quot;sessionId\\&quot;, query_parameters=query_parameters)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v10.4.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = ''\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\n# Create the request object(s)\\nquery_params = {\\n  :sessionResult =&gt; 'string'\\n}\\n\\n# Send the request\\nresult = adyen.checkout.payments_api.get_result_of_payment_session('sessionId', query_params: query_params)&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v29.0.0\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nconst config = new Config({\\n  apiKey: \\&quot;\\&quot;,\\n  environment: EnvironmentEnum.TEST\\n});\\n\\nconst client = new Client(config);\\n\\n\\\/\\\/ Send the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentsApi.getResultOfPaymentSession(\\&quot;sessionId\\&quot;, \\&quot;string\\&quot;);&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The response includes the current status (<code>status<\/code>) of the payment. <\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Example response for outcome of payment session'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"additionalData\\\": {\\n    ...\\n  },\\n  \\\"id\\\": \\\"CSD9CAC34EBAE225DD\\\",\\n  \\\"payments\\\": [{\\n    \\\"amount\\\": {\\n      \\\"currency\\\": \\\"EUR\\\",\\n      \\\"value\\\": 1000\\n    },\\n    \\\"paymentMethod\\\": {\\n      \\\"brand\\\": \\\"visa\\\",\\n      \\\"type\\\": \\\"scheme\\\"\\n    },\\n    \\\"pspReference\\\": \\\"TG9SNBJJNXRKDM92\\\",\\n    \\\"resultCode\\\": \\\"Authorised\\\"\\n  }],\\n  \\\"reference\\\": \\\"Your-payment-reference-123-abc\\\",\\n  \\\"status\\\": \\\"completed\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The information included in  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/get\/sessions\/(sessionId)#responses-200-additionalData\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">additionalData<\/a> depends on the type of payment made.<\/p>\n<p>Possible statuses:<\/p>\n<table>\n<thead>\n<tr>\n<th><code>status<\/code><\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>completed<\/strong><\/td>\n<td>The shopper completed the payment.<\/td>\n<\/tr>\n<tr>\n<td><strong>paymentPending<\/strong><\/td>\n<td>The shopper is in the process of making the payment. Applies to payment methods with an asynchronous flow, such as a voucher payment.<\/td>\n<\/tr>\n<tr>\n<td><strong>expired<\/strong><\/td>\n<td>The session expired. The shopper can no longer use the Hosted Checkout page to make a payment.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"notices green\">\n<p>The <code>status<\/code> included in the response does not change. Do not make the request again to check for payment status updates. Instead, check webhooks or the <strong>Transactions<\/strong> list in your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>.<\/p>\n<\/div>\n<\/li>\n<\/ol>\n<h3 id=\"update-your-order-management-system\">Update your order management system<\/h3>\n<p>Update your order management system when you get the outcome in a webhook message with <code>eventCode<\/code>: <strong>AUTHORISATION<\/strong>.  Use the <code>merchantReference<\/code> from the webhook to match it to your order reference.<\/p>\n<p>For a successful payment, the event contains <code>success<\/code>: <strong>true<\/strong>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example webhook for a successful payment'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"live\\\": \\\"false\\\",\\n  \\\"notificationItems\\\":[\\n    {\\n      \\\"NotificationRequestItem\\\":{\\n        \\\"eventCode\\\":\\\"AUTHORISATION\\\",\\n        \\\"merchantAccountCode\\\":\\\"ADYEN_MERCHANT_ACCOUNT\\\",\\n        \\\"reason\\\":\\\"033899:1111:03\\\/2030\\\",\\n        \\\"amount\\\":{\\n          \\\"currency\\\":\\\"EUR\\\",\\n          \\\"value\\\":2500\\n        },\\n        \\\"operations\\\":[\\\"CANCEL\\\",\\\"CAPTURE\\\",\\\"REFUND\\\"],\\n        \\\"success\\\":\\\"true\\\",\\n        \\\"paymentMethod\\\":\\\"mc\\\",\\n        \\\"additionalData\\\":{\\n          \\\"expiryDate\\\":\\\"03\\\/2030\\\",\\n          \\\"authCode\\\":\\\"033899\\\",\\n          \\\"cardBin\\\":\\\"411111\\\",\\n          \\\"cardSummary\\\":\\\"1111\\\",\\n          \\\"checkoutSessionId\\\":\\\"CSF46729982237A879\\\"\\n        },\\n        \\\"merchantReference\\\":\\\"Your-payment-reference-123-abc\\\",\\n        \\\"pspReference\\\":\\\"NC6HT9CRT65ZGN82\\\",\\n        \\\"eventDate\\\":\\\"2021-09-13T14:10:22+02:00\\\"\\n      }\\n    }\\n  ]\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>For an unsuccessful payment, you get <code>success<\/code>: <strong>false<\/strong>, and the <code>reason<\/code> field has details about why the payment was unsuccessful.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example webhook for an unsuccessful payment'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"live\\\": \\\"false\\\",\\n  \\\"notificationItems\\\":[\\n    {\\n      \\\"NotificationRequestItem\\\":{\\n        \\\"eventCode\\\":\\\"AUTHORISATION\\\",\\n        \\\"merchantAccountCode\\\":\\\"ADYEN_MERCHANT_ACCOUNT\\\",\\n        \\\"reason\\\":\\\"validation 101 Invalid card number\\\",\\n        \\\"amount\\\":{\\n          \\\"currency\\\":\\\"EUR\\\",\\n          \\\"value\\\":2500\\n        },\\n        \\\"success\\\":\\\"false\\\",\\n        \\\"paymentMethod\\\":\\\"unknowncard\\\",\\n        \\\"additionalData\\\":{\\n          \\\"expiryDate\\\":\\\"03\\\/2030\\\",\\n          \\\"cardBin\\\":\\\"411111\\\",\\n          \\\"cardSummary\\\":\\\"1112\\\",\\n          \\\"checkoutSessionId\\\":\\\"861631540104159H\\\"\\n        },\\n        \\\"merchantReference\\\":\\\"Your-payment-reference-123-abc\\\",\\n        \\\"pspReference\\\":\\\"KHQC5N7G84BLNK43\\\",\\n        \\\"eventDate\\\":\\\"2021-09-13T14:14:05+02:00\\\"\\n      }\\n    }\\n  ]\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2 id=\"testing-your-integration\">Test and go live<\/h2>\n<p>Before going live, use our list of <a href=\"\/development-resources\/test-cards-and-credentials\/test-card-numbers\">test cards and other payment methods<\/a> to\u00a0test your integration. We recommend testing each payment method that you intend to offer to your shoppers.<\/p>\n<p>You can check the test payments in your\u00a0<a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>, under <strong>Transactions<\/strong> &gt;\u00a0<strong>Payments<\/strong>.<\/p>\n<p>When you are ready to go live, you need to:<\/p>\n<ol>\n<li>Apply for a live account.<\/li>\n<li>Configure your live account.\u00a0<\/li>\n<li>Submit a request to add payment methods in your <a href=\"https:\/\/ca-live.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">live Customer Area<\/a> .<\/li>\n<li>\n<p>Switch from test to our <a href=\"\/development-resources\/live-endpoints#checkout-endpoints\">live endpoints<\/a>.<\/p>\n<div class=\"notices yellow\">\n<p>Make sure that all API requests you make for the same payment session use the same live endpoint region. Using different regions for requests can result in errors.<\/p>\n<\/div>\n<\/li>\n<\/ol>\n<h2>Troubleshooting<\/h2>\n<p>The following information can help your troubleshoot issues with your integration.<\/p>\n<h3>Expiration<\/h3>\n<p>The Hosted Checkout page expires after:<\/p>\n<ul>\n<li>The <code>expiresAt<\/code> from 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> response. The default is 1 hour after it was created.<\/li>\n<li>Our system determines that the shopper made too many payment attempts.<\/li>\n<\/ul>\n<h3>Payment retries<\/h3>\n<p>For a payment that encounters an error or fails on a redirect payment method's page, the shopper gets redirected to the Hosted Checkout page to retry the payment.<\/p>\n<h3>Payment errors<\/h3>\n<p>If the payment encounters an error, the shopper can retry the payment on the Hosted Checkout page. We send you a webhook message for each payment attempt. So, we can send you more than one webhook message that includes the same <code>sessionId<\/code>.<\/p>\n<h2>Supported payment methods<\/h2>\n<ul>\n<li>ACH Direct Debit<\/li>\n<li>Affirm<\/li>\n<li>Afterpay<\/li>\n<li>Alipay<\/li>\n<li>AlipayHK<\/li>\n<li>Apple Pay<\/li>\n<li>Atome<\/li>\n<li>BACS Direct Debit<\/li>\n<li>Bancontact Card<\/li>\n<li>Bancontact Mobile (Payconiq)<\/li>\n<li>Benefit<\/li>\n<li>BLIK<\/li>\n<li>Boleto Banc\u00e1rio<\/li>\n<li>Cards, including 3D Secure 1 and 3D Secure 2 authentication<\/li>\n<li>Clearpay<\/li>\n<li>Credit card installments<\/li>\n<li>Stored card details<\/li>\n<li>DANA<\/li>\n<li>Dragonpay<\/li>\n<li>EPS<\/li>\n<li>Fawry<\/li>\n<li>GCash<\/li>\n<li>Gift cards<\/li>\n<li>Google Pay<\/li>\n<li>GrabPay<\/li>\n<li>iDEAL<\/li>\n<li>Indonesian bank transfers and convenience stores<\/li>\n<li>Japanese convenience stores (Konbini)\/<br> 7-Eleven Japan<\/li>\n<li>KakaoPay<\/li>\n<li>Klarna<\/li>\n<li>KNET<\/li>\n<li>MB WAY<\/li>\n<li>MobilePay<\/li>\n<li>MOLPay<\/li>\n<li>MoMo<\/li>\n<li>Multibanco<\/li>\n<li>Oney 3x4x<\/li>\n<li>Online banking Finland<\/li>\n<li>Online banking India<\/li>\n<li>Online banking Japan<\/li>\n<li>Online banking Poland<\/li>\n<li>Napas card<\/li>\n<li>OXXO<\/li>\n<li>PayBright<\/li>\n<li>PayPal<\/li>\n<li>Paytm<\/li>\n<li>PayU<\/li>\n<li>Pix<\/li>\n<li>Ratepay<\/li>\n<li>SEPA Direct Debit<\/li>\n<li>Sofort<\/li>\n<li>Swish<\/li>\n<li>Trustly<\/li>\n<li>TWINT<\/li>\n<li>Vipps<\/li>\n<li>Wallets India<\/li>\n<li>WeChat Pay<\/li>\n<li>Zip<\/li>\n<\/ul>\n<h2>Next steps<\/h2>\n<div class=\"next-steps\" id=\"next-steps\" style=display:block;>\n<a href=\"\/standard\/integration\/hosted-checkout\/tokenization\" class=\"next-steps__step\" style=\"width:45%;\" target=\"_self\"><div class=\"next-steps__title\">Tokenization<\/div><p class=\"next-steps__body\"><p>Store and reuse your shopper's payment details for faster checkout.<\/p><\/p><\/a><\/div>\n","url":"https:\/\/docs.adyen.com\/standard\/integration\/hosted-checkout","articleFields":{"description":"Build your standard payments integration with Hosted Checkout."},"algolia":{"url":"https:\/\/docs.adyen.com\/standard\/integration\/hosted-checkout","title":"Hosted Checkout","content":"The Hosted Checkout integration redirects the shopper to an Adyen-hosted webpage that handles the complete payment flow for supported payment methods.\nRequirements\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nUse this information to build an online payments integration.\n\n\nCustomer Area roles\nMake sure that you have the following roles: Merchant admin role Manage API credentials\n\n\nAdyen API credentials\nMake sure that you have created the following: API credential API key\n\n\nAdyen API credential roles\nMake sure that you have the roles for payments that are assigned by default.\n\n\nWebhooks\nSubscribe to the following webhooks: Standard webhook with default event codes.\n\n\nSetup steps\nMake sure that you have done the following: Set up your test account.Got an overview of what is required before you accept live payments.\n\n\n\nHow it works\nFor a Hosted Checkout integration, you must integrate the following parts:\n\nYour payment server: Sends the API request to create a Hosted Checkout payment session.\n\nUse the  \/sessions endpoint on Checkout API v72 or later.\nUse a server-side library released on March 30, 2026 or later.\n\nYour webhook server: Listens for webhook messages that include the outcome of each payment.\n\nIntegration steps\nTo integrate Hosted Checkout:\n\nInstall an API library on your server.\nConfigure the theme for your Hosted Checkout page.\nCreate a payment session.\nRedirect the shopper to the Hosted Checkout page.\nGet the payment outcome.\n\nShopper checkout experience\nWhen the shopper goes to check out:\n\nYou redirect the shopper to an Adyen-hosted Hosted Checkout page.\nThe shopper completes the payment on the Hosted Checkout page.\nThe shopper gets redirected to your website where you show the result of the payment session.\n\nPayments integration flow\nYour website\/app, your server and the Hosted Checkout page work together to complete the payment flow:\n\nThe shopper chooses to go to check out on your website\/app.\nYour website\/app triggers your server to create a payment session.\nYour server makes a POST  \/sessions request to Adyen, to create a payment session. Adyen returns the URL to the Hosted Checkout page.\nYour server passes the URL to your website\/app.\nYour website\/app redirects the shopper to the Hosted Checkout page.\nThe shopper completes the payment on the Hosted Checkout page.\nThe shopper gets redirected to your website\/app with appended session data.\nYour website\/app passes appended session data to your server.\nYour server makes a GET  \/sessions\/{sessionId} request to Adyen. Adyen returns the result of the payment session.\nYour server passes the result to your website\/app.\nYour website\/app shows the result of the payment session to the shopper.\nYour webhook server receives webhook message with the payment outcome.\n\nCnNlcXVlbmNlRGlhZ3JhbQogICAgcGFydGljaXBhbnQgU2hvcHBlcgogICAgcGFydGljaXBhbnQgWW91ciB3ZWJzaXRlL2FwcAogICAgcGFydGljaXBhbnQgWW91ciBwYXltZW50IHNlcnZlcgogICAgcGFydGljaXBhbnQgQWR5ZW4gYXMgQWR5ZW4gc2VydmVyL0hvc3RlZCBDaGVja291dCBwYWdlCiAgICBwYXJ0aWNpcGFudCBZb3VyIHdlYmhvb2sgc2VydmVyCgogICAgU2hvcHBlci0+PllvdXIgd2Vic2l0ZS9hcHA6IDEuIEdvIHRvIGNoZWNrb3V0CiAgICBZb3VyIHdlYnNpdGUvYXBwLT4+WW91ciBwYXltZW50IHNlcnZlcjogMi4gVHJpZ2dlciBzZXNzaW9uIGNyZWF0aW9uIHJlcXVlc3QKICAgIFlvdXIgcGF5bWVudCBzZXJ2ZXItPj5BZHllbjogMy4gUmVxdWVzdCB0byBjcmVhdGUgcGF5bWVudCBzZXNzaW9uIChQT1NUIC9zZXNzaW9ucykgCiAgICBBZHllbi0tPj5Zb3VyIHBheW1lbnQgc2VydmVyOiBIb3N0ZWQgQ2hlY2tvdXQgcGFnZSBVUkwKICAgIFlvdXIgcGF5bWVudCBzZXJ2ZXItLT4+WW91ciB3ZWJzaXRlL2FwcDogNC4gUGFzcyBIb3N0ZWQgQ2hlY2tvdXQgcGFnZSBVUkwKICAgIFlvdXIgd2Vic2l0ZS9hcHAtPj5BZHllbjogNS4gUmVkaXJlY3Qgc2hvcHBlciB0byBIb3N0ZWQgQ2hlY2tvdXQgcGFnZSAKICAgIFNob3BwZXItPj5BZHllbjogNi4gQ29tcGxldGUgcGF5bWVudCBvbiBIb3N0ZWQgQ2hlY2tvdXQgcGFnZQogICAgQWR5ZW4tPj5Zb3VyIHdlYnNpdGUvYXBwOiA3LiBSZWRpcmVjdCBzaG9wcGVyIHRvIHlvdXIgd2Vic2l0ZS9hcHAgd2l0aCBhcHBlbmRlZCBzZXNzaW9uIGRhdGEKICAgIFlvdXIgd2Vic2l0ZS9hcHAtPj5Zb3VyIHBheW1lbnQgc2VydmVyOiA4LiBQYXNzIHRoZSBhcHBlbmRlZCBzZXNzaW9uIGRhdGEKICAgIFlvdXIgcGF5bWVudCBzZXJ2ZXItPj5BZHllbjogOS4gUmVxdWVzdCB0byBnZXQgcmVzdWx0IG9mIHBheW1lbnQgc2Vzc2lvbiAoR0VUIC9zZXNzaW9ucy9zZXNzaW9uSWQpCiAgICBBZHllbi0tPj5Zb3VyIHBheW1lbnQgc2VydmVyOiBSZXN1bHQgb2YgcGF5bWVudCBzZXNzaW9uCiAgICBZb3VyIHBheW1lbnQgc2VydmVyLT4+WW91ciB3ZWJzaXRlL2FwcDogMTAuIFBhc3MgcmVzdWx0IG9mIHBheW1lbnQgc2Vzc2lvbgogICAgWW91ciB3ZWJzaXRlL2FwcC0+PlNob3BwZXI6IDExLiBTaG93IHJlc3VsdCBvZiBwYXltZW50IHNlc3Npb24KICAgIEFkeWVuLT4+WW91ciB3ZWJob29rIHNlcnZlcjogMTIuIFdlYmhvb2sgbWVzc2FnZSB3aXRoIHBheW1lbnQgb3V0Y29tZQo=\nInstall an API library\n\n\n    \n        \n        \n    \n\n\nConfigure your theme\nTo create a theme, you must have one of the following user roles:\n\nMerchant admin\nHosted Checkout and Pay by Link Settings\n\nTo create a new theme:\n\nLog in to your Customer Area and switch to your merchant account if necessary.\nGo to Pay by Link &gt; Themes.\nSelect Create a new theme.\nEnter a Theme name. This name helps you to identify different themes.\nEnter a Display name. This name is visible to the shopper on the Hosted Checkout page.\nUpload a brand logo.\nIf you want this to be the default theme for all Hosted Checkout pages, select Set as default. Available only on the merchant account.\nSelect Create.\n\nGet the theme ID:\n\nGo to Pay by Link &gt; Themes.\nSelect the options icon from the theme.\nSelect Copy theme ID.\nThis copies the theme ID to your system's clipboard.\n\nCreate a payment session\nWhen the shopper goes to checkout, for example by selecting a Checkout button, make a POST  \/sessions request from your server, including:\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\namount\n\nThe\u00a0currency\u00a0and\u00a0value\u00a0of the payment, in minor units. This is used to filter the list of available payment methods to your shopper.\n\n\nmerchantAccount\n\nYour merchant account name.\n\n\nreturnUrl\n\nURL where to redirect the shopper after they make the payment on the Hosted Checkout page. The URL can contain a maximum of 1024 characters and should include the protocol: http:\/\/ or https:\/\/. You can also include your own additional query parameters, for example, shopper ID or order reference number.   If the URL to return to includes non-ASCII characters, like spaces or special letters, URL encode the value.   The URL must not include personally identifiable information (PII), for example name or email address. \n\n\nreference\n\nYour unique reference for the payment. Minimum length: three characters.\n\n\ncountryCode\n\nThe shopper's country\/region. This is used to filter the list of available payment methods to your shopper. Format: the two-letter ISO-3166-1 alpha-2 country code. Exception: QZ (Kosovo).\n\n\nshopperEmail\n\nThe shopper's email address. Strongly recommended because this field is used in a number of risk checks, and for 3D Secure.\n\n\nshopperReference\n\nYour unique reference for the shopper. Do not include personally identifiable information (PII), such as name or email address.  Format: Minimum length: 3 characters.Case-sensitive. This field is used for the following: Risk checks.When storing the shopper's payment details: associating the token with the shopper.\n\n\nmode\n\nhosted\n\n\nthemeId\n\nThe theme ID of the theme to use for the Hosted Checkout page.\n\n\n\n\n    \n\nThe  \/sessions response includes the URL (url) for the Hosted Checkout page.\n\n    \n\nBy default, the Hosted Checkout page expires (expiresAt) 1 hour after it was created.\nRedirect the shopper to the Hosted Checkout page\nRedirect the shopper to the URL (url) from the  \/sessions response. The shopper pays on the Hosted Checkout page.\nWhen using Hosted Checkout for a mobile browser integration, use SFSafariViewController for iOS or Chrome Custom Tabs for Android, instead of WebView objects. Some payment methods do not function correctly with WebView objects.\nGet the payment outcome\nAfter Hosted Checkout finishes the payment flow, you can show the shopper the current payment status. Adyen sends a webhook with the outcome of the payment.\nShow the result of the payment session\n\n\nAfter the shopper makes the payment, they are redirected back to your website.\n\n\nGet the sessionId and sessionResult that is appended to the return URL from the Hosted Checkout page. Use it to get the outcome of the payment session.\n\n\n\n\n\nMake a GET \/sessions\/{id}?sessionResult={sessionResult} request including the sessionId and sessionResult. \n\n\n\nThe response includes the current status (status) of the payment. \n\n\n\nThe information included in  additionalData depends on the type of payment made.\nPossible statuses:\n\n\n\nstatus\nDescription\n\n\n\n\ncompleted\nThe shopper completed the payment.\n\n\npaymentPending\nThe shopper is in the process of making the payment. Applies to payment methods with an asynchronous flow, such as a voucher payment.\n\n\nexpired\nThe session expired. The shopper can no longer use the Hosted Checkout page to make a payment.\n\n\n\n\nThe status included in the response does not change. Do not make the request again to check for payment status updates. Instead, check webhooks or the Transactions list in your Customer Area.\n\n\n\nUpdate your order management system\nUpdate your order management system when you get the outcome in a webhook message with eventCode: AUTHORISATION.  Use the merchantReference from the webhook to match it to your order reference.\nFor a successful payment, the event contains success: true.\n\n    \n\nFor an unsuccessful payment, you get success: false, and the reason field has details about why the payment was unsuccessful.\n\n    \n\nTest and go live\nBefore going live, use our list of test cards and other payment methods to\u00a0test your integration. We recommend testing each payment method that you intend to offer to your shoppers.\nYou can check the test payments in your\u00a0Customer Area, under Transactions &gt;\u00a0Payments.\nWhen you are ready to go live, you need to:\n\nApply for a live account.\nConfigure your live account.\u00a0\nSubmit a request to add payment methods in your live Customer Area .\n\nSwitch from test to our live endpoints.\n\nMake sure that all API requests you make for the same payment session use the same live endpoint region. Using different regions for requests can result in errors.\n\n\n\nTroubleshooting\nThe following information can help your troubleshoot issues with your integration.\nExpiration\nThe Hosted Checkout page expires after:\n\nThe expiresAt from the  \/sessions response. The default is 1 hour after it was created.\nOur system determines that the shopper made too many payment attempts.\n\nPayment retries\nFor a payment that encounters an error or fails on a redirect payment method's page, the shopper gets redirected to the Hosted Checkout page to retry the payment.\nPayment errors\nIf the payment encounters an error, the shopper can retry the payment on the Hosted Checkout page. We send you a webhook message for each payment attempt. So, we can send you more than one webhook message that includes the same sessionId.\nSupported payment methods\n\nACH Direct Debit\nAffirm\nAfterpay\nAlipay\nAlipayHK\nApple Pay\nAtome\nBACS Direct Debit\nBancontact Card\nBancontact Mobile (Payconiq)\nBenefit\nBLIK\nBoleto Banc\u00e1rio\nCards, including 3D Secure 1 and 3D Secure 2 authentication\nClearpay\nCredit card installments\nStored card details\nDANA\nDragonpay\nEPS\nFawry\nGCash\nGift cards\nGoogle Pay\nGrabPay\niDEAL\nIndonesian bank transfers and convenience stores\nJapanese convenience stores (Konbini)\/ 7-Eleven Japan\nKakaoPay\nKlarna\nKNET\nMB WAY\nMobilePay\nMOLPay\nMoMo\nMultibanco\nOney 3x4x\nOnline banking Finland\nOnline banking India\nOnline banking Japan\nOnline banking Poland\nNapas card\nOXXO\nPayBright\nPayPal\nPaytm\nPayU\nPix\nRatepay\nSEPA Direct Debit\nSofort\nSwish\nTrustly\nTWINT\nVipps\nWallets India\nWeChat Pay\nZip\n\nNext steps\n\nTokenizationStore and reuse your shopper's payment details for faster checkout.\n","type":"page","locale":"en","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Standard payments integration","lvl2":"Build your integration","lvl3":"Hosted Checkout"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/","lvl1":"https:\/\/docs.adyen.com\/standard","lvl2":"https:\/\/docs.adyen.com\/standard\/integration","lvl3":"\/standard\/integration\/hosted-checkout"},"levels":4,"category":"","category_color":"","tags":["Hosted","Checkout"]},"articleFiles":{"github-icon.png":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/user\/pages\/docs\/standard\/integration\/hosted-checkout\/github-icon.png\" \/>","gitpod-icon.png":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/user\/pages\/docs\/standard\/integration\/hosted-checkout\/gitpod-icon.png\" \/>","sessions-response.json":"<p alt=\"\">sessions-response.json<\/p>"}}
