Everything an AI agent can do with the Adyen API.

A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.

Endpoints25
API versionCheckout v71
Last updated23 June 2026
Orientation

How the Adyen API works.

The Adyen API is how an app or AI agent takes a payment, captures or refunds it, removes a shopper's saved card, sends a payout, or configures a merchant account. Access is granted through an API key whose credential carries a set of roles, and those roles, together with the origins the key is allowed to call from, set the boundary of what it can do. Many payment outcomes are confirmed asynchronously, so the result of an authorisation, capture, or refund arrives as a standard event sent to a registered endpoint.

25Endpoints
6Capability groups
8Read
17Write
9Permissions
Authentication
Adyen authenticates a call with an API key in the X-API-Key header, or with HTTP Basic auth for older endpoints. There is no OAuth and no per-endpoint scope. A key belongs to an API credential, and that credential's roles decide which APIs and operations the key may use. Every key belongs to one environment, either test or live, and the live host carries a company-specific prefix.
Permissions
Access is governed by the roles on the API credential, not by scopes requested per call. A role like the Checkout role, the Management API role, or the payout review role unlocks a set of operations, and client-side calls are further restricted to the credential's allowed origins. A 403 response means the credential's roles, or its allowed origins, do not permit the request.
Versioning
Each Adyen API is versioned independently in the request path. Checkout is at v71 (v72 is the latest), the classic Payments and Payouts APIs at v68, Recurring at v68, Management at v3, and the Balance Platform Configuration API at v2. An integration pins a version per API and upgrades each one separately.
Data model
Adyen is a set of JSON REST APIs split by purpose: Checkout takes and modifies payments, Recurring manages stored tokens, Management configures the account, Payout sends money out, and Balance Platform powers embedded finance. Many payment outcomes are confirmed asynchronously, so the result of an authorisation, capture, or refund arrives as a standard webhook carrying an eventCode and a pspReference rather than in the original API response.
Connect & authenticate

Connection & authentication methods.

How an app or AI agent connects to Adyen determines what it can reach. There is a route for taking and changing payments, a route for managing the account itself, a route for receiving events, and a local server that exposes Adyen tools to agents, and each is governed by the API key behind it and the roles and allowed origins set on that key.

Ways to connect

REST APIs

Adyen is a set of separate REST APIs, each versioned in its own request path: Checkout for payments at https://checkout-live.adyenpayments.com, the classic Payments and Payouts APIs at the pal host, and the Management and Balance Platform APIs at their own hosts. A call sends JSON and authenticates with an API key in the X-API-Key header, or with HTTP Basic auth for older endpoints. The live host carries a company-specific prefix.

Best forConnecting an app or AI agent to Adyen.
Governed byThe API key and the roles and allowed origins set on it.
Docs ↗

Webhooks

Adyen POSTs standard notifications to an endpoint registered through the Management API or the Customer Area. A payload carries a notificationItems array of NotificationRequestItem objects, each with an eventCode like AUTHORISATION or REFUND, a success flag, and a pspReference. The receiver verifies an HMAC signature, sent inside additionalData for payment webhooks, to confirm the request came from Adyen, and must return [accepted] to acknowledge it.

Best forReceiving payment outcomes at an app or AI agent.
Governed byThe HMAC key generated for the webhook endpoint.
Docs ↗

MCP server

Adyen publishes a first-party Model Context Protocol server, written in TypeScript and run locally (for example through npx), that exposes Adyen tools to AI agents and LLM clients. The alpha release covers an initial set of Checkout and Management API endpoints, like creating payment sessions, managing payment links, and processing cancellations and refunds. It authenticates with an Adyen API key supplied when the server starts.

Best forConnecting an AI agent to Adyen through MCP.
Governed byThe API key supplied to the server and the roles on it.
Docs ↗
Authentication

API key

An API key authenticates a request through the X-API-Key header. Each key belongs to an API credential that carries a set of roles, which decide which APIs and operations the key can use, and a list of allowed origins for client-side calls. There is no per-endpoint OAuth scope; access is shaped entirely by the credential's roles. A key belongs to one environment, either test or live.

TokenAPI key (X-API-Key header)
Best forServer-side calls to Checkout, Management, and the other APIs.
Docs ↗

Basic auth

Older endpoints accept HTTP Basic authentication using the username and password of a web-service user. The same roles on the underlying API credential govern what the user can do. Adyen recommends the API key over basic auth for new integrations.

TokenBasic auth (web-service user)
Best forLegacy integrations and endpoints that predate the API key.
Docs ↗

Client key

A client key is a public key safe to use in front-end code, paired with the Web and mobile SDKs (Drop-in and Components). It is restricted to client-side operations and to the origins listed on the credential, and cannot make server-side API calls or move money on its own.

TokenClient key (public, origin-restricted)
Best forFront-end checkout with Drop-in or Components.
Docs ↗
Capability map

What an AI agent can do in Adyen.

The Adyen API is split into areas an agent can act on, like taking a payment, capturing or refunding it, sending a payout, managing stored cards, and configuring merchant accounts. Each area is a separate API with its own version, and writes in the payment areas move real money.

Endpoint reference

Every Adyen API method.

Filter by method, access, or permission, or search any path. Select a row for version detail, rate limits, the related webhook event, and the source.

MethodEndpointWhat it doesAccessPermissionVersion

Checkout (payments)

Methods for taking a payment, from listing payment methods to starting and completing a transaction.6

Read-only; access is governed by the API key's role and allowed origins, not a per-endpoint scope.

Acts onpaymentMethod
Permission (capability)Checkout: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Starts a checkout flow; the eventual result arrives by webhook.

Acts onsession
Permission (capability)Checkout: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Read-only.

Acts onsession
Permission (capability)Checkout: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

The authorisation outcome is often confirmed asynchronously by the AUTHORISATION webhook.

Acts onpayment
Permission (capability)Checkout: write
VersionAvailable since the API’s base version
Webhook eventAUTHORISATION
Rate limitStandard limits apply

Continues a payment that required an extra shopper action.

Acts onpayment
Permission (capability)Checkout: write
VersionAvailable since the API’s base version
Webhook eventAUTHORISATION
Rate limitStandard limits apply

Read-only; returns the recurring tokens saved for a shopper.

Acts onstoredPaymentMethod
Permission (capability)Checkout: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Modifications (capture, refund, cancel)

Methods that change an existing payment: capture the funds, refund them, or cancel the authorisation.6

The request is accepted synchronously; the CAPTURE webhook confirms whether it succeeded.

Acts oncapture
Permission (capability)Checkout: write
VersionAvailable since the API’s base version
Webhook eventCAPTURE
Rate limitStandard limits apply

The REFUND webhook confirms the outcome; REFUND_FAILED signals a scheme rejection.

Acts onrefund
Permission (capability)Checkout: write
VersionAvailable since the API’s base version
Webhook eventREFUND
Rate limitStandard limits apply

Only works before capture; the CANCELLATION webhook confirms the result.

Acts oncancel
Permission (capability)Checkout: write
VersionAvailable since the API’s base version
Webhook eventCANCELLATION
Rate limitStandard limits apply

Identifies the payment by paymentReference instead of the path.

Acts oncancel
Permission (capability)Checkout: write
VersionAvailable since the API’s base version
Webhook eventCANCELLATION
Rate limitStandard limits apply

Changes the amount held before capture; supported for select payment methods.

Acts onamountUpdate
Permission (capability)Checkout: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

A single call that does the right thing whether the payment is captured or not.

Acts onreversal
Permission (capability)Checkout: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Recurring (stored payment details)

Methods for listing and removing the tokens that stand in for a shopper's saved card or account.2

Read-only; the Checkout storedPaymentMethods endpoint is the modern equivalent.

Acts onrecurringDetail
Permission (capability)Recurring: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Removes a token permanently for that shopper.

Acts onrecurringDetail
Permission (capability)Recurring: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Management (account configuration)

Methods for configuring the account: merchant accounts, stores, API credentials, and webhooks.6

Read-only; the Management API is governed by management roles on the credential, separate from payment roles.

Acts onmerchant
Permission (capability)Management: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Read-only.

Acts onmerchant
Permission (capability)Management: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Changes account configuration; needs the Management API write role.

Acts onstore
Permission (capability)Management: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Read-only; lists the keys, not their secret values.

Acts onapiCredential
Permission (capability)Management: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Mints a new credential that can call other APIs; the secret is returned once at creation.

Acts onapiCredential
Permission (capability)Management: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Registers where Adyen sends events; an HMAC key is generated separately to secure it.

Acts onwebhook
Permission (capability)Management: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Payouts

Methods for sending funds out to a third party's bank account or wallet, submitted then confirmed.3

The classic Payout API is deprecated; new integrations use the Transfers API. A submitted payout must be confirmed or declined.

Acts onpayout
Permission (capability)Payout: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Releases the payout; requires the separate payout review credential.

Acts onpayout
Permission (capability)Payout: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Stops a payout that was submitted but not yet confirmed.

Acts onpayout
Permission (capability)Payout: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Balance Platform (Configuration)

Methods for the embedded-finance platform: the account holders and balance accounts that hold funds.2

Embedded-finance only; the Configuration API has its own credential and roles.

Acts onaccountHolder
Permission (capability)Balance Platform: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Read-only.

Acts onbalanceAccount
Permission (capability)Balance Platform: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply
No endpoints match those filters.
Webhooks

Webhook events.

Adyen reports the outcome of a payment by sending a standard webhook to a registered endpoint. Many payment results are confirmed asynchronously, so the authorisation, capture, or refund result arrives as an event rather than in the original response, and an integration relies on these events to learn what happened.

EventWhat it signalsTriggered by
AUTHORISATIONReports whether a payment was authorised. Because many payments are confirmed asynchronously, this event, not the API response, is the definitive result of an authorisation./v71/payments
/v71/payments/details
CAPTUREReports the outcome of a capture request. A CAPTURE_FAILED event signals that the card scheme rejected the capture after it was accepted./v71/payments/{paymentPspReference}/captures
REFUNDReports the outcome of a refund request. A REFUND_FAILED event signals that the refund was rejected by the scheme after being accepted./v71/payments/{paymentPspReference}/refunds
CANCELLATIONReports the outcome of cancelling an authorised, uncaptured payment./v71/payments/{paymentPspReference}/cancels
/v71/cancels
No events match that search.
Rate limits & pagination

Rate limits, pagination & request size.

Adyen limits how fast an app can call each API, measured as a number of requests over a short window, and the limit differs by API and between the test and live environments.

Request rate

Adyen limits how fast each API can be called, set per API rather than by a per-method cost, and the limit differs between the test and live environments. Limits are expressed as a number of requests over a short window, for example the Legal Entity Management API allows 700 requests per 5 seconds in live and 200 per 5 seconds in test, while some APIs like the Referrals API are far tighter. Going over returns HTTP 429, and the request should be retried after a short back-off.

Pagination

List endpoints that can return many items page through results, commonly with a pageNumber and pageSize on the Management and Balance Platform APIs. The payment APIs mostly return a single object per call rather than long lists, so pagination applies chiefly to the configuration and platform APIs.

Request size

An idempotency key can be sent on a write to make a retry safe to repeat; Adyen stores the first result and replays it for any repeat with the same key. A standard webhook can batch several NotificationRequestItem objects in one notificationItems array, and the receiver must return [accepted] to acknowledge the whole batch.

Errors

Status codes & error handling.

The status codes an agent should handle, and what to do about each.

StatusCodeMeaningWhat to do
400validationThe request was malformed or missing a required field. The body includes an errorType of validation, an Adyen errorCode like 14_002, a message, and a pspReference where applicable.Read errorCode and message, fix the request, and resend. The call is not retryable as-is.
401security (unauthorized)Authentication failed: no valid API key or web-service user was provided.Confirm a valid key for the right environment is sent in X-API-Key, and rotate it if compromised.
403security (forbidden)The credential is valid but its roles do not allow this operation, or the call comes from an origin not on the allowed list.Grant the needed role on the API credential, or add the calling origin to the allowed origins.
422validation (unprocessable)The request was well-formed but semantically incorrect, for example a payment refusal or a configuration problem like errorCode 905_1, payment method not configured.Inspect errorCode and refusalReason, adjust the request or account configuration, and do not blindly retry.
429too many requestsThe request rate exceeded the limit for that API and environment.Back off and retry with exponential backoff, and smooth the request rate.
500internalAn error on Adyen's side, returned with an errorType of internal. It is rare.Retry idempotently with backoff using the same idempotency key, and contact Adyen support if it persists.
Versioning & freshness

Version history.

Adyen versions each API independently in the request path, so the Checkout, Payments, Recurring, Management, and Balance Platform APIs each carry their own version number, and an integration upgrades one without affecting the others.

Version history

What changed, and when

Latest versionCheckout v71
Checkout v71Current version
Checkout API v71 (current reference; v72 is the latest)

Adyen versions each API in its own path. Checkout v71 is widely used and fully supported, while v72 is the latest Checkout version. The other APIs version on their own timelines: the classic Payments and Payouts APIs at v68, Recurring at v68, Management at v3, and the Balance Platform Configuration API at v2.

What changed
  • Checkout v72 released as the latest version, alongside continued support for v71.
  • Modifications (captures, refunds, cancels, reversals, amount updates) are exposed under a payment's PSP reference in Checkout.
  • Standard webhooks confirm authorisation, capture, refund, and cancellation outcomes asynchronously.
Management v3
Management API v3

The Management API reached v3, used to configure merchant accounts, stores, API credentials, and webhooks, including generating an HMAC key per webhook endpoint.

What changed
  • Configure merchant accounts, stores, and payment methods over the API.
  • Create API credentials and roles programmatically.
  • Set up webhooks and generate their HMAC keys.
Payout v68
Classic Payout API v68 (deprecated)

The classic Payout API remains at v68 but is deprecated. New integrations are directed to the Transfers API on the Balance Platform; existing users migrate with Adyen's help.

Migrate: New payout integrations should use the Transfers API rather than the classic Payout API.
What changed
  • storeDetailAndSubmitThirdParty, confirmThirdParty, and declineThirdParty remain the submit-then-confirm flow.
  • Adyen recommends the Transfers API for new payout integrations.
Balance Platform v2
Balance Platform Configuration API v2

The Configuration API for embedded finance reached v2, managing account holders, balance accounts, and the payment instruments linked to them.

What changed
  • Create and manage account holders and their balance accounts.
  • Link payment instruments to a balance account.

Each API moves at its own pace; pin the version per API and upgrade one at a time.

Adyen release notes ↗
Questions

Adyen API, answered.

How does an Adyen API call authenticate?+
Most calls send an API key in the X-API-Key header. Older endpoints also accept HTTP Basic auth with a web-service user's username and password. There is no OAuth flow. A key belongs to one environment, so a test key never works against live, and the live endpoint host includes a company-specific prefix.
How are permissions controlled if there are no OAuth scopes?+
Each API credential carries a set of roles, configured in the Customer Area or through the Management API, and those roles decide which APIs and operations the key can call, like Checkout, Management, or payout review. Client-side calls are also limited to the credential's allowed origins. A request the roles do not cover returns a 403, so least-privilege access is achieved by giving a credential only the roles it needs.
Why does the result of a payment arrive as a webhook?+
Many payment methods confirm asynchronously, so the synchronous API response can be provisional. Adyen sends a standard webhook with an eventCode such as AUTHORISATION, CAPTURE, or REFUND, a success flag, and the pspReference, and this event is the definitive outcome. An integration registers an endpoint, verifies the HMAC signature, and returns [accepted] to acknowledge each notification.
How do I verify a webhook is really from Adyen?+
Each webhook carries an HMAC signature computed with a secret HMAC key generated for that endpoint. For payment webhooks the signature sits in the additionalData object of each notification item, and the receiver recomputes the HMAC over the item's signed fields and compares it. A mismatch is rejected to prevent spoofing, and each endpoint has its own HMAC key.
How does Adyen version its APIs?+
Every API is versioned separately in the path, like v71 for Checkout or v3 for Management, so there is no single account-wide version. An integration upgrades one API at a time by changing its path segment, which keeps a change in one area from affecting the others. The latest Checkout version is v72, with v71 still fully supported.
What is the difference between Checkout, the classic Payments API, and Recurring?+
Checkout is the modern API for taking payments, including its own capture, refund, and cancel modifications under a payment's PSP reference. The classic Payments API offers the same modifications at the older pal host. Recurring is the legacy API for listing and disabling stored tokens, and Adyen recommends the Checkout storedPaymentMethods endpoint for new integrations.
Does using the Adyen API put my systems in PCI scope?+
Adyen's prebuilt Drop-in and Components collect and tokenize card data in the browser or app, which keeps raw card numbers off an integration's servers and reduces PCI DSS scope to the lighter SAQ A. Sending raw card data through the API directly raises the PCI scope substantially, so most integrations use the client-side SDKs and pass only tokens server-side.
Related

More finance API guides for agents

What is Bollard AI?

Control what every AI agent can do in Adyen.

Bollard AI sits between a team's AI agents and Adyen. Grant each agent exactly the access it needs, read or write, action by action, and every call is checked and logged.

  • Set read, write, or full access per agent, never a shared Adyen API key.
  • Denied by default, so an agent reaches only what has been explicitly allowed.
  • Every call recorded in plain English: who, what, where, and the decision.
Adyen
Payments Agent
View payments ResourceOffReadFull use
Issue refunds ActionOffReadFull use
Send payouts ActionOffReadFull use
Merchant config ResourceOffReadFull use
Per-agent access, set in Bollard AI, not in Adyen