Payments API

To communicate with the Adyen API you should submit HTTP POST requests to corresponding endpoints. These endpoints differ for test and live accounts, and also depend on the data format (SOAP, JSON, or FORM) you use to submit data to the Adyen payments platform.

This document lists all endpoints available for you to integrate with the test platform and run QA checks.

Endpoints

SOAP

For the SOAP messaging protocol, all test payment requests must be posted to the following endpoint:

The data schema for corresponding SOAP objects is available at:

JSON and FORM

This is an overview of the test URL endpoints to communicate with our API using JSON or FORM (key-value parameters passed in an Http POST URL).

After you are ready to go live, you should switch to either generic or custom live endpoints. For more information, refer to Live endpoints.

BankAccount

This object provides fields to hold information on bank account details.

Field Type Required Description
bankAccountNumber String
(tick)

The bank account number (without separators).

bankCity String (error) The bank city.
bankLocationId String
(tick)

The location id of the bank.

The field value is nil in most cases.

bankName String
(tick)

The name of the bank.

bic String
(error)

The business identifier code (BIC) is the SWIFT address assigned to a bank.

The field value is nil in most cases.

countryCode String
(tick)

Country code where the bank is located.

A valid value is an ISO 2-character country code (e.g. 'NL').

iban String
(tick)

The International Bank Account Number (IBAN).

ownerName String
(tick)

The name of the bank account holder.

If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example:

  • χ12 is converted to ch12.   
  • üA is converted to euA.
  • Peter Møller is converted to Peter Mller, because banks don't accept 'ø'.

After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example:

  • John17 - allowed.
  • J17 - allowed.
  • 171 - not allowed.
  • John-7 - allowed.

If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'.

taxId String (error) Tax identification number.

Card

A container for card data.

Field Type Required Description
cvc String (error)

The card verification code. Depending on the card brand, it is known also as:

  • CVV2/CVC2 – length: 3 digits
  • CID – length: 4 digits
  • Min. length: 1 character
  • Max. length: 20 characters

If you are using Client-Side Encryption, the CVC code is present in the encrypted data. You must never post the card details to the server.

This field must be always present in a one-click payment request.

When this value is returned in a response, it is always empty because it is not stored.

expiryMonth String (tick)

The card expiry month.

Format: 2 digits, zero-padded for single digits. For example:

  • 03 = March
  • 11 = November
expiryYear String (tick)

The card expiry year.

Format: 4 digits. For example: 2018.

holderName String (tick) The name of the card holder, as printed on the card.
issueNumber String (error) The issue number of the card (for some UK debit cards only).
number String (tick)

The card number. Do not use any separators.

  • Min. length: 4 characters
  • Max. length: 19 characters

When this value is returned in a response, only the last 4 digits of the card number are returned.

startMonth String (error)

The month component of the start date (for some UK debit cards only).

startYear String (error) The year component of the start date (for some UK debit cards only).

ForexQuote

Holds information on the forex quote as returned in the response of the forex service.

Field Type Required Description
account String (error) The account name.
accountType String (error) The account type.
baseAmount Amount (error) The base amount.
basePoints  Int (tick) The base points.
buy Amount (error) The buy rate.
interbank Amount (error) The interbank amount.
reference String (error) The reference assigned to the forex quote request.
sell Amount (error) The sell rate.
signature String (error) The signature to validate the integrity.
source String (error) The source of the forex quote.
type String (error) The type of forex.
validTill  DateTime (tick) The date until which the forex quote is valid.

FraudCheckResult

Holds results of performing an individual risk check.

Field Type Required Description
accountScore Int (tick) The fraud score generated by the risk check.
checkId Int (tick) The id of the risk check.
name String (tick) The name of the risk check.

FraudResult

Holds information on the results of a fraud risk check.

Field Type Required Description
accountScore Int (tick) The total fraud score generated by the risk checks.
results Array of FraudCheckResult (error) The result of the individual risk checks.

Gift cards

A container for the gift card information.

Field Type Required Description
cvc String (error)

If you choose to ask your shopper for the PIN while making the payment.

Use this field to enter the gift card PIN.

expiryMonth String (tick)

The gift card expiry month.

Format: 2 digits, zero-padded for single digits. For example:

  • 03 = March
  • 11 = November

If the card does not contain this value, you can pass dummy values to fulfil the requirement.

expiryYear String (tick)

The gift card expiry year.

Format: 4 digits. For example, 2018.

If the card does not contain this value, you can pass a dummy value to fulfil the requirement.

holderName String (tick) The name of the gift card holder.
number String (tick)

The gift card number. Do not use any separators.

  • Min. length: 4 characters
  • Max. length: 19 characters

additionalData

Class (error)

Additional data container.

Contains:

  • Key
  • Value

Use this object to deactivate a gift card.

Key

String (error) Expected value: stored_value_redemption_type
Value String (error) Expected value: deactivate

ModificationRequest

Represents general parameters used to modify an authorised payment. This request data can be passed as a part of capture, cancel or refund requests (see Payment modifications).

AdjustAuthorisationModificationRequest

To adjust an authorised amount (increase or decrease), send a modification request to the /adjustAuthorisation endpoint. For more information, refer to Adjust Authorisation.

Field Type Required Description
merchantAccount String (tick)

The merchant account where the transaction, for which the request needs to be initiated, was processed.

modificationAmount Amount (tick)

The amount after adjusting. This amount value must be the absolute amount, to which you want to modify the current authorisation.

If you want to extend the validity of the authorisation, the value of this field has to be the same as in the original /authorise request.

originalReference String (tick)
The  originalReference value corresponds to the  pspReference value assigned to the original payment.

You receive the pspReference with:

  • The payment status, or
  • The authorisation notification.
reference String (error)

If you want, you can specify your reference for the modification request. This reference will be visible in the Customer Area and in reports.

Max length: 80 characters.

additionalData.industryUsage String (error)

Allowed values:

  • DelayedCharge – You aim to charge an extra amount when the shopper has left the premises (for example, hotel extra charges).
  • NoShow – You aim to charge an extra amount because the shopper did not consume the service requested.

CaptureModificationRequest

To capture an authorised payment, send a modification request to the /capture endpoint.

Field Type Required Description
additionalData Object (error)

This field contains additional data, which may be required for a particular modification request.

The additionalData object consists of entries, each of which includes the key and value. For more information on possible key-value pairs, refer to the ModificationRequest.additionalData section.

merchantAccount String (tick)

The merchant account where the transaction, for which the request needs to be initiated, was processed.

modificationAmount Amount (tick)

The amount to capture.

The  currency must match the currency used in the original payment request. 

The value must be smaller than or equal to the authorised amount. This needs to be represented in minor units according to the following table.

originalReference String (tick)
The  originalReference value corresponds to the  pspReference value assigned to the original payment.

You receive the pspReference with:

  • The payment status, or
  • The authorisation notification.
reference String (error)

If you want, you can specify your reference for the modification request. This reference will be visible in the Customer Area and in reports.

Max length: 80 characters.

CancelModificationRequest

To cancel an authorised payment, send a modification request to the /cancel endpoint.

Field Type Required Description
merchantAccount String (tick) The merchant account where the transaction, for which the request needs to be initiated, was processed.
originalReference String (tick)
The  originalReference value corresponds to the  pspReference value assigned to the original payment.

You receive the pspReference with:

  • The payment status, or
  • The authorisation notification.
reference String (error)

If you want, you can specify your reference for the modification request. This reference will be visible in the Customer Area and in reports.

Max length: 80 characters.

CancelOrRefundModificationRequest

To initiate a cancellation or refund of an authorised payment that may or may not have been captured, send a modification request to the /cancelOrRefund endpoint.

Do not use this request for payments that involve (multiple) partial captures.  

Pass the following parameters:

Name

Type

Required

Description

merchantAccount

String (tick)

The merchant account where the transaction, for which the request needs to be initiated, was processed

tenderReference

String (tick) The transaction reference provided by the PED.

uniqueTerminalId

String (tick)

Unique terminal ID for the PED that originally processed the request.

reference String (error)

If you want, you can specify your reference for the modification request. This reference will be visible in the Customer Area and in reports.

Max length: 80 characters.

additionalData.cancelOrRefundReason String (error) The reason why the cancel or refund is being performed.

Alternatively, you can implement based on the pspReference, after it has been generated by the Adyen payments platform:

Name

Type

Required

Description

merchantAccount

String (tick)

The merchant account where the transaction, for which the request needs to be initiated, was processed

originalReference

String (tick)

The  originalReference value corresponds to the  pspReference value assigned to the original payment.

You receive the pspReference with:

  • The payment status, or
  • The authorisation notification.

reference String (error)

If you want, you can specify your reference for the modification request. This reference will be visible in the Customer Area and in reports.

Max length: 80 characters.

TechnicalCancelModificationRequest

To cancel an authorised payment with your own reference instead of the PSP reference, send a modification request to the /technicalCancel endpoint.

Field Type Required Description
merchantAccount String (tick) The merchant account where the transaction, for which the request needs to be initiated, was processed.
originalMerchantReference String (tick)
Your custom reference that you used as a reference parameter in the original /authorise request.
reference String (error)

If you want, you can specify your reference for the modification request. This reference will be visible in the Customer Area and in reports.

Max length: 80 characters.

RefundModificationRequest

To initiate a refund of an authorised and captured payment, send a modification request to the /refund endpoint.

Field Type Required Description
merchantAccount String (tick) The merchant account where the transaction, for which the request needs to be initiated, was processed.
modificationAmount Amount (tick)

A container for the amount that needs to be refunded.

The  currency must match the currency used in the original payment request. 

The value must be smaller than or equal to the authorised amount. This needs to be represented in minor units according to the following table.

originalReference String (tick)
The  originalReference value corresponds to the  pspReference value assigned to the original payment.

You receive the pspReference with:

  • The payment status, or
  • The authorisation notification.
reference String (error)

If you want, you can specify your reference for the modification request. This reference will be visible in the Customer Area and in reports.

Max length: 80 characters.

VoidPendingRefundModificationRequest

Use the /voidPendingRefund endpoint to cancel a POS refund request. The default approach uses the tenderReference, as this is generated in both offline and online transactions.

Pass the following parameters:

Name

Type

Required

Description

merchantAccount

String (tick) The merchant account where the transaction, for which the request needs to be initiated, was processed.

tenderReference

String (tick) The transaction reference provided by the PED.

uniqueTerminalId

String (tick)

Unique terminal ID for the PED that originally processed the request.

Alternatively, you can implement based on the originalReference when it has been generated by the Adyen payments platform:

Name

Type

Required

Description

merchantAccount

String (tick)

The merchant account where the original refund request was processed.

originalReference

String (tick)

The originalReference value corresponds to the pspReference value assigned to the original refund request.

You receive the pspReference with:

  • The response to your refund request
  • The notification that you receive after we have processed your refund request.

ModificationRequest.additionalData

The additionalData object is a generic container that can hold extra request fields. You may require to pass these fields along with payment modification data, for example, to better manage risky transactions or to initiate a payment using some local payment methods.

This functionality requires additional configuration on Adyen's end. To enable it, contact the  Support Team.

Depending on your requirements, you can pass the following values as additionalData in a modification request:

Mastercard UK Installments

Field
Type
Required
Description
installmentPaymentData.selectedInstallmentOption
Integer (error)

This is the installment option selected by the shopper. It is required only if specified by the user.

ModificationResult

Contains data returned in response to a modification request. For more information, refer to Payment modifications.

Field Type Required Description
additionalData Object (error)

This field contains additional data, which may be returned in a particular modification response.

pspReference String (tick)
Adyen's 16-character unique reference associated with the transaction/the request. This value is globally unique; quote it when communicating with us about this request.
response String (tick)
  • If a request is successful, the returned value contains a confirmation (e.g. [capture-received]).
  • If it fails, an error message is returned.

PaymentRequest

The fields described below are the generic payment fields you specify when making an /authorise call to the Adyen payment API.

Field Type Required Description
additionalAmount Amount (error)

A container for the data concerning the additional amount to be authorised. It corresponds to the additional/surcharged part of the amount, and it needs to be in the same currency as amount.

additionalAmount is required only if you want to submit a non-zero value auth BIN or card verification request.

To be accepted by the schemes, the value specified in the additionalAmount field needs to be higher than the currency equivalent of 0.02 USD.

additionalData Object (error)

This 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. For more information on possible key-value pairs, refer to the additionalData section.

amount Amount (tick)

A container object for the payable amount information for the transaction.

For BIN or card verification requests, its value needs to be 0 (zero).

bankAccount BankAccount (error)

The details of the bank account, from which the payment should be made from.

Either bankAccount or card field must be provided in a payment request.

billingAddress Address (error) The address where to send the invoice.
browserInfo BrowserInfo (error) A user's browser information.
captureDelayHours Int (error) The delay between the authorisation and scheduled auto capture, specified in hours.
card Card (error)

A container for card data.

Either bankAccount or card field must be provided in a payment request.

dateOfBirth String (error)

The shopper's date of birth.

Format: ISO-8601; example: YYYY-MM-DD

dccQuote ForexQuote (error) The forex quote as returned in the response of the forex service.
deliveryAddress Address (error) The address where the purchased goods should be delivered to.
deliveryDate Date/Time (error)

The date and time the purchased goods should be delivered.

  • Format: ISO 8601;  YYYY-MM-DDThh:mm:ss.sssTZD
  • Example: 2017-07-17T13:42:40.428+01:00

deviceFingerprint String (error) A string containing a shopper's device fingerprint. For more information, refer to Device fingerprinting.
fraudOffset Int (error)

An integer value that is added to the normal fraud score. The value can be either positive or negative.

installments Installments (error) Contains information on an installment. For more information, refer to Installments.
mcc String (error)

The 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.

The list of MCCs can be found here.

merchantAccount String (tick)

The merchant account identifier you want to process the (transaction) request with.

merchantOrderReference String (error)

This reference allows linking multiple transactions to each other.

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.

metadata Object (error)

Metadata consists of entries, each of which includes a key and a value.

Limitations: Maximum 20 key-value pairs per request. When exceeding, the "177" error occurs: "Metadata size exceeds limit".

  key String (error)

Key for the information to be provided.

Example: key = 'storeCountry'

Maximum length: 20 characters. When exceeding, the "178" error occurs: "Metadata key size exceeds limit".

  value String (error)

The value associated with the key.

Example: value = 'US'

Maximum length: 80 characters. When exceeding, the value is truncated to 80 characters with '...' appended to it.

mpiData ThreeDSecureData (error) Authentication data produced by an MPI (Mastercard SecureCode or Verified By Visa).
orderReference String (error) The order reference to link multiple partial payments.
recurring Recurring (error)

The recurring properties of the payment.

Specify this property when you want to enable recurring payments.

recurringProcessingModel String (error)

V30 This element was added in the version 30.

Defines a recurring payment type.

Allowed values:

  • Subscription: A transaction for a fixed or variable amount, which follows a fixed schedule. This is the default value.
  • CardOnFile: 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 as a card-on-file transaction.

If all your transactions must have the same recurringProcessingModel value, contact your account manager or Support Team to set the default value for your merchant account.

reference String (tick)

A reference to uniquely identify the 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, you can enter them in this field. Separate each reference value with a hyphen character ("-").

This field has a length restriction: you can enter max. 80 characters.

selectedBrand String (error)

Some payment methods require defining a value for this field to specify how to process the transaction.

For the Bancontact payment method, it can be set to:

  • maestro (default), to be processed like a Maestro card, or
  • bcmc, to be processed like a Bancontact card.

The selectedBrand values are case sensitive. For information on available selectedBrand values, refer to Payment methods.

selectedRecurringDetail
Reference
String (error)

The recurringDetailReference you want to use for this payment.

The value “LATEST” can be used to select the most recently stored recurring detail.

sessionId String (error)

A session identifier used to identify a payment session.

shopperEmail String (error)

The shopper's email address.

We recommend you provide this data, as it is used in velocity fraud checks.

shopperIP String (error)

The shopper's IP address.

We recommend you provide this data, as it is used in a number of risk checks. For example: number of payment attempts, location based checks.

This field is mandatory for some merchants depending on your business model, contact the Support Team for more information.

shopperInteraction String (error)

Specifies the following information:

  • The sales channel the shopper gives their card details through;
  • Whether the shopper is a returning customer.

By default, for the web service API Adyen assumes Ecommerce shopper interaction.

This field has the following possible values:

  • Ecommerce - Online transactions where the cardholder is present (online). For better authorisation rates, we recommend sending the card security code (CSC) along with the request. For one-click payments, shopperInteraction must be set to Ecommerce.
  • ContAuth - Card on file and/or subscription transactions, where the card holder is known to the merchant (returning customer).
  • POS - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.
  • Moto - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone.
shopperLocale String (error) The combination of a language code and a country code to specify the language to be used in the payment.
shopperName Name (error) A shopper's full name and gender (if specified).
shopperReference String (error)

A shopper's reference for the payment transaction.

We recommend you provide this data.

This field is required for recurring payments.

shopperStatement String (error)

Set this field in your payment request if you want to include a variable shopper statement.

You can include placeholders for the references. For example:

  • ${reference} for the merchant reference
  • ${pspReference} for the PSP reference.

Note:

  • Not all acquirers support dynamic shopper statements.
  • Maximum allowed character length: 135 characters. For Visa/Mastercard: 25/22 respectively.
  • Allowed characters: a-zA-Z0-9.,-?|
  • Not supported for all payments methods, for further information contact Support Team.

socialSecurityNumber String (error) A shopper's social security number.
telephoneNumber String (error)

A shopper's telephone number.

This field is mandatory in case of Secure+ /authorise requests.

The country code should be preceded with a + sign.

PaymentRequest.additionalData

The additionalData object is a generic container that can hold extra request fields. You may require to pass these fields along with payment request data, for example, to better manage risky transactions or to initiate a payment using some local payment methods.

3D Secure fields

Field Type Required Description
executeThreeD String (error)

This parameter determines whether 3D Secure should be used for the payment request. For more information, refer to 3D Secure.

Possible values:

  • true – 3D Secure will be used (if the merchant account has this functionality enabled).
  • false – 3D Secure will be disabled.

If the executeThreeD field is not specified, it is still possible to enable 3D Secure by providing the browserInfo parameter. For more information, refer to Dynamic 3D Secure.

Risk data fields

The following fields are used to perform risk checks:

Name Type Required Description
riskdata.deliveryMethod String (error)

The method to deliver the goods to the shopper.

Used in Delivery Method check.

riskdata.accountCreationDate String (error)

The creation date of a shopper account on the merchant's platform.

Format: yyyy-MM-dd HH:mm:ss

Used in Custom risk checks.

riskdata.shopperAccountCreationDate

String (error)

This specifies the date when the shopper's account was created.

Format: yyyy-MM-dd HH:mm:ss.sssZ

Used in Shopper Account Age check.

riskdata.externalRiskScore String (error)

A risk score coming from a system external to Adyen.

Format: Numeric (when used in custom risk checks)

Used in External Risk Score check.

Used in Custom risk checks.

riskdata.externalSuspectedFraud String (error)

Usually a boolean representing the fraud risk assessment coming from a system external to Adyen.

Used in Custom risk checks.

riskdata.operatorCode String (error)

A code corresponding to a telecom network operator

Used in Custom risk checks.

riskdata.operatorCountry String (error)

Country corresponding to the telecom network operator. Usually a two letter country code.

Used in Custom risk checks.

riskdata.operatorName String (error)

Name of a telecom network operator e.g. Vodafone, Orange etc.

Used in Custom risk checks.

riskdata.operatorProductCode String (error)

Product code of a telecom product.

Used in Custom risk checks.

riskdata.paymentMethod String (error)

Represents the payment method as it is understood by the merchant. Does not necessarily have to coincide with the payment method determined by Adyen.

Used in Custom risk checks.

riskdata.previousSuccessfulOrders String (error)

The number of previous non-fraudulent orders made by a shopper.

Format: Numeric

Used in Custom risk checks.

riskdata.referralMethod String (error)

The referral method / reason for joining the merchant's platform.

Used in Custom risk checks.

riskdata.referrerUserName String (error)

The user name of a member who referred somebody to the merchant's platform.

Used in Custom risk checks.

riskdata.secondaryPhoneNumber String (error)

A secondary phone number for a user of the merchant's platform.

Used in Custom risk checks.

riskdata.shippingMethod String (error)

Name of the shipping method.

Used in Custom risk checks.

riskdata.shopperCountry String (error)

The shopper country as determined by the merchant, usually as a 2 letter country code. Does not have to coincide with the Adyen determined shopper country.

Used in Custom risk checks.

riskdata.simDistributor String (error)

Usually a SIM distribution company name e.g. Core, Elite, GK Tel etc.

Used in Custom risk checks.

riskdata.userName String (error)

User name of an account on the merchant's platform.

Used in Custom risk checks.

riskdata.userStatus String (error)

Usually a user's loyalty status e.g. Gold, Silver etc.

Used in Custom risk checks.

riskdata.browserLanguage String (error)

Name of the browser language used by the shopper. Usually a two letter country code (e.g. NL, FR, US etc.)

Used in Custom risk checks.

Promotion content fields

Field Type Required Description

riskdata.promotions.promotion<promotionNr>

Object (error) A container for a specific promotion.
The <promotionNr> placeholder is replaced with an integer that increments by one unit.

It contains the following elements:

  • promotionCode
  • promotionName
  • promotionDiscountAmount
  • promotionDiscountCurrency
  • promotionDiscountPercentage

promotionCode

String (error)

Code of the promotion.

promotionName String (error)

Name of the promotion.

promotionDiscountAmount String (error)

The discount amount of the promotion, represented in minor units.

promotionDiscountCurrency

String (error)

The three-character ISO currency code.

promotionDiscountPercentage String (error)

Promotion's percentage discount. It is represented in percentage value and there is no need to include the '%' sign.

e.g. for a promotion discount of 30%, the value of the field should be 30.

Basket content fields

Field Type Required Description

riskdata.basket.item<itemNr>

Object (error) A container for a specific item.
The <itemNr> placeholder is replaced with an integer that increments by one unit.

It contains the following elements:

  • itemID
  • productTitle
  • amountPerItem
  • currency
  • upc
  • sku
  • brand
  • manufacturer
  • category
  • color
  • size
  • quantity

itemID

String (error)

ID of the item.

productTitle String (error)

A text description of the product the invoice line refers to.

amountPerItem String (error)

The price of item<itemNr> in the basket, represented in minor units.

currency

String (error)

The three-character ISO currency code.

upc String (error)

Universal Product Code.

sku String (error)

Stock keeping unit.

brand String (error)

Brand of the item.

manufacturer String (error)

Manufacturer of the item.

category String (error)

Category of the item.

color String (error)

Color of the item.

size String (error)

Size of the item.

quantity String (error)

Quantity of the item purchased.

Retry fields

Field Type Required Description
retry.chainAttemptNumber Integer (error)

The number of times the transaction (not order) has been retried between different payment service providers. For instance, the chainAttemptNumber set to 2 means that this transaction has been recently tried on another provider before being sent to Adyen.

If you submit retry.chainAttemptNumber, retry.orderAttemptNumber, and retry.skipRetry values, we also recommend you provide the merchantOrderReference to facilitate linking payment attempts together.

retry.orderAttemptNumber Integer (error)

The index of the attempt to bill a particular order, which is identified by the merchantOrderReference field. For example, if a recurring transaction fails and is retried one day later, then the order number for these attempts would be 1 and 2, respectively.

If you submit retry.chainAttemptNumber, retry.orderAttemptNumber, and retry.skipRetry values, we also recommend you provide the merchantOrderReference to facilitate linking payment attempts together.

retry.skipRetry Boolean (error)

The Boolean value indicating whether Adyen should skip or retry this transaction, if possible.

If you submit retry.chainAttemptNumber, retry.orderAttemptNumber, and retry.skipRetry values, we also recommend you provide the merchantOrderReference to facilitate linking payment attempts together.

Airline fields

All below fields are optional, the Required column indicates whether the fields are required to qualify for the airline-specific interchange programs.

On submission, some fields might be truncated by Adyen due to different scheme requirements.

For more information on submitting this data, see Send Travel and Entertainment data for Visa, Mastercard and American Express.

airline

The top-level container object for all airline data.

Field Type Required Description
airline.passenger_name
String (tick)

Passenger name, initials and title name.

  • Format: last name + first name or initials + title
    Example: FLYER / MARY MS.
  • minLength: 1
  • maxLength: 49
airline.computerized_reservation_system String (tick)

The CRS used to make the reservation and purchase the ticket; alphanumeric.

  • minLength: 4
  • maxLength: 4
airline.airline_code String (tick)

IATA 3-digit accounting code (PAX); numeric. It identifies the carrier.

  • Format: IATA 3-digit accounting code (PAX)
    Example.: KLM = 074
  • minLength: 3
  • maxLength: 3
airline.ticket_number String (tick)

The ticket's unique identifier.

  • minLength: 1
  • maxLength: 150
airline.flight_date String (tick)

Flight departure date.

Local time (HH:mm) is optonal.

  • Date format: yyyy-MM-dd
  • Date and time format: yyyy-MM-dd HH:mm
  • minLength: 10
  • maxLength: 16
airline.customer_reference_number String (error)

Reference number; alphanumeric.

  • minLength: 0
  • maxLength: 20
airline.ticket_issue_address String (error)

Address of the place/agency that issued the ticket.

  • minLength: 0
  • maxLength: 16
airline.airline_designator_code String (error)

IATA 2-letter accounting code (PAX); alphabetical. It identifies the carrier.

  • Format: IATA 2-letter airline code
    Example.: KLM = KL
  • minLength: 2
  • maxLength: 2
airline.travel_agency_code String (error)

IATA number, also ARC number or ARC/IATA number. Unique identifier number for travel agencies.

  • minLength: 1
  • maxLength: 8
airline.travel_agency_name String (error)

The name of the travel agency.

  • minLength: 1
  • maxLength: 25
airline.agency_plan_name String (error)

2-letter agency plan identifier; alphabetical.

  • minLength: 2
  • maxLength: 2
airline.agency_invoice_number String (error)

Reference number for the invoice, issued by the agency.

  • minLength: 1
  • maxLength: 6
airline.boarding_fee String (error)

Chargeable amount for boarding the plane.

The transaction amount needs to be represented in minor units according to the following table.

  • minLength: 1
  • maxLength: 18

airline.leg

The second-level container object for leg data. The leg number counter starts at 1 and sequentially increments by 1 unit. Maximum number of supported legs is 10.

Field Type Required Description
airline.leg<legNr>.depart_airport String (tick)

Alphabetical identifier of the departure airport.
This field is required/mandatory if the airline data includes leg details.

  • Format: IATA 3-letter airport code.
    Example: Amsterdam = AMS
  • minLength: 3
  • maxLength: 3
airline.leg<legNr>.flight_number String (tick)

The flight identifier.

  • minLength: 1
  • maxLength: 5
airline.leg<legNr>.carrier_code String (tick)

IATA 2-letter accounting code (PAX); alphabetical. It identifies the carrier.
This field is required/mandatory if the airline data includes leg details.

  • Format: IATA 2-letter airline code
    Example.: KLM = KL
  • minLength: 2
  • maxLength: 2
airline.leg<legNr>.fare_base_code String (tick)

Fare basis code; alphanumeric.

  • minLength: 1
  • maxLength: 7
airline.leg<legNr>.class_of_travel String (tick)

1-letter travel class identifier; alphabetical.

There is no standard; however, the following codes are used rather consistently:

  • F: first class
  • J: business class
  • Y: economy class
  • W: premium economy

Limitations:

  • minLength: 1
  • maxLength: 1
airline.leg<legNr>.stop_over_code String (tick)

1-letter code that indicates whether the passenger is entitled to make a stopover.

Only two types of characters are allowed:

  • O: Stopover allowed
  • X: Stopover not allowed

Limitations:

  • minLength: 1
  • maxLength: 1
airline.leg<legNr>.destination_code String (tick)

Alphabetical identifier of the destination/arrival airport.
This field is required/mandatory if the airline data includes leg details.

  • Format: IATA 3-letter airport code.
    Example: Amsterdam = AMS
  • minLength: 3
  • maxLength: 3
airline.leg<legNr>.date_of_travel

String

(error)

Date and time of travel. ISO 8601-compliant.

  • Format: yyyy-MM-dd HH:mm
  • minLength: 16
  • maxLength: 16
airline.leg<legNr>.depart_tax

String

(error)

Departure tax. Amount charged by a country to an individual upon their leaving. The transaction amount needs to be represented in minor units according to the following table.

  • minLength: 1
  • maxLength: 12

airline.passenger

The second-level container object for passenger data. The passenger number counter starts at 1 and sequentially increments by 1 unit, maximum number of supported passengers is 10.

Field Type Required Description
airline.passenger<passengerNr>.first_name String (error)

Passenger first name/given name. This field is required/mandatory if the airline data includes passenger details.

This field is required/mandatory if the airline data includes leg details.

airline.passenger<passengerNr>.last_name String (error)

Passenger last name/family name. This field is required/mandatory if the airline data includes passenger details.

This field is required/mandatory if the airline data includes leg details.

airline.passenger<passengerNr>.traveller_type String (error)

Passenger type code (PTC).

IATA PTC values are 3-letter alphabetical. Example: ADT, SRC, CNN, INS.

However, several carriers use non-standard codes that can be up to 5 alphanumeric characters.

  • minLength: 3
  • maxLength: 6
airline.passenger<passengerNr>.telephone_number String (error)

Telephone number of the passenger, including country code. This is an alphanumeric field that can include the '+' and '-' signs.

  • minLength: 3
  • maxLength: 30
airline.passenger<passengerNr>.date_of_birth String (error)

Date of birth of the passenger.

  • Date format: yyyy-MM-dd
  • minLength: 10
  • maxLength: 10

Level 2/3 data

The following fields must be provided in additionalData for commercial cards.

(tick) – mandatory (this field must be sent);   (error) – optional (this field can be sent); blank – this field shouldn't be sent. 
Field Type Level 2 Level 3 Max. length Description
enhancedSchemeData
  customerReference String (tick) (tick) 25

Customer code, if supplied by a customer.

Encoding: ASCII.

  totalTaxAmount Numeric (tick) (tick) 12

Total tax amount, in minor units.

For example, 2000 means USD 20.00

  freightAmount Numeric (error) (error) 12

Shipping amount, in minor units.

For example, 2000 means USD 20.00

  dutyAmount Numeric (error) (error) 12

Duty amount, in minor units.

For example, 2000 means USD 20.00

  destinationPostalCode String (error) (error) 10

The postal code of a destination address.

Encoding: ASCII.

Required for American Express.

  destinationStateProvinceCode String (error) (error) 3

Destination state or province code.

Encoding: ASCII.

  shipFromPostalCode String (error) (error) 10

The postal code of a "ship-from" address.

Encoding: ASCII.

  destinationCountryCode String (error) (error) 3

Destination country code.

Encoding: ASCII.

  orderDate String (error) (error) 6

Order date.

Format: ddMMyy

Encoding: ASCII.

enhancedSchemeData.itemDetailLine<Nr>

You can submit a maximum of 9 line items.

  commodityCode String (error) (tick) 12

Item commodity code.

Encoding: ASCII.

  description String (error) (tick) 26

Item description.

Encoding: ASCII.

  productCode String (error) (tick) 12

Product code.

Encoding: ASCII.

  quantity Numeric (error) (tick) 12

Quantity, specified as an integer value.

Value must be greater than 0.

  unitOfMeasure   (error) (tick) 3

Item unit of measurement.

Encoding: ASCII.

  unitPrice Numeric (error) (tick) 12 Unit price, specified in minor units.
  discountAmount Numeric (error) (error) 12

Discount amount, in minor units.

For example, 2000 means USD 20.00

  totalAmount Numeric (error) (tick) 12

Total amount, in minor units.

For example, 2000 means USD 20.00

Lodging fields

For more information on submitting this data, see Send Travel and Entertainment data for Visa, Mastercard and American Express.

lodging

The top-level container object for all lodging data.

Field Type Required Description
lodging.customerServiceTollFreeNumber String (tick)

The toll free phone number for the hotel/lodgings.

  • Format: Alphanumeric
  • maxLength: 17
lodging.checkInDate String (tick)

The arrival date.

  • Date format: yyyyMMdd
lodging.checkOutDate String (tick)

The departure date.

  • Date format: yyyyMMdd
lodging.folioNumber String (tick)

Card acceptor’s internal invoice or billing ID reference number.

  • Format: Alphanumeric
  • maxLength: 25
lodging.propertyPhoneNumber String (tick)

Identifies specific lodging property location by its local phone number.

  • Format: Alphanumeric
  • maxLength: 17
lodging.room1.rate String (tick)

The rate of the room.

  • Format: Numeric
  • maxLength: 12
lodging.room1.tax
String (tick)

The total amount of tax to be paid.

  • Format: Numeric
  • maxLength: 12
lodging.room1.numberOfNights  String (tick)

Total number of nights the room will be rented.

  • Format: Numeric
  • maxLength: 4
lodging.fireSafetyActIndicator String (tick)

Identifies that the facility complies with the Hotel and Motel Fire Safety Act of 1990. Values can be: 'Y' or 'N'.

  • Format: Alphabetic
  • maxLength: 1
travelEntertainmentAuthData.market
String (tick) Indicates what market-specific dataset will be submitted or is being submitted. Value should be "H" for Hotel. This should be included in the auth message.
  • Format: Alphanumeric
  • maxLength: 1
travelEntertainmentAuthData.duration
String (tick) Number of nights.  This should be included in the auth message.
  • Format: Numeric
  • maxLength: 2
lodging.folioCashAdvances String (error)

The folio cash advances.

  • Format: Numeric
  • maxLength: 12
lodging.foodBeverageCharges String (error)

Any charges for food and beverages associated with the booking.

  • Format: Numeric
  • maxLength: 12
lodging.noShowIndicator String (error)

Indicates if the customer was a "no-show" (neither keeps nor cancels their booking).

Value should be Y or N.

  • Format: Numeric
  • maxLength: 1
lodging.prepaidExpenses String (error) Prepaid expenses for the booking.
  • Format: Numeric
  • maxLength: 12
lodging.totalTax String (error)

Total tax amount.

  • Format: Numeric
  • maxLength: 12

Car rental fields

For more information on submitting this data, see Send Travel and Entertainment data for Visa, Mastercard and American Express.

carRental

The top-level container object for all car rental data.

Field Type Required Description
carRental.rentalAgreementNumber String (tick)

The rental agreement number associated with this car rental.

  • Format: Alphanumeric
  • maxLength: 14
carRental.renterName String (tick)

The name of the person renting the car.

  • Format: Alphanumeric
  • maxLength: 26
carRental.returnCity String (tick)

The city where the car must be returned.

  • Format: Alphanumeric
  • maxLength: 18
carRental.returnStateProvince String (tick)

The state or province where the car must be returned.

  • Format: Alphanumeric
  • maxLength: 3
carRental.returnCountry String (tick)

The country where the car must be returned.

  • Format: Alphanumeric
  • maxLength: 2
carRental.returnLocationId String (tick)

Agency code, phone number, or address abbreviation

  • Format: Alphanumeric
  • maxLength: 10
carRental.returnDate String (tick)

The last date to return the car by.

  • Date format: yyyyMMdd
carRental.checkOutDate String (tick)

Pick-up date.

  • Date format: yyyyMMdd
carRental.customerServiceTollFreeNumber String (tick)

The customer service phone number of the car rental company.

  • Format: Alphanumeric
  • maxLength: 17
carRental.rate String (tick)

Daily rental rate.

  • Format: Alphanumeric
  • maxLength: 12
carRental.rateIndicator String (tick)

Specifies whether the given rate is applied daily or weekly.

  • D - Daily rate.
  • W - Weekly rate.
carRental.locationCity String (tick)

The location from which the car is rented.

  • Format: Alphanumeric
  • maxLength: 18
carRental.locationStateProvince String (tick)

The state or province from which the car is rented.

  • Format: Alphanumeric
  • maxLength: 3
carRental.locationCountry String (tick)

The country from which the car is rented.

  • Format: Alphanumeric
  • maxLength: 2
carRental.rentalClassId String (tick)

4-digit code referring to car type.

  • Format: Alphanumeric
  • maxLength: 4
carRental.daysRented String (tick)

The number of days the car is to be rented.

  • Format: Alphanumeric
  • maxLength: 4
carRental.taxExemptIndicator String (tick)

Indicates whether the goods or services were tax-exempt, or tax was not collected.

Values:

  • 0 - Tax was not collected
  • 1 - Goods or services were tax exempt
travelEntertainmentAuthData.market
String (tick) Indicates what market-specific dataset will be submitted or is being submitted. Value should be "A" for Car rental. This should be included in the auth message.
  • Format: Alphanumeric
  • maxLength: 1
travelEntertainmentAuthData.duration
String (tick) Number of nights.  This should be included in the auth message.
  • Format: Numeric
  • maxLength: 2
carRental.fuelCharges String (error)

Any fuel charges associated with the rental.

  • Format: Numeric
  • maxLength: 12
carRental.insuranceCharges String (error)

Any insurance charges associated with the rental.

  • Format: Numeric
  • maxLength: 12
carRental.noShowIndicator String (error)

Indicates if the customer was a "no-show" (neither keeps nor cancels their booking).

  • 0 - Not applicable.
  • 1 - Customer was a no show.
carRental.oneWayDropOffCharges String (error) Charge associated with not returning a vehicle to the original rental location.

Open Invoice fields

openinvoicedata

Field

Type

Required

Description

openinvoicedata.numberOfLines

Integer

(tick)

The number of invoice lines included in openinvoicedata.

There needs to be at least one line, so numberOfLines needs to be at least 1.

openinvoicedata.merchantData String (error)

Holds different merchant data points like product, purchase, customer, and so on. It takes data in a Base64 encoded string.

The merchantData parameter needs to be added to the openinvoicedata signature at the end.

Since the field is optional, if it's not included it does not impact computing the merchant signature.

Applies only to Klarna.

You can contact Klarna for the format and structure of the string.

openinvoicedata.installmentConfigurationKey String (error) Required for the Klarna account, identifying an installment plan. Include Klarna’s pclassid for the installment plan.

openinvoicedata.line

A container for a specific line.

The <lineNr> placeholder is replaced with an integer that increments by one unit.

Field

Type

Required

Description

openinvoicedata.line<lineNr>.currencyCode

String

(tick)

The three-character ISO currency code.

openinvoicedata.line<lineNr>.description

String

(tick)

A text description of the product the invoice line refers to.

openinvoicedata.line<lineNr>.itemAmount

Integer
(long)

(tick)

The price for one item in the invoice line, represented in minor units.

The due amount for the item, VAT excluded.

openinvoicedata.line<lineNr>.itemVatAmount

Integer
(long)

(tick)

The VAT due for one item in the invoice line, represented in minor units.

openinvoicedata.line<lineNr>.itemVatPercentage

Integer
(long)

(tick)

The VAT percentage for one item in the invoice line, represented in minor units.

For example, 19% VAT is specified as 1900.

openinvoicedata.line<lineNr>.itemId

String

(error)

A unique id for this item. Required for RatePay if the description of each item is not unique.

openinvoicedata.line<lineNr>.numberOfItems

Integer

(tick)

The number of units purchased of a specific product.

openinvoicedata.line<lineNr>.vatCategory

Enum

(tick)

The country-specific VAT category a product falls under.
Allowed values:

  • High
  • Low
  • None

Split payment fields

With these calls you can split a shopper's payment between several accounts of an account holder, with your marketplace's commission and payment fee. These calls are similar to standard authorise/capture/refund calls, but should also contain additionalData with information how to split a payment. For more information, refer to Processing payments.

If any of the fields provided in additionalData is not validated/correct, the MarketPay system ignores it silently and processes the payment request without additional data.

Field Type Required Description
split.api String (tick)

Fixed value.

This must be the version of the Split API, currently 1.

split.nrOfItems String (tick)

The number of Split Items is how many pieces the payment is split into.

The value specified needs to match the number of Split Items in the request.

split.totalAmount Int (tick)

Total amount of the transaction.

Must be equal to the sum of all item<ItemNr>.amount fields and the amount of the transaction.

split.currencyCode String (tick) Currency of the transaction.
split.item<ItemNr> Object (tick)

Container for a specific item. The <ItemNr> placeholder is replaced with an integer (starting with one) that increments by one unit.

  amount Int (tick)

Part of the totalAmount to be split for this item.

This amount needs to be represented in minor units according to the following table.
Some currencies do not have decimal points, such as JPY, and some have 3 decimal points, such as BHD.
For example, 10 GBP is submitted as 1000, whereas 10 JPY is submitted as 10.

  type String (tick)

Type of the account.

Allowed values:

  • Default – the amount is sent to a marketplace account by default.
  • MarketPlace – indicates that the amount should be sent to an account.
  • Commission – a marketplace's commission, which is specified by the amount field, should be sent to a marketplace.
  • PaymentFee – a payment fee, which is specified by the  amount  field, should be sent to a marketplace.
  • VAT – the tax amount, which is sent to a marketplace account.
  account String (error)

The code of the account that will receive the amount in the split item. This is the accountCode value that you receive in the response when you create an account or an account holder.

Required if the type field is MarketPlace.

  reference String (error)

Reference for the item.

Required if the type field is MarketPlace.

  description  String  (error)  Description of the Split item.

Ratepay fields

These fields should be used within the additionalData field. For more information on submitting additionalData see the PaymentRequest.additionalData topic.

Field Type Required Description
ratepay.installmentAmount

Int (long)

(tick)

Amount the customer has to pay each month

ratepay.lastInstallmentAmount

Int (long)

(tick)

Amount of the last installment

ratepay.interestRate

Double (tick)

Interest rate of this installment

ratepay.paymentFirstday Integer (error) Calendar day of the first payment
ratepaydata.invoiceId String (error) Identification name or number for the invoice, defined by the merchant.
ratepaydata.invoiceDate DateTime (error) Invoice date, defined by the merchant. If not included, the invoice date is set to the delivery date.
ratepaydata.deliveryDate DateTime (error) Date the merchant delivered the goods to the customer.
ratepaydata.dueDate DateTime (error) Date by which the customer must settle the payment.

Wallet fields

Additional data that should be passed along with the /authorise request for wallet payment methods.

Field Type Required Description
androidpay.token String (error) The Android Pay token retrieved from the SDK. For more information, refer to Google Pay.
masterpass.transactionId String (error) The Mastercard Masterpass Transaction ID retrieved from the SDK. For more information, refer to Masterpass.
payment.token String (error)

The Apple Pay token retrieved from the SDK. For more information, refer to Apple Pay.

paywithgoogle.token String (error) The Google Pay token retrieved from the SDK. For more information, refer to Google Pay.
samsungpay.token String (error) The Samsung Pay token retrieved from the SDK. For more information, refer to Samsung Pay.
visacheckout.callId String (error) The Visa Checkout Call ID retrieved from the SDK. For more information, refer to Visa Checkout.

RequestedTestErrorResponseCode

Triggers test scenarios that allow to replicate certain communication errors.

Field Type Required Description
RequestedTestErrorResponseCode String (error)

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.

authorisationType

Flags a card payment request for either pre-authorisation or final authorisation. For more information, refer to Card authorisation types.

Field Type Required Description
authorisationType String (error)

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.

mcAuthorisationType

Flags a Mastercard payment request for either pre-authorisation or final authorisation.

If you are implementing this parameter for the first time, use authorisationType instead. The mcAuthorisationType parameter will be deprecated in future versions of the API.

Field Type Required Description
mcAuthorisationType String (error)

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.

customRoutingFlag

Allows you to determine or override the acquirer account that should be used for the transaction.

Field Type Required Description
customRoutingFlag String (error)

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 the Support Team.

networkTxReference

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.

Currently, can be used for Visa card payments only.

Field Type Required Description
networkTxReference String (error)

Provide this value in a payment request if you are performing a ContAuth transaction over a tokenized PAN that is stored in your system. It allows the issuer to link the ContAuth transaction to the previous ContAuth transaction or the initial recurring transaction in the chain.

Note that this must be a valid reference received in the previous/original transaction as visaTransactionId value. For more information on this field, refer to PaymentResult.additionalData.

Temporary Services fields

For more information on submitting this data, see Send Level 2/3 data for commercial cards.

The top-level container object for all lodging data.

Field Type Required Description
customerReference String (tick)

Customer code, if supplied by a customer.
Encoding: ASCII.

  • maxLength: 25
totalTaxAmount numeric (tick)

Total tax amount, in minor units. For example, 2000 means USD 20.00

  • maxLength: 12
employeeName String (tick)

Name or ID associated with the individual working in a temporary capacity.

  • maxLength: 40
jobDescription String (tick)

Description of the job or task of the individual working in a temporary capacity.

  • maxLength: 40
tempStartDate numeric (tick)

Date for the beginning of the pay period.

Format: ddMMyy

  • maxLength: 6
tempWeekEnding String (tick)

Date of the end of the billing cycle.

Format: ddMMyy

  • maxLength: 6
requestName String (tick)

Name of the individual requesting temporary services.

  • maxLength: 40
regularHoursWorked numeric (tick)

Amount of time worked during a normal operation for the task or job.

  • maxLength: 7
regularHoursRate numeric (tick)

Amount paid per regular hours worked, minor units.

  • maxLength: 7

PaymentRequest3d

The fields described below are the generic payment fields you specify when making an /authorise3d call to the Adyen payment API.

Field Type Required Description
additionalAmount Amount (error)

A container for the data concerning the additional amount to be authorised. It corresponds to the additional/surcharged part of the amount, and it needs to be in the same currency as amount.

additionalAmount is required only if you want to submit a non-zero value auth BIN or card verification request.

To be accepted by the schemes, the value specified in the additionalAmount field needs to be higher than the currency equivalent of 0.02 USD.

additionalData Object (error)

This 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. For more information on possible key-value pairs, refer to the additionalData section.

amount Amount (error)

A container object for the payable amount information for the transaction.

For BIN or card verification requests, its value needs to be 0 (zero).

 

billingAddress Address (error) The address where to send the invoice.
browserInfo BrowserInfo

(error)

A user's browser information.

captureDelayHours Int (error) The delay between the authorisation and scheduled auto-capture, specified in hours.
dateOfBirth String (error)

The shopper's date of birth.

Format: ISO-8601; example: YYYY-MM-DD

dccQuote ForexQuote (error) The forex quote as returned in the response of the forex service.
deliveryAddress Address (error) The address where the purchased goods should be delivered to.
deliveryDate Date (error)

The date and time the purchased goods should be delivered.

  • Format: ISO 8601;  YYYY-MM-DDThh:mm:ss.sssTZD
  • Example: 2017-07-17T13:42:40.428+01:00

deviceFingerprint String (error) A string containing a shopper's device fingerprint. For more information, refer to Device fingerprinting.
fraudOffset Int (error)

An integer value that is added to the normal fraud score. The value can be either positive or negative.

installments Installments (error) Contains information on an installment. For more information, refer to Installments.
md String (tick)

Payment session identifier returned by the card issuer.

mcc String (error)

The 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.

 The list of MCCs can be found here.

merchantAccount String (tick)

The merchant account identifier you want to process the (transaction) request with.

This value must correspond to the merchantAccount used in the original /authorise call.

merchantOrderReference String (error)

This reference allows linking multiple transactions to each other.

When providing the merchantOrderReference value, also make sure to specify required additionalData fields: retry.orderAttemptNumber, retry.chainAttemptNumber, and retry.skipRetry. For more information, refer to PaymentRequest.additionalData.

metadata Object (error)

Metadata consists of entries, each of which includes a key and a value.

Limitations: Error "177", "Metadata size exceeds limit"

  key String (error)

Key for the information to be provided. Example: key = 'storeCountry'

Limitations: Error "178", "Metadata key size exceeds limit"

  value String (error)

Information value. Example: value = 'US'

Limitations: Maximum length: 80 characters, the value is truncated to 80 characters with '...' appended to it.

orderReference String (error) The order reference to link multiple partial payments.
paResponse String (tick)

Payment authorisation response returned by the card issuer. The paResponse field holds the PaRes value received from the card issuer.

recurring Recurring (error)

The recurring properties of the payment.

Specify this property when you want to enable recurring payments.

reference String (error)

A reference to uniquely identify the 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, you can enter them in this field. Separate each reference value with a hyphen character ("-").

This field has a length restriction: you can enter max. 80 characters.

selectedBrand String (error)

Some payment methods require defining a value for this field to specify how to process the transaction.

For the Bancontact payment method, it can be set to:

  • maestro (default), to be processed like a Maestro card, or
  • bcmc, to be processed like a Bancontact card.
selectedRecurringDetailReference String (error) The recurringDetailReference you want to use for this payment.
sessionId String (error) A session identifier used to identify a payment session.
shopperEmail String (error)

The shopper's email address.

We recommend you provide this data, as it is used in velocity fraud checks.

shopperIP String (tick)

The shopper's IP address.

We recommend you provide this data, as it is used in a number of risk checks. For example: number of payment attempts, location based checks.

shopperInteraction String (error)

Specifies the following information:

  • The sales channel the shopper gives their card details through;
  • Whether the shopper is a returning customer.

By default, for the web service APIAdyen assumes Ecommerce shopper interaction.

This field has the following possible values:

  • Ecommerce - Online transactions where the card holder is present (online). For better authorisation rates, we recommend sending the card security code (CSC) along with the request.
  • ContAuth - Card on file and/or subscription transactions, where the card holder is known to the merchant (returning customer). If the shopper is present (online), you can supply also the CSC to improve authorisation (one-click payment).
  • POS - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.
  • Moto - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone.
shopperLocale String (error) The combination of a language code and a country code to specify the language to be used in the payment.
shopperName Name (error) A shopper's full name and gender (if specified).
shopperReference String (error)

A shopper's reference for the payment transaction.

We recommend you provide this data.

This field is required for recurring payments.

shopperStatement String (error)

Set this field in your payment request if you want to include a variable shopper statement.

You can include placeholders for the references. For example:

  • ${reference} for the merchant reference
  • ${pspReference} for the PSP reference.

Note:

  • Not all acquirers support dynamic shopper statements.
  • Maximum allowed character length: 135 characters. For Visa/Mastercard: 25/22 respectively.
  • Allowed characters: a-zA-Z0-9.,-?|
  • Not supported for all payments methods, for further information contact Support Team.

socialSecurityNumber String (error) A shopper's social security number.
telephoneNumber String (error) A shopper's telephone number.

PaymentRequest3d.additionalData

The additionalData object is a generic container that can hold extra request fields. You may require to pass these fields along with payment request data, for example, to better manage risky transactions or to initiate a payment using some local payment methods.

This functionality requires additional configuration on Adyen's end. To enable it, contact the  Support Team.

For more information on possible key-value pairs in additionalData, refer to PaymentRequest.additionalData.

Secure+ fields

Field Type Required Description
mpiImplementationType String (tick)

In case of Secure+, this field must be set to CUPSecurePlus.

PaymentResult

If the message passes validation, a risk analysis is performed. Depending on the outcome, an authorisation is attempted and you receive a response with the following fields:

Field Type Required Description
additionalData Object (error)

This 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. For more information on possible key-value pairs, refer to the additionalData section.

authCode String (tick)

Authorisation code: 

  • When the payment is authorised successfully, this field holds the authorisation code for the payment. 
  • When the payment is not authorised, this field is empty.

If a payment authorisation response includes resultCode and refusalReason, it means that the transaction either failed or was declined. Check their values for further details about any issues that affected the operation.

dccAmount Amount (error)

The dccAmount includes the currency of the conversion and the value of the transaction.

This value only applies if you have implemented Dynamic Currency Conversion. For more information, contact Support Team

dccSignature String (error)

Cryptographic signature used to verify ForexQuote.

This value only applies if you have implemented Dynamic Currency Conversion. For more information, contact Support Team

fraudResult FraudResult (error) The fraud result properties of the payment.

issuerUrl

String (error)

The URL to direct the shopper to.

In case of SecurePlus, do not redirect a shopper to this URL.

md

String (error) The payment session.

paRequest

String (error)

The 3D request data for the issuer.

If the value is CUPSecurePlus-CollectSMSVerificationCode, collect an SMS code from the shopper and pass it in the authorise3D request. For more information, see 3D Secure.

pspReference
String (tick)
Adyen's 16-character unique reference associated with the transaction/the request. This value is globally unique; quote it when communicating with us about this request.
refusalReason String (error)

When the payment is not authorised, it is refused, or if an error occurs, this field holds Adyen's mapped reason for the refusal or a description of the error.

Possible error messages:

  • Transaction not found
  • Transaction is expired
  • Insufficient balance on payment
  • Only possible to refund the full amount
  • Only possible to capture the full amount
  • Modification in different currency than authorisation
  • Internal error
  • Operation not available
  • Operation not allowed
  • Operation failed
  • Recurring not supported for this payment method
  • Recurring transaction failed
  • Recurring contract is not active
  • Recurring contract not found
  • Recurring initial payment not found
  • Recurring initial payment not available
  • Recurring contract already exists
  • Fund Transfer not supported for this payment method
  • Fund Transfer failed
  • Fund Transfer: initial payment not found
  • Fund Transfer: Original Transaction is never authorised
  • The payment details have expired
  • Fund Transfer: unable to transfer to this bankaccount
  • InvoiceLines are incorrect
  • Incomplete or invalid payment details
  • No suitable capture found for partial refund
  • Invalid referral authorisation code

When a payment authorisation response includes resultCode and refusalReason, the transaction failed or was declined. Check their values to know the issues that affected the operation.

resultCode
String (tick)

The outcome of the payment. The possible values are:

  • Authorised
  • Refused
  • Error
  • Cancelled
  • Received
  • RedirectShopper

PaymentResult.additionalData

The additionalData object is a generic container that can hold extra response fields. This functionality is not enabled by default. To specify additionalData that you want to receive, go to Customer Area > Account > API URLs.

When the additionalData object is enabled for your merchant account, it can be configured to return the following fields in API responses and/or payment notifications:

Field Type Returned by default Description
acquirerAccountCode String (error)

The status of the Adyen acquirer account.

Example: PayPalSandbox_TestAcquirer

Only relevant for PayPal transactions.

acquirerCode String (error)

The name of the acquirer processing the payment request.

Example: TestPmmAcquirer

acquirerReference String (error)

The reference number that can be used for reconciliation in case a non-Adyen acquirer is used for settlement.

Example: 7C9N3FNBKT9

alias String (error)

The Adyen alias of the card.

Example: H167852639363479

aliasType String (error)

The type of the card alias.

Example: Default

authCode String (error)

Authorisation code:

  • When the payment is authorised successfully, this field holds the authorisation code for the payment.
  • When the payment is not authorised, this field is empty.

Example: 58747

authorisedAmountCurrency String (error)

The currency of the authorised amount, as a three-character ISO currency code.

authorisedAmountValue Int (error)

Value of the amount authorised.

This amount is represented in minor units according to the following table.

avsResult String (error)

The AVS result code of the payment, which provides information about the outcome of the AVS check.

For possible values, see AVS.

avsResultRaw String (error)

Raw AVS result received from the acquirer, where available.

Example: 7

bic String (error)

BIC of a bank account.

Example: TESTNL01

Only relevant for SEPA Direct Debit transactions.

billingAddress.city

String (error) The billing address city passed in the payment request.

billingAddress.country

String (error)

The billing address country passed in the payment request.

Example: NL

billingAddress.houseNumberOrName

String (error) The billing address house number or name passed in the payment request.

billingAddress.postalCode

String (error)

The billing address postal code passed in the payment request.

Example: 1011 DJ

billingAddress.stateOrProvince

String (error)

The billing address state or province passed in the payment request.

Example: NH

billingAddress.street

String (error) The billing address street passed in the payment request.

cardBin

String (error)

The Bank Identification Number of a credit card, which is the first six digits of a card number.

Example: 521234

cardHolderName

String (error) The cardholder name passed in the payment request.

cardIssuingBank

String (error) The bank or the financial institution granting lines of credit through card association branded payment cards. This information can be included when available.
cardIssuingCountry String (error)

The country where the card was issued.

Example: US

cardIssuingCurrency

String (error)

The currency in which the card is issued, if this information is available.

Example: USD

cardPaymentMethod String (error)

The card payment method used for the transaction.

Example: amex

cardSummary

String (error)

The last four digits of a card number.

Returned only in case of a card payment.

cavv String (error)

The Cardholder Authentication Verification Value for the 3DS authentication session. The returned value is a Base64-encoded 20-byte array.

Example: AQIDBAUGBwgJCgsMDQ4PEBESExQ=

cavvAlgorithm String (error)

The algorithm used to generate the 3DS Cardholder Authentication Verification Value.

Example: 3

countryCode String (error)

The country code of a bank account.

Example: NL

Only relevant for SEPA Direct Debit transactions.

cvcResult String (error)

The CVC result code, which provides information about the outcome of the CVC check.

For possible cvcResult values, see CVC-CVV result testing.

cvcResultRaw String (error)

Raw CVC result received from the acquirer, where available.

Example: 1

deliveryAddress.stateOrProvince String (error)

The delivery address state or province passed in the payment request.

Example: NH

deliveryAddress.city String (error) The delivery address city passed in the payment request.
deliveryAddress.postalCode String (error)

The delivery address postal code passed in the payment request.

Example: 1011 DJ

deliveryAddress.street String (error) The delivery address street passed in the payment request.
deliveryAddress.houseNumberOrName String (error) The delivery address house number or name passed in the payment request.
deliveryAddress.country String (error)

The delivery address country passed in the payment request.

Example: NL

eci String (error)

The Electronic Commerce Indicator returned from the schemes for the 3DS payment session.

Example: 02

expiryDate String (error)

The expiry date on the card.

Example: 6/2016

Returned only in case of a card payment.

extraCostsCurrency String (error)

The currency of the extra amount charged due to additional amounts set in the skin used in the HPP payment request.

Example: EUR

extraCostsValue String (error) The value of the extra amount charged due to additional amounts set in the skin used in the HPP payment request. The amount is in minor units.

fraudCheck-[nn]-
[Fraud Check name]

String (error) The fraud score due to a particular fraud check. The fraud check name is found in the key of the key-value pair.
fundingSource String (error)

Information regarding the funding type of the card.

The possible return values are:

  • CHARGE
  • CREDIT
  • DEBIT
  • PREPAID
  • DEFFERED_DEBIT

This functionality requires additional configuration on Adyen's end. To enable it, contact the  Support Team.

For receiving this field in the notification, enable Include Funding Source in Notifications > Additional settings.


fundsAvailability Enum (error)

Indicates availability of funds.

Visa:

  • "I" (fast funds are supported)
  • "N" (otherwise)

Mastercard:

  • "I" (product type is Prepaid or Debit, or issuing country is in CEE/HGEM list)
  • "N" (otherwise)

Returned when you verify a card BIN or estimate costs, and only if payoutEligible is different from "N" or "U".

inferredRefusalReason String (error)
Provides the more granular indication of why a transaction was refused.
When a transaction fails with either “Refused", “Restricted Card", "Transaction Not Permitted”, “Not supported” or "DeclinedNon Generic" refusalReason from the issuer, Adyen cross references its PSP-wide data for extra insight into the refusal reason.
If an inferred refusal reason is available, the inferredRefusalReason field is populated and the refusalReason is set to "Not Supported".

Possible values:

  • 3D Secure Mandated
  • ContAuth Not Supported
  • CVC Mandated
  • Ecommerce Not Allowed
  • Crossborder Not Supported
  • Card Updated
  • Low Authrate Bin
  • Non-reloadable prepaid card
installments.value String (error)

The number of installments that the payment amount should be charged with.

Example: 5

Only relevant for card payments in countries that support installments.

issuerCountry String (error)

The issuing country of the card based on the BIN list that Adyen maintains.

Example: JP

ownerName String (error)

The owner name of a bank account.

Only relevant for SEPA Direct Debit transactions.

paymentAccountReference String (error) The Payment Account Reference (PAR) value links a network token with the underlying primary account number (PAN). The PAR value consists of 29 uppercase alphanumeric characters.
paymentMethodVariant String (error)

The Adyen sub-variant of the payment method used for the payment request.

For more information, refer to PaymentMethodVariant.

Example: mcpro

payoutEligible Enum (error)

Indicates whether a payout is eligible or not for this card.

Visa:

  • "Y"
  • "N"

Mastercard:

  • "Y" (domestic and cross-border)
  • "D" (only domestic)
  • "N" (no MoneySend)
  • "U" (unknown)

Returned when you verify a card BIN or estimate costs, and only if payoutEligible is different from "N" or "U".

paypalPayerStatus String (error)

The status of the buyer's PayPal account.

Example: unverified

Only relevant for PayPal transactions.

paypalPayerResidenceCountry String (error)

The buyer's country of residence.

Example: NL

Only relevant for PayPal transactions.

paypalPayerId String (error)

The buyer's PayPal ID.

Example: LF5HCWWBRV2KL

Only relevant for PayPal transactions.

paypalEmail String (error)

The buyer's PayPal account email address.

Example: paypaltest@adyen.com

Only relevant for PayPal transactions.

paypalProtectionEligibility String (error)

The eligibility for PayPal Seller Protection for this payment.

Example: Ineligible

Only relevant for PayPal transactions.

realtimeAccountUpdaterStatus String (error)

The response code from the Real Time Account Updater service.

Possible return values are:

  • CardChanged
  • CardExpiryChanged
  • CloseAccount
  • ContactCardAccountHolder
recurring.firstPspReference String (error)

The pspReference of the first recurring payment that created the recurring detail.

This functionality requires additional configuration on Adyen's end. To enable it, contact the  Support Team.

recurring.recurringDetailReference String (error)

The reference that uniquely identifies the recurring detail.

This functionality requires additional configuration on Adyen's end. To enable it, contact the  Support Team.

referred Boolean (error)

If the payment is referred, this field is set to true.

This field is unavailable if the payment is referred and is usually not returned with ecommerce transactions.

Example: true

refusalReasonRaw String (error)

Raw refusal reason received from the acquirer, where available.

Example: AUTHORISED

sepadirectdebit.dateOfSignature String (error)

The transaction signature date.

Format: yyyy-MM-dd

Only relevant for SEPA Direct Debit transactions.

sepadirectdebit.mandateId String (error)

Its value corresponds to the  pspReference value of the transaction.

Only relevant for SEPA Direct Debit transactions.


sepadirectdebit.sequenceType String (error)

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

Only relevant for SEPA Direct Debit transactions.

shopperInteraction String (error)

The shopper interaction type of the payment request.

Example: Ecommerce

shopperReference String (error)

The shopperReference passed in the payment request.

Example: AdyenTestShopperXX

terminalId String (error)

The terminal ID used in a point-of-sale payment.

Example: 06022622

threeDAuthenticated Boolean (error)

A Boolean value indicating whether 3DS authentication was completed on this payment.

Example: true

threeDAuthenticatedResponse String (error)

The raw 3DS authentication result from the card issuer.

Example: N

threeDOffered Boolean (error)

A Boolean value indicating whether 3DS was offered for this payment.

Example: true

threeDOfferedResponse String (error)

The raw enrollment result from the 3DS directory services of the card schemes.

Example: Y

xid String (error)

The 3DS transaction ID of the 3DS session. The value is Base64-encoded and is returned for transactions with directoryResponse 'N' or 'Y'.

Example:

ODgxNDc2MDg2MDExODk5MAAAAAA=

mcBankNetReferenceNumber String (error)

The mcBankNetReferenceNumber is a minimum of six characters and a maximum of nine characters long.

Contact Support Team to enable this field.

visaTransactionId String (error)

The visaTransactionId has a fixed length of 15 numeric characters.

Contact Support Team to enable this field.

receiptFreeText
String (error) Message to the merchant to be displayed on Terminal/shopper.

installmentPaymentData
.installmentType

String

(tick)

Type of installment. The value of installmentType should be IssuerFinanced.

installmentPaymentData
.paymentOptions

String

(tick)

Possible values:

  • PayInInstallmentsOnly
  • PayInFullOnly
  • PayInFullOrInstallments

installmentPaymentData.option_<Nr>
.numberOfInstallments

Integer

(error)

Total number of installments possible for this payment.

installmentPaymentData.option_<Nr>
.interestRate

Double

(error)

Interest rate for the installment period.

installmentPaymentData.option_<Nr>
.
installmentFee

Integer

(error)

Installment fee amount in minor units.

installmentPaymentData.option_<Nr>
.annualPercentageRate

Double

(error)

Annual interest rate.

installmentPaymentData.option_<Nr>
.firstInstallmentAmount

Integer

(error)

First Installment Amount in minor units.

installmentPaymentData.option_<Nr>
.subsequentInstallmentAmount

Integer

(error)

Subsequent Installment Amount in minor units.

installmentPaymentData.option_<Nr>
.minimumNumberOfInstallments

Integer

(error)

Maximum number of installments possible for this payment.

installmentPaymentData.option_<Nr>
.maximumNumberOfInstallments

Integer

(error)

Minimum number of installments possible for this payment.

installmentPaymentData.option_<Nr>
.totalAmountDue

Integer (error)

Total amount in minor units.

<Nr> refers to the specific installment option. Options are incremented based on the number of installment options supplied by the Issuer.

Recurring

A container for the type of recurring contract to be retrieved.

Field Type Required Description
contract String (tick)

The type of recurring contract to be used.

Possible values:

  • ONECLICK – The shopper opts to store their card details for future use.
    The shopper is present for the subsequent transaction, for cards the security code (CVC/CVV) is required.
  • RECURRING – Payment details are stored for future use. For cards, the security code (CVC/CVV) is not required for subsequent payments.
    This is used for shopper not present transactions.
  • ONECLICK,RECURRING – Payment details are stored for future use.
    This allows the use of the stored payment details regardless of whether the shopper is on your site or not.

ThreeDSecureData

To authorise payments with Adyen using 3D Secure authenticated data, send an /authorise request with an mpiData object containing the following parameters. Get the values from the authentication data produced by a 3DS 1.0 MPI (Mastercard SecureCode or Verified By Visa) or a 3DS 2.0 provider.

Field Type Required Description
authenticationResponse String (error)

In 3DS 1.0, this is the authentication response if a shopper was redirected.

In 3DS 2.0, include this parameter if the transaction goes through a challenge authentication flow. This is the transStatus from the last CRes (Challenge Response) message from the ACS to the 3D Secure client or in the RRes (Results Request) from ACS to 3D Secure server sent after the shopper completes the challenge.

cavv String (error) This is the cardholder authentication value (base64 encoded, 20 bytes in a decoded form).
cavvAlgorithm String (error) Include this only for 3DS 1.0. The CAVV algorithm used.
directoryResponse String (error)

The enrollment response from the directory server.

In 3D Secure 2.0 specifications, this is the transStatus from the ARes (Authentication Request) message sent by the ACS to the 3D Secure provider.

eci String (error)

The electronic commerce indicator.

xid String (error)

The transaction identifier assigned by directory server (base64 encoded, 20 bytes in a decoded form).

This is the dsTransID in 3D Secure 2.0 specifications.

threeDSVersion String (error) Include this only for 3DS 2.0. The current supported version is 2.1.0.