Menu
Create a payment session
Create a payment session
/sessionsUse it in a workflow
- Add a step and choose the Adyen connector.
- Pick the Create a payment session action (under Payments).
- Fill in the fields below, then reference the result from later steps as
{{createAPaymentSession.response.data}}.
Request
Headers
Idempotency-KeystringA unique identifier for the message with a maximum of 64 characters (we recommend a UUID).
Request body
Enter the body as JSON in the step's Body field.
accountInfoobjectaccountAgeIndicatorstringIndicator for the length of time since this shopper account was created in the merchant's environment. Allowed values: * notApplicable * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
One ofnotApplicablethisTransactionlessThan30Daysfrom30To60DaysmoreThan60Days
accountChangeDatestring (date-time)Date when the shopper's account was last changed.
accountChangeIndicatorstringIndicator for the length of time since the shopper's account was last updated. Allowed values: * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
One ofthisTransactionlessThan30Daysfrom30To60DaysmoreThan60Days
accountCreationDatestring (date-time)Date when the shopper's account was created.
accountTypestringIndicates the type of account. For example, for a multi-account card product. Allowed values: * notApplicable * credit * debit
One ofnotApplicablecreditdebit
addCardAttemptsDayinteger (int32)Number of attempts the shopper tried to add a card to their account in the last day.
deliveryAddressUsageDatestring (date-time)Date the selected delivery address was first used.
deliveryAddressUsageIndicatorstringIndicator for the length of time since this delivery address was first used. Allowed values: * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
One ofthisTransactionlessThan30Daysfrom30To60DaysmoreThan60Days
homePhonestringShopper's home phone number (including the country code).
mobilePhonestringShopper's mobile phone number (including the country code).
passwordChangeDatestring (date-time)Date when the shopper last changed their password.
passwordChangeIndicatorstringIndicator when the shopper has changed their password. Allowed values: * notApplicable * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
One ofnotApplicablethisTransactionlessThan30Daysfrom30To60DaysmoreThan60Days
pastTransactionsDayinteger (int32)Number of all transactions (successful and abandoned) from this shopper in the past 24 hours.
pastTransactionsYearinteger (int32)Number of all transactions (successful and abandoned) from this shopper in the past year.
paymentAccountAgestring (date-time)Date this payment method was added to the shopper's account.
paymentAccountIndicatorstringIndicator for the length of time since this payment method was added to this shopper's account. Allowed values: * notApplicable * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
One ofnotApplicablethisTransactionlessThan30Daysfrom30To60DaysmoreThan60Days
purchasesLast6Monthsinteger (int32)Number of successful purchases in the last six months.
suspiciousActivitybooleanWhether suspicious activity was recorded on this account.
workPhonestringShopper's work phone number (including the country code).
additionalAmountobjectcurrencystringrequiredThe three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
valueinteger (int64)requiredThe numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
additionalDataobjectThis field contains additional data, which may be required for a particular payment request. The `additionalData` object consists of entries, each of which includes the key and value.
allowedPaymentMethodsarray<string>List of payment methods to be presented to the shopper. To refer to payment methods, use their [payment method type](https://docs.adyen.com/payment-methods/payment-method-types). Example: `"allowedPaymentMethods":["ideal","applepay"]`
amountobjectrequiredcurrencystringrequiredThe three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
valueinteger (int64)requiredThe numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
applicationInfoobjectadyenLibraryobject2 fieldsadyenPaymentSourceobject2 fieldsexternalPlatformobject3 fieldsmerchantApplicationobject2 fieldsmerchantDeviceobject3 fieldsshopperInteractionDeviceobject3 fieldsauthenticationDataobjectattemptAuthenticationstringIndicates 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.
One ofalwaysnever
authenticationOnlybooleanRequired to trigger the [authentication-only flow](https://docs.adyen.com/online-payments/3d-secure/authentication-only/). If set to **true**, you will only perform the 3D Secure 2 authentication, and will not proceed to the payment authorization. Default: **false**.
Default false
threeDSRequestDataobject4 fieldsbillingAddressobjectcitystringrequiredThe name of the city. Maximum length: 3000 characters.
countrystringrequiredThe two-character ISO-3166-1 alpha-2 country code. For example, **US**. > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
houseNumberOrNamestringrequiredThe number or name of the house. Maximum length: 3000 characters.
postalCodestringrequiredA maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.
stateOrProvincestringThe two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
streetstringrequiredThe name of the street. Maximum length: 3000 characters. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
blockedPaymentMethodsarray<string>List of payment methods to be hidden from the shopper. To refer to payment methods, use their [payment method type](https://docs.adyen.com/payment-methods/payment-method-types). Example: `"blockedPaymentMethods":["ideal","applepay"]`
captureDelayHoursinteger (int32)The delay between the authorisation and scheduled auto-capture, specified in hours.
channelstringThe platform where a payment transaction takes place. This field is optional for filtering out payment methods that are only available on specific platforms. If this value is not set, then we will try to infer it from the `sdkVersion` or `token`. Possible values: * **iOS** * **Android** * **Web**
One ofiOSAndroidWeb
companyobjecthomepagestringThe company website's home page.
namestringThe company name.
registrationNumberstringRegistration number of the company.
registryLocationstringRegistry location of the company.
taxIdstringTax ID of the company.
typestringThe company type.
countryCodestringThe shopper's two-letter country code.
dateOfBirthstring (date)The shopper's date of birth. Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD
deliverAtstring (date-time)The date and time when the purchased goods should be delivered. [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format: YYYY-MM-DDThh:mm:ss+TZD, for example, **2020-12-18T10:15:30+01:00**.
deliveryAddressobjectcitystringrequiredThe name of the city. Maximum length: 3000 characters.
countrystringrequiredThe two-character ISO-3166-1 alpha-2 country code. For example, **US**. > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
firstNamestringhouseNumberOrNamestringrequiredThe number or name of the house. Maximum length: 3000 characters.
lastNamestringpostalCodestringrequiredA maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.
stateOrProvincestringThe two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
streetstringrequiredThe name of the street. Maximum length: 3000 characters. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
enableOneClickbooleanWhen true and `shopperReference` is provided, the shopper will be asked if the payment details should be stored for future [one-click payments](https://docs.adyen.com/get-started-with-adyen/payment-glossary/#one-click-payments-definition).
enablePayOutbooleanWhen true and `shopperReference` is provided, the payment details will be tokenized for payouts.
enableRecurringbooleanWhen true and `shopperReference` is provided, the payment details will be stored for [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types) where the shopper is not present, such as subscription or automatic top-up payments.
expiresAtstring (date-time)The date the session expires in [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. When not specified, the expiry date is set to 1 hour after session creation. You cannot set the session expiry to more than 24 hours after session creation.
fundOriginobjectbillingAddressobject6 fieldsshopperEmailstringThe email address of the person funding the money.
shopperNameobject2 fieldstelephoneNumberstringThe phone number of the person funding the money.
walletIdentifierstringThe unique identifier of the wallet where the funds are coming from.
fundRecipientobjectIBANstringThe IBAN of the bank account where the funds are being transferred to.
billingAddressobject6 fieldsshopperEmailstringThe email address of the shopper.
shopperNameobject2 fieldsshopperReferencestringRequired for recurring payments. Your reference to uniquely identify this shopper, for example user ID or account ID. The value is case-sensitive and must be at least three characters. > Your reference must not include personally identifiable information (PII) such as name or email address.
storedPaymentMethodIdstringThis is the `recurringDetailReference` returned in the response when you created the token.
subMerchantobject5 fieldstelephoneNumberstringThe telephone number of the shopper.
walletIdentifierstringThe unique identifier for the wallet the funds are being transferred to. You can use the shopper reference or any other identifier.
walletOwnerTaxIdstringThe tax identifier of the person receiving the funds.
walletPurposestringThe purpose of a digital wallet transaction.
One ofidentifiedBoletotransferDifferentWallettransferOwnWallettransferSameWalletunidentifiedBoleto
installmentOptionsobjectA set of key-value pairs that specifies the installment options available per payment method. The key must be a payment method name in lowercase. For example, **card** to specify installment options for all cards, or **visa** or **mc**. The value must be an object containing the installment options.
lineItemsarray<object>Price and product information about the purchased items, to be included on the invoice sent to the shopper. > This field is required for 3x 4x Oney, Affirm, Afterpay, Clearpay, Klarna, Ratepay, and Riverty.
amountExcludingTaxinteger (int64)Item amount excluding the tax, in [minor units](https://docs.adyen.com/development-resources/currency-codes/#minor-units).
amountIncludingTaxinteger (int64)Item amount including the tax, in [minor units](https://docs.adyen.com/development-resources/currency-codes/#minor-units).
brandstringBrand of the item.
colorstringColor of the item.
descriptionstringDescription of the line item.
idstringID of the line item.
imageUrlstringLink to the picture of the purchased item.
itemCategorystringItem category, used by the payment methods PayPal and Ratepay.
manufacturerstringManufacturer of the item.
marketplaceSellerIdstringMarketplace seller id.
productUrlstringLink to the purchased item.
quantityinteger (int64)Number of items.
receiverEmailstringEmail associated with the given product in the basket (usually in electronic gift cards).
returnShippingCompanystringShipping company handling the return of the item.
returnTrackingNumberstringTracking number for the return of the item.
returnTrackingUristringTracking URI for the return of the item.
riskCategorystringAn optional, free-text category for the item to be used in the risk evaluation. When provided, Protect uses this value to evaluate custom risk rules.
shippingCompanystringShipping company handling the delivery of the item.
shippingMethodstringShipping method used to deliver the item.
sizestringSize of the item.
skustringStock keeping unit.
taxAmountinteger (int64)Tax amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes/#minor-units).
taxPercentageinteger (int64)Tax percentage, represented as a [basis point](https://en.wikipedia.org/wiki/Basis_point) integer. For example: - **530** for 5.3% (five point three percent) - **2100** for 21% (twenty-one percent)
trackingNumberstringTracking number for the delivery of the item.
trackingUristringTracking URI for the delivery of the item.
upcstringUniversal Product Code.
mandateobjectamountstringrequiredThe billing amount (in minor units) of the recurring transactions.
amountRulestringThe limitation rule of the billing amount. Possible values: * **max**: The transaction amount can not exceed the `amount`. * **exact**: The transaction amount should be the same as the `amount`.
One ofmaxexact
billingAttemptsRulestringThe rule to specify the period, within which the recurring debit can happen, relative to the mandate recurring date. Possible values: * **on**: On a specific date. * **before**: Before and on a specific date. * **after**: On and after a specific date.
One ofonbeforeafter
billingDaystringThe number of the day, on which the recurring debit can happen. Should be within the same calendar month as the mandate recurring date. Possible values: 1-31 based on the `frequency`.
countstringThe number of transactions that can be performed within the given frequency.
endsAtstringrequiredEnd date of the billing plan, in YYYY-MM-DD format.
frequencystringrequiredThe frequency with which a shopper should be charged. Possible values: **adhoc**, **daily**, **weekly**, **biWeekly**, **monthly**, **quarterly**, **halfYearly**, **yearly**.
One ofadhocdailyweeklybiWeeklymonthlyquarterlyhalfYearlyyearly
remarksstringThe message shown by UPI to the shopper on the approval screen.
startsAtstringStart date of the billing plan, in YYYY-MM-DD format. By default, the transaction date.
mccstringThe [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.
merchantAccountstringrequiredThe merchant account identifier, with which you want to process the transaction.
merchantOrderReferencestringThis reference allows linking multiple transactions to each other for reporting purposes (i.e. order auth-rate). The reference should be unique per billing cycle. The same merchant order reference should never be reused after the first authorised attempt. If used, this field should be supplied for all incoming authorisations. > We strongly recommend you send the `merchantOrderReference` value to benefit from linking payment requests when authorisation retries take place. In addition, we recommend you provide `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values in `PaymentRequest.additionalData`.
metadataobjectMetadata consists of entries, each of which includes a key and a value. Limits: * Maximum 20 key-value pairs per request. * Maximum 20 characters per key. * Maximum 80 characters per value.
modestringIndicates the type of front end integration. Possible values: * **embedded** (default): Drop-in or Components integration * **hosted**: Hosted Checkout integration
One ofembeddedhostedDefault "embedded"
mpiDataobjectauthenticationResponsestringIn 3D Secure 2, this is the `transStatus` from the challenge result. If the transaction was frictionless, omit this parameter.
One ofYNUA
cavvstring (byte)The cardholder authentication value (base64 encoded, 20 bytes in a decoded form).
cavvAlgorithmstringThe CAVV algorithm used. Include this only for 3D Secure 1.
challengeCancelstringIndicator informing the Access Control Server (ACS) and the Directory Server (DS) that the authentication has been cancelled. For possible values, refer to [3D Secure API reference](https://docs.adyen.com/online-payments/3d-secure/api-reference#mpidata).
One of01020304050607
directoryResponsestringIn 3D Secure 2, this is the `transStatus` from the `ARes`.
One ofACDINRUY
dsTransIDstringSupported for 3D Secure 2. The unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction.
ecistringThe electronic commerce indicator.
riskScorestringRisk score calculated by Directory Server (DS). Required for Cartes Bancaires integrations.
threeDSVersionstringThe version of the 3D Secure protocol.
tokenAuthenticationVerificationValuestring (byte)Network token authentication verification value (TAVV). The network token cryptogram.
transStatusReasonstringProvides information on why the `transStatus` field has the specified value. For possible values, refer to [our docs](https://docs.adyen.com/online-payments/3d-secure/api-reference#possible-transstatusreason-values).
xidstring (byte)Supported for 3D Secure 1. The transaction identifier (Base64-encoded, 20 bytes in a decoded form).
payablebooleanIndicates if the session is payable. If the payment amount is final, set this to **true** to indicate that the session is payable, so that the shopper can proceed to submit the payment. When you set this to **true**, you can no longer update the session. If you set this to **false**, you must make another request to update the session and set this to **true** before the shopper can submit the payment. If not specified, this defaults to **true**.
platformChargebackLogicobjectbehaviorstringThe method of handling the chargeback. Possible values: **deductFromLiableAccount**, **deductFromOneBalanceAccount**, **deductAccordingToSplitRatio**.
One ofdeductFromOneBalanceAccountdeductAccordingToSplitRatiodeductFromLiableAccount
costAllocationAccountstringThe unique identifier of the balance account to which the chargeback fees are booked. By default, the chargeback fees are booked to your liable balance account.
targetAccountstringThe unique identifier of the balance account against which the disputed amount is booked. Required if `behavior` is **deductFromOneBalanceAccount**.
recurringExpirystringDate after which no further authorisations shall be performed. Only for 3D Secure 2.
recurringFrequencystringMinimum number of days between authorisations. Only for 3D Secure 2.
recurringProcessingModelstringDefines a recurring payment type. Required when creating a token to store payment details. Allowed values: * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. * `CardOnFile` – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * `UnscheduledCardOnFile` – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or have variable amounts. For example, automatic top-ups when a cardholder's balance drops below a certain amount.
One ofCardOnFileSubscriptionUnscheduledCardOnFile
redirectFromIssuerMethodstringSpecifies the redirect method (GET or POST) when redirecting back from the issuer.
redirectToIssuerMethodstringSpecifies the redirect method (GET or POST) when redirecting to the issuer.
referencestringrequiredThe reference to uniquely identify a payment.
returnUrlstringrequiredThe URL to return to in case of a redirection. The format depends on the channel. * For web, include the protocol `http://` or `https://`. You can also include your own additional query parameters, for example, shopper ID or order reference number. Example: `https://your-company.example.com/checkout?shopperOrder=12xy` * For iOS, use the custom URL for your app. To know more about setting custom URL schemes, refer to the [Apple Developer documentation](https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content/defining_a_custom_url_scheme_for_your_app). Example: `my-app://` * For Android, use a custom URL handled by an Activity on your app. You can configure it with an [intent filter](https://developer.android.com/guide/components/intents-filters). Example: `my-app://your.package.name` 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.
{
"amount": {
"currency": "string",
"value": 0
},
"merchantAccount": "string",
"reference": "string",
"returnUrl": "string",
"accountInfo": {
"accountAgeIndicator": "notApplicable",
"accountChangeDate": "2025-01-01T00:00:00Z",
"accountChangeIndicator": "thisTransaction",
"accountCreationDate": "2025-01-01T00:00:00Z",
"accountType": "notApplicable",
"addCardAttemptsDay": 0,
"deliveryAddressUsageDate": "2025-01-01T00:00:00Z",
"deliveryAddressUsageIndicator": "thisTransaction",
"homePhone": "string",
"mobilePhone": "string",
"passwordChangeDate": "2025-01-01T00:00:00Z",
"passwordChangeIndicator": "notApplicable"
},
"additionalAmount": {
"currency": "string",
"value": 0
},
"additionalData": {},
"allowedPaymentMethods": [
"string"
],
"applicationInfo": {
"adyenLibrary": {
"name": "string",
"version": "string"
},
"adyenPaymentSource": {
"name": "string",
"version": "string"
},
"externalPlatform": {
"integrator": "string",
"name": "string",
"version": "string"
},
"merchantApplication": {
"name": "string",
"version": "string"
},
"merchantDevice": {
"os": "string",
"osVersion": "string",
"reference": "string"
},
"shopperInteractionDevice": {
"locale": "string",
"os": "string",
"osVersion": "string"
}
},
"authenticationData": {
"attemptAuthentication": "always",
"authenticationOnly": false,
"threeDSRequestData": {
"challengeWindowSize": "01",
"dataOnly": "false",
"nativeThreeDS": "preferred",
"threeDSVersion": "2.1.0"
}
},
"billingAddress": {
"city": "string",
"country": "string",
"houseNumberOrName": "string",
"postalCode": "string",
"street": "string",
"stateOrProvince": "string"
},
"blockedPaymentMethods": [
"string"
]
}
Response
Returns 201 with an object. Read it in later steps with {{createAPaymentSession.response.data.<field>}}.
accountInfoobjectaccountAgeIndicatorstringIndicator for the length of time since this shopper account was created in the merchant's environment. Allowed values: * notApplicable * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
One ofnotApplicablethisTransactionlessThan30Daysfrom30To60DaysmoreThan60Days
accountChangeDatestring (date-time)Date when the shopper's account was last changed.
accountChangeIndicatorstringIndicator for the length of time since the shopper's account was last updated. Allowed values: * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
One ofthisTransactionlessThan30Daysfrom30To60DaysmoreThan60Days
accountCreationDatestring (date-time)Date when the shopper's account was created.
accountTypestringIndicates the type of account. For example, for a multi-account card product. Allowed values: * notApplicable * credit * debit
One ofnotApplicablecreditdebit
addCardAttemptsDayinteger (int32)Number of attempts the shopper tried to add a card to their account in the last day.
deliveryAddressUsageDatestring (date-time)Date the selected delivery address was first used.
deliveryAddressUsageIndicatorstringIndicator for the length of time since this delivery address was first used. Allowed values: * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
One ofthisTransactionlessThan30Daysfrom30To60DaysmoreThan60Days
homePhonestringShopper's home phone number (including the country code).
mobilePhonestringShopper's mobile phone number (including the country code).
passwordChangeDatestring (date-time)Date when the shopper last changed their password.
passwordChangeIndicatorstringIndicator when the shopper has changed their password. Allowed values: * notApplicable * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
One ofnotApplicablethisTransactionlessThan30Daysfrom30To60DaysmoreThan60Days
pastTransactionsDayinteger (int32)Number of all transactions (successful and abandoned) from this shopper in the past 24 hours.
pastTransactionsYearinteger (int32)Number of all transactions (successful and abandoned) from this shopper in the past year.
paymentAccountAgestring (date-time)Date this payment method was added to the shopper's account.
paymentAccountIndicatorstringIndicator for the length of time since this payment method was added to this shopper's account. Allowed values: * notApplicable * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
One ofnotApplicablethisTransactionlessThan30Daysfrom30To60DaysmoreThan60Days
purchasesLast6Monthsinteger (int32)Number of successful purchases in the last six months.
suspiciousActivitybooleanWhether suspicious activity was recorded on this account.
workPhonestringShopper's work phone number (including the country code).
additionalAmountobjectcurrencystringrequiredThe three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
valueinteger (int64)requiredThe numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
additionalDataobjectThis field contains additional data, which may be required for a particular payment request. The `additionalData` object consists of entries, each of which includes the key and value.
allowedPaymentMethodsarray<string>List of payment methods to be presented to the shopper. To refer to payment methods, use their [payment method type](https://docs.adyen.com/payment-methods/payment-method-types). Example: `"allowedPaymentMethods":["ideal","applepay"]`
amountobjectcurrencystringrequiredThe three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
valueinteger (int64)requiredThe numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
applicationInfoobjectadyenLibraryobject2 fieldsadyenPaymentSourceobject2 fieldsexternalPlatformobject3 fieldsmerchantApplicationobject2 fieldsmerchantDeviceobject3 fieldsshopperInteractionDeviceobject3 fieldsauthenticationDataobjectattemptAuthenticationstringIndicates 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.
One ofalwaysnever
authenticationOnlybooleanRequired to trigger the [authentication-only flow](https://docs.adyen.com/online-payments/3d-secure/authentication-only/). If set to **true**, you will only perform the 3D Secure 2 authentication, and will not proceed to the payment authorization. Default: **false**.
Default false
threeDSRequestDataobject4 fieldsbillingAddressobjectcitystringrequiredThe name of the city. Maximum length: 3000 characters.
countrystringrequiredThe two-character ISO-3166-1 alpha-2 country code. For example, **US**. > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
houseNumberOrNamestringrequiredThe number or name of the house. Maximum length: 3000 characters.
postalCodestringrequiredA maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.
stateOrProvincestringThe two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
streetstringrequiredThe name of the street. Maximum length: 3000 characters. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
blockedPaymentMethodsarray<string>List of payment methods to be hidden from the shopper. To refer to payment methods, use their [payment method type](https://docs.adyen.com/payment-methods/payment-method-types). Example: `"blockedPaymentMethods":["ideal","applepay"]`
captureDelayHoursinteger (int32)The delay between the authorisation and scheduled auto-capture, specified in hours.
channelstringThe platform where a payment transaction takes place. This field is optional for filtering out payment methods that are only available on specific platforms. If this value is not set, then we will try to infer it from the `sdkVersion` or `token`. Possible values: * **iOS** * **Android** * **Web**
One ofiOSAndroidWeb
companyobjecthomepagestringThe company website's home page.
namestringThe company name.
registrationNumberstringRegistration number of the company.
registryLocationstringRegistry location of the company.
taxIdstringTax ID of the company.
typestringThe company type.
countryCodestringThe shopper's two-letter country code.
dateOfBirthstring (date-time)The shopper's date of birth in [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
deliverAtstring (date-time)The date and time when the purchased goods should be delivered. [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format: YYYY-MM-DDThh:mm:ss+TZD, for example, **2020-12-18T10:15:30+01:00**.
deliveryAddressobjectcitystringrequiredThe name of the city. Maximum length: 3000 characters.
countrystringrequiredThe two-character ISO-3166-1 alpha-2 country code. For example, **US**. > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
firstNamestringhouseNumberOrNamestringrequiredThe number or name of the house. Maximum length: 3000 characters.
lastNamestringpostalCodestringrequiredA maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.
stateOrProvincestringThe two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
streetstringrequiredThe name of the street. Maximum length: 3000 characters. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
enableOneClickbooleanWhen true and `shopperReference` is provided, the shopper will be asked if the payment details should be stored for future [one-click payments](https://docs.adyen.com/get-started-with-adyen/payment-glossary/#one-click-payments-definition).
enablePayOutbooleanWhen true and `shopperReference` is provided, the payment details will be tokenized for payouts.
enableRecurringbooleanWhen true and `shopperReference` is provided, the payment details will be stored for [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types) where the shopper is not present, such as subscription or automatic top-up payments.
expiresAtstring (date-time)The date the session expires in [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. When not specified, the expiry date is set to 1 hour after session creation. You cannot set the session expiry to more than 24 hours after session creation.
fundOriginobjectbillingAddressobject6 fieldsshopperEmailstringThe email address of the person funding the money.
shopperNameobject2 fieldstelephoneNumberstringThe phone number of the person funding the money.
walletIdentifierstringThe unique identifier of the wallet where the funds are coming from.
fundRecipientobjectIBANstringThe IBAN of the bank account where the funds are being transferred to.
billingAddressobject6 fieldsshopperEmailstringThe email address of the shopper.
shopperNameobject2 fieldsshopperReferencestringRequired for recurring payments. Your reference to uniquely identify this shopper, for example user ID or account ID. The value is case-sensitive and must be at least three characters. > Your reference must not include personally identifiable information (PII) such as name or email address.
storedPaymentMethodIdstringThis is the `recurringDetailReference` returned in the response when you created the token.
subMerchantobject5 fieldstelephoneNumberstringThe telephone number of the shopper.
walletIdentifierstringThe unique identifier for the wallet the funds are being transferred to. You can use the shopper reference or any other identifier.
walletOwnerTaxIdstringThe tax identifier of the person receiving the funds.
walletPurposestringThe purpose of a digital wallet transaction.
One ofidentifiedBoletotransferDifferentWallettransferOwnWallettransferSameWalletunidentifiedBoleto
idstringA unique identifier of the session.
installmentOptionsobjectA set of key-value pairs that specifies the installment options available per payment method. The key must be a payment method name in lowercase. For example, **card** to specify installment options for all cards, or **visa** or **mc**. The value must be an object containing the installment options.
lineItemsarray<object>Price and product information about the purchased items, to be included on the invoice sent to the shopper. > This field is required for 3x 4x Oney, Affirm, Afterpay, Clearpay, Klarna, Ratepay, and Riverty.
amountExcludingTaxinteger (int64)Item amount excluding the tax, in [minor units](https://docs.adyen.com/development-resources/currency-codes/#minor-units).
amountIncludingTaxinteger (int64)Item amount including the tax, in [minor units](https://docs.adyen.com/development-resources/currency-codes/#minor-units).
brandstringBrand of the item.
colorstringColor of the item.
descriptionstringDescription of the line item.
idstringID of the line item.
imageUrlstringLink to the picture of the purchased item.
itemCategorystringItem category, used by the payment methods PayPal and Ratepay.
manufacturerstringManufacturer of the item.
marketplaceSellerIdstringMarketplace seller id.
productUrlstringLink to the purchased item.
quantityinteger (int64)Number of items.
receiverEmailstringEmail associated with the given product in the basket (usually in electronic gift cards).
returnShippingCompanystringShipping company handling the return of the item.
returnTrackingNumberstringTracking number for the return of the item.
returnTrackingUristringTracking URI for the return of the item.
riskCategorystringAn optional, free-text category for the item to be used in the risk evaluation. When provided, Protect uses this value to evaluate custom risk rules.
shippingCompanystringShipping company handling the delivery of the item.
shippingMethodstringShipping method used to deliver the item.
sizestringSize of the item.
skustringStock keeping unit.
taxAmountinteger (int64)Tax amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes/#minor-units).
taxPercentageinteger (int64)Tax percentage, represented as a [basis point](https://en.wikipedia.org/wiki/Basis_point) integer. For example: - **530** for 5.3% (five point three percent) - **2100** for 21% (twenty-one percent)
trackingNumberstringTracking number for the delivery of the item.
trackingUristringTracking URI for the delivery of the item.
upcstringUniversal Product Code.
mandateobjectamountstringrequiredThe billing amount (in minor units) of the recurring transactions.
amountRulestringThe limitation rule of the billing amount. Possible values: * **max**: The transaction amount can not exceed the `amount`. * **exact**: The transaction amount should be the same as the `amount`.
One ofmaxexact
billingAttemptsRulestringThe rule to specify the period, within which the recurring debit can happen, relative to the mandate recurring date. Possible values: * **on**: On a specific date. * **before**: Before and on a specific date. * **after**: On and after a specific date.
One ofonbeforeafter
billingDaystringThe number of the day, on which the recurring debit can happen. Should be within the same calendar month as the mandate recurring date. Possible values: 1-31 based on the `frequency`.
countstringThe number of transactions that can be performed within the given frequency.
endsAtstringrequiredEnd date of the billing plan, in YYYY-MM-DD format.
frequencystringrequiredThe frequency with which a shopper should be charged. Possible values: **adhoc**, **daily**, **weekly**, **biWeekly**, **monthly**, **quarterly**, **halfYearly**, **yearly**.
One ofadhocdailyweeklybiWeeklymonthlyquarterlyhalfYearlyyearly
remarksstringThe message shown by UPI to the shopper on the approval screen.
startsAtstringStart date of the billing plan, in YYYY-MM-DD format. By default, the transaction date.
mccstringThe [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.
merchantAccountstringThe merchant account identifier, with which you want to process the transaction.
merchantOrderReferencestringThis reference allows linking multiple transactions to each other for reporting purposes (i.e. order auth-rate). The reference should be unique per billing cycle. The same merchant order reference should never be reused after the first authorised attempt. If used, this field should be supplied for all incoming authorisations. > We strongly recommend you send the `merchantOrderReference` value to benefit from linking payment requests when authorisation retries take place. In addition, we recommend you provide `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values in `PaymentRequest.additionalData`.
metadataobjectMetadata consists of entries, each of which includes a key and a value. Limits: * Maximum 20 key-value pairs per request. * Maximum 20 characters per key. * Maximum 80 characters per value.
modestringIndicates the type of front end integration. Possible values: * **embedded** (default): Drop-in or Components integration * **hosted**: Hosted Checkout integration
One ofembeddedhostedDefault "embedded"
mpiDataobjectauthenticationResponsestringIn 3D Secure 2, this is the `transStatus` from the challenge result. If the transaction was frictionless, omit this parameter.
One ofYNUA
cavvstring (byte)The cardholder authentication value (base64 encoded, 20 bytes in a decoded form).
cavvAlgorithmstringThe CAVV algorithm used. Include this only for 3D Secure 1.
challengeCancelstringIndicator informing the Access Control Server (ACS) and the Directory Server (DS) that the authentication has been cancelled. For possible values, refer to [3D Secure API reference](https://docs.adyen.com/online-payments/3d-secure/api-reference#mpidata).
One of01020304050607
directoryResponsestringIn 3D Secure 2, this is the `transStatus` from the `ARes`.
One ofACDINRUY
dsTransIDstringSupported for 3D Secure 2. The unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction.
ecistringThe electronic commerce indicator.
riskScorestringRisk score calculated by Directory Server (DS). Required for Cartes Bancaires integrations.
threeDSVersionstringThe version of the 3D Secure protocol.
tokenAuthenticationVerificationValuestring (byte)Network token authentication verification value (TAVV). The network token cryptogram.
transStatusReasonstringProvides information on why the `transStatus` field has the specified value. For possible values, refer to [our docs](https://docs.adyen.com/online-payments/3d-secure/api-reference#possible-transstatusreason-values).
xidstring (byte)Supported for 3D Secure 1. The transaction identifier (Base64-encoded, 20 bytes in a decoded form).
payablebooleanIndicates if the session is payable. If the payment amount is final, set this to **true** to indicate that the session is payable, so that the shopper can proceed to submit the payment. When you set this to **true**, you can no longer update the session. If you set this to **false**, you must make another request to update the session and set this to **true** before the shopper can submit the payment. If not specified, this defaults to **true**.
platformChargebackLogicobjectbehaviorstringThe method of handling the chargeback. Possible values: **deductFromLiableAccount**, **deductFromOneBalanceAccount**, **deductAccordingToSplitRatio**.
One ofdeductFromOneBalanceAccountdeductAccordingToSplitRatiodeductFromLiableAccount
costAllocationAccountstringThe unique identifier of the balance account to which the chargeback fees are booked. By default, the chargeback fees are booked to your liable balance account.
targetAccountstringThe unique identifier of the balance account against which the disputed amount is booked. Required if `behavior` is **deductFromOneBalanceAccount**.
recurringExpirystringDate after which no further authorisations shall be performed. Only for 3D Secure 2.
recurringFrequencystringMinimum number of days between authorisations. Only for 3D Secure 2.
recurringProcessingModelstringDefines a recurring payment type. Required when creating a token to store payment details. Allowed values: * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. * `CardOnFile` – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * `UnscheduledCardOnFile` – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or have variable amounts. For example, automatic top-ups when a cardholder's balance drops below a certain amount.
One ofCardOnFileSubscriptionUnscheduledCardOnFile
redirectFromIssuerMethodstringSpecifies the redirect method (GET or POST) when redirecting back from the issuer.
redirectToIssuerMethodstringSpecifies the redirect method (GET or POST) when redirecting to the issuer.
referencestringThe reference to uniquely identify a payment.
{
"amount": {
"currency": "string",
"value": 0
},
"expiresAt": "2025-01-01T00:00:00Z",
"id": "string",
"merchantAccount": "string",
"reference": "string",
"returnUrl": "string",
"accountInfo": {
"accountAgeIndicator": "notApplicable",
"accountChangeDate": "2025-01-01T00:00:00Z",
"accountChangeIndicator": "thisTransaction",
"accountCreationDate": "2025-01-01T00:00:00Z",
"accountType": "notApplicable",
"addCardAttemptsDay": 0,
"deliveryAddressUsageDate": "2025-01-01T00:00:00Z",
"deliveryAddressUsageIndicator": "thisTransaction",
"homePhone": "string",
"mobilePhone": "string",
"passwordChangeDate": "2025-01-01T00:00:00Z",
"passwordChangeIndicator": "notApplicable"
},
"additionalAmount": {
"currency": "string",
"value": 0
},
"additionalData": {},
"allowedPaymentMethods": [
"string"
],
"applicationInfo": {
"adyenLibrary": {
"name": "string",
"version": "string"
},
"adyenPaymentSource": {
"name": "string",
"version": "string"
},
"externalPlatform": {
"integrator": "string",
"name": "string",
"version": "string"
},
"merchantApplication": {
"name": "string",
"version": "string"
},
"merchantDevice": {
"os": "string",
"osVersion": "string",
"reference": "string"
},
"shopperInteractionDevice": {
"locale": "string",
"os": "string",
"osVersion": "string"
}
},
"authenticationData": {
"attemptAuthentication": "always",
"authenticationOnly": false,
"threeDSRequestData": {
"challengeWindowSize": "01",
"dataOnly": "false",
"nativeThreeDS": "preferred",
"threeDSVersion": "2.1.0"
}
}
}
Need more? See the Adyen guide for connection setup and behaviour shared by every action.