diff --git a/specs/2.0/PayoutService-v30.json b/specs/2.0/PayoutService-v30.json new file mode 100644 index 0000000..3a7f401 --- /dev/null +++ b/specs/2.0/PayoutService-v30.json @@ -0,0 +1,1336 @@ +{ + "swagger" : "2.0", + "info" : { + "version" : "30", + "title" : "Adyen Payout Service", + "description" : "A set of API endpoints that allow you to store payout details, confirm, or decline a payout.\n\nFor more information, refer to [Third-party payouts](https://docs.adyen.com/developers/features/third-party-payouts).", + "termsOfService" : "https://docs.adyen.com/legal/terms-conditions", + "contact" : { + "name" : "Adyen Support", + "url" : "https://support.adyen.com/", + "email" : "support@adyen.com" + } + }, + "host" : "pal-test.adyen.com", + "basePath" : "/pal/servlet/Payout/v30", + "schemes" : [ + "https" + ], + "produces" : [ + "application/json" + ], + "consumes" : [ + "application/json" + ], + "x-groups" : [ + "Instant payouts", + "Initialization", + "Reviewing" + ], + "paths" : { + "/confirmThirdParty" : { + "post" : { + "summary" : "Confirms a payout.", + "description" : "Confirms a previously submitted payout.\n\nTo cancel a payout, use the `/declineThirdParty` endpoint.", + "x-groupName" : "Reviewing", + "x-sortIndex" : 1, + "parameters" : [ + { + "name" : "request", + "in" : "body", + "schema" : { + "$ref" : "#/definitions/ModifyRequest" + } + } + ], + "responses" : { + "200" : { + "description" : "OK - the request has succeeded.", + "schema" : { + "$ref" : "#/definitions/ModifyResponse" + } + }, + "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." + } + } + } + }, + "/declineThirdParty" : { + "post" : { + "summary" : "Cancels a payout.", + "description" : "Cancels a previously submitted payout.\n\nTo confirm and send a payout, use the `/confirmThirdParty` endpoint.", + "x-groupName" : "Reviewing", + "x-sortIndex" : 2, + "parameters" : [ + { + "name" : "request", + "in" : "body", + "schema" : { + "$ref" : "#/definitions/ModifyRequest" + } + } + ], + "responses" : { + "200" : { + "description" : "OK - the request has succeeded.", + "schema" : { + "$ref" : "#/definitions/ModifyResponse" + } + }, + "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." + } + } + } + }, + "/payout" : { + "post" : { + "summary" : "Pay out directly.", + "description" : "With this call, you can pay out to your customers, and funds will be made available within 30 minutes on the cardholder's bank account (this is dependent on whether the issuer supports this functionality). Instant card payouts are only supported for Visa and Mastercard cards.", + "x-groupName" : "Instant payouts", + "x-sortIndex" : 1, + "parameters" : [ + { + "name" : "request", + "in" : "body", + "schema" : { + "$ref" : "#/definitions/PayoutRequest" + } + } + ], + "responses" : { + "200" : { + "description" : "OK - the request has succeeded.", + "schema" : { + "$ref" : "#/definitions/PayoutResponse" + } + }, + "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." + } + } + } + }, + "/storeDetail" : { + "post" : { + "summary" : "Stores payout details.", + "description" : "Stores payment details under the `PAYOUT` recurring contract. These payment details can be used later to submit a payout via the `/submitThirdParty` call.", + "x-groupName" : "Initialization", + "x-sortIndex" : 2, + "parameters" : [ + { + "name" : "request", + "in" : "body", + "schema" : { + "$ref" : "#/definitions/StoreDetailRequest" + } + } + ], + "responses" : { + "200" : { + "description" : "OK - the request has succeeded.", + "schema" : { + "$ref" : "#/definitions/StoreDetailResponse" + } + }, + "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." + } + } + } + }, + "/storeDetailAndSubmitThirdParty" : { + "post" : { + "summary" : "Stores details and submits a payout.", + "description" : "Submits a payout and stores its details for subsequent payouts.\n\nThe submitted payout must be confirmed or declined either by a reviewer or via `/confirmThirdParty` or `/declineThirdParty` calls.", + "x-groupName" : "Initialization", + "x-sortIndex" : 1, + "parameters" : [ + { + "name" : "request", + "in" : "body", + "schema" : { + "$ref" : "#/definitions/StoreDetailAndSubmitRequest" + } + } + ], + "responses" : { + "200" : { + "description" : "OK - the request has succeeded.", + "schema" : { + "$ref" : "#/definitions/StoreDetailAndSubmitResponse" + } + }, + "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." + } + } + } + }, + "/submitThirdParty" : { + "post" : { + "summary" : "Submits a payout.", + "description" : "Submits a payout using the previously stored payment details. To store payment details, use the `/storeDetail` API call.\n\nThe submitted payout must be confirmed or declined either by a reviewer or via `/confirmThirdParty` or `/declineThirdParty` calls.", + "x-groupName" : "Initialization", + "x-sortIndex" : 3, + "parameters" : [ + { + "name" : "request", + "in" : "body", + "schema" : { + "$ref" : "#/definitions/SubmitRequest" + } + } + ], + "responses" : { + "200" : { + "description" : "OK - the request has succeeded.", + "schema" : { + "$ref" : "#/definitions/SubmitResponse" + } + }, + "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 name of the city.\n>Required if either houseNumberOrName, street, postalCode, or stateOrProvince are provided.", + "type" : "string" + }, + "country" : { + "description" : "The two-character country code of the address\n>The permitted country codes are defined in ISO-3166-1 alpha-2 (e.g. 'NL').", + "type" : "string" + }, + "houseNumberOrName" : { + "description" : "The number or name of the house.", + "type" : "string" + }, + "postalCode" : { + "description" : "The postal code.\n>A maximum of five (5) digits for an address in the USA, or a maximum of ten (10) characters for an address in all other countries.\n>Required if either houseNumberOrName, street, city, or stateOrProvince are provided.", + "type" : "string" + }, + "stateOrProvince" : { + "description" : "The abbreviation of the state or province.\n>Two (2) characters for an address in the USA or Canada, or a maximum of three (3) characters for an address in all other countries.\n>Required for an address in the USA or Canada if either houseNumberOrName, street, city, or postalCode are provided.", + "type" : "string" + }, + "street" : { + "description" : "The name of the street.\n>The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.\n>Required if either houseNumberOrName, city, postalCode, or stateOrProvince are provided.", + "type" : "string" + } + }, + "required" : [ + "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" + ] + }, + "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" + ] + }, + "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" + ] + }, + "FraudCheckResult" : { + "properties" : { + "accountScore" : { + "description" : "The fraud score generated by the risk check.", + "format" : "int32", + "type" : "integer" + }, + "checkId" : { + "description" : "The ID of the risk check.", + "format" : "int32", + "type" : "integer" + }, + "name" : { + "description" : "The name of the risk check.", + "type" : "string" + } + }, + "required" : [ + "checkId", + "name", + "accountScore" + ] + }, + "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.", + "items" : { + "$ref" : "#/definitions/FraudCheckResult" + }, + "type" : "array" + } + }, + "required" : [ + "accountScore" + ] + }, + "FundSource" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "a map of name/value pairs for passing in additional/industry-specific data", + "type" : "object" + }, + "billingAddress" : { + "description" : "the address where to send the invoice", + "$ref" : "#/definitions/Address" + }, + "card" : { + "description" : "a representation of a (credit or debit) card", + "$ref" : "#/definitions/Card" + }, + "shopperEmail" : { + "description" : "the email address of the person", + "type" : "string" + }, + "shopperName" : { + "description" : "the name of the person", + "$ref" : "#/definitions/Name" + }, + "telephoneNumber" : { + "description" : "the telephone number of the person", + "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" + ] + }, + "ModifyRequest" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be required for a particular payout request.", + "type" : "object" + }, + "merchantAccount" : { + "description" : "The merchant account identifier, with which you want to process the transaction.", + "type" : "string" + }, + "originalReference" : { + "description" : "The PSP reference received in the `/submitThirdParty` response.", + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "originalReference" + ] + }, + "ModifyResponse" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be returned in a particular response.", + "type" : "object" + }, + "pspReference" : { + "description" : "Adyen's 16-digit unique reference associated with the transaction. This value is globally unique; quote it when communicating with us about this request.", + "type" : "string" + }, + "response" : { + "description" : "The response:\n* In case of success, it is either `payout-confirm-received` or `payout-decline-received`.\n* In case of an error, an informational message is returned.", + "type" : "string" + } + }, + "required" : [ + "pspReference", + "response" + ] + }, + "Name" : { + "properties" : { + "firstName" : { + "description" : "The first name.", + "type" : "string" + }, + "gender" : { + "description" : "The gender.\n>The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`.", + "enum" : [ + "MALE", + "FEMALE", + "UNKNOWN" + ], + "maxLength" : 1, + "minLength" : 1, + "type" : "string" + }, + "infix" : { + "description" : "The name's infix, if applicable.\n>A maximum length of twenty (20) characters is imposed.", + "type" : "string" + }, + "lastName" : { + "description" : "The last name.", + "type" : "string" + } + }, + "required" : [ + "firstName", + "lastName", + "gender" + ] + }, + "PayoutRequest" : { + "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" + }, + "bankAccount" : { + "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" : { + "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" + }, + "card" : { + "description" : "A container for card data.\n> Either `bankAccount` or `card` field must be provided in a payment request.", + "$ref" : "#/definitions/Card" + }, + "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" + }, + "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" + }, + "fundSource" : { + "description" : "The person or entity funding the money.", + "$ref" : "#/definitions/FundSource" + }, + "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" + }, + "mpiData" : { + "description" : "Authentication data produced by an MPI (Mastercard SecureCode or Verified By Visa).", + "$ref" : "#/definitions/ThreeDSecureData" + }, + "nationality" : { + "description" : "The two-character country code of the shopper's nationality.", + "maxLength" : 2, + "type" : "string" + }, + "orderReference" : { + "description" : "The order reference to link multiple partial payments.", + "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. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new).", + "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" + ] + }, + "PayoutResponse" : { + "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" + }, + "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.", + "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](https://support.adyen.com/hc/en-us/requests/new).", + "$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](https://support.adyen.com/hc/en-us/requests/new).", + "type" : "string" + }, + "fraudResult" : { + "description" : "The fraud result properties of the payment.", + "$ref" : "#/definitions/FraudResult" + }, + "issuerUrl" : { + "description" : "The URL to direct the shopper to.\n> In case of SecurePlus, do not redirect a shopper to this URL.", + "type" : "string" + }, + "md" : { + "description" : "The payment session.", + "type" : "string" + }, + "paRequest" : { + "description" : "The 3D request data for the issuer.\n\nIf the value is **CUPSecurePlus-CollectSMSVerificationCode**, collect an SMS code from the shopper and pass it in the `/authorise3D` request. For more information, see [3D Secure](https://docs.adyen.com/developers/risk-management/3d-secure).", + "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.\n\n> `pspReference` is returned only for non-redirect payment methods.", + "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. Possible values:\n\n* **Authorised** – Indicates the payment authorisation was successfully completed. This state serves as an indicator to proceed with the delivery of goods and services. This is a final state.\n* **Refused** – Indicates the payment was refused. The reason is given in the `refusalReason` field. This is a final state.\n* **RedirectShopper** – Indicates the shopper should be redirected to an external web page or app to complete the authorisation. For more information on handling a redirect, refer to [Handling a redirect](https://docs.adyen.com/developers/checkout/api-integration/payments#handlingaredirect).\n* **Received** – Indicates the payment has successfully been received by Adyen, and will be processed. This is the initial state for all payments.\n* **Cancelled** – Indicates the payment has been cancelled (either by the shopper or the merchant) before processing was completed. This is a final state.\n* **Pending** – Indicates that it is not possible to obtain the final status of the payment. This can happen if the systems providing final status information for the payment are unavailable, or if the shopper needs to take further action to complete the payment. For more information on handling a pending payment, refer to [Payments with pending status](https://docs.adyen.com/developers/development-resources/payments-with-pending-status).\n* **Error** – Indicates an error occurred during processing of the payment. The reason is given in the `refusalReason` field. This is a final state.", + "enum" : [ + "Authorised", + "PartiallyAuthorised", + "Refused", + "Error", + "Cancelled", + "Received", + "RedirectShopper" + ], + "type" : "string" + } + } + }, + "Recurring" : { + "properties" : { + "contract" : { + "description" : "The type of recurring contract to be used.\nPossible values:\n* `ONECLICK` – Payment details can be used to initiate a one-click payment, where the shopper enters the [card security code (CVC/CVV)](https://docs.adyen.com/developers/payment-glossary#cardsecuritycodecvccvvcid).\n* `RECURRING` – Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/developers/payment-glossary#cardnotpresentcnp).\n* `ONECLICK,RECURRING` – Payment details can be used regardless of whether the shopper is on your site or not.\n* `PAYOUT` – Payment details can be used to [make a payout](https://docs.adyen.com/developers/features/third-party-payouts).", + "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", + "MCTOKENSERVICE" + ], + "type" : "string" + } + } + }, + "StoreDetailAndSubmitRequest" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be required for a particular request.", + "type" : "object" + }, + "amount" : { + "description" : "A container object for the payable amount information of the transaction.", + "$ref" : "#/definitions/Amount" + }, + "bank" : { + "description" : "A container for bank account data.\n> This field is mandatory if `card` is not provided.", + "$ref" : "#/definitions/BankAccount" + }, + "billingAddress" : { + "description" : "The billing address.", + "$ref" : "#/definitions/Address" + }, + "card" : { + "description" : "A container for card data.\n> This field is mandatory if `bank` is not provided.", + "$ref" : "#/definitions/Card" + }, + "dateOfBirth" : { + "description" : "The date of birth.\nFormat: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD\nFor Paysafecard it must be the same as used when registering the Paysafecard account.\n> This field is mandatory for natural persons.", + "format" : "date-time", + "type" : "string" + }, + "entityType" : { + "description" : "The type of the entity the payout is processed for.", + "enum" : [ + "NaturalPerson", + "Company" + ], + "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" + }, + "merchantAccount" : { + "description" : "The merchant account identifier, with which you want to process the transaction.", + "type" : "string" + }, + "nationality" : { + "description" : "The shopper's nationality.\n\nA valid value is an ISO 2-character country code (e.g. 'NL').", + "maxLength" : 2, + "type" : "string" + }, + "recurring" : { + "description" : "A container for the type of recurring contract to be retrieved.\n\nThe recurring.contract must be set to `PAYOUT`", + "$ref" : "#/definitions/Recurring" + }, + "reference" : { + "description" : "The merchant reference for this payment. This reference will be used in all communication to the merchant about the status of the payout. Although it is a good idea to make sure it is unique, this is not a requirement.", + "type" : "string" + }, + "selectedBrand" : { + "description" : "The name of the brand to make a payout to.\n\nFor Paysafecard it must be set to `paysafecard`.", + "type" : "string" + }, + "shopperEmail" : { + "description" : "The shopper's email address.", + "type" : "string" + }, + "shopperName" : { + "description" : "The shopper's name.\n\nWhen the `entityType` is `Company`, the `shopperName.lastName` must contain the company name.", + "$ref" : "#/definitions/Name" + }, + "shopperReference" : { + "description" : "The shopper's reference for the payment transaction.", + "type" : "string" + }, + "shopperStatement" : { + "description" : "The description of this payout. This description is shown on the bank statement of the shopper (if this is supported by the chosen payment method).", + "type" : "string" + }, + "socialSecurityNumber" : { + "description" : "The shopper's social security number.", + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "shopperEmail", + "shopperReference", + "recurring", + "dateOfBirth", + "nationality", + "entityType", + "reference", + "amount" + ] + }, + "StoreDetailAndSubmitResponse" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be returned in a particular response.", + "type" : "object" + }, + "pspReference" : { + "description" : "A new reference to uniquely identify this request.", + "type" : "string" + }, + "refusalReason" : { + "description" : "In case of refusal, an informational message for the reason.", + "type" : "string" + }, + "resultCode" : { + "description" : "The response:\n\n* In case of success is payout-submit-received.\n* In case of an error, an informational message is returned.", + "type" : "string" + } + }, + "required" : [ + "pspReference", + "resultCode" + ] + }, + "StoreDetailRequest" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be required for a particular request.", + "type" : "object" + }, + "bank" : { + "description" : "A container for bank account data.\n> This field is mandatory if `card` is not provided.", + "$ref" : "#/definitions/BankAccount" + }, + "billingAddress" : { + "description" : "The billing address.", + "$ref" : "#/definitions/Address" + }, + "card" : { + "description" : "A container for card data.\n> This field is mandatory if `bank` is not provided.", + "$ref" : "#/definitions/Card" + }, + "dateOfBirth" : { + "description" : "The date of birth.\nFormat: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD\nFor Paysafecard it must be the same as used when registering the Paysafecard account.\n> This field is mandatory for natural persons.", + "format" : "date-time", + "type" : "string" + }, + "entityType" : { + "description" : "The type of the entity the payout is processed for.", + "enum" : [ + "NaturalPerson", + "Company" + ], + "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" + }, + "merchantAccount" : { + "description" : "The merchant account identifier, with which you want to process the transaction.", + "type" : "string" + }, + "nationality" : { + "description" : "The shopper's nationality.\n\nA valid value is an ISO 2-character country code (e.g. 'NL').", + "maxLength" : 2, + "type" : "string" + }, + "recurring" : { + "description" : "A container for the type of recurring contract to be retrieved.\n\nThe recurring.contract must be set to `PAYOUT`", + "$ref" : "#/definitions/Recurring" + }, + "selectedBrand" : { + "description" : "The name of the brand to make a payout to.\n\nFor Paysafecard it must be set to `paysafecard`.", + "type" : "string" + }, + "shopperEmail" : { + "description" : "The shopper's email address.", + "type" : "string" + }, + "shopperName" : { + "description" : "The shopper's name.\n\nWhen the `entityType` is `Company`, the `shopperName.lastName` must contain the company name.", + "$ref" : "#/definitions/Name" + }, + "shopperReference" : { + "description" : "The shopper's reference for the payment transaction.", + "type" : "string" + }, + "socialSecurityNumber" : { + "description" : "The shopper's social security number.", + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "shopperEmail", + "shopperReference", + "recurring", + "dateOfBirth", + "nationality", + "entityType" + ] + }, + "StoreDetailResponse" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be returned in a particular response.", + "type" : "object" + }, + "pspReference" : { + "description" : "A new reference to uniquely identify this request.", + "type" : "string" + }, + "recurringDetailReference" : { + "description" : "The token which you can use later on for submitting the payout.", + "type" : "string" + }, + "resultCode" : { + "description" : "The result code of the transaction. `Success` indicates that the details were stored successfully.", + "type" : "string" + } + }, + "required" : [ + "pspReference", + "recurringDetailReference", + "resultCode" + ] + }, + "SubmitRequest" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be required for a particular request.", + "type" : "object" + }, + "amount" : { + "description" : "A container object for the payable amount information of the transaction.", + "$ref" : "#/definitions/Amount" + }, + "dateOfBirth" : { + "description" : "The date of birth.\nFormat: ISO-8601; example: YYYY-MM-DD\n\nFor Paysafecard it must be the same as used when registering the Paysafecard account.\n\n> This field is mandatory for natural persons. \n> This field is required to update the existing `dateOfBirth` that is associated with this recurring contract.", + "format" : "date-time", + "type" : "string" + }, + "entityType" : { + "description" : "The type of the entity the payout is processed for.\n\nAllowed values:\n* NaturalPerson\n* Company\n> This field is required to update the existing `entityType` that is associated with this recurring contract.", + "enum" : [ + "NaturalPerson", + "Company" + ], + "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" + }, + "merchantAccount" : { + "description" : "The merchant account identifier you want to process the transaction request with.", + "type" : "string" + }, + "nationality" : { + "description" : "The shopper's nationality.\n\nA valid value is an ISO 2-character country code (e.g. 'NL').\n\n> This field is required to update the existing nationality that is associated with this recurring contract.", + "type" : "string" + }, + "recurring" : { + "description" : "A container for the type of recurring contract to be retrieved.\n\nThe `recurring.contract` must be set to \"PAYOUT\".", + "$ref" : "#/definitions/Recurring" + }, + "reference" : { + "description" : "The merchant reference for this payout. This reference will be used in all communication to the merchant about the status of the payout. Although it is a good idea to make sure it is unique, this is not a requirement.", + "type" : "string" + }, + "selectedRecurringDetailReference" : { + "description" : "This is the `recurringDetailReference` you want to use for this payout.\n\nYou can use the value LATEST to select the most recently used recurring detail.", + "type" : "string" + }, + "shopperEmail" : { + "description" : "The shopper's email address.", + "type" : "string" + }, + "shopperName" : { + "description" : "The shopper's name.\n\nIn case the `entityType` is `Company`, the `shopperName.lastName` must contain the company name.\n\n> This field is required to update the existing `shopperName` associated with a recurring contract.", + "$ref" : "#/definitions/Name" + }, + "shopperReference" : { + "description" : "The shopper's reference for the payout transaction.", + "type" : "string" + }, + "shopperStatement" : { + "description" : "The description of this payout. This description is shown on the bank statement of the shopper (if this is supported by the chosen payment method).", + "type" : "string" + }, + "socialSecurityNumber" : { + "description" : "The shopper's social security number.", + "type" : "string" + } + }, + "required" : [ + "merchantAccount", + "reference", + "amount", + "shopperEmail", + "shopperReference", + "recurring", + "selectedRecurringDetailReference" + ] + }, + "SubmitResponse" : { + "properties" : { + "additionalData" : { + "additionalProperties" : { + "type" : "string" + }, + "description" : "This field contains additional data, which may be returned in a particular response.", + "type" : "object" + }, + "pspReference" : { + "description" : "A new reference to uniquely identify this request.", + "type" : "string" + }, + "refusalReason" : { + "description" : "In case of refusal, an informational message for the reason.", + "type" : "string" + }, + "resultCode" : { + "description" : "The response:\n* In case of success, it is `payout-submit-received`.\n* In case of an error, an informational message is returned.", + "type" : "string" + } + }, + "required" : [ + "pspReference", + "resultCode" + ] + }, + "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/PayoutService-v30.yaml b/specs/2.0/PayoutService-v30.yaml new file mode 100644 index 0000000..f3e86fb --- /dev/null +++ b/specs/2.0/PayoutService-v30.yaml @@ -0,0 +1,1194 @@ +swagger: '2.0' +info: + version: '30' + title: Adyen Payout Service + description: |- + A set of API endpoints that allow you to store payout details, confirm, or decline a payout. + + For more information, refer to [Third-party payouts](https://docs.adyen.com/developers/features/third-party-payouts). + termsOfService: 'https://docs.adyen.com/legal/terms-conditions' + contact: + name: Adyen Support + url: 'https://support.adyen.com/' + email: support@adyen.com +host: pal-test.adyen.com +basePath: /pal/servlet/Payout/v30 +schemes: + - https +produces: + - application/json +consumes: + - application/json +x-groups: + - Instant payouts + - Initialization + - Reviewing +paths: + /confirmThirdParty: + post: + summary: Confirms a payout. + description: |- + Confirms a previously submitted payout. + + To cancel a payout, use the `/declineThirdParty` endpoint. + x-groupName: Reviewing + x-sortIndex: 1 + parameters: + - name: request + in: body + schema: + $ref: '#/definitions/ModifyRequest' + responses: + '200': + description: OK - the request has succeeded. + schema: + $ref: '#/definitions/ModifyResponse' + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /declineThirdParty: + post: + summary: Cancels a payout. + description: |- + Cancels a previously submitted payout. + + To confirm and send a payout, use the `/confirmThirdParty` endpoint. + x-groupName: Reviewing + x-sortIndex: 2 + parameters: + - name: request + in: body + schema: + $ref: '#/definitions/ModifyRequest' + responses: + '200': + description: OK - the request has succeeded. + schema: + $ref: '#/definitions/ModifyResponse' + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /payout: + post: + summary: Pay out directly. + description: 'With this call, you can pay out to your customers, and funds will be made available within 30 minutes on the cardholder''s bank account (this is dependent on whether the issuer supports this functionality). Instant card payouts are only supported for Visa and Mastercard cards.' + x-groupName: Instant payouts + x-sortIndex: 1 + parameters: + - name: request + in: body + schema: + $ref: '#/definitions/PayoutRequest' + responses: + '200': + description: OK - the request has succeeded. + schema: + $ref: '#/definitions/PayoutResponse' + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /storeDetail: + post: + summary: Stores payout details. + description: Stores payment details under the `PAYOUT` recurring contract. These payment details can be used later to submit a payout via the `/submitThirdParty` call. + x-groupName: Initialization + x-sortIndex: 2 + parameters: + - name: request + in: body + schema: + $ref: '#/definitions/StoreDetailRequest' + responses: + '200': + description: OK - the request has succeeded. + schema: + $ref: '#/definitions/StoreDetailResponse' + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /storeDetailAndSubmitThirdParty: + post: + summary: Stores details and submits a payout. + description: |- + Submits a payout and stores its details for subsequent payouts. + + The submitted payout must be confirmed or declined either by a reviewer or via `/confirmThirdParty` or `/declineThirdParty` calls. + x-groupName: Initialization + x-sortIndex: 1 + parameters: + - name: request + in: body + schema: + $ref: '#/definitions/StoreDetailAndSubmitRequest' + responses: + '200': + description: OK - the request has succeeded. + schema: + $ref: '#/definitions/StoreDetailAndSubmitResponse' + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /submitThirdParty: + post: + summary: Submits a payout. + description: |- + Submits a payout using the previously stored payment details. To store payment details, use the `/storeDetail` API call. + + The submitted payout must be confirmed or declined either by a reviewer or via `/confirmThirdParty` or `/declineThirdParty` calls. + x-groupName: Initialization + x-sortIndex: 3 + parameters: + - name: request + in: body + schema: + $ref: '#/definitions/SubmitRequest' + responses: + '200': + description: OK - the request has succeeded. + schema: + $ref: '#/definitions/SubmitResponse' + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. +definitions: + Address: + properties: + city: + description: |- + The name of the city. + >Required if either houseNumberOrName, street, postalCode, or stateOrProvince are provided. + type: string + country: + description: |- + The two-character country code of the address + >The permitted country codes are defined in ISO-3166-1 alpha-2 (e.g. 'NL'). + type: string + houseNumberOrName: + description: The number or name of the house. + type: string + postalCode: + description: |- + The postal code. + >A maximum of five (5) digits for an address in the USA, or a maximum of ten (10) characters for an address in all other countries. + >Required if either houseNumberOrName, street, city, or stateOrProvince are provided. + type: string + stateOrProvince: + description: |- + The abbreviation of the state or province. + >Two (2) characters for an address in the USA or Canada, or a maximum of three (3) characters for an address in all other countries. + >Required for an address in the USA or Canada if either houseNumberOrName, street, city, or postalCode are provided. + type: string + street: + description: |- + The name of the street. + >The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. + >Required if either houseNumberOrName, city, postalCode, or stateOrProvince are provided. + type: string + required: + - 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. + + The 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 + 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. + + A 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. + If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example: + * χ12 is converted to ch12. + * üA is converted to euA. + * Peter Møller is converted to Peter Mller, because banks don't accept 'ø'. + After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example: + * John17 - allowed. + * J17 - allowed. + * 171 - not allowed. + * John-7 - allowed. + > If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'. + 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: + * CVV2/CVC2 – length: 3 digits + * CID – length: 4 digits + > 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. + > This field must be always present in a [one-click payment request](https://docs.adyen.com/developers/features/recurring-payments). + > 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. + Format: 2 digits, zero-padded for single digits. For example: + * 03 = March + * 11 = November + maxLength: 2 + minLength: 1 + type: string + expiryYear: + description: |- + The card expiry year. + Format: 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. + When 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 + 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 + FraudCheckResult: + properties: + accountScore: + description: The fraud score generated by the risk check. + format: int32 + type: integer + checkId: + description: The ID of the risk check. + format: int32 + type: integer + name: + description: The name of the risk check. + type: string + required: + - checkId + - name + - accountScore + 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. + items: + $ref: '#/definitions/FraudCheckResult' + type: array + required: + - accountScore + FundSource: + properties: + additionalData: + additionalProperties: + type: string + description: a map of name/value pairs for passing in additional/industry-specific data + type: object + billingAddress: + description: the address where to send the invoice + $ref: '#/definitions/Address' + card: + description: a representation of a (credit or debit) card + $ref: '#/definitions/Card' + shopperEmail: + description: the email address of the person + type: string + shopperName: + description: the name of the person + $ref: '#/definitions/Name' + telephoneNumber: + description: the telephone number of the person + type: string + Installments: + properties: + value: + description: |- + Defines the number of installments. Its value needs to be greater than zero. + + Usually, 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 + ModifyRequest: + properties: + additionalData: + additionalProperties: + type: string + description: 'This field contains additional data, which may be required for a particular payout request.' + type: object + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + originalReference: + description: The PSP reference received in the `/submitThirdParty` response. + type: string + required: + - merchantAccount + - originalReference + ModifyResponse: + properties: + additionalData: + additionalProperties: + type: string + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: Adyen's 16-digit unique reference associated with the transaction. This value is globally unique; quote it when communicating with us about this request. + type: string + response: + description: |- + The response: + * In case of success, it is either `payout-confirm-received` or `payout-decline-received`. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - response + Name: + properties: + firstName: + description: The first name. + type: string + gender: + description: |- + The gender. + >The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`. + enum: + - MALE + - FEMALE + - UNKNOWN + maxLength: 1 + minLength: 1 + type: string + infix: + description: |- + The name's infix, if applicable. + >A maximum length of twenty (20) characters is imposed. + type: string + lastName: + description: The last name. + type: string + required: + - firstName + - lastName + - gender + PayoutRequest: + 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). + Required 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. + + The `additionalData` object consists of entries, each of which includes the key and value. For more information on possible key-value pairs, refer to the [additionalData section](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' + bankAccount: + description: |- + The details of the bank account, from which the payment should be made. + > Either `bankAccount` or `card` field must be provided in a payment request. + $ref: '#/definitions/BankAccount' + 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 + card: + description: |- + A container for card data. + > Either `bankAccount` or `card` field must be provided in a payment request. + $ref: '#/definitions/Card' + dateOfBirth: + description: |- + The shopper's date of birth. + + Format [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. + + Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD + + Example: 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 + 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 + fundSource: + description: The person or entity funding the money. + $ref: '#/definitions/FundSource' + 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. + > 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. + Limitations: Error "177", "Metadata size exceeds limit" + type: object + mpiData: + description: Authentication data produced by an MPI (Mastercard SecureCode or Verified By Visa). + $ref: '#/definitions/ThreeDSecureData' + nationality: + description: The two-character country code of the shopper's nationality. + maxLength: 2 + type: string + orderReference: + description: The order reference to link multiple partial payments. + 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. + Allowed values: + * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. + * `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. + If you need to provide multiple references for a transaction, separate them with hyphens ("-"). + Maximum length: 80 characters. + type: string + selectedBrand: + description: |- + Some payment methods require defining a value for this field to specify how to process the transaction. + + For the Bancontact payment method, it can be set to: + * `maestro` (default), to be processed like a Maestro card, or + * `bcmc`, to be processed like a Bancontact card. + 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). + > This field is mandatory for some merchants depending on your business model. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). + type: string + shopperInteraction: + description: |- + Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer. + For the web service API, Adyen assumes Ecommerce shopper interaction by default. + + This field has the following possible values: + * `Ecommerce` - Online transactions where the cardholder is present (online). For better authorisation rates, we recommend sending the card security code (CSC) along with the request. + * `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). + * `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone. + * `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). + > 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 + PayoutResponse: + 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 + authCode: + description: |- + Authorisation code: + * When the payment is authorised successfully, this field holds the authorisation code for the payment. + * When the payment is not authorised, this field is empty. + type: string + dccAmount: + description: |- + Includes the currency of the conversion and the value of the transaction. + > This value only applies if you have implemented Dynamic Currency Conversion. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). + $ref: '#/definitions/Amount' + dccSignature: + description: |- + Cryptographic signature used to verify `dccQuote`. + > This value only applies if you have implemented Dynamic Currency Conversion. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). + type: string + fraudResult: + description: The fraud result properties of the payment. + $ref: '#/definitions/FraudResult' + issuerUrl: + description: |- + The URL to direct the shopper to. + > In case of SecurePlus, do not redirect a shopper to this URL. + type: string + md: + description: The payment session. + type: string + paRequest: + description: |- + The 3D request data for the issuer. + + If the value is **CUPSecurePlus-CollectSMSVerificationCode**, collect an SMS code from the shopper and pass it in the `/authorise3D` request. For more information, see [3D Secure](https://docs.adyen.com/developers/risk-management/3d-secure). + 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. + + > `pspReference` is returned only for non-redirect payment methods. + type: string + refusalReason: + description: |- + If the payment's authorisation is refused or an error occurs during authorisation, this field holds Adyen's mapped reason for the refusal or a description of the error. + + When a transaction fails, the authorisation response includes `resultCode` and `refusalReason` values. + type: string + resultCode: + description: |- + The result of the payment. Possible values: + + * **Authorised** – Indicates the payment authorisation was successfully completed. This state serves as an indicator to proceed with the delivery of goods and services. This is a final state. + * **Refused** – Indicates the payment was refused. The reason is given in the `refusalReason` field. This is a final state. + * **RedirectShopper** – Indicates the shopper should be redirected to an external web page or app to complete the authorisation. For more information on handling a redirect, refer to [Handling a redirect](https://docs.adyen.com/developers/checkout/api-integration/payments#handlingaredirect). + * **Received** – Indicates the payment has successfully been received by Adyen, and will be processed. This is the initial state for all payments. + * **Cancelled** – Indicates the payment has been cancelled (either by the shopper or the merchant) before processing was completed. This is a final state. + * **Pending** – Indicates that it is not possible to obtain the final status of the payment. This can happen if the systems providing final status information for the payment are unavailable, or if the shopper needs to take further action to complete the payment. For more information on handling a pending payment, refer to [Payments with pending status](https://docs.adyen.com/developers/development-resources/payments-with-pending-status). + * **Error** – Indicates an error occurred during processing of the payment. The reason is given in the `refusalReason` field. This is a final state. + enum: + - Authorised + - PartiallyAuthorised + - Refused + - Error + - Cancelled + - Received + - RedirectShopper + type: string + Recurring: + properties: + contract: + description: |- + The type of recurring contract to be used. + Possible values: + * `ONECLICK` – Payment details can be used to initiate a one-click payment, where the shopper enters the [card security code (CVC/CVV)](https://docs.adyen.com/developers/payment-glossary#cardsecuritycodecvccvvcid). + * `RECURRING` – Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/developers/payment-glossary#cardnotpresentcnp). + * `ONECLICK,RECURRING` – Payment details can be used regardless of whether the shopper is on your site or not. + * `PAYOUT` – Payment details can be used to [make a payout](https://docs.adyen.com/developers/features/third-party-payouts). + 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 + - MCTOKENSERVICE + type: string + StoreDetailAndSubmitRequest: + properties: + additionalData: + additionalProperties: + type: string + description: 'This field contains additional data, which may be required for a particular request.' + type: object + amount: + description: A container object for the payable amount information of the transaction. + $ref: '#/definitions/Amount' + bank: + description: |- + A container for bank account data. + > This field is mandatory if `card` is not provided. + $ref: '#/definitions/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/definitions/Address' + card: + description: |- + A container for card data. + > This field is mandatory if `bank` is not provided. + $ref: '#/definitions/Card' + dateOfBirth: + description: |- + The date of birth. + Format: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD + For Paysafecard it must be the same as used when registering the Paysafecard account. + > This field is mandatory for natural persons. + format: date-time + type: string + entityType: + description: The type of the entity the payout is processed for. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + maxLength: 2 + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The recurring.contract must be set to `PAYOUT` + $ref: '#/definitions/Recurring' + reference: + description: 'The merchant reference for this payment. This reference will be used in all communication to the merchant about the status of the payout. Although it is a good idea to make sure it is unique, this is not a requirement.' + type: string + selectedBrand: + description: |- + The name of the brand to make a payout to. + + For Paysafecard it must be set to `paysafecard`. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + When the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + $ref: '#/definitions/Name' + shopperReference: + description: The shopper's reference for the payment transaction. + type: string + shopperStatement: + description: The description of this payout. This description is shown on the bank statement of the shopper (if this is supported by the chosen payment method). + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - shopperEmail + - shopperReference + - recurring + - dateOfBirth + - nationality + - entityType + - reference + - amount + StoreDetailAndSubmitResponse: + properties: + additionalData: + additionalProperties: + type: string + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + refusalReason: + description: 'In case of refusal, an informational message for the reason.' + type: string + resultCode: + description: |- + The response: + + * In case of success is payout-submit-received. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - resultCode + StoreDetailRequest: + properties: + additionalData: + additionalProperties: + type: string + description: 'This field contains additional data, which may be required for a particular request.' + type: object + bank: + description: |- + A container for bank account data. + > This field is mandatory if `card` is not provided. + $ref: '#/definitions/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/definitions/Address' + card: + description: |- + A container for card data. + > This field is mandatory if `bank` is not provided. + $ref: '#/definitions/Card' + dateOfBirth: + description: |- + The date of birth. + Format: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD + For Paysafecard it must be the same as used when registering the Paysafecard account. + > This field is mandatory for natural persons. + format: date-time + type: string + entityType: + description: The type of the entity the payout is processed for. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + maxLength: 2 + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The recurring.contract must be set to `PAYOUT` + $ref: '#/definitions/Recurring' + selectedBrand: + description: |- + The name of the brand to make a payout to. + + For Paysafecard it must be set to `paysafecard`. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + When the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + $ref: '#/definitions/Name' + shopperReference: + description: The shopper's reference for the payment transaction. + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - shopperEmail + - shopperReference + - recurring + - dateOfBirth + - nationality + - entityType + StoreDetailResponse: + properties: + additionalData: + additionalProperties: + type: string + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + recurringDetailReference: + description: The token which you can use later on for submitting the payout. + type: string + resultCode: + description: The result code of the transaction. `Success` indicates that the details were stored successfully. + type: string + required: + - pspReference + - recurringDetailReference + - resultCode + SubmitRequest: + properties: + additionalData: + additionalProperties: + type: string + description: 'This field contains additional data, which may be required for a particular request.' + type: object + amount: + description: A container object for the payable amount information of the transaction. + $ref: '#/definitions/Amount' + dateOfBirth: + description: |- + The date of birth. + Format: ISO-8601; example: YYYY-MM-DD + + For Paysafecard it must be the same as used when registering the Paysafecard account. + + > This field is mandatory for natural persons. + > This field is required to update the existing `dateOfBirth` that is associated with this recurring contract. + format: date-time + type: string + entityType: + description: |- + The type of the entity the payout is processed for. + + Allowed values: + * NaturalPerson + * Company + > This field is required to update the existing `entityType` that is associated with this recurring contract. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: The merchant account identifier you want to process the transaction request with. + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + + > This field is required to update the existing nationality that is associated with this recurring contract. + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The `recurring.contract` must be set to "PAYOUT". + $ref: '#/definitions/Recurring' + reference: + description: 'The merchant reference for this payout. This reference will be used in all communication to the merchant about the status of the payout. Although it is a good idea to make sure it is unique, this is not a requirement.' + type: string + selectedRecurringDetailReference: + description: |- + This is the `recurringDetailReference` you want to use for this payout. + + You can use the value LATEST to select the most recently used recurring detail. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + In case the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + + > This field is required to update the existing `shopperName` associated with a recurring contract. + $ref: '#/definitions/Name' + shopperReference: + description: The shopper's reference for the payout transaction. + type: string + shopperStatement: + description: The description of this payout. This description is shown on the bank statement of the shopper (if this is supported by the chosen payment method). + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - reference + - amount + - shopperEmail + - shopperReference + - recurring + - selectedRecurringDetailReference + SubmitResponse: + properties: + additionalData: + additionalProperties: + type: string + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + refusalReason: + description: 'In case of refusal, an informational message for the reason.' + type: string + resultCode: + description: |- + The response: + * In case of success, it is `payout-submit-received`. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - resultCode + 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