{
   "openapi" : "3.1.0",
   "servers" : [
      {
         "url" : "https://pal-test.adyen.com/pal/servlet/Recurring/v67"
      }
   ],
   "info" : {
      "version" : "67",
      "x-publicVersion" : true,
      "title" : "Adyen Recurring API",
      "description" : "> The Recurring API is a legacy API for managing tokens. We strongly recommend to use [Checkout API recurring endpoints](https://docs.adyen.com/api-explorer/Checkout/71/post/storedPaymentMethods) instead when possible.The Recurring APIs allow you to manage and remove your tokens or saved payment details. Tokens should be created with validation during a payment request.\n\nFor more information, refer to our [Tokenization documentation](https://docs.adyen.com/online-payments/tokenization).\n## Authentication\nYou need an [API credential](https://docs.adyen.com/development-resources/api-credentials) to authenticate to the API.\n\nIf using an API key, add an `X-API-Key` header with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively, you can use the username and password to connect to the API using basic authentication, for example:\n\n```\ncurl\n-U \"ws@Company.YOUR_COMPANY_ACCOUNT\":\"YOUR_BASIC_AUTHENTICATION_PASSWORD\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\n\n## Versioning\nRecurring API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://pal-test.adyen.com/pal/servlet/Recurring/v67/disable\n```\n\n## Going live\n\nTo authenticate to the live endpoints, you need an [API credential](https://docs.adyen.com/development-resources/api-credentials) from your live Customer Area.\n\nThe live endpoint URLs contain a prefix which is unique to your company account:\n```\n\nhttps://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Recurring/v67/disable\n```\n\nGet your `{PREFIX}` from your live Customer Area under **Developers** > **API URLs** > **Prefix**.",
      "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions",
      "contact" : {
         "name" : "Adyen Developer Experience team",
         "url" : "https://github.com/Adyen/adyen-openapi"
      }
   },
   "tags" : [
      {
         "name" : "General"
      }
   ],
   "paths" : {
      "/createPermit" : {
         "post" : {
            "tags" : [
               "General"
            ],
            "summary" : "Create new permits linked to a recurring contract.",
            "description" : "Create permits for a recurring contract, including support for defining restrictions.",
            "x-addedInVersion" : "40",
            "operationId" : "post-createPermit",
            "x-sortIndex" : 0,
            "x-methodName" : "createPermit",
            "security" : [
               {
                  "BasicAuth" : [
                     ]
               },
               {
                  "ApiKeyAuth" : [
                     ]
               }
            ],
            "requestBody" : {
               "content" : {
                  "application/json" : {
                     "schema" : {
                        "$ref" : "#/components/schemas/CreatePermitRequest"
                     }
                  }
               }
            },
            "responses" : {
               "200" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/CreatePermitResult"
                        }
                     }
                  },
                  "description" : "OK - the request has succeeded."
               },
               "400" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Bad Request - a problem reading or understanding the request."
               },
               "401" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unauthorized - authentication required."
               },
               "403" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Forbidden - insufficient permissions to process the request."
               },
               "422" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unprocessable Entity - a request validation error."
               },
               "500" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Internal Server Error - the server could not process the request."
               }
            }
         }
      },
      "/disable" : {
         "post" : {
            "tags" : [
               "General"
            ],
            "summary" : "Disable stored payment details",
            "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/classic-integration/recurring-payments/disable-stored-details/).",
            "operationId" : "post-disable",
            "x-sortIndex" : 2,
            "x-methodName" : "disable",
            "security" : [
               {
                  "BasicAuth" : [
                     ]
               },
               {
                  "ApiKeyAuth" : [
                     ]
               }
            ],
            "requestBody" : {
               "content" : {
                  "application/json" : {
                     "examples" : {
                        "disableARecurringContract" : {
                           "$ref" : "#/components/examples/post-disable-disableARecurringContract"
                        }
                     },
                     "schema" : {
                        "$ref" : "#/components/schemas/DisableRequest"
                     }
                  }
               }
            },
            "responses" : {
               "200" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/DisableResult"
                        }
                     }
                  },
                  "description" : "OK - the request has succeeded."
               },
               "400" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Bad Request - a problem reading or understanding the request."
               },
               "401" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unauthorized - authentication required."
               },
               "403" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Forbidden - insufficient permissions to process the request."
               },
               "422" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unprocessable Entity - a request validation error."
               },
               "500" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Internal Server Error - the server could not process the request."
               }
            }
         }
      },
      "/disablePermit" : {
         "post" : {
            "tags" : [
               "General"
            ],
            "summary" : "Disable an existing permit.",
            "description" : "Disable a permit that was previously linked to a recurringDetailReference.",
            "x-addedInVersion" : "61",
            "operationId" : "post-disablePermit",
            "x-sortIndex" : 0,
            "x-methodName" : "disablePermit",
            "security" : [
               {
                  "BasicAuth" : [
                     ]
               },
               {
                  "ApiKeyAuth" : [
                     ]
               }
            ],
            "requestBody" : {
               "content" : {
                  "application/json" : {
                     "schema" : {
                        "$ref" : "#/components/schemas/DisablePermitRequest"
                     }
                  }
               }
            },
            "responses" : {
               "200" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/DisablePermitResult"
                        }
                     }
                  },
                  "description" : "OK - the request has succeeded."
               },
               "400" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Bad Request - a problem reading or understanding the request."
               },
               "401" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unauthorized - authentication required."
               },
               "403" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Forbidden - insufficient permissions to process the request."
               },
               "422" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unprocessable Entity - a request validation error."
               },
               "500" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Internal Server Error - the server could not process the request."
               }
            }
         }
      },
      "/listRecurringDetails" : {
         "post" : {
            "tags" : [
               "General"
            ],
            "summary" : "Get stored payment details",
            "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/classic-integration/recurring-payments/retrieve-stored-details/).",
            "operationId" : "post-listRecurringDetails",
            "x-sortIndex" : 1,
            "x-methodName" : "listRecurringDetails",
            "security" : [
               {
                  "BasicAuth" : [
                     ]
               },
               {
                  "ApiKeyAuth" : [
                     ]
               }
            ],
            "requestBody" : {
               "content" : {
                  "application/json" : {
                     "examples" : {
                        "listAllRecurringDetails" : {
                           "$ref" : "#/components/examples/post-listRecurringDetails-listAllRecurringDetails"
                        }
                     },
                     "schema" : {
                        "$ref" : "#/components/schemas/RecurringDetailsRequest"
                     }
                  }
               }
            },
            "responses" : {
               "200" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/RecurringDetailsResult"
                        }
                     }
                  },
                  "description" : "OK - the request has succeeded."
               },
               "400" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Bad Request - a problem reading or understanding the request."
               },
               "401" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unauthorized - authentication required."
               },
               "403" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Forbidden - insufficient permissions to process the request."
               },
               "422" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unprocessable Entity - a request validation error."
               },
               "500" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Internal Server Error - the server could not process the request."
               }
            }
         }
      },
      "/notifyShopper" : {
         "post" : {
            "tags" : [
               "General"
            ],
            "summary" : "Ask issuer to notify the shopper",
            "description" : "Sends a request to the issuer so they can inform the shopper about the upcoming recurring payment. This endpoint is used only for local acquiring in India. For more information, refer to [Recurring card payments in India](https://docs.adyen.com/payment-methods/cards/cards-recurring-india).",
            "operationId" : "post-notifyShopper",
            "x-sortIndex" : 4,
            "x-methodName" : "notifyShopper",
            "security" : [
               {
                  "BasicAuth" : [
                     ]
               },
               {
                  "ApiKeyAuth" : [
                     ]
               }
            ],
            "requestBody" : {
               "content" : {
                  "application/json" : {
                     "examples" : {
                        "notifyShopperOfUpcomingRecurringPayment" : {
                           "$ref" : "#/components/examples/post-notifyShopper-notifyShopperOfUpcomingRecurringPayment"
                        }
                     },
                     "schema" : {
                        "$ref" : "#/components/schemas/NotifyShopperRequest"
                     }
                  }
               }
            },
            "responses" : {
               "200" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "notifyShopperOfUpcomingRecurringPayment" : {
                              "$ref" : "#/components/examples/post-notifyShopper-notifyShopperOfUpcomingRecurringPayment-200"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/NotifyShopperResult"
                        }
                     }
                  },
                  "description" : "OK - the request has succeeded."
               },
               "400" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Bad Request - a problem reading or understanding the request."
               },
               "401" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unauthorized - authentication required."
               },
               "403" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Forbidden - insufficient permissions to process the request."
               },
               "422" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unprocessable Entity - a request validation error."
               },
               "500" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Internal Server Error - the server could not process the request."
               }
            }
         }
      },
      "/scheduleAccountUpdater" : {
         "post" : {
            "tags" : [
               "General"
            ],
            "summary" : "Schedule running the Account Updater",
            "description" : "When making the API call, you can submit either the credit card information, or the recurring detail reference and the shopper reference:\n* If the card information is provided, all the sub-fields for `card` are mandatory.\n* If the recurring detail reference is provided, the fields for `shopperReference` and `selectedRecurringDetailReference` are mandatory.",
            "x-addedInVersion" : "4",
            "operationId" : "post-scheduleAccountUpdater",
            "x-sortIndex" : 3,
            "x-methodName" : "scheduleAccountUpdater",
            "security" : [
               {
                  "BasicAuth" : [
                     ]
               },
               {
                  "ApiKeyAuth" : [
                     ]
               }
            ],
            "requestBody" : {
               "content" : {
                  "application/json" : {
                     "examples" : {
                        "scheduleAccountUpdaterWithCardData" : {
                           "$ref" : "#/components/examples/post-scheduleAccountUpdater-scheduleAccountUpdaterWithCardData"
                        },
                        "scheduleAccountUpdaterWithTokenData" : {
                           "$ref" : "#/components/examples/post-scheduleAccountUpdater-scheduleAccountUpdaterWithTokenData"
                        }
                     },
                     "schema" : {
                        "$ref" : "#/components/schemas/ScheduleAccountUpdaterRequest"
                     }
                  }
               }
            },
            "responses" : {
               "200" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "scheduleAccountUpdaterWithCardData" : {
                              "$ref" : "#/components/examples/post-scheduleAccountUpdater-scheduleAccountUpdaterWithCardData-200"
                           },
                           "scheduleAccountUpdaterWithTokenData" : {
                              "$ref" : "#/components/examples/post-scheduleAccountUpdater-scheduleAccountUpdaterWithTokenData-200"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ScheduleAccountUpdaterResult"
                        }
                     }
                  },
                  "description" : "OK - the request has succeeded."
               },
               "400" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Bad Request - a problem reading or understanding the request."
               },
               "401" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unauthorized - authentication required."
               },
               "403" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Forbidden - insufficient permissions to process the request."
               },
               "422" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "scheduleAccountUpdaterWithTokenData" : {
                              "$ref" : "#/components/examples/post-scheduleAccountUpdater-scheduleAccountUpdaterWithTokenData-422"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unprocessable Entity - a request validation error."
               },
               "500" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Internal Server Error - the server could not process the request."
               }
            }
         }
      }
   },
   "components" : {
      "schemas" : {
         "Address" : {
            "additionalProperties" : false,
            "properties" : {
               "city" : {
                  "description" : "The name of the city. Maximum length: 3000 characters.",
                  "maxLength" : 3000,
                  "type" : "string"
               },
               "country" : {
                  "description" : "The two-character ISO-3166-1 alpha-2 country code. For example, **US**.\n> If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.",
                  "type" : "string"
               },
               "houseNumberOrName" : {
                  "description" : "The number or name of the house. Maximum length: 3000 characters.",
                  "maxLength" : 3000,
                  "type" : "string"
               },
               "postalCode" : {
                  "description" : "A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.",
                  "type" : "string"
               },
               "stateOrProvince" : {
                  "description" : "The two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada.\n> Required for the US and Canada.",
                  "type" : "string"
               },
               "street" : {
                  "description" : "The name of the street. Maximum length: 3000 characters.\n> The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.",
                  "maxLength" : 3000,
                  "type" : "string"
               }
            },
            "required" : [
               "street",
               "houseNumberOrName",
               "city",
               "postalCode",
               "country"
            ],
            "type" : "object"
         },
         "Amount" : {
            "additionalProperties" : false,
            "properties" : {
               "currency" : {
                  "description" : "The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes).",
                  "maxLength" : 3,
                  "minLength" : 3,
                  "type" : "string"
               },
               "value" : {
                  "description" : "The amount of the transaction, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).",
                  "format" : "int64",
                  "type" : "integer"
               }
            },
            "required" : [
               "value",
               "currency"
            ],
            "type" : "object"
         },
         "BankAccount" : {
            "additionalProperties" : false,
            "properties" : {
               "bankAccountNumber" : {
                  "description" : "The bank account number (without separators).",
                  "type" : "string"
               },
               "bankCity" : {
                  "x-addedInVersion" : "18",
                  "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" : {
                  "x-addedInVersion" : "18",
                  "description" : "The bank account holder's tax ID.",
                  "type" : "string"
               }
            },
            "type" : "object"
         },
         "Card" : {
            "additionalProperties" : false,
            "properties" : {
               "cvc" : {
                  "description" : "The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (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/classic-integration/cse-integration-ecommerce), 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/classic-integration/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: 2020",
                  "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"
               }
            },
            "type" : "object"
         },
         "CreatePermitRequest" : {
            "additionalProperties" : false,
            "properties" : {
               "merchantAccount" : {
                  "description" : "The merchant account identifier, with which you want to process the transaction.",
                  "type" : "string"
               },
               "permits" : {
                  "description" : "The permits to create for this recurring contract.",
                  "items" : {
                     "$ref" : "#/components/schemas/Permit"
                  },
                  "type" : "array"
               },
               "recurringDetailReference" : {
                  "description" : "The recurring contract the new permits will use.",
                  "type" : "string"
               },
               "shopperReference" : {
                  "description" : "The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID).",
                  "type" : "string"
               }
            },
            "required" : [
               "merchantAccount",
               "shopperReference",
               "recurringDetailReference",
               "permits"
            ],
            "type" : "object"
         },
         "CreatePermitResult" : {
            "additionalProperties" : false,
            "properties" : {
               "permitResultList" : {
                  "description" : "List of new permits.",
                  "items" : {
                     "$ref" : "#/components/schemas/PermitResult"
                  },
                  "type" : "array"
               },
               "pspReference" : {
                  "description" : "A unique reference associated with the request. This value is globally unique; quote it when communicating with us about this request.",
                  "type" : "string"
               }
            },
            "type" : "object"
         },
         "DisablePermitRequest" : {
            "additionalProperties" : false,
            "properties" : {
               "merchantAccount" : {
                  "description" : "The merchant account identifier, with which you want to process the transaction.",
                  "type" : "string"
               },
               "token" : {
                  "description" : "The permit token to disable.",
                  "type" : "string"
               }
            },
            "required" : [
               "merchantAccount",
               "token"
            ],
            "type" : "object"
         },
         "DisablePermitResult" : {
            "additionalProperties" : false,
            "properties" : {
               "pspReference" : {
                  "description" : "A unique reference associated with the request. This value is globally unique; quote it when communicating with us about this request.",
                  "type" : "string"
               },
               "status" : {
                  "description" : "Status of the disable request.",
                  "type" : "string"
               }
            },
            "type" : "object"
         },
         "DisableRequest" : {
            "additionalProperties" : false,
            "properties" : {
               "contract" : {
                  "x-addedInVersion" : "3",
                  "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 identifier with which you want to process the transaction.",
                  "type" : "string"
               },
               "recurringDetailReference" : {
                  "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" : "The ID that uniquely identifies the shopper.\n\nThis `shopperReference` must be the same as the `shopperReference` used in the initial payment.",
                  "type" : "string"
               }
            },
            "required" : [
               "merchantAccount",
               "shopperReference"
            ],
            "type" : "object"
         },
         "DisableResult" : {
            "additionalProperties" : false,
            "properties" : {
               "response" : {
                  "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"
               }
            },
            "type" : "object"
         },
         "Name" : {
            "additionalProperties" : false,
            "properties" : {
               "firstName" : {
                  "description" : "The first name.",
                  "maxLength" : 80,
                  "type" : "string"
               },
               "lastName" : {
                  "description" : "The last name.",
                  "maxLength" : 80,
                  "type" : "string"
               }
            },
            "required" : [
               "firstName",
               "lastName"
            ],
            "type" : "object"
         },
         "NotifyShopperRequest" : {
            "additionalProperties" : false,
            "properties" : {
               "amount" : {
                  "description" : "The amount of the upcoming payment.",
                  "$ref" : "#/components/schemas/Amount"
               },
               "billingDate" : {
                  "description" : "Date on which the subscription amount will be debited from the shopper. In YYYY-MM-DD format",
                  "type" : "string"
               },
               "billingSequenceNumber" : {
                  "description" : "Sequence of the debit. Depends on Frequency and Billing Attempts Rule.",
                  "type" : "string"
               },
               "displayedReference" : {
                  "description" : "Reference of Pre-debit notification that is displayed to the shopper. Optional field. Maps to reference if missing",
                  "type" : "string"
               },
               "merchantAccount" : {
                  "description" : "The merchant account identifier with which you want to process the transaction.",
                  "type" : "string"
               },
               "recurringDetailReference" : {
                  "description" : "This is the `recurringDetailReference` returned in the response when you created the token.",
                  "type" : "string"
               },
               "reference" : {
                  "description" : "Pre-debit notification reference sent by the merchant. This is a mandatory field",
                  "type" : "string"
               },
               "shopperReference" : {
                  "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"
               },
               "storedPaymentMethodId" : {
                  "description" : "This is the `recurringDetailReference` returned in the response when you created the token.",
                  "type" : "string"
               }
            },
            "required" : [
               "merchantAccount",
               "shopperReference",
               "amount",
               "reference"
            ],
            "type" : "object"
         },
         "NotifyShopperResult" : {
            "additionalProperties" : false,
            "properties" : {
               "displayedReference" : {
                  "description" : "Reference of Pre-debit notification that is displayed to the shopper",
                  "type" : "string"
               },
               "message" : {
                  "description" : "A simple description of the `resultCode`.",
                  "type" : "string"
               },
               "pspReference" : {
                  "description" : "The unique reference that is associated with the request.",
                  "type" : "string"
               },
               "reference" : {
                  "description" : "Reference of Pre-debit notification sent in my the merchant",
                  "type" : "string"
               },
               "resultCode" : {
                  "description" : "The code indicating the status of notification.",
                  "type" : "string"
               },
               "shopperNotificationReference" : {
                  "description" : "The unique reference for the request sent downstream.",
                  "type" : "string"
               },
               "storedPaymentMethodId" : {
                  "description" : "This is the recurringDetailReference returned in the response when token was created",
                  "type" : "string"
               }
            },
            "type" : "object"
         },
         "Permit" : {
            "additionalProperties" : false,
            "properties" : {
               "partnerId" : {
                  "description" : "Partner ID (when using the permit-per-partner token sharing model).",
                  "type" : "string"
               },
               "profileReference" : {
                  "description" : "The profile to apply to this permit (when using the shared permits model).",
                  "type" : "string"
               },
               "restriction" : {
                  "description" : "Permit level restriction overrides.",
                  "$ref" : "#/components/schemas/PermitRestriction"
               },
               "resultKey" : {
                  "description" : "The key to link permit requests to permit results.",
                  "type" : "string"
               },
               "validTillDate" : {
                  "description" : "The expiry date for this permit.",
                  "format" : "date-time",
                  "type" : "string"
               }
            },
            "type" : "object"
         },
         "PermitRestriction" : {
            "additionalProperties" : false,
            "properties" : {
               "maxAmount" : {
                  "description" : "The total sum amount of one or more payments made using this permit may not exceed this amount if set.",
                  "$ref" : "#/components/schemas/Amount"
               },
               "singleTransactionLimit" : {
                  "description" : "The amount of any single payment using this permit may not exceed this amount if set.",
                  "$ref" : "#/components/schemas/Amount"
               },
               "singleUse" : {
                  "description" : "Only a single payment can be made using this permit if set to true, otherwise multiple payments are allowed.",
                  "type" : "boolean"
               }
            },
            "type" : "object"
         },
         "PermitResult" : {
            "additionalProperties" : false,
            "properties" : {
               "resultKey" : {
                  "x-addedInVersion" : "32",
                  "description" : "The key to link permit requests to permit results.",
                  "type" : "string"
               },
               "token" : {
                  "x-addedInVersion" : "32",
                  "description" : "The permit token which is used to make payments by the partner company.",
                  "type" : "string"
               }
            },
            "type" : "object"
         },
         "Recurring" : {
            "additionalProperties" : false,
            "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/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid).\n* `RECURRING` – Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-not-present-cnp).\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/online-payments/online-payouts).",
                  "enum" : [
                     "ONECLICK",
                     "RECURRING",
                     "PAYOUT"
                  ],
                  "type" : "string"
               },
               "recurringDetailName" : {
                  "description" : "A descriptive name for this detail.",
                  "type" : "string"
               },
               "recurringExpiry" : {
                  "x-addedInVersion" : "40",
                  "description" : "Date after which no further authorisations shall be performed. Only for 3D Secure 2.",
                  "format" : "date-time",
                  "type" : "string"
               },
               "recurringFrequency" : {
                  "x-addedInVersion" : "40",
                  "description" : "Minimum number of days between authorisations. Only for 3D Secure 2.",
                  "type" : "string"
               },
               "tokenService" : {
                  "x-addedInVersion" : "25",
                  "description" : "The name of the token service.",
                  "enum" : [
                     "VISATOKENSERVICE",
                     "MCTOKENSERVICE",
                     "AMEXTOKENSERVICE",
                     "TOKEN_SHARING"
                  ],
                  "type" : "string"
               }
            },
            "type" : "object"
         },
         "RecurringDetail" : {
            "additionalProperties" : false,
            "properties" : {
               "additionalData" : {
                  "x-addedInVersion" : "5",
                  "additionalProperties" : {
                     "type" : "string"
                  },
                  "description" : "This field contains additional data, which may be returned in a particular response.\n\nThe additionalData object consists of entries, each of which includes the key and value.",
                  "type" : "object"
               },
               "alias" : {
                  "x-addedInVersion" : "4",
                  "description" : "The alias of the credit card number.\n\nApplies only to recurring contracts storing credit card details",
                  "type" : "string"
               },
               "aliasType" : {
                  "x-addedInVersion" : "4",
                  "description" : "The alias type of the credit card number.\n\nApplies only to recurring contracts storing credit card details.",
                  "type" : "string"
               },
               "bank" : {
                  "description" : "A container for bank account data.",
                  "$ref" : "#/components/schemas/BankAccount"
               },
               "billingAddress" : {
                  "x-addedInVersion" : "4",
                  "description" : "The billing address.",
                  "$ref" : "#/components/schemas/Address"
               },
               "card" : {
                  "description" : "A container for card data.",
                  "$ref" : "#/components/schemas/Card"
               },
               "contractTypes" : {
                  "x-addedInVersion" : "12",
                  "description" : "Types of recurring contracts.",
                  "items" : {
                     "type" : "string"
                  },
                  "type" : "array"
               },
               "creationDate" : {
                  "description" : "The date when the recurring details were created.",
                  "format" : "date-time",
                  "type" : "string"
               },
               "firstPspReference" : {
                  "x-addedInVersion" : "4",
                  "description" : "The `pspReference` of the first recurring payment that created the recurring detail.",
                  "type" : "string"
               },
               "name" : {
                  "description" : "An optional descriptive name for this recurring detail.",
                  "type" : "string"
               },
               "paymentMethodVariant" : {
                  "x-addedInVersion" : "2",
                  "description" : "The  type or sub-brand of a payment method used, e.g. Visa Debit, Visa Corporate, etc. For more information, refer to [PaymentMethodVariant](https://docs.adyen.com/development-resources/paymentmethodvariant).",
                  "type" : "string"
               },
               "recurringDetailReference" : {
                  "description" : "The reference that uniquely identifies the recurring detail.",
                  "type" : "string"
               },
               "shopperName" : {
                  "x-addedInVersion" : "4",
                  "description" : "The name of the shopper.",
                  "$ref" : "#/components/schemas/Name"
               },
               "socialSecurityNumber" : {
                  "x-addedInVersion" : "4",
                  "description" : "A shopper's social security number (only in countries where it is legal to collect).",
                  "type" : "string"
               },
               "tokenDetails" : {
                  "x-addedInVersion" : "2",
                  "$ref" : "#/components/schemas/TokenDetails"
               },
               "variant" : {
                  "description" : "The payment method, such as “mc\", \"visa\", \"ideal\", \"paypal\".",
                  "type" : "string"
               }
            },
            "required" : [
               "recurringDetailReference",
               "variant"
            ],
            "type" : "object"
         },
         "RecurringDetailWrapper" : {
            "properties" : {
               "RecurringDetail" : {
                  "$ref" : "#/components/schemas/RecurringDetail"
               }
            }
         },
         "RecurringDetailsRequest" : {
            "additionalProperties" : false,
            "properties" : {
               "merchantAccount" : {
                  "description" : "The merchant account identifier you want to process the (transaction) request with.",
                  "type" : "string"
               },
               "recurring" : {
                  "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" : "#/components/schemas/Recurring"
               },
               "shopperReference" : {
                  "description" : "The reference you use to uniquely identify the shopper (e.g. user ID or account ID).",
                  "type" : "string"
               }
            },
            "required" : [
               "merchantAccount",
               "shopperReference"
            ],
            "type" : "object"
         },
         "RecurringDetailsResult" : {
            "additionalProperties" : false,
            "properties" : {
               "creationDate" : {
                  "description" : "The date when the recurring details were created.",
                  "format" : "date-time",
                  "type" : "string"
               },
               "details" : {
                  "description" : "Payment details stored for recurring payments.",
                  "items" : {
                     "$ref" : "#/components/schemas/RecurringDetailWrapper"
                  },
                  "type" : "array"
               },
               "lastKnownShopperEmail" : {
                  "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).",
                  "type" : "string"
               }
            },
            "type" : "object"
         },
         "ScheduleAccountUpdaterRequest" : {
            "additionalProperties" : false,
            "properties" : {
               "additionalData" : {
                  "additionalProperties" : {
                     "type" : "string"
                  },
                  "description" : "This field contains additional data, which may be required for a particular request.",
                  "type" : "object"
               },
               "card" : {
                  "description" : "Credit card data.\n\nOptional if `shopperReference` and `selectedRecurringDetailReference` are provided.",
                  "$ref" : "#/components/schemas/Card"
               },
               "merchantAccount" : {
                  "description" : "Account of the merchant.",
                  "type" : "string"
               },
               "reference" : {
                  "description" : "A reference that merchants can apply for the call.",
                  "type" : "string"
               },
               "selectedRecurringDetailReference" : {
                  "description" : "The selected detail recurring reference.\n\nOptional if `card` is provided.",
                  "type" : "string"
               },
               "shopperReference" : {
                  "description" : "The reference of the shopper that owns the recurring contract.\n\nOptional if `card` is provided.",
                  "type" : "string"
               }
            },
            "required" : [
               "merchantAccount",
               "reference"
            ],
            "type" : "object"
         },
         "ScheduleAccountUpdaterResult" : {
            "additionalProperties" : false,
            "properties" : {
               "pspReference" : {
                  "description" : "Adyen's 16-character unique reference associated with the transaction. This value is globally unique; quote it when communicating with us about this request.",
                  "type" : "string"
               },
               "result" : {
                  "description" : "The result of scheduling an Account Updater. If scheduling was successful, this field returns **Success**; otherwise it contains the error message.",
                  "type" : "string"
               }
            },
            "required" : [
               "pspReference",
               "result"
            ],
            "type" : "object"
         },
         "ServiceError" : {
            "additionalProperties" : false,
            "properties" : {
               "additionalData" : {
                  "x-addedInVersion" : "46",
                  "additionalProperties" : {
                     "type" : "string"
                  },
                  "description" : "Contains additional information about the payment. Some data fields are included only if you select them first. Go to **Customer Area** > **Developers** > **Additional data**.",
                  "type" : "object"
               },
               "errorCode" : {
                  "description" : "The error code mapped to the error message.",
                  "type" : "string"
               },
               "errorType" : {
                  "description" : "The category of the error.",
                  "type" : "string"
               },
               "message" : {
                  "description" : "A short explanation of the issue.",
                  "type" : "string"
               },
               "pspReference" : {
                  "description" : "The PSP reference of the payment.",
                  "type" : "string"
               },
               "status" : {
                  "description" : "The HTTP response status.",
                  "format" : "int32",
                  "type" : "integer"
               }
            },
            "type" : "object"
         },
         "TokenDetails" : {
            "additionalProperties" : false,
            "properties" : {
               "tokenData" : {
                  "additionalProperties" : {
                     "type" : "string"
                  },
                  "type" : "object"
               },
               "tokenDataType" : {
                  "type" : "string"
               }
            },
            "type" : "object"
         }
      },
      "securitySchemes" : {
         "ApiKeyAuth" : {
            "in" : "header",
            "name" : "X-API-Key",
            "type" : "apiKey"
         },
         "BasicAuth" : {
            "scheme" : "basic",
            "type" : "http"
         }
      },
      "examples" : {
         "post-disable-disableARecurringContract" : {
            "summary" : "Disable a recurring contract",
            "value" : {
               "shopperReference" : "YOUR_SHOPPER_REFERENCE",
               "recurringDetailReference" : "8314442372419167",
               "merchantAccount" : "YOUR_MERCHANT_ACCOUNT"
            }
         },
         "post-listRecurringDetails-listAllRecurringDetails" : {
            "summary" : "List recurring details of the specified contract value",
            "value" : {
               "recurring" : {
                  "contract" : "RECURRING"
               },
               "shopperReference" : "YOUR_SHOPPER_REFERENCE",
               "merchantAccount" : "YOUR_MERCHANT_ACCOUNT"
            }
         },
         "post-notifyShopper-notifyShopperOfUpcomingRecurringPayment" : {
            "summary" : "Request issuer to notify shopper of upcoming recurring payment",
            "value" : {
               "merchantAccount" : "YOUR_MERCHANT_ACCOUNT",
               "storedPaymentMethodId" : "8415995487234100",
               "shopperReference" : "YOUR_SHOPPER_REFERENCE",
               "amount" : {
                  "currency" : "INR",
                  "value" : 1000
               },
               "billingDate" : "2021-03-16",
               "reference" : "Example reference",
               "displayedReference" : "exampleDisplayedReference"
            }
         },
         "post-notifyShopper-notifyShopperOfUpcomingRecurringPayment-200" : {
            "summary" : "Example response for request 'notifyShopper'",
            "value" : {
               "message" : "Request Processed Successfully",
               "resultCode" : "Success",
               "shopperNotificationReference" : "9915003646742627",
               "storedPaymentMethodId" : "8415995487234100",
               "pspReference" : "M5N7TQ4TG5PFWR50",
               "reference" : "Example reference",
               "displayedReference" : "exampleDisplayedReference"
            }
         },
         "post-scheduleAccountUpdater-scheduleAccountUpdaterWithCardData" : {
            "summary" : "Schedule AccountUpdater with card data",
            "value" : {
               "merchantAccount" : "YOUR_MERCHANT_ACCOUNT",
               "reference" : "YOUR_REFERENCE",
               "card" : {
                  "expiryMonth" : "03",
                  "expiryYear" : "2030",
                  "holderName" : "Adyen Test",
                  "number" : "4111111111111111"
               }
            }
         },
         "post-scheduleAccountUpdater-scheduleAccountUpdaterWithCardData-200" : {
            "summary" : "Scheduled Account Updater with card data",
            "value" : {
               "pspReference" : "QFQTPCQ8HXSKGK82",
               "result" : "Success"
            }
         },
         "post-scheduleAccountUpdater-scheduleAccountUpdaterWithTokenData" : {
            "summary" : "Schedule AccountUpdater with token data",
            "value" : {
               "merchantAccount" : "YOUR_MERCHANT_ACCOUNT",
               "reference" : "YOUR_REFERENCE",
               "shopperReference" : "YOUR_SHOPPER_REFERENCE",
               "selectedRecurringDetailReference" : "8814232895168272"
            }
         },
         "post-scheduleAccountUpdater-scheduleAccountUpdaterWithTokenData-200" : {
            "summary" : "Scheduled Account Updater with token data",
            "value" : {
               "pspReference" : "JLCMPCQ8HXSKGK82",
               "result" : "Success"
            }
         },
         "post-scheduleAccountUpdater-scheduleAccountUpdaterWithTokenData-422" : {
            "summary" : "Error response for RecurringShopper not found",
            "value" : {
               "status" : 422,
               "errorCode" : "000",
               "message" : "RecurringShopper not found",
               "errorType" : "validation"
            }
         }
      }
   }
}