openapi: 3.1.0
servers:
- url: https://pal-test.adyen.com/pal/services/TestCard/v1
info:
  version: '1'
  x-publicVersion: true
  title: Adyen Test Cards API
  description: The Test Cards API provides endpoints for generating custom test card
    numbers. For more information, refer to [Custom test cards](https://docs.adyen.com/development-resources/testing/create-test-cards)
    documentation.
  x-timestamp: '2022-05-03T09:24:07Z'
  termsOfService: https://www.adyen.com/legal/terms-and-conditions
  contact:
    name: Adyen Developer Experience team
    url: https://www.adyen.help/hc/en-us/community/topics
    email: developer-experience@adyen.com
x-groups:
- General
tags:
- name: General
paths:
  /createTestCardRanges:
    post:
      tags:
      - General
      summary: Creates one or more test card ranges.
      description: Creates one or more test card ranges.
      operationId: post-createTestCardRanges
      x-groupName: General
      x-sortIndex: 0
      security:
      - BasicAuth: []
      - ApiKeyAuth: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTestCardRangesRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTestCardRangesResult'
          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.
components:
  schemas:
    AvsAddress:
      properties:
        streetAddress:
          description: 'The street and house number of the address.


            Example: 1 Infinite Loop, Cupertino.'
          type: string
        zip:
          description: 'The zip or post code of the address.


            Example: CA 95014'
          type: string
      required:
      - streetAddress
    CreateTestCardRangesRequest:
      properties:
        accountCode:
          description: The code of the account, for which the test card ranges should
            be created.
          type: string
        accountTypeCode:
          description: 'The type of the account, for which the test card ranges should
            be created.


            Permitted values:

            * Company

            * MerchantAccount

            > These values are case-sensitive.'
          type: string
        testCardRanges:
          description: A list of test card ranges to create.
          items:
            $ref: '#/components/schemas/TestCardRange'
          type: array
      required:
      - accountTypeCode
      - accountCode
      - testCardRanges
    CreateTestCardRangesResult:
      properties:
        rangeCreationResults:
          description: The results of the test card creation.
          items:
            $ref: '#/components/schemas/TestCardRangeCreationResult'
          type: array
      required:
      - rangeCreationResults
    ServiceError:
      properties:
        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
    TestCardRange:
      properties:
        address:
          description: Contains the billing address of the card holder. The address
            details need to be AVS-compliant, which means that you need to provide
            at least street address.
          $ref: '#/components/schemas/AvsAddress'
        cardHolderName:
          description: The name of the card holder, as it appears on the card, for
            the test card range.
          type: string
        cvc:
          description: 'The test card range security code.


            Example: 123'
          type: string
        expiryMonth:
          description: 'Expiry month for the test card range.


            Allowed values:

            * JANUARY

            * FEBRUARY

            * MARCH

            * APRIL

            * MAY

            * JUNE

            * JULY

            * AUGUST

            * SEPTEMBER

            * OCTOBER

            * NOVEMBER

            * DECEMBER'
          enum:
          - APRIL
          - AUGUST
          - DECEMBER
          - FEBRUARY
          - JANUARY
          - JULY
          - JUNE
          - MARCH
          - MAY
          - NOVEMBER
          - OCTOBER
          - SEPTEMBER
          type: string
        expiryYear:
          description: 'Expiry year for the test card range.


            Example: 2020'
          format: int32
          type: integer
        rangeEnd:
          description: 'The last test card number in the test card range (inclusive):


            * Min 6, max 19 digits

            * BIN compliant

            Example: 5432 1234 1234 4321'
          type: string
        rangeStart:
          description: 'The first test card number in the test card range (inclusive):


            * Min 6, max 19 digits

            * BIN compliant

            Example: 5432 1234 1234 1234'
          type: string
        threeDDirectoryServerResponse:
          description: '3D Secure server response. It notifies whether the specified
            card holder is enrolled in a 3D Secure service. Possible values:


            * Y (Authentication available)

            * N (Card holder not enrolled/not participating)

            * U (Unable to authenticate)'
          enum:
          - N
          - U
          - Y
          type: string
        threeDPassword:
          description: The password used for 3D Secure authentication.
          type: string
        threeDUsername:
          description: The username used for 3D Secure authentication.
          type: string
      required:
      - rangeStart
      - rangeEnd
      - expiryMonth
      - expiryYear
      - cardHolderName
    TestCardRangeCreationResult:
      properties:
        cardNumberRangeEnd:
          description: 'The last test card number in the generated test card range.


            Example: 5432 1234 1234 4321'
          type: string
        cardNumberRangeStart:
          description: 'The first test card number in the generated test card range.


            Example: 5432 1234 1234 1234'
          type: string
        creationResultCode:
          description: 'Notification message. It informs about the outcome of the
            operation. Possible values:

            * CREATED

            * ALREADY_EXISTS

            * ERROR'
          enum:
          - ALREADY_EXISTS
          - CREATED
          - ERROR
          type: string
        message:
          description: An optional information message about the result.
          type: string
      required:
      - cardNumberRangeStart
      - cardNumberRangeEnd
      - creationResultCode
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: X-API-Key
      type: apiKey
    BasicAuth:
      scheme: basic
      type: http
  examples: {}
