Adyen Checkout API provides a simple and flexible way to initiate and authorise online payments. You can use the same integration for payments made with cards (including 3D Secure), mobile wallets, and local payment methods (for example, iDEAL and Sofort).
This API reference provides information on available endpoints and how to interact with them. To learn more about the API, visit online payments documentation.
Each request to Checkout API must be signed with an API key. For this, get your API key from your Customer Area, and set this key to the X-API-Key header value, for example:
curl
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
...
Checkout API supports versioning using a version suffix in the endpoint URL. This suffix has the following format: "vXX", where XX is the version number.
For example:
https://checkout-test.adyen.com/v71/payments
Have a look at the release notes to find out what changed in this version!, Configure and manage your Adyen company and merchant accounts, stores, and payment terminals.
Each request to the Management API must be signed with an API key. Generate your API key in the Customer Area and then set this key to the X-API-Key header value.
To access the live endpoints, you need to generate a new API key in your live Customer Area.
Management API handles versioning as part of the endpoint URL. For example, to send a request to this version of the /companies/{companyId}/webhooks endpoint, use:
https://management-test.adyen.com/v3/companies/{companyId}/webhooks
To access the live endpoints, you need an API key from your live Customer Area. Use this API key to make requests to:
https://management-live.adyen.com/v3
Have a look at the release notes to find out what changed in this version!
Install this SDK into your application by adding a project reference to the SDK.
dotnet add reference <path-to-sdk>\AdyenApis.csprojusing AdyenApis;
using AdyenApis.Models;
string key = "1POdFZRZbvb...qqillRxMr2z";
AdyenApisClient client = new AdyenApisClient(new HttpClient(), new AdyenApisClientOptions(), key);
try
{
string? idempotencyKey = /* value */;
CardDetailsRequest? body = /* value */;
Task<CardDetailsResponse> response = await client.GetCardDetails(idempotencyKey, body);
// TODO: decide what happens when api call is successfully completed
}
catch (SdkException<VoidErrorResponse> ex)
{
// TODO: decide what happens when api call is resulted in an error status code
}The following options are configurable in your client:
| Parameter | Description |
|---|---|
| RetryOptions | The Retry options for the API Calls |
The following fields are available in RetryOptions:
| Parameter | Type | Description |
|---|---|---|
| Timeout | TimeSpan | Per-request timeout; cancels requests exceeding this duration. Default: 100s |
| StatusCodesToRetry | IReadOnlyList | HTTP status codes that trigger a retry. Default: 408, 429, 500, 502, 503, 504 |
| HttpMethodsToRetry | IReadOnlyList | HTTP methods eligible for retry. Default: GET, HEAD, PUT, OPTIONS |
| MaxRetries | int | Maximum number of retry attempts. Default: 3 |
| Delay | TimeSpan | Base delay before each retry attempt. Default: 1s |
| BackOffFactor | int | Multiplier for exponential backoff (e.g., 2 doubles each attempt's delay). Default: 2 |
| UseExponentialBackoff | bool | Enables exponential backoff; when false, uses constant delay. Default: true |
| MaxJitter | TimeSpan | Maximum random jitter added to delay to reduce contention. Default: 500ms |
| OnRetry | Action<Exception, TimeSpan, int> | Callback invoked on each retry with the error/result, applied delay, and attempt number. Default: null |
using AdyenApis;
using AdyenApis.Models;
AdyenApisClientOptions options =
new AdyenApisClientOptions
{
RetryOptions = AdyenApis.Core.Configuration.RetryOptions.Default() with
{
MaxRetries = 5,
Delay = TimeSpan.FromSeconds(2)
}
};
AdyenApisClient client = new AdyenApisClient(new HttpClient(), options, key);
// Make any API Call with HttpMethod GET
string? idempotencyKey = /* value */;
CardDetailsRequest? body = /* value */;
Task<CardDetailsResponse> response = await client.GetCardDetails(idempotencyKey, body);