@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Adyen Payment API
@base https://pal-test.adyen.com/pal/servlet/Payment/v68
@version 68
@auth ApiKey X-API-Key in header | Bearer basic
@common_fields {merchantAccount: str}
@endpoints 13
@toc adjustAuthorisation(1), authorise(1), authorise3d(1), authorise3ds2(1), cancel(1), cancelOrRefund(1), capture(1), donate(1), getAuthenticationResult(1), refund(1), retrieve3ds2Result(1), technicalCancel(1), voidPendingRefund(1)

@group adjustAuthorisation
@endpoint POST /adjustAuthorisation
@required {modificationAmount: map{currency!: str, value!: int(int64)}, originalReference: str}
@optional {additionalData: map, mpiData: map{authenticationResponse: str, cavv: str(byte), cavvAlgorithm: str, challengeCancel: str, directoryResponse: str, dsTransID: str, eci: str, riskScore: str, threeDSVersion: str, tokenAuthenticationVerificationValue: str(byte), transStatusReason: str, xid: str(byte)}, originalMerchantReference: str, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, reference: str, splits: [map{account: str, amount: map, description: str, reference: str, type!: str}], tenderReference: str, uniqueTerminalId: str}
@returns(200) {additionalData: map, pspReference: str, response: str}
@errors {400, 401, 403, 422, 500}

@endgroup

@group authorise
@endpoint POST /authorise
@required {amount: map{currency!: str, value!: int(int64)}, reference: str}
@optional {accountInfo: map{accountAgeIndicator: str, accountChangeDate: str(date-time), accountChangeIndicator: str, accountCreationDate: str(date-time), accountType: str, addCardAttemptsDay: int(int32), deliveryAddressUsageDate: str(date-time), deliveryAddressUsageIndicator: str, homePhone: str, mobilePhone: str, passwordChangeDate: str(date-time), passwordChangeIndicator: str, pastTransactionsDay: int(int32), pastTransactionsYear: int(int32), paymentAccountAge: str(date-time), paymentAccountIndicator: str, purchasesLast6Months: int(int32), suspiciousActivity: bool, workPhone: str}, additionalAmount: map{currency!: str, value!: int(int64)}, additionalData: map, applicationInfo: map{adyenLibrary: map, adyenPaymentSource: map, externalPlatform: map, merchantApplication: map, merchantDevice: map, shopperInteractionDevice: map}, bankAccount: map{bankAccountNumber: str, bankCity: str, bankLocationId: str, bankName: str, bic: str, countryCode: str, iban: str, ownerName: str, taxId: str}, billingAddress: map{city!: str, country!: str, houseNumberOrName!: str, postalCode!: str, stateOrProvince: str, street!: str}, browserInfo: map{acceptHeader!: str, colorDepth!: int(int32), javaEnabled!: bool, javaScriptEnabled: bool, language!: str, screenHeight!: int(int32), screenWidth!: int(int32), timeZoneOffset!: int(int32), userAgent!: str}, captureDelayHours: int(int32), card: map{cvc: str, expiryMonth: str, expiryYear: str, holderName: str, issueNumber: str, number: str, startMonth: str, startYear: str}, dateOfBirth: str(date), dccQuote: map{account: str, accountType: str, baseAmount: map, basePoints!: int(int32), buy: map, interbank: map, reference: str, sell: map, signature: str, source: str, type: str, validTill!: str(date-time)}, deliveryAddress: map{city!: str, country!: str, houseNumberOrName!: str, postalCode!: str, stateOrProvince: str, street!: str}, deliveryDate: str(date-time), deviceFingerprint: str, entityType: str(NaturalPerson/CompanyName), fraudOffset: int(int32), fundDestination: map{IBAN: str, additionalData: map, billingAddress: map, card: map, selectedRecurringDetailReference: str, shopperEmail: str, shopperName: map, shopperReference: str, subMerchant: map, telephoneNumber: str, walletPurpose: str}, fundSource: map{additionalData: map, billingAddress: map, card: map, shopperEmail: str, shopperName: map, telephoneNumber: str}, fundingSource: str(credit/debit/prepaid), installments: map{extra: int(int32), plan: str, value!: int(int32)}, localizedShopperStatement: map, mandate: map{amount!: str, amountRule: str, billingAttemptsRule: str, billingDay: str, count: str, endsAt!: str, frequency!: str, remarks: str, startsAt: str}, mcc: str, merchantOrderReference: str, merchantRiskIndicator: map{addressMatch: bool, deliveryAddressIndicator: str, deliveryEmail: str, deliveryEmailAddress: str, deliveryTimeframe: str, giftCardAmount: map, giftCardCount: int(int32), giftCardCurr: str, preOrderDate: str(date-time), preOrderPurchase: bool, preOrderPurchaseInd: str, reorderItems: bool, reorderItemsInd: str, shipIndicator: str}, metadata: map, mpiData: map{authenticationResponse: str, cavv: str(byte), cavvAlgorithm: str, challengeCancel: str, directoryResponse: str, dsTransID: str, eci: str, riskScore: str, threeDSVersion: str, tokenAuthenticationVerificationValue: str(byte), transStatusReason: str, xid: str(byte)}, nationality: str, orderReference: str, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, recurring: map{contract: str, recurringDetailName: str, recurringExpiry: str(date-time), recurringFrequency: str, tokenService: str}, recurringProcessingModel: str(CardOnFile/Subscription/UnscheduledCardOnFile), secureRemoteCommerceCheckoutData: map{checkoutPayload: str, correlationId: str, cvc: str, digitalCardId: str, scheme: str, tokenReference: str}, selectedBrand: str, selectedRecurringDetailReference: str, sessionId: str, shopperEmail: str, shopperIP: str, shopperInteraction: str(Ecommerce/ContAuth/Moto/POS), shopperLocale: str, shopperName: map{firstName!: str, lastName!: str}, shopperReference: str, shopperStatement: str, socialSecurityNumber: str, splits: [map{account: str, amount: map, description: str, reference: str, type!: str}], store: str, telephoneNumber: str, threeDS2RequestData: map{acctInfo: map, acctType: str, acquirerBIN: str, acquirerMerchantID: str, addrMatch: str, authenticationOnly: bool, challengeIndicator: str, deviceChannel!: str, deviceRenderOptions: map, homePhone: map, mcc: str, merchantName: str, messageVersion: str, mobilePhone: map, notificationURL: str, payTokenInd: bool, paymentAuthenticationUseCase: str, purchaseInstalData: str, recurringExpiry: str, recurringFrequency: str, sdkAppID: str, sdkEncData: str, sdkEphemPubKey: map, sdkMaxTimeout: int(int32), sdkReferenceNumber: str, sdkTransID: str, sdkVersion: str, threeDSCompInd: str, threeDSRequestorAuthenticationInd: str, threeDSRequestorAuthenticationInfo: map, threeDSRequestorChallengeInd: str, threeDSRequestorID: str, threeDSRequestorName: str, threeDSRequestorPriorAuthenticationInfo: map, threeDSRequestorURL: str, transType: str, transactionType: str, whiteListStatus: str, workPhone: map}, threeDSAuthenticationOnly: bool=false, totalsGroup: str, trustedShopper: bool}
@returns(200) {additionalData: map, authCode: str, dccAmount: map{currency: str, value: int(int64)}, dccSignature: str, fraudResult: map{accountScore: int(int32), results: [any]}, issuerUrl: str, md: str, paRequest: str, pspReference: str, refusalReason: str, resultCode: str}
@errors {400, 401, 403, 422, 500}

@endgroup

@group authorise3d
@endpoint POST /authorise3d
@required {md: str, paResponse: str}
@optional {accountInfo: map{accountAgeIndicator: str, accountChangeDate: str(date-time), accountChangeIndicator: str, accountCreationDate: str(date-time), accountType: str, addCardAttemptsDay: int(int32), deliveryAddressUsageDate: str(date-time), deliveryAddressUsageIndicator: str, homePhone: str, mobilePhone: str, passwordChangeDate: str(date-time), passwordChangeIndicator: str, pastTransactionsDay: int(int32), pastTransactionsYear: int(int32), paymentAccountAge: str(date-time), paymentAccountIndicator: str, purchasesLast6Months: int(int32), suspiciousActivity: bool, workPhone: str}, additionalAmount: map{currency!: str, value!: int(int64)}, additionalData: map, amount: map{currency!: str, value!: int(int64)}, applicationInfo: map{adyenLibrary: map, adyenPaymentSource: map, externalPlatform: map, merchantApplication: map, merchantDevice: map, shopperInteractionDevice: map}, billingAddress: map{city!: str, country!: str, houseNumberOrName!: str, postalCode!: str, stateOrProvince: str, street!: str}, browserInfo: map{acceptHeader!: str, colorDepth!: int(int32), javaEnabled!: bool, javaScriptEnabled: bool, language!: str, screenHeight!: int(int32), screenWidth!: int(int32), timeZoneOffset!: int(int32), userAgent!: str}, captureDelayHours: int(int32), dateOfBirth: str(date), dccQuote: map{account: str, accountType: str, baseAmount: map, basePoints!: int(int32), buy: map, interbank: map, reference: str, sell: map, signature: str, source: str, type: str, validTill!: str(date-time)}, deliveryAddress: map{city!: str, country!: str, houseNumberOrName!: str, postalCode!: str, stateOrProvince: str, street!: str}, deliveryDate: str(date-time), deviceFingerprint: str, fraudOffset: int(int32), installments: map{extra: int(int32), plan: str, value!: int(int32)}, localizedShopperStatement: map, mcc: str, merchantOrderReference: str, merchantRiskIndicator: map{addressMatch: bool, deliveryAddressIndicator: str, deliveryEmail: str, deliveryEmailAddress: str, deliveryTimeframe: str, giftCardAmount: map, giftCardCount: int(int32), giftCardCurr: str, preOrderDate: str(date-time), preOrderPurchase: bool, preOrderPurchaseInd: str, reorderItems: bool, reorderItemsInd: str, shipIndicator: str}, metadata: map, orderReference: str, recurring: map{contract: str, recurringDetailName: str, recurringExpiry: str(date-time), recurringFrequency: str, tokenService: str}, recurringProcessingModel: str(CardOnFile/Subscription/UnscheduledCardOnFile), reference: str, selectedBrand: str, selectedRecurringDetailReference: str, sessionId: str, shopperEmail: str, shopperIP: str, shopperInteraction: str(Ecommerce/ContAuth/Moto/POS), shopperLocale: str, shopperName: map{firstName!: str, lastName!: str}, shopperReference: str, shopperStatement: str, socialSecurityNumber: str, splits: [map{account: str, amount: map, description: str, reference: str, type!: str}], store: str, telephoneNumber: str, threeDS2RequestData: map{acctInfo: map, acctType: str, acquirerBIN: str, acquirerMerchantID: str, addrMatch: str, authenticationOnly: bool, challengeIndicator: str, deviceChannel!: str, deviceRenderOptions: map, homePhone: map, mcc: str, merchantName: str, messageVersion: str, mobilePhone: map, notificationURL: str, payTokenInd: bool, paymentAuthenticationUseCase: str, purchaseInstalData: str, recurringExpiry: str, recurringFrequency: str, sdkAppID: str, sdkEncData: str, sdkEphemPubKey: map, sdkMaxTimeout: int(int32), sdkReferenceNumber: str, sdkTransID: str, sdkVersion: str, threeDSCompInd: str, threeDSRequestorAuthenticationInd: str, threeDSRequestorAuthenticationInfo: map, threeDSRequestorChallengeInd: str, threeDSRequestorID: str, threeDSRequestorName: str, threeDSRequestorPriorAuthenticationInfo: map, threeDSRequestorURL: str, transType: str, transactionType: str, whiteListStatus: str, workPhone: map}, threeDSAuthenticationOnly: bool=false, totalsGroup: str, trustedShopper: bool}
@returns(200) {additionalData: map, authCode: str, dccAmount: map{currency: str, value: int(int64)}, dccSignature: str, fraudResult: map{accountScore: int(int32), results: [any]}, issuerUrl: str, md: str, paRequest: str, pspReference: str, refusalReason: str, resultCode: str}
@errors {400, 401, 403, 422, 500}

@endgroup

@group authorise3ds2
@endpoint POST /authorise3ds2
@required {amount: map{currency!: str, value!: int(int64)}, reference: str}
@optional {accountInfo: map{accountAgeIndicator: str, accountChangeDate: str(date-time), accountChangeIndicator: str, accountCreationDate: str(date-time), accountType: str, addCardAttemptsDay: int(int32), deliveryAddressUsageDate: str(date-time), deliveryAddressUsageIndicator: str, homePhone: str, mobilePhone: str, passwordChangeDate: str(date-time), passwordChangeIndicator: str, pastTransactionsDay: int(int32), pastTransactionsYear: int(int32), paymentAccountAge: str(date-time), paymentAccountIndicator: str, purchasesLast6Months: int(int32), suspiciousActivity: bool, workPhone: str}, additionalAmount: map{currency!: str, value!: int(int64)}, additionalData: map, applicationInfo: map{adyenLibrary: map, adyenPaymentSource: map, externalPlatform: map, merchantApplication: map, merchantDevice: map, shopperInteractionDevice: map}, billingAddress: map{city!: str, country!: str, houseNumberOrName!: str, postalCode!: str, stateOrProvince: str, street!: str}, browserInfo: map{acceptHeader!: str, colorDepth!: int(int32), javaEnabled!: bool, javaScriptEnabled: bool, language!: str, screenHeight!: int(int32), screenWidth!: int(int32), timeZoneOffset!: int(int32), userAgent!: str}, captureDelayHours: int(int32), dateOfBirth: str(date), dccQuote: map{account: str, accountType: str, baseAmount: map, basePoints!: int(int32), buy: map, interbank: map, reference: str, sell: map, signature: str, source: str, type: str, validTill!: str(date-time)}, deliveryAddress: map{city!: str, country!: str, houseNumberOrName!: str, postalCode!: str, stateOrProvince: str, street!: str}, deliveryDate: str(date-time), deviceFingerprint: str, fraudOffset: int(int32), installments: map{extra: int(int32), plan: str, value!: int(int32)}, localizedShopperStatement: map, mcc: str, merchantOrderReference: str, merchantRiskIndicator: map{addressMatch: bool, deliveryAddressIndicator: str, deliveryEmail: str, deliveryEmailAddress: str, deliveryTimeframe: str, giftCardAmount: map, giftCardCount: int(int32), giftCardCurr: str, preOrderDate: str(date-time), preOrderPurchase: bool, preOrderPurchaseInd: str, reorderItems: bool, reorderItemsInd: str, shipIndicator: str}, metadata: map, orderReference: str, recurring: map{contract: str, recurringDetailName: str, recurringExpiry: str(date-time), recurringFrequency: str, tokenService: str}, recurringProcessingModel: str(CardOnFile/Subscription/UnscheduledCardOnFile), selectedBrand: str, selectedRecurringDetailReference: str, sessionId: str, shopperEmail: str, shopperIP: str, shopperInteraction: str(Ecommerce/ContAuth/Moto/POS), shopperLocale: str, shopperName: map{firstName!: str, lastName!: str}, shopperReference: str, shopperStatement: str, socialSecurityNumber: str, splits: [map{account: str, amount: map, description: str, reference: str, type!: str}], store: str, telephoneNumber: str, threeDS2RequestData: map{acctInfo: map, acctType: str, acquirerBIN: str, acquirerMerchantID: str, addrMatch: str, authenticationOnly: bool, challengeIndicator: str, deviceChannel!: str, deviceRenderOptions: map, homePhone: map, mcc: str, merchantName: str, messageVersion: str, mobilePhone: map, notificationURL: str, payTokenInd: bool, paymentAuthenticationUseCase: str, purchaseInstalData: str, recurringExpiry: str, recurringFrequency: str, sdkAppID: str, sdkEncData: str, sdkEphemPubKey: map, sdkMaxTimeout: int(int32), sdkReferenceNumber: str, sdkTransID: str, sdkVersion: str, threeDSCompInd: str, threeDSRequestorAuthenticationInd: str, threeDSRequestorAuthenticationInfo: map, threeDSRequestorChallengeInd: str, threeDSRequestorID: str, threeDSRequestorName: str, threeDSRequestorPriorAuthenticationInfo: map, threeDSRequestorURL: str, transType: str, transactionType: str, whiteListStatus: str, workPhone: map}, threeDS2Result: map{authenticationValue: str, cavvAlgorithm: str, challengeCancel: str, dsTransID: str, eci: str, exemptionIndicator: str, messageVersion: str, riskScore: str, threeDSRequestorChallengeInd: str, threeDSServerTransID: str, timestamp: str, transStatus: str, transStatusReason: str, whiteListStatus: str}, threeDS2Token: str, threeDSAuthenticationOnly: bool=false, totalsGroup: str, trustedShopper: bool}
@returns(200) {additionalData: map, authCode: str, dccAmount: map{currency: str, value: int(int64)}, dccSignature: str, fraudResult: map{accountScore: int(int32), results: [any]}, issuerUrl: str, md: str, paRequest: str, pspReference: str, refusalReason: str, resultCode: str}
@errors {400, 401, 403, 422, 500}

@endgroup

@group cancel
@endpoint POST /cancel
@required {originalReference: str}
@optional {additionalData: map, mpiData: map{authenticationResponse: str, cavv: str(byte), cavvAlgorithm: str, challengeCancel: str, directoryResponse: str, dsTransID: str, eci: str, riskScore: str, threeDSVersion: str, tokenAuthenticationVerificationValue: str(byte), transStatusReason: str, xid: str(byte)}, originalMerchantReference: str, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, reference: str, splits: [map{account: str, amount: map, description: str, reference: str, type!: str}], tenderReference: str, uniqueTerminalId: str}
@returns(200) {additionalData: map, pspReference: str, response: str}
@errors {400, 401, 403, 422, 500}

@endgroup

@group cancelOrRefund
@endpoint POST /cancelOrRefund
@required {originalReference: str}
@optional {additionalData: map, mpiData: map{authenticationResponse: str, cavv: str(byte), cavvAlgorithm: str, challengeCancel: str, directoryResponse: str, dsTransID: str, eci: str, riskScore: str, threeDSVersion: str, tokenAuthenticationVerificationValue: str(byte), transStatusReason: str, xid: str(byte)}, originalMerchantReference: str, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, reference: str, tenderReference: str, uniqueTerminalId: str}
@returns(200) {additionalData: map, pspReference: str, response: str}
@errors {400, 401, 403, 422, 500}

@endgroup

@group capture
@endpoint POST /capture
@required {modificationAmount: map{currency!: str, value!: int(int64)}, originalReference: str}
@optional {additionalData: map, mpiData: map{authenticationResponse: str, cavv: str(byte), cavvAlgorithm: str, challengeCancel: str, directoryResponse: str, dsTransID: str, eci: str, riskScore: str, threeDSVersion: str, tokenAuthenticationVerificationValue: str(byte), transStatusReason: str, xid: str(byte)}, originalMerchantReference: str, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, reference: str, splits: [map{account: str, amount: map, description: str, reference: str, type!: str}], tenderReference: str, uniqueTerminalId: str}
@returns(200) {additionalData: map, pspReference: str, response: str}
@errors {400, 401, 403, 422, 500}

@endgroup

@group donate
@endpoint POST /donate
@required {donationAccount: str, modificationAmount: map{currency!: str, value!: int(int64)}}
@optional {originalReference: str, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, reference: str}
@returns(200) {additionalData: map, pspReference: str, response: str}
@errors {400, 401, 403, 422, 500}

@endgroup

@group getAuthenticationResult
@endpoint POST /getAuthenticationResult
@required {pspReference: str}
@returns(200) {threeDS1Result: map{cavv: str, cavvAlgorithm: str, eci: str, threeDAuthenticatedResponse: str, threeDOfferedResponse: str, xid: str}, threeDS2Result: map{authenticationValue: str, cavvAlgorithm: str, challengeCancel: str, dsTransID: str, eci: str, exemptionIndicator: str, messageVersion: str, riskScore: str, threeDSRequestorChallengeInd: str, threeDSServerTransID: str, timestamp: str, transStatus: str, transStatusReason: str, whiteListStatus: str}}
@errors {400, 401, 403, 422, 500}

@endgroup

@group refund
@endpoint POST /refund
@required {modificationAmount: map{currency!: str, value!: int(int64)}, originalReference: str}
@optional {additionalData: map, mpiData: map{authenticationResponse: str, cavv: str(byte), cavvAlgorithm: str, challengeCancel: str, directoryResponse: str, dsTransID: str, eci: str, riskScore: str, threeDSVersion: str, tokenAuthenticationVerificationValue: str(byte), transStatusReason: str, xid: str(byte)}, originalMerchantReference: str, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, reference: str, splits: [map{account: str, amount: map, description: str, reference: str, type!: str}], tenderReference: str, uniqueTerminalId: str}
@returns(200) {additionalData: map, pspReference: str, response: str}
@errors {400, 401, 403, 422, 500}

@endgroup

@group retrieve3ds2Result
@endpoint POST /retrieve3ds2Result
@required {pspReference: str}
@returns(200) {threeDS2Result: map{authenticationValue: str, cavvAlgorithm: str, challengeCancel: str, dsTransID: str, eci: str, exemptionIndicator: str, messageVersion: str, riskScore: str, threeDSRequestorChallengeInd: str, threeDSServerTransID: str, timestamp: str, transStatus: str, transStatusReason: str, whiteListStatus: str}}
@errors {400, 401, 403, 422, 500}

@endgroup

@group technicalCancel
@endpoint POST /technicalCancel
@required {originalMerchantReference: str}
@optional {additionalData: map, modificationAmount: map{currency!: str, value!: int(int64)}, mpiData: map{authenticationResponse: str, cavv: str(byte), cavvAlgorithm: str, challengeCancel: str, directoryResponse: str, dsTransID: str, eci: str, riskScore: str, threeDSVersion: str, tokenAuthenticationVerificationValue: str(byte), transStatusReason: str, xid: str(byte)}, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, reference: str, splits: [map{account: str, amount: map, description: str, reference: str, type!: str}], tenderReference: str, uniqueTerminalId: str}
@returns(200) {additionalData: map, pspReference: str, response: str}
@errors {400, 401, 403, 422, 500}

@endgroup

@group voidPendingRefund
@endpoint POST /voidPendingRefund
@optional {additionalData: map, modificationAmount: map{currency!: str, value!: int(int64)}, mpiData: map{authenticationResponse: str, cavv: str(byte), cavvAlgorithm: str, challengeCancel: str, directoryResponse: str, dsTransID: str, eci: str, riskScore: str, threeDSVersion: str, tokenAuthenticationVerificationValue: str(byte), transStatusReason: str, xid: str(byte)}, originalMerchantReference: str, originalReference: str, platformChargebackLogic: map{behavior: str, costAllocationAccount: str, targetAccount: str}, reference: str, splits: [map{account: str, amount: map, description: str, reference: str, type!: str}], tenderReference: str, uniqueTerminalId: str}
@returns(200) {additionalData: map, pspReference: str, response: str}
@errors {400, 401, 403, 422, 500}

@endgroup

@end
