{
   "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.\n\nExample: 1 Infinite Loop, Cupertino.",
                  "type" : "string"
               },
               "zip" : {
                  "description" : "The zip or post code of the address.\n\nExample: 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.\n\nPermitted values:\n* Company\n* MerchantAccount\n> 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.\n\nExample: 123",
                  "type" : "string"
               },
               "expiryMonth" : {
                  "description" : "Expiry month for the test card range.\n\nAllowed values:\n* JANUARY\n* FEBRUARY\n* MARCH\n* APRIL\n* MAY\n* JUNE\n* JULY\n* AUGUST\n* SEPTEMBER\n* OCTOBER\n* NOVEMBER\n* 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.\n\nExample: 2020",
                  "format" : "int32",
                  "type" : "integer"
               },
               "rangeEnd" : {
                  "description" : "The last test card number in the test card range (inclusive):\n\n* Min 6, max 19 digits\n* BIN compliant\nExample: 5432 1234 1234 4321",
                  "type" : "string"
               },
               "rangeStart" : {
                  "description" : "The first test card number in the test card range (inclusive):\n\n* Min 6, max 19 digits\n* BIN compliant\nExample: 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:\n\n* Y (Authentication available)\n* N (Card holder not enrolled/not participating)\n* 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.\n\nExample: 5432 1234 1234 4321",
                  "type" : "string"
               },
               "cardNumberRangeStart" : {
                  "description" : "The first test card number in the generated test card range.\n\nExample: 5432 1234 1234 1234",
                  "type" : "string"
               },
               "creationResultCode" : {
                  "description" : "Notification message. It informs about the outcome of the operation. Possible values:\n* CREATED\n* ALREADY_EXISTS\n* 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" : {
         
      }
   }
}