openapi: 3.1.0
servers:
- url: https://pal-test.adyen.com/pal/servlet/Recurring/v49
info:
  version: '49'
  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/v49/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/v49/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.


        For 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.
  /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.


        For 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:

        * If the card information is provided, all the sub-fields for `card` are mandatory.

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

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

            > Required for the US and Canada.'
          type: string
        street:
          description: 'The name of the street. Maximum length: 3000 characters.

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


            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.\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* \u03C712 is converted to ch12.\n* \xFCA is converted to\
            \ euA.\n* Peter M\xF8ller is converted to Peter Mller, because banks don't\
            \ accept '\xF8'.\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 \u2013 length: 3 digits\n* CID \u2013 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.

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

            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
      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
    DisableRequest:
      additionalProperties: false
      properties:
        contract:
          x-addedInVersion: '3'
          description: 'Specify the contract if you only want to disable a specific
            use.


            This field can be set to one of the following values, or to their combination
            (comma-separated):

            * ONECLICK

            * RECURRING

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


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


            This `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.


            This `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` \u2013 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` \u2013 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` \u2013 Payment details can be used regardless of\
            \ whether the shopper is on your site or not.\n* `PAYOUT` \u2013 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.


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


            Applies only to recurring contracts storing credit card details'
          type: string
        aliasType:
          x-addedInVersion: '4'
          description: 'The alias type of the credit card number.


            Applies 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 \u201Cmc\", \"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.


            The contract value needs to match the contract value submitted in the
            payment transaction used to create a recurring contract.

            However, 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.


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


            Optional if `card` is provided.'
          type: string
        shopperReference:
          description: 'The reference of the shopper that owns the recurring contract.


            Optional 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
