diff --git a/specs/2.0/Checkout-V30.json b/specs/2.0/Checkout-V30.json new file mode 100644 index 0000000..a90c6e2 --- /dev/null +++ b/specs/2.0/Checkout-V30.json @@ -0,0 +1,995 @@ +{ + "swagger" : "2.0", + "info" : { + "version" : "30", + "title" : "Adyen Checkout Service", + "description" : "A web service to initiate and authorise payments with Adyen Checkout. You can use the same integration for payments made with cards (including One-Click and 3D Secure), mobile wallets, and local payment methods (e.g. iDEAL and Sofort). For more information, refer to [Checkout documentation](https://docs.adyen.com/developers/checkout)." + }, + "host" : "checkout-test.adyen.com", + "basePath" : "/services/PaymentSetupAndVerification/v30", + "schemes" : [ + "https" + ], + "produces" : [ + "application/json" + ], + "consumes" : [ + "application/json" + ], + "x-groups" : [ + "General" + ], + "paths" : { + "/setup" : { + "post" : { + "summary" : "Creates a payment setup", + "description" : "Provides the data object that can be used to start the Checkout SDK. For the initial payment setup, pass the payment amount, currency, and other information that can be used by Adyen to optimize the payment flow and perform better risk assessment of the transaction.\n\nFor more information, refer to [Set up a payment](https://docs.adyen.com/developers/checkout/implement-your-server-checkout/set-up-a-payment-checkout).", + "x-groupName" : "General", + "x-sortIndex" : 1, + "parameters" : [ + { + "name" : "request", + "in" : "body", + "schema" : { + "$ref" : "#/definitions/PaymentSetupRequest" + } + } + ], + "responses" : { + "200" : { + "description" : "OK - the request has succeeded.", + "schema" : { + "$ref" : "#/definitions/PaymentSetupResponse" + } + }, + "400" : { + "description" : "Bad Request - a problem reading or understanding the request." + }, + "422" : { + "description" : "Unprocessable Entity - a request validation error." + }, + "401" : { + "description" : "Unauthorized - authentication required." + }, + "500" : { + "description" : "Internal Server Error - the server could not process the request." + }, + "403" : { + "description" : "Forbidden - insufficient permissions to process the request." + } + } + } + }, + "/verify" : { + "post" : { + "summary" : "Verifies payment result", + "description" : "Verifies the payment result using the payload returned from the SDK.\n\nFor more information, refer to [Verify a payment](https://docs.adyen.com/developers/checkout/implement-your-server-checkout/verify-a-payment-checkout).", + "x-groupName" : "General", + "x-sortIndex" : 2, + "parameters" : [ + { + "name" : "request", + "in" : "body", + "schema" : { + "$ref" : "#/definitions/PaymentVerificationRequest" + } + } + ], + "responses" : { + "200" : { + "description" : "OK - the request has succeeded.", + "schema" : { + "$ref" : "#/definitions/PaymentVerificationResponse" + } + }, + "400" : { + "description" : "Bad Request - a problem reading or understanding the request." + }, + "422" : { + "description" : "Unprocessable Entity - a request validation error." + }, + "401" : { + "description" : "Unauthorized - authentication required." + }, + "500" : { + "description" : "Internal Server Error - the server could not process the request." + }, + "403" : { + "description" : "Forbidden - insufficient permissions to process the request." + } + } + } + } + }, + "definitions" : { + "Address" : { + "properties" : { + "city" : { + "description" : "The city name.", + "type" : "string" + }, + "country" : { + "description" : "A valid value is an ISO two-character country code (e.g. 'NL').", + "type" : "string" + }, + "houseNumberOrName" : { + "description" : "The house number or name.", + "type" : "string" + }, + "postalCode" : { + "description" : "The postal code with a maximum of 5 characters for USA and maximum of 10 characters for any other country.", + "type" : "string" + }, + "stateOrProvince" : { + "description" : "For USA or Canada, a valid 2-character abbreviation for the state or province respectively. For other countries any abbreviation with maximum 3 characters for the state or province.", + "type" : "string" + }, + "street" : { + "description" : "The street name.\n> Don't append the house number to this field. Instead, pass the house number separately as `houseNumberOrName`.\n", + "type" : "string" + } + }, + "required" : [ + "street", + "houseNumberOrName", + "city", + "country" + ] + }, + "Amount" : { + "properties" : { + "currency" : { + "description" : "The three-character [ISO currency code](https://docs.adyen.com/developers/currency-codes).", + "maxLength" : 3, + "minLength" : 3, + "type" : "string" + }, + "value" : { + "description" : "The payable amount that can be charged for the transaction.\n\nThe transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/developers/currency-codes).", + "format" : "int64", + "type" : "integer" + } + }, + "required" : [ + "value", + "currency" + ] + }, + "Avs" : { + "properties" : { + "addressEditable" : { + "type" : "boolean" + }, + "enabled" : { + "type" : "string" + } + } + }, + "BankAccount" : { + "properties" : { + "bankAccountNumber" : { + "description" : "The bank account number (without separators).", + "type" : "string" + }, + "bankCity" : { + "description" : "The bank city.", + "type" : "string" + }, + "bankLocationId" : { + "description" : "The location id of the bank. The field value is `nil` in most cases.", + "type" : "string" + }, + "bankName" : { + "description" : "The name of the bank.", + "type" : "string" + }, + "bic" : { + "description" : "The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.", + "type" : "string" + }, + "countryCode" : { + "description" : "Country code where the bank is located.\n\nA valid value is an ISO two-character country code (e.g. 'NL').", + "type" : "string" + }, + "iban" : { + "description" : "The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).", + "type" : "string" + }, + "ownerName" : { + "description" : "The name of the bank account holder.\nIf 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:\n* χ12 is converted to ch12.\n* üA is converted to euA.\n* Peter Møller is converted to Peter Mller, because banks don't accept 'ø'.\nAfter 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:\n* John17 - allowed.\n* J17 - allowed.\n* 171 - not allowed.\n* John-7 - allowed.\n> If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'.", + "type" : "string" + }, + "taxId" : { + "description" : "The bank account holder's tax ID.", + "type" : "string" + } + } + }, + "BrowserInfo" : { + "properties" : { + "acceptHeader" : { + "description" : "The accept header value of the shopper's browser.", + "maxLength" : 50, + "minLength" : 10, + "type" : "string" + }, + "userAgent" : { + "description" : "The user agent value of the shopper's browser.", + "maxLength" : 50, + "minLength" : 10, + "type" : "string" + } + }, + "required" : [ + "userAgent", + "acceptHeader" + ] + }, + "Card" : { + "properties" : { + "cvc" : { + "description" : "The [card verification code](https://docs.adyen.com/developers/payment-glossary#cardsecuritycodecvccvvcid) (1-20 characters). Depending on the card brand, it is known also as:\n* CVV2/CVC2 – length: 3 digits\n* CID – length: 4 digits\n> If you are using [Client-Side Encryption](https://docs.adyen.com/developers/ecommerce-integration), the CVC code is present in the encrypted data. You must never post the card details to the server.\n> This field must be always present in a [one-click payment request](https://docs.adyen.com/developers/features/recurring-payments).\n> When this value is returned in a response, it is always empty because it is not stored.", + "maxLength" : 20, + "minLength" : 1, + "type" : "string" + }, + "expiryMonth" : { + "description" : "The card expiry month.\nFormat: 2 digits, zero-padded for single digits. For example:\n* 03 = March\n* 11 = November", + "maxLength" : 2, + "minLength" : 1, + "type" : "string" + }, + "expiryYear" : { + "description" : "The card expiry year.\nFormat: 4 digits. For example: 2018", + "maxLength" : 4, + "minLength" : 4, + "type" : "string" + }, + "holderName" : { + "description" : "The name of the cardholder, as printed on the card.", + "maxLength" : 50, + "minLength" : 1, + "type" : "string" + }, + "issueNumber" : { + "description" : "The issue number of the card (for some UK debit cards only).", + "maxLength" : 2, + "minLength" : 1, + "type" : "string" + }, + "number" : { + "description" : "The card number (4-19 characters). Do not use any separators.\nWhen this value is returned in a response, only the last 4 digits of the card number are returned.", + "maxLength" : 19, + "minLength" : 4, + "type" : "string" + }, + "startMonth" : { + "description" : "The month component of the start date (for some UK debit cards only).", + "maxLength" : 2, + "minLength" : 1, + "type" : "string" + }, + "startYear" : { + "description" : "The year component of the start date (for some UK debit cards only).", + "maxLength" : 4, + "minLength" : 4, + "type" : "string" + } + }, + "required" : [ + "number", + "expiryMonth", + "expiryYear", + "holderName" + ] + }, + "Collection" : { + + }, + "Configuration" : { + "properties" : { + "avs" : { + "description" : "Describes the configuration for AVS ([Address Verification System](https://en.wikipedia.org/wiki/Address_Verification_System)).", + "$ref" : "#/definitions/Avs" + }, + "cardHolderNameRequired" : { + "type" : "boolean" + }, + "installments" : { + "description" : "Describes the configuration for [installment payments](https://docs.adyen.com/developers/payment-methods/installment-payments).", + "$ref" : "#/definitions/Installments" + } + } + }, + "ForexQuote" : { + "properties" : { + "account" : { + "description" : "The account name.", + "type" : "string" + }, + "accountType" : { + "description" : "The account type.", + "type" : "string" + }, + "baseAmount" : { + "description" : "The base amount.", + "$ref" : "#/definitions/Amount" + }, + "basePoints" : { + "description" : "The base points.", + "format" : "int32", + "type" : "integer" + }, + "buy" : { + "description" : "The buy rate.", + "$ref" : "#/definitions/Amount" + }, + "interbank" : { + "description" : "The interbank amount.", + "$ref" : "#/definitions/Amount" + }, + "reference" : { + "description" : "The reference assigned to the forex quote request.", + "type" : "string" + }, + "sell" : { + "description" : "The sell rate.", + "$ref" : "#/definitions/Amount" + }, + "signature" : { + "description" : "The signature to validate the integrity.", + "type" : "string" + }, + "source" : { + "description" : "The source of the forex quote.", + "type" : "string" + }, + "type" : { + "description" : "The type of forex.", + "type" : "string" + }, + "validTill" : { + "description" : "The date until which the forex quote is valid.", + "format" : "date-time", + "type" : "string" + } + }, + "required" : [ + "validTill", + "basePoints" + ] + }, + "FraudResult" : { + "properties" : { + "accountScore" : { + "description" : "The total fraud score generated by the risk checks.", + "format" : "int32", + "type" : "integer" + }, + "results" : { + "description" : "The result of the individual risk checks.", + "type" : "object" + } + }, + "required" : [ + "accountScore" + ] + }, + "InputDetail" : { + "properties" : { + "configuration" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "Configuration parameters for the required input.", + "type" : "object" + }, + "inputDetails" : { + "description" : "In case of address data, inputDetails can be set recursively.", + "items" : { + "$ref" : "#/definitions/SubInputDetail" + }, + "type" : "array" + }, + "itemSearchUrl" : { + "description" : "In case of a select, the URL from which to query the items.", + "type" : "string" + }, + "items" : { + "description" : "In case of a select, the items to choose from.", + "items" : { + "$ref" : "#/definitions/Item" + }, + "type" : "array" + }, + "key" : { + "description" : "The value to provide in the result.", + "type" : "string" + }, + "optional" : { + "description" : "True if this input is optional to provide.", + "type" : "boolean" + }, + "type" : { + "description" : "The type of the required input.", + "type" : "string" + }, + "value" : { + "description" : "The value can be pre-filled, if available.", + "type" : "string" + } + } + }, + "Installments" : { + "properties" : { + "value" : { + "description" : "Defines the number of installments. Its value needs to be greater than zero.\n\nUsually, the maximum allowed number of installments is capped. For example, it may not be possible to split a payment in more than 24 installments. The acquirer sets this upper limit, so its value may vary.", + "format" : "int32", + "type" : "integer" + } + }, + "required" : [ + "value" + ] + }, + "Item" : { + "properties" : { + "id" : { + "description" : "value to provide in the result", + "type" : "string" + }, + "imageUrl" : { + "description" : "optional image URL", + "type" : "string" + }, + "name" : { + "description" : "display name", + "type" : "string" + } + } + }, + "Name" : { + "properties" : { + "firstName" : { + "description" : "A person's first name.", + "type" : "string" + }, + "gender" : { + "description" : "A person's gender (can be unknown).", + "enum" : [ + "MALE", + "FEMALE", + "UNKNOWN" + ], + "maxLength" : 1, + "minLength" : 1, + "type" : "string" + }, + "infix" : { + "description" : "A person name's infix, if applicable. Maximum length: 20 characters.", + "type" : "string" + }, + "lastName" : { + "description" : "A person's last name.", + "type" : "string" + } + }, + "required" : [ + "firstName", + "lastName", + "gender" + ] + }, + "PaymentDetails" : { + "properties" : { + "additionalAmount" : { + "description" : "The portion of the `amount`, which is additional/surcharged. Required to be in the same currency as the amount.", + "$ref" : "#/definitions/Amount" + }, + "amount" : { + "description" : "The amount to charge.", + "$ref" : "#/definitions/Amount" + }, + "countryCode" : { + "description" : "The shopper's country code.", + "type" : "string" + }, + "reference" : { + "description" : "The reference assigned to the payment.", + "type" : "string" + }, + "sessionValidity" : { + "description" : "The maximum validity of the session.", + "type" : "string" + }, + "shopperLocale" : { + "description" : "The shopper's locale.", + "type" : "string" + }, + "shopperReference" : { + "description" : "The reference used to uniquely identify the shopper (e.g. user ID or account ID).", + "type" : "string" + } + } + }, + "PaymentMethod" : { + "properties" : { + "configuration" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "The configuration.", + "type" : "object" + }, + "group" : { + "description" : "The group where this payment method belongs to.", + "$ref" : "#/definitions/PaymentMethodGroup" + }, + "inputDetails" : { + "description" : "All input details to be provided to complete the payment with this payment method.", + "items" : { + "$ref" : "#/definitions/InputDetail" + }, + "type" : "array" + }, + "name" : { + "description" : "The displayable name of this payment method.", + "type" : "string" + }, + "paymentMethodData" : { + "description" : "echo data required to send in next calls.", + "type" : "string" + }, + "type" : { + "description" : "The unique payment method code.", + "type" : "string" + } + } + }, + "PaymentMethodGroup" : { + "properties" : { + "name" : { + "description" : "The name of the group.", + "type" : "string" + }, + "paymentMethodData" : { + "description" : "Echo data to be used if the payment method is displayed as part of this group.", + "type" : "string" + }, + "type" : { + "description" : "The unique code of the group.", + "type" : "string" + } + } + }, + "PaymentSetupRequest" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be required for a particular payment request.\n\nThe `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](https://docs.adyen.com/developers/api-reference/payments-api#paymentrequestadditionaldata).", + "type" : "object" + }, + "amount" : { + "description" : "The amount information for the transaction. For [BIN or card verification](https://docs.adyen.com/developers/ecommerce-integration/cards/bin-data-and-card-verification) requests, set amount to 0 (zero).", + "$ref" : "#/definitions/Amount" + }, + "billingAddress" : { + "description" : "The address where to send the invoice.", + "$ref" : "#/definitions/Address" + }, + "captureDelayHours" : { + "description" : "The delay between the authorisation and scheduled auto-capture, specified in hours.", + "format" : "int32", + "type" : "integer" + }, + "channel" : { + "description" : "The platform where a payment transaction takes place. This field is required for filtering out payment methods that are only available on specific platforms.", + "enum" : [ + "iOS", + "Android", + "Web" + ], + "type" : "string" + }, + "configuration" : { + "description" : "Specify configurations to enable additional features.", + "$ref" : "#/definitions/Configuration" + }, + "countryCode" : { + "description" : "The shopper country.\n\nFormat: [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\nExample: NL or DE", + "type" : "string" + }, + "dateOfBirth" : { + "description" : "The shopper's date of birth.\n\nFormat [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD", + "format" : "date-time", + "type" : "string" + }, + "dccQuote" : { + "description" : "The forex quote as returned in the response of the forex service.", + "$ref" : "#/definitions/ForexQuote" + }, + "deliveryAddress" : { + "description" : "The address where the purchased goods should be delivered.", + "$ref" : "#/definitions/Address" + }, + "deliveryDate" : { + "description" : "The date and time the purchased goods should be delivered.\n\nFormat [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD\n\nExample: 2017-07-17T13:42:40.428+01:00", + "format" : "date-time", + "type" : "string" + }, + "entityType" : { + "description" : "The type of the entity the payment is processed for.", + "enum" : [ + "NaturalPerson", + "CompanyName" + ], + "type" : "string" + }, + "fraudOffset" : { + "description" : "An integer value that is added to the normal fraud score. The value can be either positive or negative.", + "format" : "int32", + "type" : "integer" + }, + "html" : { + "description" : "Required for the Web integration.\n\nSet this parameter to true to use the default Checkout UI from the SDK.", + "type" : "boolean" + }, + "installments" : { + "description" : "Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/developers/payment-methods/installment-payments).", + "$ref" : "#/definitions/Installments" + }, + "mcc" : { + "description" : "The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.", + "type" : "string" + }, + "merchantAccount" : { + "description" : "The merchant account identifier, with which you want to process the transaction.", + "type" : "string" + }, + "merchantOrderReference" : { + "description" : "This reference allows linking multiple transactions to each other.\n> When providing the `merchantOrderReference` value, we also recommend you submit `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values. ", + "type" : "string" + }, + "metadata" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "Metadata consists of entries, each of which includes a key and a value.\nLimitations: Error \"177\", \"Metadata size exceeds limit\"", + "type" : "object" + }, + "oneClick" : { + "description" : "True if one click functionality should be offered.", + "type" : "boolean" + }, + "orderReference" : { + "description" : "The order reference to link multiple partial payments.", + "type" : "string" + }, + "origin" : { + "description" : "Required for the Web integration.\n\nSet this parameter to the page URL, on which you are loading the SDK.", + "type" : "string" + }, + "reference" : { + "description" : "The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. We recommend using a unique value per payment; however, it is not a requirement.\nIf you need to provide multiple references for a transaction, separate them with hyphens (\"-\").\nMaximum length: 80 characters.", + "type" : "string" + }, + "returnUrl" : { + "description" : "The URL to return to.", + "type" : "string" + }, + "sessionValidity" : { + "description" : "The maximum validity of the session.", + "type" : "string" + }, + "shopperEmail" : { + "description" : "The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks.", + "type" : "string" + }, + "shopperIP" : { + "description" : "The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks).\n> This field is mandatory for some merchants depending on your business model. Contact Adyen Support for more information.", + "type" : "string" + }, + "shopperInteraction" : { + "description" : "Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer.\nFor the web service API, Adyen assumes Ecommerce shopper interaction by default.\n\nThis field has the following possible values:\n* `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.\n* `ContAuth` - Card on file and/or subscription transactions, where the cardholder 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).\n* `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone.\n* `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.", + "enum" : [ + "Ecommerce", + "ContAuth", + "Moto", + "POS" + ], + "type" : "string" + }, + "shopperLocale" : { + "description" : "The combination of a language code and a country code to specify the language to be used in the payment.", + "type" : "string" + }, + "shopperName" : { + "description" : "The shopper's full name and gender (if specified).", + "$ref" : "#/definitions/Name" + }, + "shopperReference" : { + "description" : "The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID).\n> This field is required for recurring payments.", + "type" : "string" + }, + "shopperStatement" : { + "description" : "The text to appear on the shopper's bank statement.", + "type" : "string" + }, + "socialSecurityNumber" : { + "description" : "The shopper's social security number.", + "type" : "string" + }, + "telephoneNumber" : { + "description" : "The shopper's telephone number.", + "type" : "string" + }, + "token" : { + "description" : "The token obtained when initializing the SDK.\n\n> This parameter is required for iOS and Android; not required for Web.", + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "reference", + "amount", + "channel" + ] + }, + "PaymentSetupResponse" : { + "properties" : { + "disableRecurringDetailUrl" : { + "description" : "The URL to disable recurring details.", + "type" : "string" + }, + "generationtime" : { + "description" : "The generationtime of this request, required for encryption.", + "type" : "string" + }, + "html" : { + "description" : "The stream with html logic, if the html flag was set in the request.", + "type" : "string" + }, + "initiationUrl" : { + "description" : "The URL for the initiation call.", + "type" : "string" + }, + "logoBaseUrl" : { + "description" : "The base URL for payment method logos.", + "type" : "string" + }, + "origin" : { + "description" : "The user origin.", + "type" : "string" + }, + "originKey" : { + "description" : "The encrypted user origin.", + "type" : "string" + }, + "payment" : { + "description" : "The summary of the payment setup request.", + "$ref" : "#/definitions/PaymentDetails" + }, + "paymentData" : { + "description" : "The data blob required to be sent in every future session call.", + "type" : "string" + }, + "paymentMethods" : { + "description" : "The detailed list of payment methods required to generate payment forms.", + "items" : { + "$ref" : "#/definitions/PaymentMethod" + }, + "type" : "array" + }, + "publicKey" : { + "description" : "The public key required to encrypt sensitive data.", + "type" : "string" + }, + "publicKeyToken" : { + "description" : "The public key token.", + "type" : "string" + }, + "recurringDetails" : { + "description" : "The detailed list of stored payment details required to generate payment forms. Will be empty if oneClick is set to false in the request.", + "items" : { + "$ref" : "#/definitions/RecurringDetail" + }, + "type" : "array" + } + } + }, + "PaymentVerificationRequest" : { + "properties" : { + "payload" : { + "description" : "Encrypted and signed payment result data. You should receive this value from the Checkout SDK after the shopper completes the payment.", + "type" : "string" + } + }, + "required" : [ + "payload" + ] + }, + "PaymentVerificationResponse" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be required to return in a particular payment response. To choose data fields to be returned, go to **Customer Area** > **Settings** > **API and Response**.", + "type" : "object" + }, + "authResponse" : { + "description" : "The authorisation code representing the authentication result.\n\nPossible values:\n* Received\n* Authorised\n* Error\n* Refused\n* Cancelled\n* Unknown", + "type" : "string" + }, + "errorMessage" : { + "description" : "The error message.", + "type" : "string" + }, + "fraudResult" : { + "description" : "The fraud result properties of the payment.", + "$ref" : "#/definitions/FraudResult" + }, + "merchantReference" : { + "description" : "A unique value that you provided in the initial /setup request as a `reference` field.", + "type" : "string" + }, + "pspReference" : { + "description" : "Adyen's 16-digit unique reference associated with the transaction/the request. This value is globally unique; quote it when communicating with us about this request.", + "type" : "string" + }, + "refusalReason" : { + "description" : "If the payment's authorisation is refused or an error occurs during authorisation, this field holds Adyen's mapped reason for the refusal or a description of the error.\n\nWhen a transaction fails, the authorisation response includes `resultCode` and `refusalReason` values.", + "type" : "string" + }, + "resultCode" : { + "description" : "The result of the payment.", + "enum" : [ + "Authorised", + "PartiallyAuthorised", + "Refused", + "Error", + "Cancelled", + "Received", + "RedirectShopper" + ], + "type" : "string" + } + }, + "required" : [ + "authResponse", + "merchantReference" + ] + }, + "Recurring" : { + "properties" : { + "contract" : { + "description" : "The type of recurring contract to be used.\nPossible values:\n* `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.\n* `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.\n* `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.", + "enum" : [ + "ONECLICK", + "RECURRING", + "PAYOUT" + ], + "type" : "string" + }, + "recurringDetailName" : { + "description" : "A descriptive name for this detail.", + "type" : "string" + }, + "tokenService" : { + "description" : "The name of the token service.", + "enum" : [ + "VISATOKENSERVICE" + ], + "type" : "string" + } + } + }, + "RecurringDetail" : { + "properties" : { + "bank" : { + "$ref" : "#/definitions/BankAccount" + }, + "card" : { + "$ref" : "#/definitions/Card" + }, + "configuration" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "The configuration.", + "type" : "object" + }, + "emailAddress" : { + "type" : "string" + }, + "group" : { + "description" : "The group where this payment method belongs to.", + "$ref" : "#/definitions/PaymentMethodGroup" + }, + "inputDetails" : { + "description" : "All input details to be provided to complete the payment with this payment method.", + "items" : { + "$ref" : "#/definitions/InputDetail" + }, + "type" : "array" + }, + "name" : { + "description" : "The displayable name of this payment method.", + "type" : "string" + }, + "paymentMethodData" : { + "description" : "echo data required to send in next calls.", + "type" : "string" + }, + "type" : { + "description" : "The unique payment method code.", + "type" : "string" + } + } + }, + "SubInputDetail" : { + "properties" : { + "key" : { + "description" : "The value to provide in the result.", + "type" : "string" + }, + "optional" : { + "description" : "True if this input is optional to provide.", + "type" : "boolean" + }, + "type" : { + "description" : "The type of the required input.", + "type" : "string" + }, + "value" : { + "description" : "The value can be pre-filled, if available.", + "type" : "string" + } + } + }, + "ThreeDSecureData" : { + "properties" : { + "authenticationResponse" : { + "description" : "The authentication response if the shopper was redirected.", + "enum" : [ + "Y", + "N", + "U", + "A" + ], + "type" : "string" + }, + "cavv" : { + "description" : "The cardholder authentication value (base64 encoded, 20 bytes in a decoded form).", + "format" : "byte", + "type" : "string" + }, + "cavvAlgorithm" : { + "description" : "The CAVV algorithm used.", + "type" : "string" + }, + "directoryResponse" : { + "description" : "The enrollment response from the 3D directory server.", + "enum" : [ + "Y", + "N", + "U", + "E" + ], + "type" : "string" + }, + "eci" : { + "description" : "The electronic commerce indicator.", + "type" : "string" + }, + "xid" : { + "description" : "The transaction identifier (base64 encoded, 20 bytes in a decoded form).", + "format" : "byte", + "type" : "string" + } + } + } + } +} \ No newline at end of file diff --git a/specs/2.0/Checkout-V31.json b/specs/2.0/Checkout-V31.json new file mode 100644 index 0000000..140b3f1 --- /dev/null +++ b/specs/2.0/Checkout-V31.json @@ -0,0 +1,995 @@ +{ + "swagger" : "2.0", + "info" : { + "version" : "31", + "title" : "Adyen Checkout Service", + "description" : "A web service to initiate and authorise payments with Adyen Checkout. You can use the same integration for payments made with cards (including One-Click and 3D Secure), mobile wallets, and local payment methods (e.g. iDEAL and Sofort). For more information, refer to [Checkout documentation](https://docs.adyen.com/developers/checkout)." + }, + "host" : "checkout-test.adyen.com", + "basePath" : "/services/PaymentSetupAndVerification/v31", + "schemes" : [ + "https" + ], + "produces" : [ + "application/json" + ], + "consumes" : [ + "application/json" + ], + "x-groups" : [ + "General" + ], + "paths" : { + "/setup" : { + "post" : { + "summary" : "Creates a payment setup", + "description" : "Provides the data object that can be used to start the Checkout SDK. For the initial payment setup, pass the payment amount, currency, and other information that can be used by Adyen to optimize the payment flow and perform better risk assessment of the transaction.\n\nFor more information, refer to [Set up a payment](https://docs.adyen.com/developers/checkout/implement-your-server-checkout/set-up-a-payment-checkout).", + "x-groupName" : "General", + "x-sortIndex" : 1, + "parameters" : [ + { + "name" : "request", + "in" : "body", + "schema" : { + "$ref" : "#/definitions/PaymentSetupRequest" + } + } + ], + "responses" : { + "200" : { + "description" : "OK - the request has succeeded.", + "schema" : { + "$ref" : "#/definitions/PaymentSetupResponse" + } + }, + "400" : { + "description" : "Bad Request - a problem reading or understanding the request." + }, + "422" : { + "description" : "Unprocessable Entity - a request validation error." + }, + "401" : { + "description" : "Unauthorized - authentication required." + }, + "500" : { + "description" : "Internal Server Error - the server could not process the request." + }, + "403" : { + "description" : "Forbidden - insufficient permissions to process the request." + } + } + } + }, + "/verify" : { + "post" : { + "summary" : "Verifies payment result", + "description" : "Verifies the payment result using the payload returned from the SDK.\n\nFor more information, refer to [Verify a payment](https://docs.adyen.com/developers/checkout/implement-your-server-checkout/verify-a-payment-checkout).", + "x-groupName" : "General", + "x-sortIndex" : 2, + "parameters" : [ + { + "name" : "request", + "in" : "body", + "schema" : { + "$ref" : "#/definitions/PaymentVerificationRequest" + } + } + ], + "responses" : { + "200" : { + "description" : "OK - the request has succeeded.", + "schema" : { + "$ref" : "#/definitions/PaymentVerificationResponse" + } + }, + "400" : { + "description" : "Bad Request - a problem reading or understanding the request." + }, + "422" : { + "description" : "Unprocessable Entity - a request validation error." + }, + "401" : { + "description" : "Unauthorized - authentication required." + }, + "500" : { + "description" : "Internal Server Error - the server could not process the request." + }, + "403" : { + "description" : "Forbidden - insufficient permissions to process the request." + } + } + } + } + }, + "definitions" : { + "Address" : { + "properties" : { + "city" : { + "description" : "The city name.", + "type" : "string" + }, + "country" : { + "description" : "A valid value is an ISO two-character country code (e.g. 'NL').", + "type" : "string" + }, + "houseNumberOrName" : { + "description" : "The house number or name.", + "type" : "string" + }, + "postalCode" : { + "description" : "The postal code with a maximum of 5 characters for USA and maximum of 10 characters for any other country.", + "type" : "string" + }, + "stateOrProvince" : { + "description" : "For USA or Canada, a valid 2-character abbreviation for the state or province respectively. For other countries any abbreviation with maximum 3 characters for the state or province.", + "type" : "string" + }, + "street" : { + "description" : "The street name.\n> Don't append the house number to this field. Instead, pass the house number separately as `houseNumberOrName`.\n", + "type" : "string" + } + }, + "required" : [ + "street", + "houseNumberOrName", + "city", + "country" + ] + }, + "Amount" : { + "properties" : { + "currency" : { + "description" : "The three-character [ISO currency code](https://docs.adyen.com/developers/currency-codes).", + "maxLength" : 3, + "minLength" : 3, + "type" : "string" + }, + "value" : { + "description" : "The payable amount that can be charged for the transaction.\n\nThe transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/developers/currency-codes).", + "format" : "int64", + "type" : "integer" + } + }, + "required" : [ + "value", + "currency" + ] + }, + "Avs" : { + "properties" : { + "addressEditable" : { + "type" : "boolean" + }, + "enabled" : { + "type" : "string" + } + } + }, + "BankAccount" : { + "properties" : { + "bankAccountNumber" : { + "description" : "The bank account number (without separators).", + "type" : "string" + }, + "bankCity" : { + "description" : "The bank city.", + "type" : "string" + }, + "bankLocationId" : { + "description" : "The location id of the bank. The field value is `nil` in most cases.", + "type" : "string" + }, + "bankName" : { + "description" : "The name of the bank.", + "type" : "string" + }, + "bic" : { + "description" : "The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.", + "type" : "string" + }, + "countryCode" : { + "description" : "Country code where the bank is located.\n\nA valid value is an ISO two-character country code (e.g. 'NL').", + "type" : "string" + }, + "iban" : { + "description" : "The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).", + "type" : "string" + }, + "ownerName" : { + "description" : "The name of the bank account holder.\nIf 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:\n* χ12 is converted to ch12.\n* üA is converted to euA.\n* Peter Møller is converted to Peter Mller, because banks don't accept 'ø'.\nAfter 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:\n* John17 - allowed.\n* J17 - allowed.\n* 171 - not allowed.\n* John-7 - allowed.\n> If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'.", + "type" : "string" + }, + "taxId" : { + "description" : "The bank account holder's tax ID.", + "type" : "string" + } + } + }, + "BrowserInfo" : { + "properties" : { + "acceptHeader" : { + "description" : "The accept header value of the shopper's browser.", + "maxLength" : 50, + "minLength" : 10, + "type" : "string" + }, + "userAgent" : { + "description" : "The user agent value of the shopper's browser.", + "maxLength" : 50, + "minLength" : 10, + "type" : "string" + } + }, + "required" : [ + "userAgent", + "acceptHeader" + ] + }, + "Card" : { + "properties" : { + "cvc" : { + "description" : "The [card verification code](https://docs.adyen.com/developers/payment-glossary#cardsecuritycodecvccvvcid) (1-20 characters). Depending on the card brand, it is known also as:\n* CVV2/CVC2 – length: 3 digits\n* CID – length: 4 digits\n> If you are using [Client-Side Encryption](https://docs.adyen.com/developers/ecommerce-integration), the CVC code is present in the encrypted data. You must never post the card details to the server.\n> This field must be always present in a [one-click payment request](https://docs.adyen.com/developers/features/recurring-payments).\n> When this value is returned in a response, it is always empty because it is not stored.", + "maxLength" : 20, + "minLength" : 1, + "type" : "string" + }, + "expiryMonth" : { + "description" : "The card expiry month.\nFormat: 2 digits, zero-padded for single digits. For example:\n* 03 = March\n* 11 = November", + "maxLength" : 2, + "minLength" : 1, + "type" : "string" + }, + "expiryYear" : { + "description" : "The card expiry year.\nFormat: 4 digits. For example: 2018", + "maxLength" : 4, + "minLength" : 4, + "type" : "string" + }, + "holderName" : { + "description" : "The name of the cardholder, as printed on the card.", + "maxLength" : 50, + "minLength" : 1, + "type" : "string" + }, + "issueNumber" : { + "description" : "The issue number of the card (for some UK debit cards only).", + "maxLength" : 2, + "minLength" : 1, + "type" : "string" + }, + "number" : { + "description" : "The card number (4-19 characters). Do not use any separators.\nWhen this value is returned in a response, only the last 4 digits of the card number are returned.", + "maxLength" : 19, + "minLength" : 4, + "type" : "string" + }, + "startMonth" : { + "description" : "The month component of the start date (for some UK debit cards only).", + "maxLength" : 2, + "minLength" : 1, + "type" : "string" + }, + "startYear" : { + "description" : "The year component of the start date (for some UK debit cards only).", + "maxLength" : 4, + "minLength" : 4, + "type" : "string" + } + }, + "required" : [ + "number", + "expiryMonth", + "expiryYear", + "holderName" + ] + }, + "Collection" : { + + }, + "Configuration" : { + "properties" : { + "avs" : { + "description" : "Describes the configuration for AVS ([Address Verification System](https://en.wikipedia.org/wiki/Address_Verification_System)).", + "$ref" : "#/definitions/Avs" + }, + "cardHolderNameRequired" : { + "type" : "boolean" + }, + "installments" : { + "description" : "Describes the configuration for [installment payments](https://docs.adyen.com/developers/payment-methods/installment-payments).", + "$ref" : "#/definitions/Installments" + } + } + }, + "ForexQuote" : { + "properties" : { + "account" : { + "description" : "The account name.", + "type" : "string" + }, + "accountType" : { + "description" : "The account type.", + "type" : "string" + }, + "baseAmount" : { + "description" : "The base amount.", + "$ref" : "#/definitions/Amount" + }, + "basePoints" : { + "description" : "The base points.", + "format" : "int32", + "type" : "integer" + }, + "buy" : { + "description" : "The buy rate.", + "$ref" : "#/definitions/Amount" + }, + "interbank" : { + "description" : "The interbank amount.", + "$ref" : "#/definitions/Amount" + }, + "reference" : { + "description" : "The reference assigned to the forex quote request.", + "type" : "string" + }, + "sell" : { + "description" : "The sell rate.", + "$ref" : "#/definitions/Amount" + }, + "signature" : { + "description" : "The signature to validate the integrity.", + "type" : "string" + }, + "source" : { + "description" : "The source of the forex quote.", + "type" : "string" + }, + "type" : { + "description" : "The type of forex.", + "type" : "string" + }, + "validTill" : { + "description" : "The date until which the forex quote is valid.", + "format" : "date-time", + "type" : "string" + } + }, + "required" : [ + "validTill", + "basePoints" + ] + }, + "FraudResult" : { + "properties" : { + "accountScore" : { + "description" : "The total fraud score generated by the risk checks.", + "format" : "int32", + "type" : "integer" + }, + "results" : { + "description" : "The result of the individual risk checks.", + "type" : "object" + } + }, + "required" : [ + "accountScore" + ] + }, + "InputDetail" : { + "properties" : { + "configuration" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "Configuration parameters for the required input.", + "type" : "object" + }, + "inputDetails" : { + "description" : "In case of address data, inputDetails can be set recursively.", + "items" : { + "$ref" : "#/definitions/SubInputDetail" + }, + "type" : "array" + }, + "itemSearchUrl" : { + "description" : "In case of a select, the URL from which to query the items.", + "type" : "string" + }, + "items" : { + "description" : "In case of a select, the items to choose from.", + "items" : { + "$ref" : "#/definitions/Item" + }, + "type" : "array" + }, + "key" : { + "description" : "The value to provide in the result.", + "type" : "string" + }, + "optional" : { + "description" : "True if this input is optional to provide.", + "type" : "boolean" + }, + "type" : { + "description" : "The type of the required input.", + "type" : "string" + }, + "value" : { + "description" : "The value can be pre-filled, if available.", + "type" : "string" + } + } + }, + "Installments" : { + "properties" : { + "value" : { + "description" : "Defines the number of installments. Its value needs to be greater than zero.\n\nUsually, the maximum allowed number of installments is capped. For example, it may not be possible to split a payment in more than 24 installments. The acquirer sets this upper limit, so its value may vary.", + "format" : "int32", + "type" : "integer" + } + }, + "required" : [ + "value" + ] + }, + "Item" : { + "properties" : { + "id" : { + "description" : "value to provide in the result", + "type" : "string" + }, + "imageUrl" : { + "description" : "optional image URL", + "type" : "string" + }, + "name" : { + "description" : "display name", + "type" : "string" + } + } + }, + "Name" : { + "properties" : { + "firstName" : { + "description" : "A person's first name.", + "type" : "string" + }, + "gender" : { + "description" : "A person's gender (can be unknown).", + "enum" : [ + "MALE", + "FEMALE", + "UNKNOWN" + ], + "maxLength" : 1, + "minLength" : 1, + "type" : "string" + }, + "infix" : { + "description" : "A person name's infix, if applicable. Maximum length: 20 characters.", + "type" : "string" + }, + "lastName" : { + "description" : "A person's last name.", + "type" : "string" + } + }, + "required" : [ + "firstName", + "lastName", + "gender" + ] + }, + "PaymentDetails" : { + "properties" : { + "additionalAmount" : { + "description" : "The portion of the `amount`, which is additional/surcharged. Required to be in the same currency as the amount.", + "$ref" : "#/definitions/Amount" + }, + "amount" : { + "description" : "The amount to charge.", + "$ref" : "#/definitions/Amount" + }, + "countryCode" : { + "description" : "The shopper's country code.", + "type" : "string" + }, + "reference" : { + "description" : "The reference assigned to the payment.", + "type" : "string" + }, + "sessionValidity" : { + "description" : "The maximum validity of the session.", + "type" : "string" + }, + "shopperLocale" : { + "description" : "The shopper's locale.", + "type" : "string" + }, + "shopperReference" : { + "description" : "The reference used to uniquely identify the shopper (e.g. user ID or account ID).", + "type" : "string" + } + } + }, + "PaymentMethod" : { + "properties" : { + "configuration" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "The configuration.", + "type" : "object" + }, + "group" : { + "description" : "The group where this payment method belongs to.", + "$ref" : "#/definitions/PaymentMethodGroup" + }, + "inputDetails" : { + "description" : "All input details to be provided to complete the payment with this payment method.", + "items" : { + "$ref" : "#/definitions/InputDetail" + }, + "type" : "array" + }, + "name" : { + "description" : "The displayable name of this payment method.", + "type" : "string" + }, + "paymentMethodData" : { + "description" : "echo data required to send in next calls.", + "type" : "string" + }, + "type" : { + "description" : "The unique payment method code.", + "type" : "string" + } + } + }, + "PaymentMethodGroup" : { + "properties" : { + "name" : { + "description" : "The name of the group.", + "type" : "string" + }, + "paymentMethodData" : { + "description" : "Echo data to be used if the payment method is displayed as part of this group.", + "type" : "string" + }, + "type" : { + "description" : "The unique code of the group.", + "type" : "string" + } + } + }, + "PaymentSetupRequest" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be required for a particular payment request.\n\nThe `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](https://docs.adyen.com/developers/api-reference/payments-api#paymentrequestadditionaldata).", + "type" : "object" + }, + "amount" : { + "description" : "The amount information for the transaction. For [BIN or card verification](https://docs.adyen.com/developers/ecommerce-integration/cards/bin-data-and-card-verification) requests, set amount to 0 (zero).", + "$ref" : "#/definitions/Amount" + }, + "billingAddress" : { + "description" : "The address where to send the invoice.", + "$ref" : "#/definitions/Address" + }, + "captureDelayHours" : { + "description" : "The delay between the authorisation and scheduled auto-capture, specified in hours.", + "format" : "int32", + "type" : "integer" + }, + "channel" : { + "description" : "The platform where a payment transaction takes place. This field is required for filtering out payment methods that are only available on specific platforms.", + "enum" : [ + "iOS", + "Android", + "Web" + ], + "type" : "string" + }, + "configuration" : { + "description" : "Specify configurations to enable additional features.", + "$ref" : "#/definitions/Configuration" + }, + "countryCode" : { + "description" : "The shopper country.\n\nFormat: [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\nExample: NL or DE", + "type" : "string" + }, + "dateOfBirth" : { + "description" : "The shopper's date of birth.\n\nFormat [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD", + "format" : "date-time", + "type" : "string" + }, + "dccQuote" : { + "description" : "The forex quote as returned in the response of the forex service.", + "$ref" : "#/definitions/ForexQuote" + }, + "deliveryAddress" : { + "description" : "The address where the purchased goods should be delivered.", + "$ref" : "#/definitions/Address" + }, + "deliveryDate" : { + "description" : "The date and time the purchased goods should be delivered.\n\nFormat [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD\n\nExample: 2017-07-17T13:42:40.428+01:00", + "format" : "date-time", + "type" : "string" + }, + "entityType" : { + "description" : "The type of the entity the payment is processed for.", + "enum" : [ + "NaturalPerson", + "CompanyName" + ], + "type" : "string" + }, + "fraudOffset" : { + "description" : "An integer value that is added to the normal fraud score. The value can be either positive or negative.", + "format" : "int32", + "type" : "integer" + }, + "html" : { + "description" : "Required for the Web integration.\n\nSet this parameter to true to use the default Checkout UI from the SDK.", + "type" : "boolean" + }, + "installments" : { + "description" : "Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/developers/payment-methods/installment-payments).", + "$ref" : "#/definitions/Installments" + }, + "mcc" : { + "description" : "The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.", + "type" : "string" + }, + "merchantAccount" : { + "description" : "The merchant account identifier, with which you want to process the transaction.", + "type" : "string" + }, + "merchantOrderReference" : { + "description" : "This reference allows linking multiple transactions to each other.\n> When providing the `merchantOrderReference` value, we also recommend you submit `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values. ", + "type" : "string" + }, + "metadata" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "Metadata consists of entries, each of which includes a key and a value.\nLimitations: Error \"177\", \"Metadata size exceeds limit\"", + "type" : "object" + }, + "oneClick" : { + "description" : "True if one click functionality should be offered.", + "type" : "boolean" + }, + "orderReference" : { + "description" : "The order reference to link multiple partial payments.", + "type" : "string" + }, + "origin" : { + "description" : "Required for the Web integration.\n\nSet this parameter to the page URL, on which you are loading the SDK.", + "type" : "string" + }, + "reference" : { + "description" : "The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. We recommend using a unique value per payment; however, it is not a requirement.\nIf you need to provide multiple references for a transaction, separate them with hyphens (\"-\").\nMaximum length: 80 characters.", + "type" : "string" + }, + "returnUrl" : { + "description" : "The URL to return to.", + "type" : "string" + }, + "sessionValidity" : { + "description" : "The maximum validity of the session.", + "type" : "string" + }, + "shopperEmail" : { + "description" : "The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks.", + "type" : "string" + }, + "shopperIP" : { + "description" : "The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks).\n> This field is mandatory for some merchants depending on your business model. Contact Adyen Support for more information.", + "type" : "string" + }, + "shopperInteraction" : { + "description" : "Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer.\nFor the web service API, Adyen assumes Ecommerce shopper interaction by default.\n\nThis field has the following possible values:\n* `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.\n* `ContAuth` - Card on file and/or subscription transactions, where the cardholder 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).\n* `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone.\n* `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.", + "enum" : [ + "Ecommerce", + "ContAuth", + "Moto", + "POS" + ], + "type" : "string" + }, + "shopperLocale" : { + "description" : "The combination of a language code and a country code to specify the language to be used in the payment.", + "type" : "string" + }, + "shopperName" : { + "description" : "The shopper's full name and gender (if specified).", + "$ref" : "#/definitions/Name" + }, + "shopperReference" : { + "description" : "The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID).\n> This field is required for recurring payments.", + "type" : "string" + }, + "shopperStatement" : { + "description" : "The text to appear on the shopper's bank statement.", + "type" : "string" + }, + "socialSecurityNumber" : { + "description" : "The shopper's social security number.", + "type" : "string" + }, + "telephoneNumber" : { + "description" : "The shopper's telephone number.", + "type" : "string" + }, + "token" : { + "description" : "The token obtained when initializing the SDK.\n\n> This parameter is required for iOS and Android; not required for Web.", + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "reference", + "amount", + "channel" + ] + }, + "PaymentSetupResponse" : { + "properties" : { + "disableRecurringDetailUrl" : { + "description" : "The URL to disable recurring details.", + "type" : "string" + }, + "generationtime" : { + "description" : "The generationtime of this request, required for encryption.", + "type" : "string" + }, + "html" : { + "description" : "The stream with html logic, if the html flag was set in the request.", + "type" : "string" + }, + "initiationUrl" : { + "description" : "The URL for the initiation call.", + "type" : "string" + }, + "logoBaseUrl" : { + "description" : "The base URL for payment method logos.", + "type" : "string" + }, + "origin" : { + "description" : "The user origin.", + "type" : "string" + }, + "originKey" : { + "description" : "The encrypted user origin.", + "type" : "string" + }, + "payment" : { + "description" : "The summary of the payment setup request.", + "$ref" : "#/definitions/PaymentDetails" + }, + "paymentData" : { + "description" : "The data blob required to be sent in every future session call.", + "type" : "string" + }, + "paymentMethods" : { + "description" : "The detailed list of payment methods required to generate payment forms.", + "items" : { + "$ref" : "#/definitions/PaymentMethod" + }, + "type" : "array" + }, + "publicKey" : { + "description" : "The public key required to encrypt sensitive data.", + "type" : "string" + }, + "publicKeyToken" : { + "description" : "The public key token.", + "type" : "string" + }, + "recurringDetails" : { + "description" : "The detailed list of stored payment details required to generate payment forms. Will be empty if oneClick is set to false in the request.", + "items" : { + "$ref" : "#/definitions/RecurringDetail" + }, + "type" : "array" + } + } + }, + "PaymentVerificationRequest" : { + "properties" : { + "payload" : { + "description" : "Encrypted and signed payment result data. You should receive this value from the Checkout SDK after the shopper completes the payment.", + "type" : "string" + } + }, + "required" : [ + "payload" + ] + }, + "PaymentVerificationResponse" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be required to return in a particular payment response. To choose data fields to be returned, go to **Customer Area** > **Settings** > **API and Response**.", + "type" : "object" + }, + "authResponse" : { + "description" : "The authorisation code representing the authentication result.\n\nPossible values:\n* Received\n* Authorised\n* Error\n* Refused\n* Cancelled\n* Unknown", + "type" : "string" + }, + "errorMessage" : { + "description" : "The error message.", + "type" : "string" + }, + "fraudResult" : { + "description" : "The fraud result properties of the payment.", + "$ref" : "#/definitions/FraudResult" + }, + "merchantReference" : { + "description" : "A unique value that you provided in the initial /setup request as a `reference` field.", + "type" : "string" + }, + "pspReference" : { + "description" : "Adyen's 16-digit unique reference associated with the transaction/the request. This value is globally unique; quote it when communicating with us about this request.", + "type" : "string" + }, + "refusalReason" : { + "description" : "If the payment's authorisation is refused or an error occurs during authorisation, this field holds Adyen's mapped reason for the refusal or a description of the error.\n\nWhen a transaction fails, the authorisation response includes `resultCode` and `refusalReason` values.", + "type" : "string" + }, + "resultCode" : { + "description" : "The result of the payment.", + "enum" : [ + "Authorised", + "PartiallyAuthorised", + "Refused", + "Error", + "Cancelled", + "Received", + "RedirectShopper" + ], + "type" : "string" + } + }, + "required" : [ + "authResponse", + "merchantReference" + ] + }, + "Recurring" : { + "properties" : { + "contract" : { + "description" : "The type of recurring contract to be used.\nPossible values:\n* `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.\n* `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.\n* `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.", + "enum" : [ + "ONECLICK", + "RECURRING", + "PAYOUT" + ], + "type" : "string" + }, + "recurringDetailName" : { + "description" : "A descriptive name for this detail.", + "type" : "string" + }, + "tokenService" : { + "description" : "The name of the token service.", + "enum" : [ + "VISATOKENSERVICE" + ], + "type" : "string" + } + } + }, + "RecurringDetail" : { + "properties" : { + "bank" : { + "$ref" : "#/definitions/BankAccount" + }, + "card" : { + "$ref" : "#/definitions/Card" + }, + "configuration" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "The configuration.", + "type" : "object" + }, + "emailAddress" : { + "type" : "string" + }, + "group" : { + "description" : "The group where this payment method belongs to.", + "$ref" : "#/definitions/PaymentMethodGroup" + }, + "inputDetails" : { + "description" : "All input details to be provided to complete the payment with this payment method.", + "items" : { + "$ref" : "#/definitions/InputDetail" + }, + "type" : "array" + }, + "name" : { + "description" : "The displayable name of this payment method.", + "type" : "string" + }, + "paymentMethodData" : { + "description" : "echo data required to send in next calls.", + "type" : "string" + }, + "type" : { + "description" : "The unique payment method code.", + "type" : "string" + } + } + }, + "SubInputDetail" : { + "properties" : { + "key" : { + "description" : "The value to provide in the result.", + "type" : "string" + }, + "optional" : { + "description" : "True if this input is optional to provide.", + "type" : "boolean" + }, + "type" : { + "description" : "The type of the required input.", + "type" : "string" + }, + "value" : { + "description" : "The value can be pre-filled, if available.", + "type" : "string" + } + } + }, + "ThreeDSecureData" : { + "properties" : { + "authenticationResponse" : { + "description" : "The authentication response if the shopper was redirected.", + "enum" : [ + "Y", + "N", + "U", + "A" + ], + "type" : "string" + }, + "cavv" : { + "description" : "The cardholder authentication value (base64 encoded, 20 bytes in a decoded form).", + "format" : "byte", + "type" : "string" + }, + "cavvAlgorithm" : { + "description" : "The CAVV algorithm used.", + "type" : "string" + }, + "directoryResponse" : { + "description" : "The enrollment response from the 3D directory server.", + "enum" : [ + "Y", + "N", + "U", + "E" + ], + "type" : "string" + }, + "eci" : { + "description" : "The electronic commerce indicator.", + "type" : "string" + }, + "xid" : { + "description" : "The transaction identifier (base64 encoded, 20 bytes in a decoded form).", + "format" : "byte", + "type" : "string" + } + } + } + } +} \ No newline at end of file diff --git a/specs/2.0/Checkout-V32.json b/specs/2.0/Checkout-V32.json new file mode 100644 index 0000000..e134ef5 --- /dev/null +++ b/specs/2.0/Checkout-V32.json @@ -0,0 +1,999 @@ +{ + "swagger" : "2.0", + "info" : { + "version" : "32", + "title" : "Adyen Checkout Service", + "description" : "A web service to initiate and authorise payments with Adyen Checkout. You can use the same integration for payments made with cards (including One-Click and 3D Secure), mobile wallets, and local payment methods (e.g. iDEAL and Sofort). For more information, refer to [Checkout documentation](https://docs.adyen.com/developers/checkout)." + }, + "host" : "checkout-test.adyen.com", + "basePath" : "/services/PaymentSetupAndVerification/v32", + "schemes" : [ + "https" + ], + "produces" : [ + "application/json" + ], + "consumes" : [ + "application/json" + ], + "x-groups" : [ + "General" + ], + "paths" : { + "/setup" : { + "post" : { + "summary" : "Creates a payment setup", + "description" : "Provides the data object that can be used to start the Checkout SDK. For the initial payment setup, pass the payment amount, currency, and other information that can be used by Adyen to optimize the payment flow and perform better risk assessment of the transaction.\n\nFor more information, refer to [Set up a payment](https://docs.adyen.com/developers/checkout/implement-your-server-checkout/set-up-a-payment-checkout).", + "x-groupName" : "General", + "x-sortIndex" : 1, + "parameters" : [ + { + "name" : "request", + "in" : "body", + "schema" : { + "$ref" : "#/definitions/PaymentSetupRequest" + } + } + ], + "responses" : { + "200" : { + "description" : "OK - the request has succeeded.", + "schema" : { + "$ref" : "#/definitions/PaymentSetupResponse" + } + }, + "400" : { + "description" : "Bad Request - a problem reading or understanding the request." + }, + "422" : { + "description" : "Unprocessable Entity - a request validation error." + }, + "401" : { + "description" : "Unauthorized - authentication required." + }, + "500" : { + "description" : "Internal Server Error - the server could not process the request." + }, + "403" : { + "description" : "Forbidden - insufficient permissions to process the request." + } + } + } + }, + "/verify" : { + "post" : { + "summary" : "Verifies payment result", + "description" : "Verifies the payment result using the payload returned from the SDK.\n\nFor more information, refer to [Verify a payment](https://docs.adyen.com/developers/checkout/implement-your-server-checkout/verify-a-payment-checkout).", + "x-groupName" : "General", + "x-sortIndex" : 2, + "parameters" : [ + { + "name" : "request", + "in" : "body", + "schema" : { + "$ref" : "#/definitions/PaymentVerificationRequest" + } + } + ], + "responses" : { + "200" : { + "description" : "OK - the request has succeeded.", + "schema" : { + "$ref" : "#/definitions/PaymentVerificationResponse" + } + }, + "400" : { + "description" : "Bad Request - a problem reading or understanding the request." + }, + "422" : { + "description" : "Unprocessable Entity - a request validation error." + }, + "401" : { + "description" : "Unauthorized - authentication required." + }, + "500" : { + "description" : "Internal Server Error - the server could not process the request." + }, + "403" : { + "description" : "Forbidden - insufficient permissions to process the request." + } + } + } + } + }, + "definitions" : { + "Address" : { + "properties" : { + "city" : { + "description" : "The city name.", + "type" : "string" + }, + "country" : { + "description" : "A valid value is an ISO two-character country code (e.g. 'NL').", + "type" : "string" + }, + "houseNumberOrName" : { + "description" : "The house number or name.", + "type" : "string" + }, + "postalCode" : { + "description" : "The postal code with a maximum of 5 characters for USA and maximum of 10 characters for any other country.", + "type" : "string" + }, + "stateOrProvince" : { + "description" : "For USA or Canada, a valid 2-character abbreviation for the state or province respectively. For other countries any abbreviation with maximum 3 characters for the state or province.", + "type" : "string" + }, + "street" : { + "description" : "The street name.\n> Don't append the house number to this field. Instead, pass the house number separately as `houseNumberOrName`.\n", + "type" : "string" + } + }, + "required" : [ + "street", + "houseNumberOrName", + "city", + "country" + ] + }, + "Amount" : { + "properties" : { + "currency" : { + "description" : "The three-character [ISO currency code](https://docs.adyen.com/developers/currency-codes).", + "maxLength" : 3, + "minLength" : 3, + "type" : "string" + }, + "value" : { + "description" : "The payable amount that can be charged for the transaction.\n\nThe transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/developers/currency-codes).", + "format" : "int64", + "type" : "integer" + } + }, + "required" : [ + "value", + "currency" + ] + }, + "Avs" : { + "properties" : { + "addressEditable" : { + "type" : "boolean" + }, + "enabled" : { + "type" : "string" + } + } + }, + "BankAccount" : { + "properties" : { + "bankAccountNumber" : { + "description" : "The bank account number (without separators).", + "type" : "string" + }, + "bankCity" : { + "description" : "The bank city.", + "type" : "string" + }, + "bankLocationId" : { + "description" : "The location id of the bank. The field value is `nil` in most cases.", + "type" : "string" + }, + "bankName" : { + "description" : "The name of the bank.", + "type" : "string" + }, + "bic" : { + "description" : "The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.", + "type" : "string" + }, + "countryCode" : { + "description" : "Country code where the bank is located.\n\nA valid value is an ISO two-character country code (e.g. 'NL').", + "type" : "string" + }, + "iban" : { + "description" : "The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).", + "type" : "string" + }, + "ownerName" : { + "description" : "The name of the bank account holder.\nIf 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:\n* χ12 is converted to ch12.\n* üA is converted to euA.\n* Peter Møller is converted to Peter Mller, because banks don't accept 'ø'.\nAfter 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:\n* John17 - allowed.\n* J17 - allowed.\n* 171 - not allowed.\n* John-7 - allowed.\n> If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'.", + "type" : "string" + }, + "taxId" : { + "description" : "The bank account holder's tax ID.", + "type" : "string" + } + } + }, + "BrowserInfo" : { + "properties" : { + "acceptHeader" : { + "description" : "The accept header value of the shopper's browser.", + "maxLength" : 50, + "minLength" : 10, + "type" : "string" + }, + "userAgent" : { + "description" : "The user agent value of the shopper's browser.", + "maxLength" : 50, + "minLength" : 10, + "type" : "string" + } + }, + "required" : [ + "userAgent", + "acceptHeader" + ] + }, + "Card" : { + "properties" : { + "cvc" : { + "description" : "The [card verification code](https://docs.adyen.com/developers/payment-glossary#cardsecuritycodecvccvvcid) (1-20 characters). Depending on the card brand, it is known also as:\n* CVV2/CVC2 – length: 3 digits\n* CID – length: 4 digits\n> If you are using [Client-Side Encryption](https://docs.adyen.com/developers/ecommerce-integration), the CVC code is present in the encrypted data. You must never post the card details to the server.\n> This field must be always present in a [one-click payment request](https://docs.adyen.com/developers/features/recurring-payments).\n> When this value is returned in a response, it is always empty because it is not stored.", + "maxLength" : 20, + "minLength" : 1, + "type" : "string" + }, + "expiryMonth" : { + "description" : "The card expiry month.\nFormat: 2 digits, zero-padded for single digits. For example:\n* 03 = March\n* 11 = November", + "maxLength" : 2, + "minLength" : 1, + "type" : "string" + }, + "expiryYear" : { + "description" : "The card expiry year.\nFormat: 4 digits. For example: 2018", + "maxLength" : 4, + "minLength" : 4, + "type" : "string" + }, + "holderName" : { + "description" : "The name of the cardholder, as printed on the card.", + "maxLength" : 50, + "minLength" : 1, + "type" : "string" + }, + "issueNumber" : { + "description" : "The issue number of the card (for some UK debit cards only).", + "maxLength" : 2, + "minLength" : 1, + "type" : "string" + }, + "number" : { + "description" : "The card number (4-19 characters). Do not use any separators.\nWhen this value is returned in a response, only the last 4 digits of the card number are returned.", + "maxLength" : 19, + "minLength" : 4, + "type" : "string" + }, + "startMonth" : { + "description" : "The month component of the start date (for some UK debit cards only).", + "maxLength" : 2, + "minLength" : 1, + "type" : "string" + }, + "startYear" : { + "description" : "The year component of the start date (for some UK debit cards only).", + "maxLength" : 4, + "minLength" : 4, + "type" : "string" + } + }, + "required" : [ + "number", + "expiryMonth", + "expiryYear", + "holderName" + ] + }, + "Collection" : { + + }, + "Configuration" : { + "properties" : { + "avs" : { + "description" : "Describes the configuration for AVS ([Address Verification System](https://en.wikipedia.org/wiki/Address_Verification_System)).", + "$ref" : "#/definitions/Avs" + }, + "cardHolderNameRequired" : { + "type" : "boolean" + }, + "installments" : { + "description" : "Describes the configuration for [installment payments](https://docs.adyen.com/developers/payment-methods/installment-payments).", + "$ref" : "#/definitions/Installments" + } + } + }, + "ForexQuote" : { + "properties" : { + "account" : { + "description" : "The account name.", + "type" : "string" + }, + "accountType" : { + "description" : "The account type.", + "type" : "string" + }, + "baseAmount" : { + "description" : "The base amount.", + "$ref" : "#/definitions/Amount" + }, + "basePoints" : { + "description" : "The base points.", + "format" : "int32", + "type" : "integer" + }, + "buy" : { + "description" : "The buy rate.", + "$ref" : "#/definitions/Amount" + }, + "interbank" : { + "description" : "The interbank amount.", + "$ref" : "#/definitions/Amount" + }, + "reference" : { + "description" : "The reference assigned to the forex quote request.", + "type" : "string" + }, + "sell" : { + "description" : "The sell rate.", + "$ref" : "#/definitions/Amount" + }, + "signature" : { + "description" : "The signature to validate the integrity.", + "type" : "string" + }, + "source" : { + "description" : "The source of the forex quote.", + "type" : "string" + }, + "type" : { + "description" : "The type of forex.", + "type" : "string" + }, + "validTill" : { + "description" : "The date until which the forex quote is valid.", + "format" : "date-time", + "type" : "string" + } + }, + "required" : [ + "validTill", + "basePoints" + ] + }, + "FraudResult" : { + "properties" : { + "accountScore" : { + "description" : "The total fraud score generated by the risk checks.", + "format" : "int32", + "type" : "integer" + }, + "results" : { + "description" : "The result of the individual risk checks.", + "type" : "object" + } + }, + "required" : [ + "accountScore" + ] + }, + "InputDetail" : { + "properties" : { + "configuration" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "Configuration parameters for the required input.", + "type" : "object" + }, + "inputDetails" : { + "description" : "In case of address data, inputDetails can be set recursively.", + "items" : { + "$ref" : "#/definitions/SubInputDetail" + }, + "type" : "array" + }, + "itemSearchUrl" : { + "description" : "In case of a select, the URL from which to query the items.", + "type" : "string" + }, + "items" : { + "description" : "In case of a select, the items to choose from.", + "items" : { + "$ref" : "#/definitions/Item" + }, + "type" : "array" + }, + "key" : { + "description" : "The value to provide in the result.", + "type" : "string" + }, + "optional" : { + "description" : "True if this input is optional to provide.", + "type" : "boolean" + }, + "type" : { + "description" : "The type of the required input.", + "type" : "string" + }, + "value" : { + "description" : "The value can be pre-filled, if available.", + "type" : "string" + } + } + }, + "Installments" : { + "properties" : { + "value" : { + "description" : "Defines the number of installments. Its value needs to be greater than zero.\n\nUsually, the maximum allowed number of installments is capped. For example, it may not be possible to split a payment in more than 24 installments. The acquirer sets this upper limit, so its value may vary.", + "format" : "int32", + "type" : "integer" + } + }, + "required" : [ + "value" + ] + }, + "Item" : { + "properties" : { + "id" : { + "description" : "value to provide in the result", + "type" : "string" + }, + "imageUrl" : { + "description" : "optional image URL", + "type" : "string" + }, + "name" : { + "description" : "display name", + "type" : "string" + } + } + }, + "Name" : { + "properties" : { + "firstName" : { + "description" : "A person's first name.", + "type" : "string" + }, + "gender" : { + "description" : "A person's gender (can be unknown).", + "enum" : [ + "MALE", + "FEMALE", + "UNKNOWN" + ], + "maxLength" : 1, + "minLength" : 1, + "type" : "string" + }, + "infix" : { + "description" : "A person name's infix, if applicable. Maximum length: 20 characters.", + "type" : "string" + }, + "lastName" : { + "description" : "A person's last name.", + "type" : "string" + } + }, + "required" : [ + "firstName", + "lastName", + "gender" + ] + }, + "PaymentDetails" : { + "properties" : { + "additionalAmount" : { + "description" : "The portion of the `amount`, which is additional/surcharged. Required to be in the same currency as the amount.", + "$ref" : "#/definitions/Amount" + }, + "amount" : { + "description" : "The amount to charge.", + "$ref" : "#/definitions/Amount" + }, + "countryCode" : { + "description" : "The shopper's country code.", + "type" : "string" + }, + "reference" : { + "description" : "The reference assigned to the payment.", + "type" : "string" + }, + "sessionValidity" : { + "description" : "The maximum validity of the session.", + "type" : "string" + }, + "shopperLocale" : { + "description" : "The shopper's locale.", + "type" : "string" + }, + "shopperReference" : { + "description" : "The reference used to uniquely identify the shopper (e.g. user ID or account ID).", + "type" : "string" + } + } + }, + "PaymentMethod" : { + "properties" : { + "configuration" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "The configuration.", + "type" : "object" + }, + "group" : { + "description" : "The group where this payment method belongs to.", + "$ref" : "#/definitions/PaymentMethodGroup" + }, + "inputDetails" : { + "description" : "All input details to be provided to complete the payment with this payment method.", + "items" : { + "$ref" : "#/definitions/InputDetail" + }, + "type" : "array" + }, + "name" : { + "description" : "The displayable name of this payment method.", + "type" : "string" + }, + "paymentMethodData" : { + "description" : "echo data required to send in next calls.", + "type" : "string" + }, + "type" : { + "description" : "The unique payment method code.", + "type" : "string" + } + } + }, + "PaymentMethodGroup" : { + "properties" : { + "name" : { + "description" : "The name of the group.", + "type" : "string" + }, + "paymentMethodData" : { + "description" : "Echo data to be used if the payment method is displayed as part of this group.", + "type" : "string" + }, + "type" : { + "description" : "The unique code of the group.", + "type" : "string" + } + } + }, + "PaymentSetupRequest" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be required for a particular payment request.\n\nThe `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](https://docs.adyen.com/developers/api-reference/payments-api#paymentrequestadditionaldata).", + "type" : "object" + }, + "amount" : { + "description" : "The amount information for the transaction. For [BIN or card verification](https://docs.adyen.com/developers/ecommerce-integration/cards/bin-data-and-card-verification) requests, set amount to 0 (zero).", + "$ref" : "#/definitions/Amount" + }, + "billingAddress" : { + "description" : "The address where to send the invoice.", + "$ref" : "#/definitions/Address" + }, + "captureDelayHours" : { + "description" : "The delay between the authorisation and scheduled auto-capture, specified in hours.", + "format" : "int32", + "type" : "integer" + }, + "channel" : { + "description" : "The platform where a payment transaction takes place. This field is required for filtering out payment methods that are only available on specific platforms.", + "enum" : [ + "iOS", + "Android", + "Web" + ], + "type" : "string" + }, + "configuration" : { + "description" : "Specify configurations to enable additional features.", + "$ref" : "#/definitions/Configuration" + }, + "countryCode" : { + "description" : "The shopper country.\n\nFormat: [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\nExample: NL or DE", + "type" : "string" + }, + "dateOfBirth" : { + "description" : "The shopper's date of birth.\n\nFormat [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD", + "format" : "date-time", + "type" : "string" + }, + "dccQuote" : { + "description" : "The forex quote as returned in the response of the forex service.", + "$ref" : "#/definitions/ForexQuote" + }, + "deliveryAddress" : { + "description" : "The address where the purchased goods should be delivered.", + "$ref" : "#/definitions/Address" + }, + "deliveryDate" : { + "description" : "The date and time the purchased goods should be delivered.\n\nFormat [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD\n\nExample: 2017-07-17T13:42:40.428+01:00", + "format" : "date-time", + "type" : "string" + }, + "enableOneClick" : { + "description" : "When true and `shopperReference` is provided, the shopper will be asked if the payment details should be stored for future one-click payments.", + "type" : "boolean" + }, + "enableRecurring" : { + "description" : "When true and `shopperReference` is provided, 'Recurring' will be added to the recurring contract.", + "type" : "boolean" + }, + "entityType" : { + "description" : "The type of the entity the payment is processed for.", + "enum" : [ + "NaturalPerson", + "CompanyName" + ], + "type" : "string" + }, + "fraudOffset" : { + "description" : "An integer value that is added to the normal fraud score. The value can be either positive or negative.", + "format" : "int32", + "type" : "integer" + }, + "html" : { + "description" : "Required for the Web integration.\n\nSet this parameter to true to use the default Checkout UI from the SDK.", + "type" : "boolean" + }, + "installments" : { + "description" : "Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/developers/payment-methods/installment-payments).", + "$ref" : "#/definitions/Installments" + }, + "mcc" : { + "description" : "The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.", + "type" : "string" + }, + "merchantAccount" : { + "description" : "The merchant account identifier, with which you want to process the transaction.", + "type" : "string" + }, + "merchantOrderReference" : { + "description" : "This reference allows linking multiple transactions to each other.\n> When providing the `merchantOrderReference` value, we also recommend you submit `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values. ", + "type" : "string" + }, + "metadata" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "Metadata consists of entries, each of which includes a key and a value.\nLimitations: Error \"177\", \"Metadata size exceeds limit\"", + "type" : "object" + }, + "orderReference" : { + "description" : "The order reference to link multiple partial payments.", + "type" : "string" + }, + "origin" : { + "description" : "Required for the Web integration.\n\nSet this parameter to the page URL, on which you are loading the SDK.", + "type" : "string" + }, + "reference" : { + "description" : "The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. We recommend using a unique value per payment; however, it is not a requirement.\nIf you need to provide multiple references for a transaction, separate them with hyphens (\"-\").\nMaximum length: 80 characters.", + "type" : "string" + }, + "returnUrl" : { + "description" : "The URL to return to.", + "type" : "string" + }, + "sessionValidity" : { + "description" : "The maximum validity of the session.", + "type" : "string" + }, + "shopperEmail" : { + "description" : "The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks.", + "type" : "string" + }, + "shopperIP" : { + "description" : "The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks).\n> This field is mandatory for some merchants depending on your business model. Contact Adyen Support for more information.", + "type" : "string" + }, + "shopperInteraction" : { + "description" : "Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer.\nFor the web service API, Adyen assumes Ecommerce shopper interaction by default.\n\nThis field has the following possible values:\n* `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.\n* `ContAuth` - Card on file and/or subscription transactions, where the cardholder 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).\n* `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone.\n* `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.", + "enum" : [ + "Ecommerce", + "ContAuth", + "Moto", + "POS" + ], + "type" : "string" + }, + "shopperLocale" : { + "description" : "The combination of a language code and a country code to specify the language to be used in the payment.", + "type" : "string" + }, + "shopperName" : { + "description" : "The shopper's full name and gender (if specified).", + "$ref" : "#/definitions/Name" + }, + "shopperReference" : { + "description" : "The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID).\n> This field is required for recurring payments.", + "type" : "string" + }, + "shopperStatement" : { + "description" : "The text to appear on the shopper's bank statement.", + "type" : "string" + }, + "socialSecurityNumber" : { + "description" : "The shopper's social security number.", + "type" : "string" + }, + "telephoneNumber" : { + "description" : "The shopper's telephone number.", + "type" : "string" + }, + "token" : { + "description" : "The token obtained when initializing the SDK.\n\n> This parameter is required for iOS and Android; not required for Web.", + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "reference", + "amount", + "channel" + ] + }, + "PaymentSetupResponse" : { + "properties" : { + "disableRecurringDetailUrl" : { + "description" : "The URL to disable recurring details.", + "type" : "string" + }, + "generationtime" : { + "description" : "The generationtime of this request, required for encryption.", + "type" : "string" + }, + "html" : { + "description" : "The stream with html logic, if the html flag was set in the request.", + "type" : "string" + }, + "initiationUrl" : { + "description" : "The URL for the initiation call.", + "type" : "string" + }, + "logoBaseUrl" : { + "description" : "The base URL for payment method logos.", + "type" : "string" + }, + "origin" : { + "description" : "The user origin.", + "type" : "string" + }, + "originKey" : { + "description" : "The encrypted user origin.", + "type" : "string" + }, + "payment" : { + "description" : "The summary of the payment setup request.", + "$ref" : "#/definitions/PaymentDetails" + }, + "paymentData" : { + "description" : "The data blob required to be sent in every future session call.", + "type" : "string" + }, + "paymentMethods" : { + "description" : "The detailed list of payment methods required to generate payment forms.", + "items" : { + "$ref" : "#/definitions/PaymentMethod" + }, + "type" : "array" + }, + "publicKey" : { + "description" : "The public key required to encrypt sensitive data.", + "type" : "string" + }, + "publicKeyToken" : { + "description" : "The public key token.", + "type" : "string" + }, + "recurringDetails" : { + "description" : "The detailed list of stored payment details required to generate payment forms. Will be empty if oneClick is set to false in the request.", + "items" : { + "$ref" : "#/definitions/RecurringDetail" + }, + "type" : "array" + } + } + }, + "PaymentVerificationRequest" : { + "properties" : { + "payload" : { + "description" : "Encrypted and signed payment result data. You should receive this value from the Checkout SDK after the shopper completes the payment.", + "type" : "string" + } + }, + "required" : [ + "payload" + ] + }, + "PaymentVerificationResponse" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be required to return in a particular payment response. To choose data fields to be returned, go to **Customer Area** > **Settings** > **API and Response**.", + "type" : "object" + }, + "authResponse" : { + "description" : "The authorisation code representing the authentication result.\n\nPossible values:\n* Received\n* Authorised\n* Error\n* Refused\n* Cancelled\n* Unknown", + "type" : "string" + }, + "errorMessage" : { + "description" : "The error message.", + "type" : "string" + }, + "fraudResult" : { + "description" : "The fraud result properties of the payment.", + "$ref" : "#/definitions/FraudResult" + }, + "merchantReference" : { + "description" : "A unique value that you provided in the initial /setup request as a `reference` field.", + "type" : "string" + }, + "pspReference" : { + "description" : "Adyen's 16-digit unique reference associated with the transaction/the request. This value is globally unique; quote it when communicating with us about this request.", + "type" : "string" + }, + "refusalReason" : { + "description" : "If the payment's authorisation is refused or an error occurs during authorisation, this field holds Adyen's mapped reason for the refusal or a description of the error.\n\nWhen a transaction fails, the authorisation response includes `resultCode` and `refusalReason` values.", + "type" : "string" + }, + "resultCode" : { + "description" : "The result of the payment.", + "enum" : [ + "Authorised", + "PartiallyAuthorised", + "Refused", + "Error", + "Cancelled", + "Received", + "RedirectShopper" + ], + "type" : "string" + } + }, + "required" : [ + "authResponse", + "merchantReference" + ] + }, + "Recurring" : { + "properties" : { + "contract" : { + "description" : "The type of recurring contract to be used.\nPossible values:\n* `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.\n* `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.\n* `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.", + "enum" : [ + "ONECLICK", + "RECURRING", + "PAYOUT" + ], + "type" : "string" + }, + "recurringDetailName" : { + "description" : "A descriptive name for this detail.", + "type" : "string" + }, + "tokenService" : { + "description" : "The name of the token service.", + "enum" : [ + "VISATOKENSERVICE" + ], + "type" : "string" + } + } + }, + "RecurringDetail" : { + "properties" : { + "bank" : { + "$ref" : "#/definitions/BankAccount" + }, + "card" : { + "$ref" : "#/definitions/Card" + }, + "configuration" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "The configuration.", + "type" : "object" + }, + "emailAddress" : { + "type" : "string" + }, + "group" : { + "description" : "The group where this payment method belongs to.", + "$ref" : "#/definitions/PaymentMethodGroup" + }, + "inputDetails" : { + "description" : "All input details to be provided to complete the payment with this payment method.", + "items" : { + "$ref" : "#/definitions/InputDetail" + }, + "type" : "array" + }, + "name" : { + "description" : "The displayable name of this payment method.", + "type" : "string" + }, + "paymentMethodData" : { + "description" : "echo data required to send in next calls.", + "type" : "string" + }, + "type" : { + "description" : "The unique payment method code.", + "type" : "string" + } + } + }, + "SubInputDetail" : { + "properties" : { + "key" : { + "description" : "The value to provide in the result.", + "type" : "string" + }, + "optional" : { + "description" : "True if this input is optional to provide.", + "type" : "boolean" + }, + "type" : { + "description" : "The type of the required input.", + "type" : "string" + }, + "value" : { + "description" : "The value can be pre-filled, if available.", + "type" : "string" + } + } + }, + "ThreeDSecureData" : { + "properties" : { + "authenticationResponse" : { + "description" : "The authentication response if the shopper was redirected.", + "enum" : [ + "Y", + "N", + "U", + "A" + ], + "type" : "string" + }, + "cavv" : { + "description" : "The cardholder authentication value (base64 encoded, 20 bytes in a decoded form).", + "format" : "byte", + "type" : "string" + }, + "cavvAlgorithm" : { + "description" : "The CAVV algorithm used.", + "type" : "string" + }, + "directoryResponse" : { + "description" : "The enrollment response from the 3D directory server.", + "enum" : [ + "Y", + "N", + "U", + "E" + ], + "type" : "string" + }, + "eci" : { + "description" : "The electronic commerce indicator.", + "type" : "string" + }, + "xid" : { + "description" : "The transaction identifier (base64 encoded, 20 bytes in a decoded form).", + "format" : "byte", + "type" : "string" + } + } + } + } +} \ No newline at end of file diff --git a/specs/2.0/PaymentService-V25.json b/specs/2.0/PaymentService-V25.json index 123c190..3376389 100644 --- a/specs/2.0/PaymentService-V25.json +++ b/specs/2.0/PaymentService-V25.json @@ -23,8 +23,8 @@ "paths" : { "/authorise" : { "post" : { - "summary" : "Creates a payment authorisation", - "description" : "Creates a payment with a unique reference (pspReference) and attempts to obtain an authorisation hold, which can be \"captured\" or \"cancelled\" later. While for cards an authorised payment can be captured later, non-card methods typically don't support this and will automatically capture as part of the authorisation.", + "summary" : "Create a payment authorisation", + "description" : "Creates a payment with a unique reference (`pspReference`) and attempts to obtain an authorisation hold. For cards, this amount can be captured or cancelled later. Non-card payment methods typically don't support this and will automatically capture as part of the authorisation.\n\nFor more information, refer to [Ecommerce quick integration](https://docs.adyen.com/developers/ecommerce-integration).", "x-groupName" : "General", "x-sortIndex" : 1, "parameters" : [ @@ -63,8 +63,8 @@ }, "/authorise3d" : { "post" : { - "summary" : "Completes a 3-D Secure payment authorisation", - "description" : "For an authenticated 3-D secure session, creates a payment with a unique reference (pspReference) and attempts to obtain an authorisation hold, which can be \"captured\" or \"cancelled\" later.", + "summary" : "Complete a 3D Secure payment authorisation", + "description" : "For an authenticated 3D Secure session, completes the payment authorisation. This endpoint must receive the `md` and `paResponse` parameters that you get from the card issuer after a shopper pays via 3D Secure.\n\nFor more information, refer to [3D Secure](https://docs.adyen.com/developers/risk-management/3d-secure).", "x-groupName" : "General", "x-sortIndex" : 2, "parameters" : [ @@ -103,10 +103,10 @@ }, "/cancel" : { "post" : { - "summary" : "Cancels a payment authorisation", - "description" : "Cancels the authorisation hold on a payment, returning a unique reference for this request.", + "summary" : "Cancel a payment authorisation", + "description" : "Cancels the authorisation hold on a payment, returning a unique reference for this request. You can cancel payments after authorisation only for payment methods that support distinct authorisations and captures.\n\nFor more information, refer to [Cancel](https://docs.adyen.com/developers/payment-modifications#cancel).", "x-groupName" : "Modifications", - "x-sortIndex" : 1, + "x-sortIndex" : 2, "parameters" : [ { "name" : "modificationRequest", @@ -143,10 +143,10 @@ }, "/cancelOrRefund" : { "post" : { - "summary" : "Cancels or refunds a payment", - "description" : "Performs a \"cancel\" on a payment if it has not yet been captured or a \"refund\" if it has already been captured. This is useful when it is not certain if the payment has been captured yet (e.g. when using auto-capture).", + "summary" : "Cancel or refund a payment", + "description" : "Cancels a payment if it has not yet been captured yet, or refunds it if it has already been captured. This is useful when it is not certain if the payment has been captured or not (for example, when using auto-capture).\n\nFor more information, refer to [Cancel or refund](https://docs.adyen.com/developers/payment-modifications#cancelorrefund).", "x-groupName" : "Modifications", - "x-sortIndex" : 3, + "x-sortIndex" : 4, "parameters" : [ { "name" : "modificationRequest", @@ -180,10 +180,10 @@ }, "/capture" : { "post" : { - "summary" : "Captures a payment authorisation", - "description" : "Captures the authorisation hold on a payment, returning a unique reference for this request. Usually the full authorisation amount is captured, however it's also possible to capture a smaller amount which results in cancelling the remaining authorisation balance. Payment methods which automatically capture as part of authorisation don't need to be captured, but submitting a capture request on these transactions will not result in double charges.
Please note that:
  1. if immediate or delayed auto-capture is enabled, calling the capture method is not neccessary.
", - "x-groupName" : "General", - "x-sortIndex" : 3, + "summary" : "Capture a payment authorisation", + "description" : "Captures the authorisation hold on a payment, returning a unique reference for this request. Usually the full authorisation amount is captured, however it's also possible to capture a smaller amount, which results in cancelling the remaining authorisation balance.\n\nPayment methods, which automatically capture as part of authorisation, don't need to be captured, but submitting a capture request on these transactions will not result in double charges. If immediate or delayed auto-capture is enabled, calling the capture method is not neccessary.\n\nFor more information, refer to [Capture](https://docs.adyen.com/developers/payment-modifications#capture).", + "x-groupName" : "Modifications", + "x-sortIndex" : 1, "parameters" : [ { "name" : "modificationRequest", @@ -220,10 +220,10 @@ }, "/refund" : { "post" : { - "summary" : "Refunds a payment", - "description" : "Refunds a payment which has previously been captured, returning a unique reference for this request. Refunding can be done on the full captured amount or a partial amount. Multiple (partial) refunds will be accepted as long as their sum doesn't exceed the captured amount. Payments which have been authorised, but not captured cannot be refunded, use the \"cancel\" method instead.
Please note that:
  1. some payment methods / gateways do not support partial/multiple refunds;
  2. a margin above the captured limit can be configured to cover shipping/handling costs.
", + "summary" : "Refund a payment", + "description" : "Refunds a payment that has previously been captured, returning a unique reference for this request. Refunding can be done on the full captured amount or a partial amount. Multiple (partial) refunds will be accepted as long as their sum doesn't exceed the captured amount. Payments which have been authorised, but not captured, cannot be refunded, use the /cancel method instead.\n\n> Some payment methods/gateways do not support partial/multiple refunds.\n> A margin above the captured limit can be configured to cover shipping/handling costs.\n\nFor more information, refer to [Refund](https://docs.adyen.com/developers/payment-modifications#refund).", "x-groupName" : "Modifications", - "x-sortIndex" : 2, + "x-sortIndex" : 3, "parameters" : [ { "name" : "modificationRequest", @@ -297,7 +297,7 @@ "Amount" : { "properties" : { "currency" : { - "description" : "The three-character [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217).", + "description" : "The three-character [ISO currency code](https://docs.adyen.com/developers/currency-codes).", "maxLength" : 3, "minLength" : 3, "type" : "string" @@ -501,7 +501,7 @@ }, "results" : { "description" : "The result of the individual risk checks.", - "$ref" : "#/definitions/Collection" + "type" : "object" } }, "required" : [ @@ -529,20 +529,16 @@ "description" : "This field contains additional data, which may be required for a particular payment request.", "type" : "object" }, - "authorisationCode" : { - "description" : "The authorisation code of the payment (only required for the \"authoriseReferral\" method).", - "type" : "string" - }, "merchantAccount" : { "description" : "The merchant account that is used to process the payment.", "type" : "string" }, "modificationAmount" : { - "description" : "The amount that needs to be captured/refunded. Required for /capture and /refund, not allowed for /cancel. The `currency` must match the currency used in authorisation, the `value` must be smaller than or equal to the authorised amount.", + "description" : "The amount that needs to be captured/refunded. Required for `/capture` and `/refund`, not allowed for `/cancel`. The `currency` must match the currency used in authorisation, the `value` must be smaller than or equal to the authorised amount.", "$ref" : "#/definitions/Amount" }, "originalReference" : { - "description" : "The original pspReference of the payment to modify.\nThis reference is returned in:\n* authorisation response\n* authorisation notification", + "description" : "The original pspReference of the payment to modify.\nThis reference is returned in:\n* authorisation response\n* authorisation notification", "type" : "string" }, "reference" : { @@ -557,7 +553,11 @@ "description" : "Unique terminal ID for the PED that originally processed the request. For Point-of-sale integrations only.", "type" : "string" } - } + }, + "required" : [ + "merchantAccount", + "originalReference" + ] }, "ModificationResult" : { "properties" : { @@ -634,7 +634,7 @@ "$ref" : "#/definitions/Amount" }, "bankAccount" : { - "description" : "The details of the bank account, from which the payment should be made from.\nEither `bankAccount` or `card` field must be provided in a payment request.", + "description" : "The details of the bank account, from which the payment should be made.\n> Either `bankAccount` or `card` field must be provided in a payment request.", "$ref" : "#/definitions/BankAccount" }, "billingAddress" : { @@ -655,7 +655,7 @@ "$ref" : "#/definitions/Card" }, "dateOfBirth" : { - "description" : "The shopper's date of birth.\n\nFormat: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD", + "description" : "The shopper's date of birth.\n\nFormat [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD", "format" : "date-time", "type" : "string" }, @@ -664,11 +664,11 @@ "$ref" : "#/definitions/ForexQuote" }, "deliveryAddress" : { - "description" : "The address where the purchased goods should be delivered to.", + "description" : "The address where the purchased goods should be delivered.", "$ref" : "#/definitions/Address" }, "deliveryDate" : { - "description" : "The date and time the purchased goods should be delivered.\n\nFormat: [ISO 8601](https://www.w3.org/TR/NOTE-datetime); YYYY-MM-DDThh:mm:ss.sssTZD\nExample: 2017-07-17T13:42:40.428+01:00", + "description" : "The date and time the purchased goods should be delivered.\n\nFormat [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD\n\nExample: 2017-07-17T13:42:40.428+01:00", "format" : "date-time", "type" : "string" }, @@ -694,7 +694,7 @@ "$ref" : "#/definitions/Installments" }, "mcc" : { - "description" : "The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.", + "description" : "The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.", "type" : "string" }, "merchantAccount" : { @@ -734,7 +734,7 @@ "type" : "string" }, "selectedBrand" : { - "description" : "Some payment methods require defining a value for this field to specify how to process the transaction.\n\nFor the MisterCash payment method, it can be set to:\n* `maestro` (default), to be processed like a Maestro card, or\n* `bcmc`, to be processed like a MisterCash card.", + "description" : "Some payment methods require defining a value for this field to specify how to process the transaction.\n\nFor the Bancontact payment method, it can be set to:\n* `maestro` (default), to be processed like a Maestro card, or\n* `bcmc`, to be processed like a Bancontact card.", "type" : "string" }, "selectedRecurringDetailReference" : { @@ -754,175 +754,7 @@ "type" : "string" }, "shopperInteraction" : { - "description" : "Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer.\nFor the web service API, Adyen assumes Ecommerce shopper interaction by default.\n\nThis field has the following possible values:\n* `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.\n* `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).\n* `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone.\n* `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.", - "enum" : [ - "Ecommerce", - "ContAuth", - "Moto", - "POS" - ], - "type" : "string" - }, - "shopperLocale" : { - "description" : "The combination of a language code and a country code to specify the language to be used in the payment.", - "type" : "string" - }, - "shopperName" : { - "description" : "The shopper's full name and gender (if specified).", - "$ref" : "#/definitions/Name" - }, - "shopperReference" : { - "description" : "The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID).\n> This field is required for recurring payments.", - "type" : "string" - }, - "shopperStatement" : { - "description" : "The text to appear on the shopper's bank statement.", - "type" : "string" - }, - "socialSecurityNumber" : { - "description" : "The shopper's social security number.", - "type" : "string" - }, - "store" : { - "description" : "The physical store, for which this payment is processed.", - "maxLength" : 16, - "minLength" : 1, - "type" : "string" - }, - "telephoneNumber" : { - "description" : "The shopper's telephone number.", - "type" : "string" - }, - "totalsGroup" : { - "description" : "The reference value to aggregate sales totals in reporting. When not specified, the store field is used (if available).", - "maxLength" : 16, - "minLength" : 1, - "type" : "string" - } - } - }, - "PaymentRequest3d" : { - "properties" : { - "additionalAmount" : { - "description" : "If you want a [BIN or card verification](https://docs.adyen.com/developers/ecommerce-integration/cards/bin-data-and-card-verification) request to use a non-zero value, assign this value to `additionalAmount` (while the amount must be still set to 0 to trigger BIN or card verification).\nRequired to be in the same currency as the `amount`. ", - "$ref" : "#/definitions/Amount" - }, - "additionalData" : { - "additionalProperties" : { - "type" : "string" - }, - "description" : "This field contains additional data, which may be required for a particular payment request.\n\nThe `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](https://docs.adyen.com/developers/api-reference/payments-api#paymentrequestadditionaldata).", - "type" : "object" - }, - "amount" : { - "description" : "The amount information for the transaction. For [BIN or card verification](https://docs.adyen.com/developers/ecommerce-integration/cards/bin-data-and-card-verification) requests, set amount to 0 (zero).", - "$ref" : "#/definitions/Amount" - }, - "billingAddress" : { - "description" : "The address where to send the invoice.", - "$ref" : "#/definitions/Address" - }, - "browserInfo" : { - "description" : "The shopper's browser information.", - "$ref" : "#/definitions/BrowserInfo" - }, - "captureDelayHours" : { - "description" : "The delay between the authorisation and scheduled auto-capture, specified in hours.", - "format" : "int32", - "type" : "integer" - }, - "dateOfBirth" : { - "description" : "The shopper's date of birth.\n\nFormat: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD", - "format" : "date-time", - "type" : "string" - }, - "dccQuote" : { - "description" : "The forex quote as returned in the response of the forex service.", - "$ref" : "#/definitions/ForexQuote" - }, - "deliveryAddress" : { - "description" : "The address where the purchased goods should be delivered to.", - "$ref" : "#/definitions/Address" - }, - "deliveryDate" : { - "description" : "The date and time the purchased goods should be delivered.\n\nFormat: [ISO 8601](https://www.w3.org/TR/NOTE-datetime); YYYY-MM-DDThh:mm:ss.sssTZD\nExample: 2017-07-17T13:42:40.428+01:00", - "format" : "date-time", - "type" : "string" - }, - "deviceFingerprint" : { - "description" : "A string containing the shopper's device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/developers/risk-management/device-fingerprinting).", - "type" : "string" - }, - "fraudOffset" : { - "description" : "An integer value that is added to the normal fraud score. The value can be either positive or negative.", - "format" : "int32", - "type" : "integer" - }, - "installments" : { - "description" : "Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/developers/payment-methods/installment-payments).", - "$ref" : "#/definitions/Installments" - }, - "mcc" : { - "description" : "The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.", - "type" : "string" - }, - "md" : { - "description" : "The payment session identifier returned by the card issuer.", - "type" : "string" - }, - "merchantAccount" : { - "description" : "The merchant account identifier, with which you want to process the transaction.", - "type" : "string" - }, - "merchantOrderReference" : { - "description" : "This reference allows linking multiple transactions to each other.\n> When providing the `merchantOrderReference` value, we also recommend you submit `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values. ", - "type" : "string" - }, - "metadata" : { - "additionalProperties" : { - "type" : "string" - }, - "description" : "Metadata consists of entries, each of which includes a key and a value.\nLimitations: Error \"177\", \"Metadata size exceeds limit\"", - "type" : "object" - }, - "orderReference" : { - "description" : "The order reference to link multiple partial payments.", - "type" : "string" - }, - "paResponse" : { - "description" : "Payment authorisation response returned by the card issuer. The `paResponse` field holds the PaRes value received from the card issuer.", - "type" : "string" - }, - "recurring" : { - "description" : "The recurring settings for the payment. Use this property when you want to enable [recurring payments](https://docs.adyen.com/developers/features/recurring-payments).", - "$ref" : "#/definitions/Recurring" - }, - "reference" : { - "description" : "The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. We recommend using a unique value per payment; however, it is not a requirement.\nIf you need to provide multiple references for a transaction, separate them with hyphens (\"-\").\nMaximum length: 80 characters.", - "type" : "string" - }, - "selectedBrand" : { - "description" : "Some payment methods require defining a value for this field to specify how to process the transaction.\n\nFor the MisterCash payment method, it can be set to:\n* `maestro` (default), to be processed like a Maestro card, or\n* `bcmc`, to be processed like a MisterCash card.", - "type" : "string" - }, - "selectedRecurringDetailReference" : { - "description" : "The `recurringDetailReference` you want to use for this payment. The value `LATEST` can be used to select the most recently stored recurring detail.", - "type" : "string" - }, - "sessionId" : { - "description" : "A session ID used to identify a payment session.", - "type" : "string" - }, - "shopperEmail" : { - "description" : "The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks.", - "type" : "string" - }, - "shopperIP" : { - "description" : "The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks).\n> This field is mandatory for some merchants depending on your business model. Contact Adyen Support for more information.", - "type" : "string" - }, - "shopperInteraction" : { - "description" : "Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer.\nFor the web service API, Adyen assumes Ecommerce shopper interaction by default.\n\nThis field has the following possible values:\n* `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.\n* `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).\n* `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone.\n* `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.", + "description" : "Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer.\nFor the web service API, Adyen assumes Ecommerce shopper interaction by default.\n\nThis field has the following possible values:\n* `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.\n* `ContAuth` - Card on file and/or subscription transactions, where the cardholder 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).\n* `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone.\n* `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.", "enum" : [ "Ecommerce", "ContAuth", @@ -969,6 +801,182 @@ } }, "required" : [ + "merchantAccount", + "reference", + "amount" + ] + }, + "PaymentRequest3d" : { + "properties" : { + "additionalAmount" : { + "description" : "If you want a [BIN or card verification](https://docs.adyen.com/developers/ecommerce-integration/cards/bin-data-and-card-verification) request to use a non-zero value, assign this value to `additionalAmount` (while the amount must be still set to 0 to trigger BIN or card verification).\nRequired to be in the same currency as the `amount`. ", + "$ref" : "#/definitions/Amount" + }, + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be required for a particular payment request.\n\nThe `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](https://docs.adyen.com/developers/api-reference/payments-api#paymentrequestadditionaldata).", + "type" : "object" + }, + "amount" : { + "description" : "The amount information for the transaction. For [BIN or card verification](https://docs.adyen.com/developers/ecommerce-integration/cards/bin-data-and-card-verification) requests, set amount to 0 (zero).", + "$ref" : "#/definitions/Amount" + }, + "billingAddress" : { + "description" : "The address where to send the invoice.", + "$ref" : "#/definitions/Address" + }, + "browserInfo" : { + "description" : "The shopper's browser information.", + "$ref" : "#/definitions/BrowserInfo" + }, + "captureDelayHours" : { + "description" : "The delay between the authorisation and scheduled auto-capture, specified in hours.", + "format" : "int32", + "type" : "integer" + }, + "dateOfBirth" : { + "description" : "The shopper's date of birth.\n\nFormat [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD", + "format" : "date-time", + "type" : "string" + }, + "dccQuote" : { + "description" : "The forex quote as returned in the response of the forex service.", + "$ref" : "#/definitions/ForexQuote" + }, + "deliveryAddress" : { + "description" : "The address where the purchased goods should be delivered.", + "$ref" : "#/definitions/Address" + }, + "deliveryDate" : { + "description" : "The date and time the purchased goods should be delivered.\n\nFormat [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD\n\nExample: 2017-07-17T13:42:40.428+01:00", + "format" : "date-time", + "type" : "string" + }, + "deviceFingerprint" : { + "description" : "A string containing the shopper's device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/developers/risk-management/device-fingerprinting).", + "type" : "string" + }, + "fraudOffset" : { + "description" : "An integer value that is added to the normal fraud score. The value can be either positive or negative.", + "format" : "int32", + "type" : "integer" + }, + "installments" : { + "description" : "Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/developers/payment-methods/installment-payments).", + "$ref" : "#/definitions/Installments" + }, + "mcc" : { + "description" : "The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.", + "type" : "string" + }, + "md" : { + "description" : "The payment session identifier returned by the card issuer.", + "type" : "string" + }, + "merchantAccount" : { + "description" : "The merchant account identifier, with which you want to process the transaction.", + "type" : "string" + }, + "merchantOrderReference" : { + "description" : "This reference allows linking multiple transactions to each other.\n> When providing the `merchantOrderReference` value, we also recommend you submit `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values. ", + "type" : "string" + }, + "metadata" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "Metadata consists of entries, each of which includes a key and a value.\nLimitations: Error \"177\", \"Metadata size exceeds limit\"", + "type" : "object" + }, + "orderReference" : { + "description" : "The order reference to link multiple partial payments.", + "type" : "string" + }, + "paResponse" : { + "description" : "Payment authorisation response returned by the card issuer. The `paResponse` field holds the PaRes value received from the card issuer.", + "type" : "string" + }, + "recurring" : { + "description" : "The recurring settings for the payment. Use this property when you want to enable [recurring payments](https://docs.adyen.com/developers/features/recurring-payments).", + "$ref" : "#/definitions/Recurring" + }, + "reference" : { + "description" : "The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. We recommend using a unique value per payment; however, it is not a requirement.\nIf you need to provide multiple references for a transaction, separate them with hyphens (\"-\").\nMaximum length: 80 characters.", + "type" : "string" + }, + "selectedBrand" : { + "description" : "Some payment methods require defining a value for this field to specify how to process the transaction.\n\nFor the Bancontact payment method, it can be set to:\n* `maestro` (default), to be processed like a Maestro card, or\n* `bcmc`, to be processed like a Bancontact card.", + "type" : "string" + }, + "selectedRecurringDetailReference" : { + "description" : "The `recurringDetailReference` you want to use for this payment. The value `LATEST` can be used to select the most recently stored recurring detail.", + "type" : "string" + }, + "sessionId" : { + "description" : "A session ID used to identify a payment session.", + "type" : "string" + }, + "shopperEmail" : { + "description" : "The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks.", + "type" : "string" + }, + "shopperIP" : { + "description" : "The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks).\n> This field is mandatory for some merchants depending on your business model. Contact Adyen Support for more information.", + "type" : "string" + }, + "shopperInteraction" : { + "description" : "Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer.\nFor the web service API, Adyen assumes Ecommerce shopper interaction by default.\n\nThis field has the following possible values:\n* `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.\n* `ContAuth` - Card on file and/or subscription transactions, where the cardholder 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).\n* `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone.\n* `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.", + "enum" : [ + "Ecommerce", + "ContAuth", + "Moto", + "POS" + ], + "type" : "string" + }, + "shopperLocale" : { + "description" : "The combination of a language code and a country code to specify the language to be used in the payment.", + "type" : "string" + }, + "shopperName" : { + "description" : "The shopper's full name and gender (if specified).", + "$ref" : "#/definitions/Name" + }, + "shopperReference" : { + "description" : "The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID).\n> This field is required for recurring payments.", + "type" : "string" + }, + "shopperStatement" : { + "description" : "The text to appear on the shopper's bank statement.", + "type" : "string" + }, + "socialSecurityNumber" : { + "description" : "The shopper's social security number.", + "type" : "string" + }, + "store" : { + "description" : "The physical store, for which this payment is processed.", + "maxLength" : 16, + "minLength" : 1, + "type" : "string" + }, + "telephoneNumber" : { + "description" : "The shopper's telephone number.", + "type" : "string" + }, + "totalsGroup" : { + "description" : "The reference value to aggregate sales totals in reporting. When not specified, the store field is used (if available).", + "maxLength" : 16, + "minLength" : 1, + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "reference", + "amount", "paResponse", "md" ] @@ -979,17 +987,19 @@ "additionalProperties" : { "type" : "string" }, - "description" : "This field contains additional data, which may be required to return in a particular payment response. To choose data fields to be returned, go to Customer Area -> Settings -> API and Response.", + "description" : "This field contains additional data, which may be required to return in a particular payment response. To choose data fields to be returned, go to **Customer Area** > **Settings** > **API and Response**.", "type" : "object" }, "authCode" : { - "description" : "Authorisation code: \n* When the payment is authorised successfully, this field holds the authorisation code for the payment. \n* When the payment is not authorised, this field is empty.", + "description" : "Authorisation code:\n* When the payment is authorised successfully, this field holds the authorisation code for the payment.\n* When the payment is not authorised, this field is empty.", "type" : "string" }, "dccAmount" : { + "description" : "Includes the currency of the conversion and the value of the transaction.\n> This value only applies if you have implemented Dynamic Currency Conversion. For more information, contact Support.", "$ref" : "#/definitions/Amount" }, "dccSignature" : { + "description" : "Cryptographic signature used to verify `dccQuote`.\n> This value only applies if you have implemented Dynamic Currency Conversion. For more information, contact Support.", "type" : "string" }, "fraudResult" : { @@ -1013,7 +1023,7 @@ "type" : "string" }, "refusalReason" : { - "description" : "If the payment's authorisation is refused or an error occurrs during authorisation, this field holds Adyen's mapped reason for the refusal or a description of the error.\n\nWhen a transaction fails, the authorisation response includes `resultCode` and `refusalReason` values.", + "description" : "If the payment's authorisation is refused or an error occurs during authorisation, this field holds Adyen's mapped reason for the refusal or a description of the error.\n\nWhen a transaction fails, the authorisation response includes `resultCode` and `refusalReason` values.", "type" : "string" }, "resultCode" : { diff --git a/specs/2.0/PaymentService-V30.json b/specs/2.0/PaymentService-V30.json index 176c649..ac96a69 100644 --- a/specs/2.0/PaymentService-V30.json +++ b/specs/2.0/PaymentService-V30.json @@ -23,8 +23,8 @@ "paths" : { "/adjustAuthorisation" : { "post" : { - "summary" : "Adjusts the authorised amount of a payment", - "description" : "Adjusts the already authorised amount of a payment to the specified value", + "summary" : "Adjust the authorised amount", + "description" : "Allows you to increase or decrease the authorised amount after the initial authorisation has taken place. This functionality enables tipping, improving the chances your authorisation will be valid, charging the shopper when they have already left the merchant premises, etc.\n\nFor more information, refer to [Adjust Authorisation](https://docs.adyen.com/developers/payment-modifications#adjustauthorisation).", "x-groupName" : "Modifications", "x-sortIndex" : 5, "parameters" : [ @@ -63,8 +63,8 @@ }, "/authorise" : { "post" : { - "summary" : "Creates a payment authorisation", - "description" : "Creates a payment with a unique reference (pspReference) and attempts to obtain an authorisation hold, which can be \"captured\" or \"cancelled\" later. While for cards an authorised payment can be captured later, non-card methods typically don't support this and will automatically capture as part of the authorisation.", + "summary" : "Create a payment authorisation", + "description" : "Creates a payment with a unique reference (`pspReference`) and attempts to obtain an authorisation hold. For cards, this amount can be captured or cancelled later. Non-card payment methods typically don't support this and will automatically capture as part of the authorisation.\n\nFor more information, refer to [Ecommerce quick integration](https://docs.adyen.com/developers/ecommerce-integration).", "x-groupName" : "General", "x-sortIndex" : 1, "parameters" : [ @@ -103,8 +103,8 @@ }, "/authorise3d" : { "post" : { - "summary" : "Completes a 3-D Secure payment authorisation", - "description" : "For an authenticated 3-D secure session, creates a payment with a unique reference (pspReference) and attempts to obtain an authorisation hold, which can be \"captured\" or \"cancelled\" later.", + "summary" : "Complete a 3D Secure payment authorisation", + "description" : "For an authenticated 3D Secure session, completes the payment authorisation. This endpoint must receive the `md` and `paResponse` parameters that you get from the card issuer after a shopper pays via 3D Secure.\n\nFor more information, refer to [3D Secure](https://docs.adyen.com/developers/risk-management/3d-secure).", "x-groupName" : "General", "x-sortIndex" : 2, "parameters" : [ @@ -143,10 +143,10 @@ }, "/cancel" : { "post" : { - "summary" : "Cancels a payment authorisation", - "description" : "Cancels the authorisation hold on a payment, returning a unique reference for this request.", + "summary" : "Cancel a payment authorisation", + "description" : "Cancels the authorisation hold on a payment, returning a unique reference for this request. You can cancel payments after authorisation only for payment methods that support distinct authorisations and captures.\n\nFor more information, refer to [Cancel](https://docs.adyen.com/developers/payment-modifications#cancel).", "x-groupName" : "Modifications", - "x-sortIndex" : 1, + "x-sortIndex" : 2, "parameters" : [ { "name" : "modificationRequest", @@ -183,10 +183,10 @@ }, "/cancelOrRefund" : { "post" : { - "summary" : "Cancels or refunds a payment", - "description" : "Performs a \"cancel\" on a payment if it has not yet been captured or a \"refund\" if it has already been captured. This is useful when it is not certain if the payment has been captured yet (e.g. when using auto-capture).", + "summary" : "Cancel or refund a payment", + "description" : "Cancels a payment if it has not yet been captured yet, or refunds it if it has already been captured. This is useful when it is not certain if the payment has been captured or not (for example, when using auto-capture).\n\nFor more information, refer to [Cancel or refund](https://docs.adyen.com/developers/payment-modifications#cancelorrefund).", "x-groupName" : "Modifications", - "x-sortIndex" : 3, + "x-sortIndex" : 4, "parameters" : [ { "name" : "modificationRequest", @@ -220,10 +220,10 @@ }, "/capture" : { "post" : { - "summary" : "Captures a payment authorisation", - "description" : "Captures the authorisation hold on a payment, returning a unique reference for this request. Usually the full authorisation amount is captured, however it's also possible to capture a smaller amount which results in cancelling the remaining authorisation balance. Payment methods which automatically capture as part of authorisation don't need to be captured, but submitting a capture request on these transactions will not result in double charges.
Please note that:
  1. if immediate or delayed auto-capture is enabled, calling the capture method is not neccessary.
", - "x-groupName" : "General", - "x-sortIndex" : 3, + "summary" : "Capture a payment authorisation", + "description" : "Captures the authorisation hold on a payment, returning a unique reference for this request. Usually the full authorisation amount is captured, however it's also possible to capture a smaller amount, which results in cancelling the remaining authorisation balance.\n\nPayment methods, which automatically capture as part of authorisation, don't need to be captured, but submitting a capture request on these transactions will not result in double charges. If immediate or delayed auto-capture is enabled, calling the capture method is not neccessary.\n\nFor more information, refer to [Capture](https://docs.adyen.com/developers/payment-modifications#capture).", + "x-groupName" : "Modifications", + "x-sortIndex" : 1, "parameters" : [ { "name" : "modificationRequest", @@ -260,10 +260,10 @@ }, "/refund" : { "post" : { - "summary" : "Refunds a payment", - "description" : "Refunds a payment which has previously been captured, returning a unique reference for this request. Refunding can be done on the full captured amount or a partial amount. Multiple (partial) refunds will be accepted as long as their sum doesn't exceed the captured amount. Payments which have been authorised, but not captured cannot be refunded, use the \"cancel\" method instead.
Please note that:
  1. some payment methods / gateways do not support partial/multiple refunds;
  2. a margin above the captured limit can be configured to cover shipping/handling costs.
", + "summary" : "Refund a payment", + "description" : "Refunds a payment that has previously been captured, returning a unique reference for this request. Refunding can be done on the full captured amount or a partial amount. Multiple (partial) refunds will be accepted as long as their sum doesn't exceed the captured amount. Payments which have been authorised, but not captured, cannot be refunded, use the /cancel method instead.\n\n> Some payment methods/gateways do not support partial/multiple refunds.\n> A margin above the captured limit can be configured to cover shipping/handling costs.\n\nFor more information, refer to [Refund](https://docs.adyen.com/developers/payment-modifications#refund).", "x-groupName" : "Modifications", - "x-sortIndex" : 2, + "x-sortIndex" : 3, "parameters" : [ { "name" : "modificationRequest", @@ -294,49 +294,6 @@ } } } - }, - "/technicalCancel" : { - "post" : { - "summary" : "Performs a technical cancel (reversal) on a payment authorisation", - "description" : "Cancels the authorisation hold on a payment, returning a unique reference for this request.", - "x-groupName" : "Modifications", - "x-sortIndex" : 6, - "parameters" : [ - { - "name" : "modificationRequest", - "in" : "body", - "schema" : { - "$ref" : "#/definitions/ModificationRequest" - } - } - ], - "responses" : { - "200" : { - "description" : "OK - the request has succeeded.", - "schema" : { - "$ref" : "#/definitions/ModificationResult" - } - }, - "400" : { - "description" : "Bad Request - a problem reading or understanding the request." - }, - "422" : { - "description" : "Unprocessable Entity - a request validation error." - }, - "401" : { - "description" : "Unauthorized - authentication required." - }, - "500" : { - "description" : "Internal Server Error - the server could not process the request." - }, - "403" : { - "description" : "Forbidden - insufficient permissions to process the request." - } - } - } - }, - "/voidPendingRefund" : { - } }, "definitions" : { @@ -377,7 +334,7 @@ "Amount" : { "properties" : { "currency" : { - "description" : "The three-character [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217).", + "description" : "The three-character [ISO currency code](https://docs.adyen.com/developers/currency-codes).", "maxLength" : 3, "minLength" : 3, "type" : "string" @@ -581,7 +538,7 @@ }, "results" : { "description" : "The result of the individual risk checks.", - "$ref" : "#/definitions/Collection" + "type" : "object" } }, "required" : [ @@ -609,24 +566,20 @@ "description" : "This field contains additional data, which may be required for a particular payment request.", "type" : "object" }, - "authorisationCode" : { - "description" : "The authorisation code of the payment (only required for the \"authoriseReferral\" method).", - "type" : "string" - }, "merchantAccount" : { "description" : "The merchant account that is used to process the payment.", "type" : "string" }, "modificationAmount" : { - "description" : "The amount that needs to be captured/refunded. Required for /capture and /refund, not allowed for /cancel. The `currency` must match the currency used in authorisation, the `value` must be smaller than or equal to the authorised amount.", + "description" : "The amount that needs to be captured/refunded. Required for `/capture` and `/refund`, not allowed for `/cancel`. The `currency` must match the currency used in authorisation, the `value` must be smaller than or equal to the authorised amount.", "$ref" : "#/definitions/Amount" }, "originalMerchantReference" : { - "description" : "the original merchant reference to cancel", + "description" : "The original merchant reference to cancel.", "type" : "string" }, "originalReference" : { - "description" : "The original pspReference of the payment to modify.\nThis reference is returned in:\n* authorisation response\n* authorisation notification", + "description" : "The original pspReference of the payment to modify.\nThis reference is returned in:\n* authorisation response\n* authorisation notification", "type" : "string" }, "reference" : { @@ -641,7 +594,11 @@ "description" : "Unique terminal ID for the PED that originally processed the request. For Point-of-sale integrations only.", "type" : "string" } - } + }, + "required" : [ + "merchantAccount", + "originalReference" + ] }, "ModificationResult" : { "properties" : { @@ -718,7 +675,7 @@ "$ref" : "#/definitions/Amount" }, "bankAccount" : { - "description" : "The details of the bank account, from which the payment should be made from.\nEither `bankAccount` or `card` field must be provided in a payment request.", + "description" : "The details of the bank account, from which the payment should be made.\n> Either `bankAccount` or `card` field must be provided in a payment request.", "$ref" : "#/definitions/BankAccount" }, "billingAddress" : { @@ -739,7 +696,7 @@ "$ref" : "#/definitions/Card" }, "dateOfBirth" : { - "description" : "The shopper's date of birth.\n\nFormat: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD", + "description" : "The shopper's date of birth.\n\nFormat [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD", "format" : "date-time", "type" : "string" }, @@ -748,11 +705,11 @@ "$ref" : "#/definitions/ForexQuote" }, "deliveryAddress" : { - "description" : "The address where the purchased goods should be delivered to.", + "description" : "The address where the purchased goods should be delivered.", "$ref" : "#/definitions/Address" }, "deliveryDate" : { - "description" : "The date and time the purchased goods should be delivered.\n\nFormat: [ISO 8601](https://www.w3.org/TR/NOTE-datetime); YYYY-MM-DDThh:mm:ss.sssTZD\nExample: 2017-07-17T13:42:40.428+01:00", + "description" : "The date and time the purchased goods should be delivered.\n\nFormat [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD\n\nExample: 2017-07-17T13:42:40.428+01:00", "format" : "date-time", "type" : "string" }, @@ -778,7 +735,7 @@ "$ref" : "#/definitions/Installments" }, "mcc" : { - "description" : "The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.", + "description" : "The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.", "type" : "string" }, "merchantAccount" : { @@ -826,7 +783,7 @@ "type" : "string" }, "selectedBrand" : { - "description" : "Some payment methods require defining a value for this field to specify how to process the transaction.\n\nFor the MisterCash payment method, it can be set to:\n* `maestro` (default), to be processed like a Maestro card, or\n* `bcmc`, to be processed like a MisterCash card.", + "description" : "Some payment methods require defining a value for this field to specify how to process the transaction.\n\nFor the Bancontact payment method, it can be set to:\n* `maestro` (default), to be processed like a Maestro card, or\n* `bcmc`, to be processed like a Bancontact card.", "type" : "string" }, "selectedRecurringDetailReference" : { @@ -846,183 +803,7 @@ "type" : "string" }, "shopperInteraction" : { - "description" : "Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer.\nFor the web service API, Adyen assumes Ecommerce shopper interaction by default.\n\nThis field has the following possible values:\n* `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.\n* `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).\n* `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone.\n* `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.", - "enum" : [ - "Ecommerce", - "ContAuth", - "Moto", - "POS" - ], - "type" : "string" - }, - "shopperLocale" : { - "description" : "The combination of a language code and a country code to specify the language to be used in the payment.", - "type" : "string" - }, - "shopperName" : { - "description" : "The shopper's full name and gender (if specified).", - "$ref" : "#/definitions/Name" - }, - "shopperReference" : { - "description" : "The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID).\n> This field is required for recurring payments.", - "type" : "string" - }, - "shopperStatement" : { - "description" : "The text to appear on the shopper's bank statement.", - "type" : "string" - }, - "socialSecurityNumber" : { - "description" : "The shopper's social security number.", - "type" : "string" - }, - "store" : { - "description" : "The physical store, for which this payment is processed.", - "maxLength" : 16, - "minLength" : 1, - "type" : "string" - }, - "telephoneNumber" : { - "description" : "The shopper's telephone number.", - "type" : "string" - }, - "totalsGroup" : { - "description" : "The reference value to aggregate sales totals in reporting. When not specified, the store field is used (if available).", - "maxLength" : 16, - "minLength" : 1, - "type" : "string" - } - } - }, - "PaymentRequest3d" : { - "properties" : { - "additionalAmount" : { - "description" : "If you want a [BIN or card verification](https://docs.adyen.com/developers/ecommerce-integration/cards/bin-data-and-card-verification) request to use a non-zero value, assign this value to `additionalAmount` (while the amount must be still set to 0 to trigger BIN or card verification).\nRequired to be in the same currency as the `amount`. ", - "$ref" : "#/definitions/Amount" - }, - "additionalData" : { - "additionalProperties" : { - "type" : "string" - }, - "description" : "This field contains additional data, which may be required for a particular payment request.\n\nThe `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](https://docs.adyen.com/developers/api-reference/payments-api#paymentrequestadditionaldata).", - "type" : "object" - }, - "amount" : { - "description" : "The amount information for the transaction. For [BIN or card verification](https://docs.adyen.com/developers/ecommerce-integration/cards/bin-data-and-card-verification) requests, set amount to 0 (zero).", - "$ref" : "#/definitions/Amount" - }, - "billingAddress" : { - "description" : "The address where to send the invoice.", - "$ref" : "#/definitions/Address" - }, - "browserInfo" : { - "description" : "The shopper's browser information.", - "$ref" : "#/definitions/BrowserInfo" - }, - "captureDelayHours" : { - "description" : "The delay between the authorisation and scheduled auto-capture, specified in hours.", - "format" : "int32", - "type" : "integer" - }, - "dateOfBirth" : { - "description" : "The shopper's date of birth.\n\nFormat: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD", - "format" : "date-time", - "type" : "string" - }, - "dccQuote" : { - "description" : "The forex quote as returned in the response of the forex service.", - "$ref" : "#/definitions/ForexQuote" - }, - "deliveryAddress" : { - "description" : "The address where the purchased goods should be delivered to.", - "$ref" : "#/definitions/Address" - }, - "deliveryDate" : { - "description" : "The date and time the purchased goods should be delivered.\n\nFormat: [ISO 8601](https://www.w3.org/TR/NOTE-datetime); YYYY-MM-DDThh:mm:ss.sssTZD\nExample: 2017-07-17T13:42:40.428+01:00", - "format" : "date-time", - "type" : "string" - }, - "deviceFingerprint" : { - "description" : "A string containing the shopper's device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/developers/risk-management/device-fingerprinting).", - "type" : "string" - }, - "fraudOffset" : { - "description" : "An integer value that is added to the normal fraud score. The value can be either positive or negative.", - "format" : "int32", - "type" : "integer" - }, - "installments" : { - "description" : "Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/developers/payment-methods/installment-payments).", - "$ref" : "#/definitions/Installments" - }, - "mcc" : { - "description" : "The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.", - "type" : "string" - }, - "md" : { - "description" : "The payment session identifier returned by the card issuer.", - "type" : "string" - }, - "merchantAccount" : { - "description" : "The merchant account identifier, with which you want to process the transaction.", - "type" : "string" - }, - "merchantOrderReference" : { - "description" : "This reference allows linking multiple transactions to each other.\n> When providing the `merchantOrderReference` value, we also recommend you submit `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values. ", - "type" : "string" - }, - "metadata" : { - "additionalProperties" : { - "type" : "string" - }, - "description" : "Metadata consists of entries, each of which includes a key and a value.\nLimitations: Error \"177\", \"Metadata size exceeds limit\"", - "type" : "object" - }, - "orderReference" : { - "description" : "The order reference to link multiple partial payments.", - "type" : "string" - }, - "paResponse" : { - "description" : "Payment authorisation response returned by the card issuer. The `paResponse` field holds the PaRes value received from the card issuer.", - "type" : "string" - }, - "recurring" : { - "description" : "The recurring settings for the payment. Use this property when you want to enable [recurring payments](https://docs.adyen.com/developers/features/recurring-payments).", - "$ref" : "#/definitions/Recurring" - }, - "recurringProcessingModel" : { - "description" : "Defines a recurring payment type.\nAllowed values:\n* `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule.\n* `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 a card-on-file transaction.", - "enum" : [ - "CardOnFile", - "Subscription" - ], - "type" : "string" - }, - "reference" : { - "description" : "The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. We recommend using a unique value per payment; however, it is not a requirement.\nIf you need to provide multiple references for a transaction, separate them with hyphens (\"-\").\nMaximum length: 80 characters.", - "type" : "string" - }, - "selectedBrand" : { - "description" : "Some payment methods require defining a value for this field to specify how to process the transaction.\n\nFor the MisterCash payment method, it can be set to:\n* `maestro` (default), to be processed like a Maestro card, or\n* `bcmc`, to be processed like a MisterCash card.", - "type" : "string" - }, - "selectedRecurringDetailReference" : { - "description" : "The `recurringDetailReference` you want to use for this payment. The value `LATEST` can be used to select the most recently stored recurring detail.", - "type" : "string" - }, - "sessionId" : { - "description" : "A session ID used to identify a payment session.", - "type" : "string" - }, - "shopperEmail" : { - "description" : "The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks.", - "type" : "string" - }, - "shopperIP" : { - "description" : "The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks).\n> This field is mandatory for some merchants depending on your business model. Contact Adyen Support for more information.", - "type" : "string" - }, - "shopperInteraction" : { - "description" : "Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer.\nFor the web service API, Adyen assumes Ecommerce shopper interaction by default.\n\nThis field has the following possible values:\n* `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.\n* `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).\n* `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone.\n* `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.", + "description" : "Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer.\nFor the web service API, Adyen assumes Ecommerce shopper interaction by default.\n\nThis field has the following possible values:\n* `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.\n* `ContAuth` - Card on file and/or subscription transactions, where the cardholder 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).\n* `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone.\n* `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.", "enum" : [ "Ecommerce", "ContAuth", @@ -1069,6 +850,190 @@ } }, "required" : [ + "merchantAccount", + "reference", + "amount" + ] + }, + "PaymentRequest3d" : { + "properties" : { + "additionalAmount" : { + "description" : "If you want a [BIN or card verification](https://docs.adyen.com/developers/ecommerce-integration/cards/bin-data-and-card-verification) request to use a non-zero value, assign this value to `additionalAmount` (while the amount must be still set to 0 to trigger BIN or card verification).\nRequired to be in the same currency as the `amount`. ", + "$ref" : "#/definitions/Amount" + }, + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be required for a particular payment request.\n\nThe `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](https://docs.adyen.com/developers/api-reference/payments-api#paymentrequestadditionaldata).", + "type" : "object" + }, + "amount" : { + "description" : "The amount information for the transaction. For [BIN or card verification](https://docs.adyen.com/developers/ecommerce-integration/cards/bin-data-and-card-verification) requests, set amount to 0 (zero).", + "$ref" : "#/definitions/Amount" + }, + "billingAddress" : { + "description" : "The address where to send the invoice.", + "$ref" : "#/definitions/Address" + }, + "browserInfo" : { + "description" : "The shopper's browser information.", + "$ref" : "#/definitions/BrowserInfo" + }, + "captureDelayHours" : { + "description" : "The delay between the authorisation and scheduled auto-capture, specified in hours.", + "format" : "int32", + "type" : "integer" + }, + "dateOfBirth" : { + "description" : "The shopper's date of birth.\n\nFormat [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD", + "format" : "date-time", + "type" : "string" + }, + "dccQuote" : { + "description" : "The forex quote as returned in the response of the forex service.", + "$ref" : "#/definitions/ForexQuote" + }, + "deliveryAddress" : { + "description" : "The address where the purchased goods should be delivered.", + "$ref" : "#/definitions/Address" + }, + "deliveryDate" : { + "description" : "The date and time the purchased goods should be delivered.\n\nFormat [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD\n\nExample: 2017-07-17T13:42:40.428+01:00", + "format" : "date-time", + "type" : "string" + }, + "deviceFingerprint" : { + "description" : "A string containing the shopper's device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/developers/risk-management/device-fingerprinting).", + "type" : "string" + }, + "fraudOffset" : { + "description" : "An integer value that is added to the normal fraud score. The value can be either positive or negative.", + "format" : "int32", + "type" : "integer" + }, + "installments" : { + "description" : "Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/developers/payment-methods/installment-payments).", + "$ref" : "#/definitions/Installments" + }, + "mcc" : { + "description" : "The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.", + "type" : "string" + }, + "md" : { + "description" : "The payment session identifier returned by the card issuer.", + "type" : "string" + }, + "merchantAccount" : { + "description" : "The merchant account identifier, with which you want to process the transaction.", + "type" : "string" + }, + "merchantOrderReference" : { + "description" : "This reference allows linking multiple transactions to each other.\n> When providing the `merchantOrderReference` value, we also recommend you submit `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values. ", + "type" : "string" + }, + "metadata" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "Metadata consists of entries, each of which includes a key and a value.\nLimitations: Error \"177\", \"Metadata size exceeds limit\"", + "type" : "object" + }, + "orderReference" : { + "description" : "The order reference to link multiple partial payments.", + "type" : "string" + }, + "paResponse" : { + "description" : "Payment authorisation response returned by the card issuer. The `paResponse` field holds the PaRes value received from the card issuer.", + "type" : "string" + }, + "recurring" : { + "description" : "The recurring settings for the payment. Use this property when you want to enable [recurring payments](https://docs.adyen.com/developers/features/recurring-payments).", + "$ref" : "#/definitions/Recurring" + }, + "recurringProcessingModel" : { + "description" : "Defines a recurring payment type.\nAllowed values:\n* `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule.\n* `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 a card-on-file transaction.", + "enum" : [ + "CardOnFile", + "Subscription" + ], + "type" : "string" + }, + "reference" : { + "description" : "The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. We recommend using a unique value per payment; however, it is not a requirement.\nIf you need to provide multiple references for a transaction, separate them with hyphens (\"-\").\nMaximum length: 80 characters.", + "type" : "string" + }, + "selectedBrand" : { + "description" : "Some payment methods require defining a value for this field to specify how to process the transaction.\n\nFor the Bancontact payment method, it can be set to:\n* `maestro` (default), to be processed like a Maestro card, or\n* `bcmc`, to be processed like a Bancontact card.", + "type" : "string" + }, + "selectedRecurringDetailReference" : { + "description" : "The `recurringDetailReference` you want to use for this payment. The value `LATEST` can be used to select the most recently stored recurring detail.", + "type" : "string" + }, + "sessionId" : { + "description" : "A session ID used to identify a payment session.", + "type" : "string" + }, + "shopperEmail" : { + "description" : "The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks.", + "type" : "string" + }, + "shopperIP" : { + "description" : "The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks).\n> This field is mandatory for some merchants depending on your business model. Contact Adyen Support for more information.", + "type" : "string" + }, + "shopperInteraction" : { + "description" : "Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer.\nFor the web service API, Adyen assumes Ecommerce shopper interaction by default.\n\nThis field has the following possible values:\n* `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.\n* `ContAuth` - Card on file and/or subscription transactions, where the cardholder 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).\n* `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone.\n* `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.", + "enum" : [ + "Ecommerce", + "ContAuth", + "Moto", + "POS" + ], + "type" : "string" + }, + "shopperLocale" : { + "description" : "The combination of a language code and a country code to specify the language to be used in the payment.", + "type" : "string" + }, + "shopperName" : { + "description" : "The shopper's full name and gender (if specified).", + "$ref" : "#/definitions/Name" + }, + "shopperReference" : { + "description" : "The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID).\n> This field is required for recurring payments.", + "type" : "string" + }, + "shopperStatement" : { + "description" : "The text to appear on the shopper's bank statement.", + "type" : "string" + }, + "socialSecurityNumber" : { + "description" : "The shopper's social security number.", + "type" : "string" + }, + "store" : { + "description" : "The physical store, for which this payment is processed.", + "maxLength" : 16, + "minLength" : 1, + "type" : "string" + }, + "telephoneNumber" : { + "description" : "The shopper's telephone number.", + "type" : "string" + }, + "totalsGroup" : { + "description" : "The reference value to aggregate sales totals in reporting. When not specified, the store field is used (if available).", + "maxLength" : 16, + "minLength" : 1, + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "reference", + "amount", "paResponse", "md" ] @@ -1079,17 +1044,19 @@ "additionalProperties" : { "type" : "string" }, - "description" : "This field contains additional data, which may be required to return in a particular payment response. To choose data fields to be returned, go to Customer Area -> Settings -> API and Response.", + "description" : "This field contains additional data, which may be required to return in a particular payment response. To choose data fields to be returned, go to **Customer Area** > **Settings** > **API and Response**.", "type" : "object" }, "authCode" : { - "description" : "Authorisation code: \n* When the payment is authorised successfully, this field holds the authorisation code for the payment. \n* When the payment is not authorised, this field is empty.", + "description" : "Authorisation code:\n* When the payment is authorised successfully, this field holds the authorisation code for the payment.\n* When the payment is not authorised, this field is empty.", "type" : "string" }, "dccAmount" : { + "description" : "Includes the currency of the conversion and the value of the transaction.\n> This value only applies if you have implemented Dynamic Currency Conversion. For more information, contact Support.", "$ref" : "#/definitions/Amount" }, "dccSignature" : { + "description" : "Cryptographic signature used to verify `dccQuote`.\n> This value only applies if you have implemented Dynamic Currency Conversion. For more information, contact Support.", "type" : "string" }, "fraudResult" : { @@ -1113,7 +1080,7 @@ "type" : "string" }, "refusalReason" : { - "description" : "If the payment's authorisation is refused or an error occurrs during authorisation, this field holds Adyen's mapped reason for the refusal or a description of the error.\n\nWhen a transaction fails, the authorisation response includes `resultCode` and `refusalReason` values.", + "description" : "If the payment's authorisation is refused or an error occurs during authorisation, this field holds Adyen's mapped reason for the refusal or a description of the error.\n\nWhen a transaction fails, the authorisation response includes `resultCode` and `refusalReason` values.", "type" : "string" }, "resultCode" : { diff --git a/specs/2.0/RecurringService-V18.json b/specs/2.0/RecurringService-V18.json index 3c7d854..a5ba9f1 100644 --- a/specs/2.0/RecurringService-V18.json +++ b/specs/2.0/RecurringService-V18.json @@ -3,7 +3,7 @@ "info" : { "version" : "18", "title" : "Adyen Recurring Service", - "description" : "recurring service operations" + "description" : "Additional methods that allow you to manage payment details stored for recurring payments. For more information, refer to [Recurring payments](https://docs.adyen.com/developers/features/recurring-payments)." }, "host" : "pal-test.adyen.com", "basePath" : "/pal/servlet/Recurring/v18", @@ -23,7 +23,7 @@ "/disable" : { "post" : { "summary" : "Disables stored payment details.", - "description" : "Disables stored payment details to stop charging a shopper with this particular recurring detail ID.", + "description" : "Disables stored payment details to stop charging a shopper with this particular recurring detail ID.\n\nFor more information, refer to [Disable stored details](https://docs.adyen.com/developers/features/recurring-payments/disable-stored-details).", "x-groupName" : "General", "x-sortIndex" : 2, "parameters" : [ @@ -63,7 +63,7 @@ "/listRecurringDetails" : { "post" : { "summary" : "Retrieves stored payment details for a shopper.", - "description" : "Lists the stored payment details for a shopper, if available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper.", + "description" : "Lists the stored payment details for a shopper, if there are any available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper.\n\nFor more information, refer to [Retrieve stored details](https://docs.adyen.com/developers/features/recurring-payments/retrieve-stored-details).", "x-groupName" : "General", "x-sortIndex" : 1, "parameters" : [ @@ -240,19 +240,19 @@ "DisableRequest" : { "properties" : { "contract" : { - "description" : "specify the contract if you only want to disable a specific use", + "description" : "Specify the contract if you only want to disable a specific use.\n\nThis field can be set to one of the following values, or to their combination (comma-separated):\n* ONECLICK\n* RECURRING\n* PAYOUT", "type" : "string" }, "merchantAccount" : { - "description" : "the merchant account which will be used for processing this request", + "description" : "Your merchant account.", "type" : "string" }, "recurringDetailReference" : { - "description" : "the recurring detail you wish to disable", + "description" : "The ID that uniquely identifies the recurring detail reference.\n\nIf it is not provided, the whole recurring contract of the `shopperReference` will be disabled, which includes all recurring details.", "type" : "string" }, "shopperReference" : { - "description" : "a reference you use to uniquely identify the shopper (e.g. user ID or account ID)", + "description" : "The ID that uniquely identifies the shopper.\n\nThis `shopperReference` must be the same as the `shopperReference` used in the initial payment.", "type" : "string" } }, @@ -264,14 +264,14 @@ "DisableResult" : { "properties" : { "details" : { - "description" : "a list of one or more recurring payment details that were disabled", + "description" : "A list of one or more recurring payment details that were disabled.", "items" : { "$ref" : "#/definitions/RecurringDetail" }, "type" : "array" }, "response" : { - "description" : "Depending on whether a specific recurring detail was in the request, result is either [detail-successfully-disabled] or [all-details-successfully-disabled]", + "description" : "Depending on whether a specific recurring detail was in the request, result is either [detail-successfully-disabled] or [all-details-successfully-disabled].", "type" : "string" } } @@ -417,39 +417,43 @@ "RecurringDetailsRequest" : { "properties" : { "merchantAccount" : { - "description" : "the merchant account which will be used for processing this request", + "description" : "The merchant account identifier you want to process the (transaction) request with.", "type" : "string" }, "recurring" : { - "description" : "the type of recurring contract to be used.", + "description" : "A container for the type of a recurring contract to be retrieved.\n\nThe contract value needs to match the contract value submitted in the payment transaction used to create a recurring contract.\nHowever, if `ONECLICK,RECURRING` is the original contract definition in the initial payment, then `contract` should take either `ONECLICK` or `RECURRING`, depending on whether or not you want the shopper to enter their card's security code when they finalize their purchase.", "$ref" : "#/definitions/Recurring" }, "shopperReference" : { - "description" : "a reference you use to uniquely identify the shopper (e.g. user ID or account ID)", + "description" : "The reference you use to uniquely identify the shopper (e.g. user ID or account ID).", "type" : "string" } - } + }, + "required" : [ + "merchantAccount", + "shopperReference" + ] }, "RecurringDetailsResult" : { "properties" : { "creationDate" : { - "description" : "the creation date when the shopper record was created", + "description" : "The date when the recurring details were created.", "format" : "date-time", "type" : "string" }, "details" : { - "description" : "a list of one or more recurring payment details", + "description" : "A list of one or more recurring payment details.", "items" : { "$ref" : "#/definitions/RecurringDetail" }, "type" : "array" }, "lastKnownShopperEmail" : { - "description" : "the most recent email for this shopper (if available)", + "description" : "The most recent email for this shopper (if available).", "type" : "string" }, "shopperReference" : { - "description" : "the reference you use to uniquely identify the shopper (e.g. user ID or account ID)", + "description" : "The reference you use to uniquely identify the shopper (e.g. user ID or account ID).", "type" : "string" } } diff --git a/specs/2.0/RecurringService-V25.json b/specs/2.0/RecurringService-V25.json index 0730a53..5d2bda6 100644 --- a/specs/2.0/RecurringService-V25.json +++ b/specs/2.0/RecurringService-V25.json @@ -3,7 +3,7 @@ "info" : { "version" : "25", "title" : "Adyen Recurring Service", - "description" : "recurring service operations" + "description" : "Additional methods that allow you to manage payment details stored for recurring payments. For more information, refer to [Recurring payments](https://docs.adyen.com/developers/features/recurring-payments)." }, "host" : "pal-test.adyen.com", "basePath" : "/pal/servlet/Recurring/v25", @@ -23,7 +23,7 @@ "/disable" : { "post" : { "summary" : "Disables stored payment details.", - "description" : "Disables stored payment details to stop charging a shopper with this particular recurring detail ID.", + "description" : "Disables stored payment details to stop charging a shopper with this particular recurring detail ID.\n\nFor more information, refer to [Disable stored details](https://docs.adyen.com/developers/features/recurring-payments/disable-stored-details).", "x-groupName" : "General", "x-sortIndex" : 2, "parameters" : [ @@ -63,7 +63,7 @@ "/listRecurringDetails" : { "post" : { "summary" : "Retrieves stored payment details for a shopper.", - "description" : "Lists the stored payment details for a shopper, if available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper.", + "description" : "Lists the stored payment details for a shopper, if there are any available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper.\n\nFor more information, refer to [Retrieve stored details](https://docs.adyen.com/developers/features/recurring-payments/retrieve-stored-details).", "x-groupName" : "General", "x-sortIndex" : 1, "parameters" : [ @@ -237,19 +237,19 @@ "DisableRequest" : { "properties" : { "contract" : { - "description" : "specify the contract if you only want to disable a specific use", + "description" : "Specify the contract if you only want to disable a specific use.\n\nThis field can be set to one of the following values, or to their combination (comma-separated):\n* ONECLICK\n* RECURRING\n* PAYOUT", "type" : "string" }, "merchantAccount" : { - "description" : "the merchant account which will be used for processing this request", + "description" : "Your merchant account.", "type" : "string" }, "recurringDetailReference" : { - "description" : "the recurring detail you wish to disable", + "description" : "The ID that uniquely identifies the recurring detail reference.\n\nIf it is not provided, the whole recurring contract of the `shopperReference` will be disabled, which includes all recurring details.", "type" : "string" }, "shopperReference" : { - "description" : "a reference you use to uniquely identify the shopper (e.g. user ID or account ID)", + "description" : "The ID that uniquely identifies the shopper.\n\nThis `shopperReference` must be the same as the `shopperReference` used in the initial payment.", "type" : "string" } }, @@ -261,14 +261,14 @@ "DisableResult" : { "properties" : { "details" : { - "description" : "a list of one or more recurring payment details that were disabled", + "description" : "A list of one or more recurring payment details that were disabled.", "items" : { "$ref" : "#/definitions/RecurringDetail" }, "type" : "array" }, "response" : { - "description" : "Depending on whether a specific recurring detail was in the request, result is either [detail-successfully-disabled] or [all-details-successfully-disabled]", + "description" : "Depending on whether a specific recurring detail was in the request, result is either [detail-successfully-disabled] or [all-details-successfully-disabled].", "type" : "string" } } @@ -421,42 +421,43 @@ "RecurringDetailsRequest" : { "properties" : { "merchantAccount" : { - "description" : "the merchant account which will be used for processing this request", + "description" : "The merchant account identifier you want to process the (transaction) request with.", "type" : "string" }, "recurring" : { - "description" : "the type of recurring contract to be used.", + "description" : "A container for the type of a recurring contract to be retrieved.\n\nThe contract value needs to match the contract value submitted in the payment transaction used to create a recurring contract.\nHowever, if `ONECLICK,RECURRING` is the original contract definition in the initial payment, then `contract` should take either `ONECLICK` or `RECURRING`, depending on whether or not you want the shopper to enter their card's security code when they finalize their purchase.", "$ref" : "#/definitions/Recurring" }, "shopperReference" : { - "description" : "a reference you use to uniquely identify the shopper (e.g. user ID or account ID)", + "description" : "The reference you use to uniquely identify the shopper (e.g. user ID or account ID).", "type" : "string" } - } + }, + "required" : [ + "merchantAccount", + "shopperReference" + ] }, "RecurringDetailsResult" : { "properties" : { "creationDate" : { - "description" : "the creation date when the shopper record was created", + "description" : "The date when the recurring details were created.", "format" : "date-time", "type" : "string" }, "details" : { - "description" : "a list of one or more recurring payment details", + "description" : "A list of one or more recurring payment details.", "items" : { "$ref" : "#/definitions/RecurringDetail" }, "type" : "array" }, - "invalidOneclickContracts" : { - "type" : "boolean" - }, "lastKnownShopperEmail" : { - "description" : "the most recent email for this shopper (if available)", + "description" : "The most recent email for this shopper (if available).", "type" : "string" }, "shopperReference" : { - "description" : "the reference you use to uniquely identify the shopper (e.g. user ID or account ID)", + "description" : "The reference you use to uniquely identify the shopper (e.g. user ID or account ID).", "type" : "string" } }