{
   "openapi" : "3.1.0",
   "servers" : [
      {
         "url" : "https://postfmapi-test.adyen.com/postfmapi/terminal/v1"
      }
   ],
   "info" : {
      "version" : "1",
      "x-publicVersion" : true,
      "title" : "POS Terminal Management API",
      "description" : "This API provides endpoints for managing your point-of-sale (POS) payment terminals. You can use the API to obtain information about a specific terminal, retrieve overviews of your terminals and stores, and assign terminals to a merchant account or store.\n\nFor more information, refer to [Classic assign terminals](https://docs.adyen.com/point-of-sale/automating-terminal-management/assign-terminals-api/classic-assign-terminals-api/).\n\n>From January 1, 2025 POS Terminal Management API is deprecated and support stops on April 1, 2025. To automate the management of your terminal fleet, use our [Management API](https://docs.adyen.com/api-explorer/Management/latest/overview).\n\n## Authentication\nEach request to the Terminal Management API must be signed with an API key. For this, obtain an API Key from your Customer Area, as described in [How to get the API key](https://docs.adyen.com/development-resources/api-credentials#generate-api-key). Then set this key to the `X-API-Key` header value, for example:\n\n```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: Your_API_key\" \\\n...\n```\nNote that when going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints).\n\n## Roles and permissions\nTo use the POS Terminal Management API, you need the **POS Terminal Management API role** added to your API credential. Your Adyen contact will set up the roles for you.\n## Versioning\nTerminal Management 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://postfmapi-test.adyen.com/postfmapi/terminal/v1/getTerminalsUnderAccount\n```\nWhen using versioned endpoints, Boolean response values are returned in string format: `\"true\"` or `\"false\"`.\nIf you omit the version from the endpoint URL, Boolean response values are returned like this: `true` or `false`.\n## Going live\nTo access the live endpoints, you need an API key from your live Customer Area.\nUse this API key to make requests to:\n\n```text\nhttps://postfmapi-live.adyen.com/postfmapi/terminal/v1\n```\n\n",
      "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" : {
      "/assignTerminals" : {
         "post" : {
            "tags" : [
               "General"
            ],
            "summary" : "Assign terminals",
            "description" : "Assigns one or more payment terminals to a merchant account or a store. You can also use this endpoint to reassign terminals between merchant accounts or stores, and to unassign a terminal and return it to company inventory.\n\n>From January 1, 2025 POS Terminal Management API is deprecated and support stops on April 1, 2025. To automate the management of your terminal fleet, use our [Management API](https://docs.adyen.com/api-explorer/Management/latest/overview).",
            "deprecated" : true,
            "x-deprecatedInVersion" : "1",
            "x-deprecatedMessage" : "Use [Management API](https://docs.adyen.com/api-explorer/Management/latest/overview).",
            "operationId" : "post-assignTerminals",
            "x-sortIndex" : 1,
            "x-methodName" : "assignTerminals",
            "security" : [
               {
                  "BasicAuth" : [
                     ]
               },
               {
                  "ApiKeyAuth" : [
                     ]
               }
            ],
            "requestBody" : {
               "content" : {
                  "application/json" : {
                     "examples" : {
                        "assignTerminalCompany" : {
                           "$ref" : "#/components/examples/post-assignTerminals-assignTerminalCompany"
                        },
                        "assignTerminalMerchant" : {
                           "$ref" : "#/components/examples/post-assignTerminals-assignTerminalMerchant"
                        },
                        "assignTerminalStore" : {
                           "$ref" : "#/components/examples/post-assignTerminals-assignTerminalStore"
                        }
                     },
                     "schema" : {
                        "$ref" : "#/components/schemas/AssignTerminalsRequest"
                     }
                  }
               }
            },
            "responses" : {
               "200" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "assignTerminalCompany" : {
                              "$ref" : "#/components/examples/post-assignTerminals-assignTerminalCompany-200"
                           },
                           "assignTerminalMerchant" : {
                              "$ref" : "#/components/examples/post-assignTerminals-assignTerminalMerchant-200"
                           },
                           "assignTerminalStore" : {
                              "$ref" : "#/components/examples/post-assignTerminals-assignTerminalStore-200"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/AssignTerminalsResponse"
                        }
                     }
                  },
                  "description" : "OK - the request has succeeded."
               },
               "400" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-400"
                           }
                        },
                        "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" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-403"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Forbidden - insufficient permissions to process the request."
               },
               "422" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-422"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unprocessable Entity - a request validation error."
               },
               "500" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-500"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Internal Server Error - the server could not process the request."
               }
            }
         }
      },
      "/findTerminal" : {
         "post" : {
            "tags" : [
               "General"
            ],
            "summary" : "Get the account or store of a terminal",
            "description" : "Returns the company account, merchant account, or store that a payment terminal is assigned to.\n\n>From January 1, 2025 POS Terminal Management API is deprecated and support stops on April 1, 2025. To automate the management of your terminal fleet, use our [Management API](https://docs.adyen.com/api-explorer/Management/latest/overview).",
            "deprecated" : true,
            "x-deprecatedInVersion" : "1",
            "x-deprecatedMessage" : "Use [Management API](https://docs.adyen.com/api-explorer/Management/latest/overview).",
            "operationId" : "post-findTerminal",
            "x-sortIndex" : 1,
            "x-methodName" : "findTerminal",
            "security" : [
               {
                  "BasicAuth" : [
                     ]
               },
               {
                  "ApiKeyAuth" : [
                     ]
               }
            ],
            "requestBody" : {
               "content" : {
                  "application/json" : {
                     "examples" : {
                        "findTerminal" : {
                           "$ref" : "#/components/examples/post-findTerminal-findTerminal"
                        }
                     },
                     "schema" : {
                        "$ref" : "#/components/schemas/FindTerminalRequest"
                     }
                  }
               }
            },
            "responses" : {
               "200" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "findTerminal" : {
                              "$ref" : "#/components/examples/post-findTerminal-findTerminal-200"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/FindTerminalResponse"
                        }
                     }
                  },
                  "description" : "OK - the request has succeeded."
               },
               "400" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-400"
                           }
                        },
                        "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" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-403"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Forbidden - insufficient permissions to process the request."
               },
               "422" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-422"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unprocessable Entity - a request validation error."
               },
               "500" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-500"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Internal Server Error - the server could not process the request."
               }
            }
         }
      },
      "/getStoresUnderAccount" : {
         "post" : {
            "tags" : [
               "General"
            ],
            "summary" : "Get the stores of an account",
            "description" : "Returns a list of stores associated with a company account or a merchant account, including the status of each store.\n\n>From January 1, 2025 POS Terminal Management API is deprecated and support stops on April 1, 2025. To automate the management of your terminal fleet, use our [Management API](https://docs.adyen.com/api-explorer/Management/latest/overview).",
            "deprecated" : true,
            "x-deprecatedInVersion" : "1",
            "x-deprecatedMessage" : "Use [Management API](https://docs.adyen.com/api-explorer/Management/latest/overview).",
            "operationId" : "post-getStoresUnderAccount",
            "x-sortIndex" : 1,
            "x-methodName" : "getStoresUnderAccount",
            "security" : [
               {
                  "BasicAuth" : [
                     ]
               },
               {
                  "ApiKeyAuth" : [
                     ]
               }
            ],
            "requestBody" : {
               "content" : {
                  "application/json" : {
                     "examples" : {
                        "getStoresCompany" : {
                           "$ref" : "#/components/examples/post-getStoresUnderAccount-getStoresCompany"
                        },
                        "getStoresMerchant" : {
                           "$ref" : "#/components/examples/post-getStoresUnderAccount-getStoresMerchant"
                        }
                     },
                     "schema" : {
                        "$ref" : "#/components/schemas/GetStoresUnderAccountRequest"
                     }
                  }
               }
            },
            "responses" : {
               "200" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "getStoresCompany" : {
                              "$ref" : "#/components/examples/post-getStoresUnderAccount-getStoresCompany-200"
                           },
                           "getStoresMerchant" : {
                              "$ref" : "#/components/examples/post-getStoresUnderAccount-getStoresMerchant-200"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/GetStoresUnderAccountResponse"
                        }
                     }
                  },
                  "description" : "OK - the request has succeeded."
               },
               "400" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-400"
                           }
                        },
                        "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" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-403"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Forbidden - insufficient permissions to process the request."
               },
               "422" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-422"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unprocessable Entity - a request validation error."
               },
               "500" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-500"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Internal Server Error - the server could not process the request."
               }
            }
         }
      },
      "/getTerminalDetails" : {
         "post" : {
            "tags" : [
               "General"
            ],
            "summary" : "Get the details of a terminal",
            "description" : "Returns the details of a payment terminal, including where the terminal is assigned to. The response returns the same details that are provided in the terminal list in your Customer Area and in the Terminal Fleet report.\n\n>From January 1, 2025 POS Terminal Management API is deprecated and support stops on April 1, 2025. To automate the management of your terminal fleet, use our [Management API](https://docs.adyen.com/api-explorer/Management/latest/overview).",
            "deprecated" : true,
            "x-deprecatedInVersion" : "1",
            "x-deprecatedMessage" : "Use [Management API](https://docs.adyen.com/api-explorer/Management/latest/overview).",
            "operationId" : "post-getTerminalDetails",
            "x-sortIndex" : 1,
            "x-methodName" : "getTerminalDetails",
            "security" : [
               {
                  "BasicAuth" : [
                     ]
               },
               {
                  "ApiKeyAuth" : [
                     ]
               }
            ],
            "requestBody" : {
               "content" : {
                  "application/json" : {
                     "examples" : {
                        "getTerminalDetails" : {
                           "$ref" : "#/components/examples/post-getTerminalDetails-getTerminalDetails"
                        }
                     },
                     "schema" : {
                        "$ref" : "#/components/schemas/GetTerminalDetailsRequest"
                     }
                  }
               }
            },
            "responses" : {
               "200" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "getTerminalDetails" : {
                              "$ref" : "#/components/examples/post-getTerminalDetails-getTerminalDetails-200"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/GetTerminalDetailsResponse"
                        }
                     }
                  },
                  "description" : "OK - the request has succeeded."
               },
               "400" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-400"
                           }
                        },
                        "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" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-403"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Forbidden - insufficient permissions to process the request."
               },
               "422" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-422"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unprocessable Entity - a request validation error."
               },
               "500" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-500"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Internal Server Error - the server could not process the request."
               }
            }
         }
      },
      "/getTerminalsUnderAccount" : {
         "post" : {
            "tags" : [
               "General"
            ],
            "summary" : "Get the list of terminals",
            "description" : "Returns a list of payment terminals associated with a company account, merchant account, or store. The response shows whether the terminals are in the inventory, or in-store (ready for boarding or already boarded).\n\n>From January 1, 2025 POS Terminal Management API is deprecated and support stops on April 1, 2025. To automate the management of your terminal fleet, use our [Management API](https://docs.adyen.com/api-explorer/Management/latest/overview).",
            "deprecated" : true,
            "x-deprecatedInVersion" : "1",
            "x-deprecatedMessage" : "Use [Management API](https://docs.adyen.com/api-explorer/Management/latest/overview).",
            "operationId" : "post-getTerminalsUnderAccount",
            "x-sortIndex" : 1,
            "x-methodName" : "getTerminalsUnderAccount",
            "security" : [
               {
                  "BasicAuth" : [
                     ]
               },
               {
                  "ApiKeyAuth" : [
                     ]
               }
            ],
            "requestBody" : {
               "content" : {
                  "application/json" : {
                     "examples" : {
                        "getTerminalsCompany" : {
                           "$ref" : "#/components/examples/post-getTerminalsUnderAccount-getTerminalsCompany"
                        },
                        "getTerminalsMerchant" : {
                           "$ref" : "#/components/examples/post-getTerminalsUnderAccount-getTerminalsMerchant"
                        },
                        "getTerminalsStore" : {
                           "$ref" : "#/components/examples/post-getTerminalsUnderAccount-getTerminalsStore"
                        }
                     },
                     "schema" : {
                        "$ref" : "#/components/schemas/GetTerminalsUnderAccountRequest"
                     }
                  }
               }
            },
            "responses" : {
               "200" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "getTerminalsCompany" : {
                              "$ref" : "#/components/examples/post-getTerminalsUnderAccount-getTerminalsCompany-200"
                           },
                           "getTerminalsMerchant" : {
                              "$ref" : "#/components/examples/post-getTerminalsUnderAccount-getTerminalsMerchant-200"
                           },
                           "getTerminalsStore" : {
                              "$ref" : "#/components/examples/post-getTerminalsUnderAccount-getTerminalsStore-200"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/GetTerminalsUnderAccountResponse"
                        }
                     }
                  },
                  "description" : "OK - the request has succeeded."
               },
               "400" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-400"
                           }
                        },
                        "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" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-403"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Forbidden - insufficient permissions to process the request."
               },
               "422" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-422"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unprocessable Entity - a request validation error."
               },
               "500" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "generic" : {
                              "$ref" : "#/components/examples/generic-500"
                           }
                        },
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Internal Server Error - the server could not process the request."
               }
            }
         }
      }
   },
   "components" : {
      "schemas" : {
         "Address" : {
            "additionalProperties" : false,
            "properties" : {
               "city" : {
                  "type" : "string"
               },
               "countryCode" : {
                  "type" : "string"
               },
               "postalCode" : {
                  "type" : "string"
               },
               "stateOrProvince" : {
                  "type" : "string"
               },
               "streetAddress" : {
                  "type" : "string"
               },
               "streetAddress2" : {
                  "type" : "string"
               }
            },
            "type" : "object"
         },
         "AssignTerminalsRequest" : {
            "additionalProperties" : false,
            "properties" : {
               "companyAccount" : {
                  "description" : "Your company account. To return terminals to the company inventory, specify only this parameter and the `terminals`.",
                  "type" : "string"
               },
               "merchantAccount" : {
                  "description" : "Name of the merchant account. Specify this parameter to assign terminals to this merchant account or to a store under this merchant account.",
                  "type" : "string"
               },
               "merchantInventory" : {
                  "description" : "Boolean that indicates if you are assigning the terminals to the merchant inventory. Do not use when assigning terminals to a store. Required when assigning the terminal to a merchant account.\n\n- Set this to **true** to assign the terminals to the merchant inventory. This also means that the terminals cannot be boarded.\n\n- Set this to **false** to assign the terminals to the merchant account as in-store terminals. This makes the terminals ready to be boarded and to process payments through the specified merchant account.",
                  "type" : "boolean"
               },
               "store" : {
                  "description" : "The store code of the store that you want to assign the terminals to.",
                  "type" : "string"
               },
               "terminals" : {
                  "description" : "Array containing a list of terminal IDs that you want to assign or reassign to the merchant account or store, or that you want to return to the company inventory.\n\nFor example, `[\"V400m-324689776\",\"P400Plus-329127412\"]`.",
                  "items" : {
                     "type" : "string"
                  },
                  "type" : "array"
               }
            },
            "required" : [
               "companyAccount",
               "terminals"
            ],
            "type" : "object"
         },
         "AssignTerminalsResponse" : {
            "additionalProperties" : false,
            "properties" : {
               "results" : {
                  "additionalProperties" : {
                     "type" : "string"
                  },
                  "description" : "Array that returns a list of the terminals, and for each terminal the result of assigning it to an account or store.\n\nThe results can be: \n\n - `Done`: The terminal has been assigned.\n\n - `AssignmentScheduled`: The terminal will be assigned asynschronously.\n\n - `RemoveConfigScheduled`: The terminal was previously assigned and boarded. Wait for the terminal to synchronize with the Adyen platform. For more information, refer to [Reassigning boarded terminals](https://docs.adyen.com/point-of-sale/managing-terminals/assign-terminals#reassign-boarded-terminals).\n\n - `Error`: There was an error when assigning the terminal. ",
                  "type" : "object"
               }
            },
            "required" : [
               "results"
            ],
            "type" : "object"
         },
         "FindTerminalRequest" : {
            "additionalProperties" : false,
            "properties" : {
               "terminal" : {
                  "description" : "The unique terminal ID in the format `[Device model]-[Serial number]`. \n\nFor example, **V400m-324689776**.",
                  "type" : "string"
               }
            },
            "required" : [
               "terminal"
            ],
            "type" : "object"
         },
         "FindTerminalResponse" : {
            "additionalProperties" : false,
            "properties" : {
               "companyAccount" : {
                  "description" : "The company account that the terminal is associated with. If this is the only account level shown in the response, the terminal is assigned to the inventory of the company account.",
                  "type" : "string"
               },
               "merchantAccount" : {
                  "description" : "The merchant account that the terminal is associated with. If the response doesn't contain a `store` the terminal is assigned to this merchant account.",
                  "type" : "string"
               },
               "merchantInventory" : {
                  "description" : "Boolean that indicates if the terminal is assigned to the merchant inventory. This is returned when the terminal is assigned to a merchant account.\n\n- If **true**, this indicates that the terminal is in the merchant inventory. This also means that the terminal cannot be boarded.\n\n- If **false**, this indicates that the terminal is assigned to the merchant account as an in-store terminal. This means that the terminal is ready to be boarded, or is already boarded.",
                  "type" : "boolean"
               },
               "store" : {
                  "description" : "The store code of the store that the terminal is assigned to.",
                  "type" : "string"
               },
               "terminal" : {
                  "description" : "The unique terminal ID.",
                  "type" : "string"
               }
            },
            "required" : [
               "companyAccount",
               "terminal"
            ],
            "type" : "object"
         },
         "GetStoresUnderAccountRequest" : {
            "additionalProperties" : false,
            "properties" : {
               "companyAccount" : {
                  "description" : "The company account. If you only specify this parameter, the response includes the stores of all merchant accounts that are associated with the company account.",
                  "type" : "string"
               },
               "merchantAccount" : {
                  "description" : "The merchant account. With this parameter, the response only includes the stores of the specified merchant account.",
                  "type" : "string"
               }
            },
            "required" : [
               "companyAccount"
            ],
            "type" : "object"
         },
         "GetStoresUnderAccountResponse" : {
            "additionalProperties" : false,
            "properties" : {
               "stores" : {
                  "description" : "Array that returns a list of all stores for the specified merchant account, or for all merchant accounts under the company account.",
                  "items" : {
                     "$ref" : "#/components/schemas/Store"
                  },
                  "type" : "array"
               }
            },
            "type" : "object"
         },
         "GetTerminalDetailsRequest" : {
            "additionalProperties" : false,
            "properties" : {
               "terminal" : {
                  "description" : "The unique terminal ID in the format `[Device model]-[Serial number]`. \n\nFor example, **V400m-324689776**.",
                  "type" : "string"
               }
            },
            "required" : [
               "terminal"
            ],
            "type" : "object"
         },
         "GetTerminalDetailsResponse" : {
            "additionalProperties" : false,
            "properties" : {
               "bluetoothIp" : {
                  "description" : "The Bluetooth IP address of the terminal.",
                  "type" : "string"
               },
               "bluetoothMac" : {
                  "description" : "The Bluetooth MAC address of the terminal.",
                  "type" : "string"
               },
               "companyAccount" : {
                  "description" : "The company account that the terminal is associated with. If this is the only account level shown in the response, the terminal is assigned to the inventory of the company account.",
                  "type" : "string"
               },
               "country" : {
                  "description" : "The country where the terminal is used.",
                  "type" : "string"
               },
               "deviceModel" : {
                  "description" : "The model name of the terminal.",
                  "type" : "string"
               },
               "dhcpEnabled" : {
                  "description" : "Indicates whether assigning IP addresses through a DHCP server is enabled on the terminal.",
                  "type" : "boolean"
               },
               "displayLabel" : {
                  "description" : "The label shown on the status bar of the display. This label (if any) is specified in your Customer Area.",
                  "type" : "string"
               },
               "ethernetIp" : {
                  "description" : "The terminal's IP address in your Ethernet network.",
                  "type" : "string"
               },
               "ethernetMac" : {
                  "description" : "The terminal's MAC address in your Ethernet network.",
                  "type" : "string"
               },
               "firmwareVersion" : {
                  "description" : "The software release currently in use on the terminal.",
                  "type" : "string"
               },
               "iccid" : {
                  "description" : "The integrated circuit card identifier (ICCID) of the SIM card in the terminal.",
                  "type" : "string"
               },
               "lastActivityDateTime" : {
                  "description" : "Date and time of the last activity on the terminal. Not included when the last activity was more than 14 days ago.",
                  "format" : "date-time",
                  "type" : "string"
               },
               "lastTransactionDateTime" : {
                  "description" : "Date and time of the last transaction on the terminal. Not included when the last transaction was more than 14 days ago.",
                  "format" : "date-time",
                  "type" : "string"
               },
               "linkNegotiation" : {
                  "description" : "The Ethernet link negotiation that the terminal uses: \n\n- `auto`: Auto-negotiation\n\n- `100full`: 100 Mbps full duplex",
                  "type" : "string"
               },
               "merchantAccount" : {
                  "description" : "The merchant account that the terminal is associated with. If the response doesn't contain a `store` the terminal is assigned to this merchant account.",
                  "type" : "string"
               },
               "merchantInventory" : {
                  "description" : "Boolean that indicates if the terminal is assigned to the merchant inventory. This is returned when the terminal is assigned to a merchant account.\n\n- If **true**, this indicates that the terminal is in the merchant inventory. This also means that the terminal cannot be boarded.\n\n- If **false**, this indicates that the terminal is assigned to the merchant account as an in-store terminal. This means that the terminal is ready to be boarded, or is already boarded.",
                  "type" : "boolean"
               },
               "permanentTerminalId" : {
                  "description" : "The permanent terminal ID.",
                  "type" : "string"
               },
               "serialNumber" : {
                  "description" : "The serial number of the terminal.",
                  "type" : "string"
               },
               "simStatus" : {
                  "description" : "On a terminal that supports 3G or 4G connectivity, indicates the status of the SIM card in the terminal: ACTIVE or INVENTORY.",
                  "type" : "string"
               },
               "store" : {
                  "description" : "The store code of the store that the terminal is assigned to.",
                  "type" : "string"
               },
               "storeDetails" : {
                  "description" : "The store that the terminal is assigned to.",
                  "$ref" : "#/components/schemas/Store"
               },
               "terminal" : {
                  "description" : "The unique terminal ID.",
                  "type" : "string"
               },
               "terminalStatus" : {
                  "description" : "The status of the terminal: \n\n- `OnlineToday`, `OnlineLast1Day`, `OnlineLast2Days` etcetera to `OnlineLast7Days`: Indicates when in the past week the terminal was last online. \n\n- `SwitchedOff`: Indicates it was more than a week ago that the terminal was last online. \n\n- `ReAssignToInventoryPending`, `ReAssignToStorePending`, `ReAssignToMerchantInventoryPending`: Indicates the terminal is scheduled to be reassigned.",
                  "enum" : [
                     "OnlineLast1Day",
                     "OnlineLast2Days",
                     "OnlineLast3Days",
                     "OnlineLast4Days",
                     "OnlineLast5Days",
                     "OnlineLast6Days",
                     "OnlineLast7Days",
                     "OnlineToday",
                     "ReAssignToInventoryPending",
                     "ReAssignToMerchantInventoryPending",
                     "ReAssignToStorePending",
                     "SwitchedOff"
                  ],
                  "type" : "string"
               },
               "wifiIp" : {
                  "description" : "The terminal's IP address in your Wi-Fi network.",
                  "type" : "string"
               },
               "wifiMac" : {
                  "description" : "The terminal's MAC address in your Wi-Fi network.",
                  "type" : "string"
               }
            },
            "required" : [
               "companyAccount",
               "terminal"
            ],
            "type" : "object"
         },
         "GetTerminalsUnderAccountRequest" : {
            "additionalProperties" : false,
            "properties" : {
               "companyAccount" : {
                  "description" : "Your company account. If you only specify this parameter, the response includes all terminals at all account levels.",
                  "type" : "string"
               },
               "merchantAccount" : {
                  "description" : "The merchant account. This is required if you are retrieving the terminals assigned to a store.If you don't specify a `store` the response includes the terminals assigned to the specified merchant account and the terminals assigned to the stores under this merchant account.",
                  "type" : "string"
               },
               "store" : {
                  "description" : "The store code of the store. With this parameter, the response only includes the terminals assigned to the specified store.",
                  "type" : "string"
               }
            },
            "required" : [
               "companyAccount"
            ],
            "type" : "object"
         },
         "GetTerminalsUnderAccountResponse" : {
            "additionalProperties" : false,
            "properties" : {
               "companyAccount" : {
                  "description" : "Your company account.",
                  "type" : "string"
               },
               "inventoryTerminals" : {
                  "description" : "Array that returns a list of all terminals that are in the inventory of the company account.",
                  "items" : {
                     "type" : "string"
                  },
                  "type" : "array"
               },
               "merchantAccounts" : {
                  "description" : "Array that returns a list of all merchant accounts belonging to the company account.",
                  "items" : {
                     "$ref" : "#/components/schemas/MerchantAccount"
                  },
                  "type" : "array"
               }
            },
            "required" : [
               "companyAccount"
            ],
            "type" : "object"
         },
         "MerchantAccount" : {
            "additionalProperties" : false,
            "properties" : {
               "inStoreTerminals" : {
                  "description" : "List of terminals assigned to this merchant account as in-store terminals. This means that the terminal is ready to be boarded, or is already boarded.",
                  "items" : {
                     "type" : "string"
                  },
                  "type" : "array"
               },
               "inventoryTerminals" : {
                  "description" : "List of terminals assigned to the inventory of this merchant account.",
                  "items" : {
                     "type" : "string"
                  },
                  "type" : "array"
               },
               "merchantAccount" : {
                  "description" : "The merchant account.",
                  "type" : "string"
               },
               "stores" : {
                  "description" : "Array of stores under this merchant account.",
                  "items" : {
                     "$ref" : "#/components/schemas/Store"
                  },
                  "type" : "array"
               }
            },
            "required" : [
               "merchantAccount"
            ],
            "type" : "object"
         },
         "ServiceError" : {
            "additionalProperties" : false,
            "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"
               }
            },
            "type" : "object"
         },
         "Store" : {
            "additionalProperties" : false,
            "properties" : {
               "address" : {
                  "description" : "The address of the store.",
                  "$ref" : "#/components/schemas/Address"
               },
               "description" : {
                  "description" : "The description of the store.",
                  "type" : "string"
               },
               "inStoreTerminals" : {
                  "description" : "The list of terminals assigned to the store.",
                  "items" : {
                     "type" : "string"
                  },
                  "type" : "array"
               },
               "merchantAccountCode" : {
                  "description" : "The code of the merchant account.",
                  "type" : "string"
               },
               "status" : {
                  "description" : "The status of the store:\n\n- `PreActive`: the store has been created, but not yet activated. \n\n- `Active`: the store has been activated. This means you can process payments for this store. \n\n- `Inactive`: the store is currently not active. \n\n- `InactiveWithModifications`: the store is currently not active, but payment modifications such as refunds are possible. \n\n- `Closed`: the store has been closed. ",
                  "type" : "string"
               },
               "store" : {
                  "description" : "The code of the store.",
                  "type" : "string"
               }
            },
            "required" : [
               "store"
            ],
            "type" : "object"
         }
      },
      "securitySchemes" : {
         "ApiKeyAuth" : {
            "in" : "header",
            "name" : "X-API-Key",
            "type" : "apiKey"
         },
         "BasicAuth" : {
            "scheme" : "basic",
            "type" : "http"
         }
      },
      "examples" : {
         "generic-400" : {
            "summary" : "Response code 400. Bad request.",
            "value" : {
               "status" : 400,
               "errorCode" : "702",
               "message" : "Problem reading or understanding the request.",
               "errorType" : "validation"
            }
         },
         "generic-403" : {
            "summary" : "Response code 403. Forbidden.",
            "value" : {
               "status" : 403,
               "errorCode" : "010",
               "message" : "Insufficient permissions to process the request.",
               "errorType" : "security"
            }
         },
         "generic-422" : {
            "summary" : "Response code 422. Unprocessable entity.",
            "value" : {
               "status" : 422,
               "errorCode" : "901",
               "message" : "Request validation error.",
               "errorType" : "validation"
            }
         },
         "generic-500" : {
            "summary" : "Response code 500. Internal server error.",
            "value" : {
               "status" : 500,
               "errorCode" : "000",
               "message" : "The server could not process the request.",
               "errorType" : "internal"
            }
         },
         "post-assignTerminals-assignTerminalCompany" : {
            "summary" : "Assign a terminal to the company inventory",
            "description" : "Assign one or more terminals to the inventory of the company account.",
            "value" : {
               "companyAccount" : "YOUR_COMPANY_ACCOUNT",
               "terminals" : [
                  "P400Plus-275479597"
               ]
            }
         },
         "post-assignTerminals-assignTerminalCompany-200" : {
            "summary" : "Example response for request 'assignTerminalCompany'",
            "value" : {
               "results" : {
                  "P400Plus-275479597" : "RemoveConfigScheduled"
               }
            }
         },
         "post-assignTerminals-assignTerminalMerchant" : {
            "summary" : "Assign a terminal to the inventory of a merchant account",
            "description" : "Assign one or more terminals to the inventory of the merchant account.",
            "value" : {
               "companyAccount" : "YOUR_COMPANY_ACCOUNT",
               "merchantAccount" : "YOUR_MERCHANT_ACCOUNT",
               "merchantInventory" : true,
               "terminals" : [
                  "P400Plus-275479597"
               ]
            }
         },
         "post-assignTerminals-assignTerminalMerchant-200" : {
            "summary" : "Example response for request 'assignTerminalMerchant'",
            "value" : {
               "results" : {
                  "P400Plus-275479597" : "RemoveConfigScheduled"
               }
            }
         },
         "post-assignTerminals-assignTerminalStore" : {
            "summary" : "Assign a terminal to a store",
            "description" : "Assign one or more terminals to the specified store.",
            "value" : {
               "companyAccount" : "YOUR_COMPANY_ACCOUNT",
               "merchantAccount" : "YOUR_MERCHANT_ACCOUNT",
               "store" : "YOUR_STORE",
               "terminals" : [
                  "P400Plus-275479597"
               ]
            }
         },
         "post-assignTerminals-assignTerminalStore-200" : {
            "summary" : "Example response for request 'assignTerminalStore'",
            "value" : {
               "results" : {
                  "P400Plus-275479597" : "RemoveConfigScheduled"
               }
            }
         },
         "post-findTerminal-findTerminal" : {
            "summary" : "Find where a terminal is assigned to",
            "description" : "Returns the company account, merchant account, or store that the payment terminal is assigned to.",
            "value" : {
               "terminal" : "M400-401972715"
            }
         },
         "post-findTerminal-findTerminal-200" : {
            "summary" : "Example response for request 'findTerminal'",
            "value" : {
               "companyAccount" : "YOUR_COMPANY_ACCOUNT",
               "merchantAccount" : "YOUR_MERCHANT_ACCOUNT",
               "merchantInventory" : false,
               "store" : "YOUR_STORE",
               "terminal" : "M400-401972715"
            }
         },
         "post-getStoresUnderAccount-getStoresCompany" : {
            "summary" : "Get all the stores under a company",
            "description" : "Returns a list of all stores associated with the specified company account.",
            "value" : {
               "companyAccount" : "YOUR_COMPANY_ACCOUNT"
            }
         },
         "post-getStoresUnderAccount-getStoresCompany-200" : {
            "summary" : "Example response for request 'getStoresCompany'",
            "value" : {
               "stores" : [
                  {
                     "store" : "YOUR_STORE",
                     "description" : "YOUR_STORE",
                     "address" : {
                        "city" : "The City",
                        "countryCode" : "NL",
                        "postalCode" : "1234",
                        "streetAddress" : "The Street"
                     },
                     "status" : "Active",
                     "merchantAccountCode" : "YOUR_MERCHANT_ACCOUNT"
                  }
               ]
            }
         },
         "post-getStoresUnderAccount-getStoresMerchant" : {
            "summary" : "Get all the stores under a merchant account",
            "description" : "Returns a list of all stores associated with the specified merchant account.",
            "value" : {
               "companyAccount" : "YOUR_COMPANY_ACCOUNT",
               "merchantAccount" : "YOUR_MERCHANT_ACCOUNT"
            }
         },
         "post-getStoresUnderAccount-getStoresMerchant-200" : {
            "summary" : "Example response for request 'getStoresMerchant'",
            "value" : {
               "stores" : [
                  {
                     "store" : "YOUR_STORE",
                     "description" : "YOUR_STORE",
                     "address" : {
                        "city" : "The City",
                        "countryCode" : "NL",
                        "postalCode" : "1234",
                        "streetAddress" : "The Street"
                     },
                     "status" : "Active",
                     "merchantAccountCode" : "YOUR_MERCHANT_ACCOUNT"
                  }
               ]
            }
         },
         "post-getTerminalDetails-getTerminalDetails" : {
            "summary" : "Get information about a specific terminal",
            "description" : "Returns the details of a payment terminal, including where the terminal is assigned to.",
            "value" : {
               "terminal" : "M400-401972715"
            }
         },
         "post-getTerminalDetails-getTerminalDetails-200" : {
            "summary" : "Example response for request 'getTerminalDetails'",
            "value" : {
               "companyAccount" : "YOUR_COMPANY_ACCOUNT",
               "merchantAccount" : "YOUR_MERCHANT_ACCOUNT",
               "merchantInventory" : false,
               "store" : "YOUR_STORE",
               "terminal" : "M400-401972715",
               "deviceModel" : "M400",
               "serialNumber" : "401-972-715",
               "permanentTerminalId" : "88912016",
               "terminalStatus" : "SwitchedOff",
               "firmwareVersion" : "Verifone_VOS 1.57.6",
               "country" : "NETHERLANDS",
               "storeDetails" : {
                  "store" : "YOUR_STORE",
                  "description" : "TestStore",
                  "address" : {
                     "city" : "The City",
                     "countryCode" : "NL",
                     "postalCode" : "1234",
                     "streetAddress" : "The Street"
                  }
               },
               "ethernetMac" : "60:c7:98:5a:69:cd",
               "ethernetIp" : "192.168.2.11",
               "wifiMac" : "c4:ac:59:47:f3:71",
               "wifiIp" : "192.168.2.12",
               "dhcpEnabled" : false
            }
         },
         "post-getTerminalsUnderAccount-getTerminalsCompany" : {
            "summary" : "Get all the terminals under a company account",
            "description" : "Returns a list of terminals associated with the company, indicating where each terminal is assigned to.",
            "value" : {
               "companyAccount" : "YOUR_COMPANY_ACCOUNT"
            }
         },
         "post-getTerminalsUnderAccount-getTerminalsCompany-200" : {
            "summary" : "Example response for request 'getTerminalsCompany'",
            "value" : {
               "companyAccount" : "YOUR_COMPANY_ACCOUNT",
               "merchantAccounts" : [
                  {
                     "merchantAccount" : "YOUR_MERCHANT_ACCOUNT",
                     "inStoreTerminals" : [
                        "P400Plus-275479597"
                     ],
                     "stores" : [
                        {
                           "store" : "YOUR_STORE",
                           "inStoreTerminals" : [
                              "M400-401972715"
                           ]
                        }
                     ]
                  }
               ]
            }
         },
         "post-getTerminalsUnderAccount-getTerminalsMerchant" : {
            "summary" : "Get all the terminals under a merchant account",
            "description" : "Returns a list of terminals associated with the merchant account, indicating where each terminal is assigned to.",
            "value" : {
               "companyAccount" : "YOUR_COMPANY_ACCOUNT",
               "merchantAccount" : "YOUR_MERCHANT_ACCOUNT"
            }
         },
         "post-getTerminalsUnderAccount-getTerminalsMerchant-200" : {
            "summary" : "Example response for request 'getTerminalsMerchant'",
            "value" : {
               "companyAccount" : "YOUR_COMPANY_ACCOUNT",
               "merchantAccounts" : [
                  {
                     "merchantAccount" : "YOUR_MERCHANT_ACCOUNT",
                     "inStoreTerminals" : [
                        "P400Plus-275479597"
                     ],
                     "stores" : [
                        {
                           "store" : "YOUR_STORE",
                           "inStoreTerminals" : [
                              "M400-401972715"
                           ]
                        }
                     ]
                  }
               ]
            }
         },
         "post-getTerminalsUnderAccount-getTerminalsStore" : {
            "summary" : "Get all the terminals assigned to a store",
            "description" : "Returns a list of terminals assigned to the specified store.",
            "value" : {
               "companyAccount" : "YOUR_COMPANY_ACCOUNT",
               "merchantAccount" : "YOUR_MERCHANT_ACCOUNT",
               "store" : "YOUR_STORE"
            }
         },
         "post-getTerminalsUnderAccount-getTerminalsStore-200" : {
            "summary" : "Example response for request 'getTerminalsStore'",
            "value" : {
               "companyAccount" : "YOUR_COMPANY_ACCOUNT",
               "merchantAccounts" : [
                  {
                     "merchantAccount" : "YOUR_MERCHANT_ACCOUNT",
                     "stores" : [
                        {
                           "store" : "YOUR_STORE",
                           "inStoreTerminals" : [
                              "M400-401972715"
                           ]
                        }
                     ]
                  }
               ]
            }
         }
      }
   }
}