Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/adyen-donations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: '71'
x-publicVersion: true
title: Adyen Checkout Donations API
description: This is the description of your API.
termsOfService: https://www.adyen.com/legal/terms-and-conditions
contact:
name: Adyen Developer Experience team
url: https://github.com/Adyen/adyen-openapi
servers:
- url: https://checkout-test.adyen.com/v71
tags:
- name: Donations
paths:
/donations:
post:
tags:
- Donations
summary: Adyen Start a Transaction for Donations
description: 'Takes in the donation token generated by the `/payments` request and uses it to make the donation for the donation account specified in the request.
For more information, see [Donations](https://docs.adyen.com/online-payments/donations).'
operationId: post-donations
x-sortIndex: 2
x-methodName: donations
security:
- BasicAuth: []
- ApiKeyAuth: []
requestBody:
content:
application/json:
examples:
donations:
$ref: '#/components/examples/post-donations-donations'
donations-with-token:
$ref: '#/components/examples/post-donations-donations-with-token'
schema:
$ref: '#/components/schemas/DonationPaymentRequest'
parameters:
- $ref: '#/components/parameters/Idempotency-Key'
responses:
'200':
content:
application/json:
examples:
donations:
$ref: '#/components/examples/post-donations-donations-200'
schema:
$ref: '#/components/schemas/DonationPaymentResponse'
description: OK - the request has succeeded.
headers:
Idempotency-Key:
$ref: '#/components/headers/Idempotency-Key'
'400':
content:
application/json:
examples:
generic:
$ref: '#/components/examples/generic-400'
schema:
$ref: '#/components/schemas/ServiceError'
description: Bad Request - a problem reading or understanding the request.
'401':
content:
application/json:
examples:
generic:
$ref: '#/components/examples/generic-401'
schema:
$ref: '#/components/schemas/ServiceError'
description: Unauthorized - authentication required.
'403':
content:
application/json:
examples:
generic:
$ref: '#/components/examples/generic-403'
schema:
$ref: '#/components/schemas/ServiceError'
description: Forbidden - insufficient permissions to process the request.
'422':
content:
application/json:
examples:
generic:
$ref: '#/components/examples/generic-422'
schema:
$ref: '#/components/schemas/ServiceError'
description: Unprocessable Entity - a request validation error.
headers:
Idempotency-Key:
$ref: '#/components/headers/Idempotency-Key'
'500':
content:
application/json:
examples:
generic:
$ref: '#/components/examples/generic-500'
schema:
$ref: '#/components/schemas/ServiceError'
description: Internal Server Error - the server could not process the request.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
schemas:
ResponseAdditionalDataSepa:
properties:
sepadirectdebit.dateOfSignature:
description: 'The transaction signature date.
Format: yyyy-MM-dd'
type: string
sepadirectdebit.mandateId:
description: Its value corresponds to the pspReference value of the transaction.
type: string
sepadirectdebit.sequenceType:
description: 'This field can take one of the following values:
* OneOff: (OOFF) Direct debit instruction to initiate exactly one direct debit transaction.
* First: (FRST) Initial/first collection in a series of direct debit instructions.
* Recurring: (RCUR) Direct debit instruction to carry out regular direct debit transactions initiated by the creditor.
* Final: (FNAL) Last/final collection in a series of direct debit instructions.
Example: OOFF'
type: string
type: object
PaymentResponse:
properties:
action:
x-addedInVersion: '49'
description: Action to be taken for completing the payment.
oneOf:
- $ref: '#/components/schemas/CheckoutAwaitAction'
- $ref: '#/components/schemas/CheckoutDelegatedAuthenticationAction'
- $ref: '#/components/schemas/CheckoutNativeRedirectAction'
- $ref: '#/components/schemas/CheckoutQrCodeAction'
- $ref: '#/components/schemas/CheckoutRedirectAction'
- $ref: '#/components/schemas/CheckoutSDKAction'
- $ref: '#/components/schemas/CheckoutThreeDS2Action'
- $ref: '#/components/schemas/CheckoutVoucherAction'
additionalData:
additionalProperties:
type: string
x-anyOf:
- $ref: '#/components/schemas/ResponseAdditionalData3DSecure'
- $ref: '#/components/schemas/ResponseAdditionalDataBillingAddress'
- $ref: '#/components/schemas/ResponseAdditionalDataCard'
- $ref: '#/components/schemas/ResponseAdditionalDataCommon'
- $ref: '#/components/schemas/ResponseAdditionalDataDomesticError'
- $ref: '#/components/schemas/ResponseAdditionalDataInstallments'
- $ref: '#/components/schemas/ResponseAdditionalDataNetworkTokens'
- $ref: '#/components/schemas/ResponseAdditionalDataOpi'
- $ref: '#/components/schemas/ResponseAdditionalDataSepa'
description: 'Contains additional information about the payment. Some data fields are included only if you select them first: Go to **Customer Area** > **Developers** > **Additional data**.'
type: object
amount:
x-addedInVersion: '52'
description: Authorised amount in the transaction.
$ref: '#/components/schemas/Amount'
donationToken:
x-addedInVersion: '66'
description: Donation Token containing payment details for Adyen Giving.
type: string
fraudResult:
description: The fraud result properties of the payment.
$ref: '#/components/schemas/FraudResult'
merchantReference:
x-addedInVersion: '49'
description: 'The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. We recommend using a unique value per payment; however, it is not a requirement.
If you need to provide multiple references for a transaction, separate them with hyphens ("-").
Maximum length: 80 characters.'
type: string
order:
description: Contains updated information regarding the order in case order information was provided in the request.
$ref: '#/components/schemas/CheckoutOrderResponse'
paymentMethod:
x-addedInVersion: '69'
description: "Details about the payment method used in the transaction. \nOnly returned if `resultCode` is **Authorised**."
$ref: '#/components/schemas/ResponsePaymentMethod'
pspReference:
description: 'Adyen''s 16-character string reference associated with the transaction/request. This value is globally unique; quote it when communicating with us about this request.
> For payment methods that require a redirect or additional action, you will get this value in the `/payments/details` response.'
type: string
refusalReason:
description: 'If the payment''s authorisation is refused or an error occurs during authorisation, this field holds Adyen''s mapped reason for the refusal or a description of the error. When a transaction fails, the authorisation response includes `resultCode` and `refusalReason` values.
For more information, see [Refusal reasons](https://docs.adyen.com/development-resources/refusal-reasons).'
type: string
refusalReasonCode:
x-addedInVersion: '37'
description: Code that specifies the refusal reason. For more information, see [Authorisation refusal reasons](https://docs.adyen.com/development-resources/refusal-reasons).
type: string
resultCode:
description: 'The result of the payment. For more information, see [Result codes](https://docs.adyen.com/online-payments/payment-result-codes).
Possible values:
* **AuthenticationFinished** The payment has been successfully authenticated with 3D Secure 2. Returned for 3D Secure 2 authentication-only transactions.
* **AuthenticationNotRequired** The transaction does not require 3D Secure authentication. Returned for [standalone authentication-only integrations](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only).
* **Authorised** The payment was successfully authorised. This state serves as an indicator to proceed with the delivery of goods and services. This is a final state.
* **Cancelled** Indicates the payment has been cancelled (either by the shopper or the merchant) before processing was completed. This is a final state.
* **ChallengeShopper** The issuer requires further shopper interaction before the payment can be authenticated. Returned for 3D Secure 2 transactions.
* **Error** There was an error when the payment was being processed. The reason is given in the `refusalReason` field. This is a final state.
* **IdentifyShopper** The issuer requires the shopper''s device fingerprint before the payment can be authenticated. Returned for 3D Secure 2 transactions.
* **PartiallyAuthorised** The payment has been authorised for a partial amount.
This happens for card payments when the merchant supports Partial Authorisations and the cardholder has insufficient funds.
* **Pending** Indicates that it is not possible to obtain the final status of the payment. This can happen if the systems providing final status information for the payment are unavailable, or if the shopper needs to take further action to complete the payment.
* **PresentToShopper** Indicates that the response contains additional information that you need to present to a shopper, so that they can use it to complete a payment.
* **Received** Indicates the payment has successfully been received by Adyen, and will be processed. This is the initial state for all payments.
* **RedirectShopper** Indicates the shopper should be redirected to an external web page or app to complete the authorisation.
* **Refused** Indicates the payment was refused. The reason is given in the `refusalReason` field. This is a final state.'
enum:
- AuthenticationFinished
- AuthenticationNotRequired
- Authorised
- Cancelled
- ChallengeShopper
- Error
- IdentifyShopper
- PartiallyAuthorised
- Pending
- PresentToShopper
- Received
- RedirectShopper
- Refused
- Success
type: string
threeDS2ResponseData:
x-addedInVersion: '67'
description: Response of the 3D Secure 2 authentication.
$ref: '#/components/schemas/ThreeDS2ResponseData'
threeDS2Result:
x-addedInVersion: '41'
description: Result of the 3D Secure 2 authentication.
$ref: '#/components/schemas/ThreeDS2Result'
threeDSPaymentData:
x-addedInVersion: '67'
description: When non-empty, contains a value that you must submit to the `/payments/details` endpoint as `paymentData`.
type: string
type: object
ResponseAdditionalDataBillingAddress:
properties:
billingAddress.city:
description: The billing address city passed in the payment request.
type: string
billingAddress.country:
description: 'The billing address country passed in the payment request.
Example: NL'
type: string
billingAddress.houseNumberOrName:
description: The billing address house number or name passed in the payment request.
type: string
billingAddress.postalCode:
description: 'The billing address postal code passed in the payment request.
Example: 1011 DJ'
type: string
billingAddress.stateOrProvince:
description: 'The billing address state or province passed in the payment request.
Example: NH'
type: string
billingAddress.street:
description: The billing address street passed in the payment request.
type: string
type: object
AdditionalDataRatepay:
properties:
ratepay.installmentAmount:
description: Amount the customer has to pay each month.
type: string
ratepay.interestRate:
description: Interest rate of this installment.
type: string
ratepay.lastInstallmentAmount:
description: Amount of the last installment.
type: string
ratepay.paymentFirstday:
description: Calendar day of the first payment.
type: string
ratepaydata.deliveryDate:
description: Date the merchant delivered the goods to the customer.
type: string
ratepaydata.dueDate:
description: Date by which the customer must settle the payment.
type: string
ratepaydata.invoiceDate:
description: Invoice date, defined by the merchant. If not included, the invoice date is set to the delivery date.
type: string
ratepaydata.invoiceId:
description: Identification name or number for the invoice, defined by the merchant.
type: string
type: object
ResponseAdditionalDataCard:
properties:
cardBin:
description: 'The first six digits of the card number.
This is the [Bank Identification Number (BIN)](https://docs.adyen.com/get-started-with-adyen/payment-glossary#bank-identification-number-bin) for card numbers with a six-digit BIN.
Example: 521234'
type: string
cardHolderName:
description: The cardholder name passed in the payment request.
type: string
cardIssuingBank:
description: The bank or the financial institution granting lines of credit through card association branded payment cards. This information can be included when available.
type: string
cardIssuingCountry:
description: 'The country where the card was issued.
Example: US'
type: string
cardIssuingCurrency:
description: "The currency in which the card is issued, if this information is available. Provided as the currency code or currency number from the ISO-4217 standard. \n\nExample: USD"
type: string
cardPaymentMethod:
description: 'The card payment method used for the transaction.
Example: amex'
type: string
cardSummary:
description: 'The last four digits of a card number.
> Returned only in case of a card payment.'
type: string
issuerBin:
description: 'The first eight digits of the card number. Only returned if the card number is 16 digits or more.
This is the [Bank Identification Number (BIN)](https://docs.adyen.com/get-started-with-adyen/payment-glossary#bank-identification-number-bin) for card numbers with an eight-digit BIN.
Example: 52123423'
type: string
type: object
AdditionalDataCommon:
properties:
RequestedTestErrorResponseCode:
description: 'Triggers test scenarios that allow to replicate certain communication errors.
Allowed values:
* **NO_CONNECTION_AVAILABLE** There wasn''t a connection available to service the outgoing communication.
This is a transient, retriable error since no messaging could be initiated to an issuing system (or third-party acquiring system). Therefore, the header Transient-Error: true is returned in the response. A subsequent request using the same idempotency key will be processed as if it was the first request.
* **IOEXCEPTION_RECEIVED** Something went wrong during transmission of the message or receiving the response.
This is a classified as non-transient because the message could have been received by the issuing party and been acted upon. No transient error header is returned. If using idempotency, the (error) response is stored as the final result for the idempotency key. Subsequent messages with the same idempotency key not be processed beyond returning the stored response.'
type: string
allowPartialAuth:
description: "Set to true to authorise a part of the requested amount in case the cardholder does not have enough funds on their account. \nIf a payment was partially authorised, the response includes resultCode: PartiallyAuthorised and the authorised amount in additionalData.authorisedAmountValue.\nTo enable this functionality, contact our Support Team."
type: string
authorisationType:
description: 'Flags a card payment request for either pre-authorisation or final authorisation. For more information, refer to [Authorisation types](https://docs.adyen.com/online-payments/adjust-authorisation#authorisation-types).
Allowed values:
* **PreAuth** flags the payment request to be handled as a pre-authorisation.
* **FinalAuth** flags the payment request to be handled as a final authorisation.'
type: string
customRoutingFlag:
description: 'Allows you to determine or override the acquirer account that should be used for the transaction.
If you need to process a payment with an acquirer different from a default one, you can set up a corresponding configuration on the Adyen payments platform. Then you can pass a custom routing flag in a payment request''s additional data to target a specific acquirer.
To enable this functionality, contact [Support](https://www.adyen.help/hc/en-us/requests/new).'
type: string
industryUsage:
description: "In case of [asynchronous authorisation adjustment](https://docs.adyen.com/online-payments/adjust-authorisation#adjust-authorisation), this field denotes why the additional payment is made.\n\nPossible values:\n\n * **NoShow**: An incremental charge is carried out because of a no-show for a guaranteed reservation.\n\n * **DelayedCharge**: An incremental charge is carried out to process an additional payment after the original services have been rendered and the respective payment has been processed."
enum:
- NoShow
- DelayedCharge
type: string
manualCapture:
description: Set to **true** to require [manual capture](https://docs.adyen.com/online-payments/capture) for the transaction.
type: string
networkTxReference:
description: 'Allows you to link the transaction to the original or previous one in a subscription/card-on-file chain. This field is required for token-based transactions where Adyen does not tokenize the card.
Transaction identifier from card schemes, for example, Mastercard Trace ID or the Visa Transaction ID.
Submit the original transaction ID of the contract in your payment request if you are not tokenizing card details with Adyen and are making a merchant-initiated transaction (MIT) for subsequent charges.
Make sure you are sending `shopperInteraction` **ContAuth** and `recurringProcessingModel` **Subscription** or **UnscheduledCardOnFile** to ensure that the transaction is classified as MIT.'
type: string
overwriteBrand:
description: Boolean indicator that can be optionally used for performing debit transactions on combo cards (for example, combo cards in Brazil). This is not mandatory but we recommend that you set this to true if you want to use the `selectedBrand` value to specify how to process the transaction.
type: string
subMerchantCity:
description: 'This field is required if the transaction is performed by a registered payment facilitator. This field must contain the city of the actual merchant''s address.
* Format: alpha-numeric.
* Maximum length: 13 characters.'
type: string
subMerchantCountry:
description: 'This field is required if the transaction is performed by a registered payment facilitator. This field must contain the three-letter country code of the actual merchant''s address.
* Format: alpha-numeric.
* Fixed length: 3 characters.'
type: string
subMerchantID:
description: 'This field contains an identifier of the actual merchant when a transaction is submitted via a payment facilitator. The payment facilitator must send in this unique ID.
A unique identifier per submerchant that is required if the transaction is performed by a registered payment facilitator.
* Format: alpha-numeric.
* Fixed length: 15 characters.'
type: string
subMerchantName:
description: 'This field is required if the transaction is performed by a registered payment facilitator. This field must contain the name of the actual merchant.
* Format: alpha-numeric.
* Maximum length: 22 characters.'
type: string
subMerchantPostalCode:
description: 'This field is required if the transaction is performed by a registered payment facilitator. This field must contain the postal code of the actual merchant''s address.
* Format: alpha-numeric.
* Maximum length: 10 characters.'
type: string
subMerchantState:
description: 'This field is required if the transaction is performed by a registered payment facilitator, and if applicable to the country. This field must contain the state code of the actual merchant''s address.
* Format: alpha-numeric.
* Maximum length: 3 characters.'
type: string
subMerchantStreet:
description: 'This field is required if the transaction is performed by a registered payment facilitator. This field must contain the street of the actual merchant''s address.
* Format: alpha-numeric.
* Maximum length: 60 characters.'
type: string
subMerchantTaxId:
description: 'This field is required if the transaction is performed by a registered payment facilitator. This field must contain the tax ID of the actual merchant.
* Format: alpha-numeric.
* Fixed length: 11 or 14 characters.'
type: string
type: object
ShopperInteractionDevice:
properties:
locale:
description: Locale on the shopper interaction device.
type: string
os:
description: Operating system running on the shopper interaction device.
type: string
osVersion:
description: Version of the operating system on the shopper interaction device.
type: string
type: object
CheckoutDelegatedAuthenticationAction:
additionalProperties: false
properties:
authorisationToken:
description: A token needed to authorise a payment.
type: string
paymentData:
description: Encoded payment data.
type: string
paymentMethodType:
description: Specifies the payment method.
type: string
token:
description: A token to pass to the delegatedAuthentication component.
type: string
type:
description: '**delegatedAuthentication**'
enum:
- delegatedAuthentication
type: string
url:
description: Specifies the URL to redirect to.
type: string
required:
- type
type: object
ApplePayDonations:
additionalProperties: false
properties:
applePayToken:
description: The stringified and base64 encoded `paymentData` you retrieved from the Apple framework.
maxLength: 10000
type: string
checkoutAttemptId:
x-addedInVersion: '68'
description: The checkout attempt identifier.
type: string
fundingSource:
description: The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
enum:
- credit
- debit
type: string
recurringDetailReference:
deprecated: true
x-deprecatedInVersion: '49'
x-deprecatedMessage: Use `storedPaymentMethodId` instead.
description: This is the `recurringDetailReference` returned in the response when you created the token.
type: string
storedPaymentMethodId:
x-addedInVersion: '49'
description: This is the `recurringDetailReference` returned in the response when you created the token.
maxLength: 64
type: string
type:
default: applepay
description: '**applepay**'
enum:
- applepay
type: string
required:
- applePayToken
title: Apple Pay
type: object
AuthenticationData:
properties:
attemptAuthentication:
x-addedInVersion: '69'
description: 'Indicates when 3D Secure authentication should be attempted. This overrides all other rules, including [Dynamic 3D Secure settings](https://docs.adyen.com/risk-management/dynamic-3d-secure).
Possible values:
* **always**: Perform 3D Secure authentication.
* **never**: Don''t perform 3D Secure authentication. If PSD2 SCA or other national regulations require authentication, the transaction gets declined.'
enum:
- always
- never
type: string
authenticationOnly:
x-addedInVersion: '69'
default: false
description: 'If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only), and not the payment authorisation.
Default: **false**.'
type: boolean
threeDSRequestData:
x-addedInVersion: '69'
description: Object with additional parameters for the 3D Secure authentication flow.
$ref: '#/components/schemas/ThreeDSRequestData'
type: object
BrowserInfo:
properties:
acceptHeader:
description: The accept header value of the shopper's browser.
type: string
colorDepth:
x-addedInVersion: '40'
description: 'The color depth of the shopper''s browser in bits per pixel. This should be obtained by using the browser''s `screen.colorDepth` property. Accepted values: 1, 4, 8, 15, 16, 24, 30, 32 or 48 bit color depth.'
format: int32
type: integer
javaEnabled:
x-addedInVersion: '40'
description: Boolean value indicating if the shopper's browser is able to execute Java.
type: boolean
javaScriptEnabled:
x-addedInVersion: '40'
default: true
description: Boolean value indicating if the shopper's browser is able to execute JavaScript. A default 'true' value is assumed if the field is not present.
type: boolean
language:
x-addedInVersion: '40'
description: The `navigator.language` value of the shopper's browser (as defined in IETF BCP 47).
type: string
screenHeight:
x-addedInVersion: '40'
description: The total height of the shopper's device screen in pixels.
format: int32
type: integer
screenWidth:
x-addedInVersion: '40'
description: The total width of the shopper's device screen in pixels.
format: int32
type: integer
timeZoneOffset:
x-addedInVersion: '40'
description: Time difference between UTC time and the shopper's browser local time, in minutes.
format: int32
type: integer
userAgent:
description: The user agent value of the shopper's browser.
type: string
required:
- userAgent
- acceptHeader
- javaEnabled
- colorDepth
- screenHeight
- screenWidth
- timeZoneOffset
- language
type: object
MerchantRiskIndicator:
properties:
addressMatch:
description: Whether the chosen delivery address is identical to the billing address.
type: boolean
deliveryAddressIndicator:
description: 'Indicator regarding the delivery address.
Allowed values:
* `shipToBillingAddress`
* `shipToVerifiedAddress`
* `shipToNewAddress`
* `shipToStore`
* `digitalGoods`
* `goodsNotShipped`
* `other`'
enum:
- shipToBillingAddress
- shipToVerifiedAddress
- shipToNewAddress
- shipToStore
- digitalGoods
- goodsNotShipped
- other
type: string
deliveryEmail:
deprecated: true
x-deprecatedInVersion: '68'
x-deprecatedMessage: Use `deliveryEmailAddress` instead.
description: The delivery email address (for digital goods).
type: string
deliveryEmailAddress:
x-addedInVersion: '68'
description: 'For Electronic delivery, the email address to which the merchandise was delivered. Maximum length: 254 characters.'
maxLength: 254
type: string
deliveryTimeframe:
description: 'The estimated delivery time for the shopper to receive the goods.
Allowed values:
* `electronicDelivery`
* `sameDayShipping`
* `overnightShipping`
* `twoOrMoreDaysShipping`'
enum:
- electronicDelivery
- sameDayShipping
- overnightShipping
- twoOrMoreDaysShipping
type: string
giftCardAmount:
description: For prepaid or gift card purchase, the purchase amount total of prepaid or gift card(s).
$ref: '#/components/schemas/Amount'
giftCardCount:
description: For prepaid or gift card purchase, total count of individual prepaid or gift cards/codes purchased.
format: int32
type: integer
giftCardCurr:
x-addedInVersion: '68'
description: For prepaid or gift card purchase, [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) three-digit currency code of the gift card, other than those listed in Table A.5 of the EMVCo 3D Secure Protocol and Core Functions Specification.
type: string
preOrderDate:
description: For pre-order purchases, the expected date this product will be available to the shopper.
format: date-time
type: string
preOrderPurchase:
description: Indicator for whether this transaction is for pre-ordering a product.
type: boolean
preOrderPurchaseInd:
x-addedInVersion: '68'
description: Indicates whether Cardholder is placing an order for merchandise with a future availability or release date.
# --- truncated at 32 KB (175 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/adyen/refs/heads/main/openapi/adyen-donations-api-openapi.yml