To communicate with the Adyen API you should submit HTTP POST requests to corresponding endpoints. These endpoints differ for test and live accounts, and also depend on the data format (SOAP, JSON, or FORM) you use to submit data to the Adyen payments platform.
The live endpoints are set up automatically. To view your live endpoints:
- Log in to your live Customer Area.
- Go to Account > API URLs.
On the API URLs and Response page, you can see the configured endpoints for your company account.
If you need to connect to a certain data center of the Adyen payments platform (for example, US or AU data centers), you can also set up location-based live endpoints. To use location-based live endpoints, contact our Support Team.
Our API is versioned using the URL of the endpoint, for example:
While we endeavor to maintain backwards compatibility, we version the API when a change will create compatibility issues. We maintain older versions of the API which you can continue to use until you are ready to upgrade.
Live endpoints structure
The table below shows the structure of test and live endpoints.
If you are using our classic HPP integration, refer to Hosted Payment Pages API.
Standard payments endpoints
In the live endpoint examples:
[version]– The service version number, always starting with "v" (for example, v52).
[method]– The endpoint name.
[random]– A random string of hex-encoded bytes to make the hostname unpredictable.
[company name]– The company name to be included in the URL endpoint. If the name is too long, it is shortened. If the name includes underscores or hyphens, any underscores and/or hyphens are stripped.
Each company account is provided with a unique hostname to communicate with Adyen's APIs. By connecting to this merchant-specific hostname, Adyen has more control over the routing of transactions. This allows Adyen to improve service robustness and availability for our merchants.
By default all transactions for a merchant-specific endpoint are routed to the same infrastructure as the standard endpoint, however in case of an infrastructure problem on the standard endpoint, especially if the cause is outside of Adyen's scope of control, alternative routing can be enabled to backup infrastructure and new infrastructure can be provisioned on demand.
Checkout front-end resources
We recommend that you load assets and other front-end resources from a region-specific URL closest to where your shopper is located.
|Live - EU||https://checkoutshopper-live.adyen.com/checkoutshopper/sdk/[version]/adyen.js
|Live - AU||https://checkoutshopper-live-au.adyen.com/checkoutshopper/sdk/[version]/adyen.js
|Live - US||https://checkoutshopper-live-us.adyen.com/checkoutshopper/sdk/[version]/adyen.js
In the endpoint examples:
[version]– The JS SDK version number.
Subresource Integrity hashes
We recommend that you implement Subresource Integrity (SRI) to ensure that the files you are loading from Adyen have not been manipulated or tampered with by malicious actors.
To use the SRI hash, you need to add an
integrity attribute when specifying
<link> elements. Browsers will also check for the
crossorigin attribute to ensure that the origin allows Cross-Origin Resource Sharing (CORS). If a browser detects that the file's hash does not match the specified hash, the browser will not load the resource. To know which browsers support SRI, refer to this browser compatibility list.
For example, here is how you specify version 3.5.0
<script src="https://checkoutshopper-live.adyen.com/checkoutshopper/sdk/3.5.0/adyen.js" integrity="sha384-MpcW2OFcC1/y5nwF6UmvRfDXGISpg1rowHVybiS+wJObkUwgFpvbdpJxR2/bwmeA" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://checkoutshopper-live.adyen.com/checkoutshopper/sdk/3.5.0/adyen.css" integrity="sha384-aWycvW8Dygg+6QHTq56FJMi4CJBjQt4LbRO3zWUuyfbv0A8g3rb5FR/vHyHKfiY0" crossorigin="anonymous">
Live URL prefix
When using our libraries for live transactions, you need to pass the live url prefix to the library. This prefix is the combination of the [random] and [company name] from the live endpoint. You also need to pass the live url prefix for most of our plugins.
For example, if this was your live URL:
Then the live URL prefix would be