{
  "openapi" : "3.0.3",
  "info" : {
    "title" : "Wezago Api",
    "version" : "1.0",
    "summary" : "Wezago Api",
    "description" : "The Api that powers Wezago products"
  },
  "paths" : {
    "/api/v1/agents" : {
      "post" : {
        "tags" : [ "Agents" ],
        "summary" : "Add an agent",
        "operationId" : "addAgent",
        "parameters" : [ ],
        "requestBody" : {
          "description" : "The add agent request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AgentRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When an agent is added successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AgentApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the phone number already exists",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "get" : {
        "tags" : [ "Agents" ],
        "summary" : "Get agents",
        "operationId" : "getAllAgents",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "description" : "Agents offset (for pagination)",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "How many agents to return per page",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When agents are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AgentsApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if authentication headers are missing/invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      }
    },
    "/api/v1/agents/{id}" : {
      "get" : {
        "tags" : [ "Agents" ],
        "summary" : "Get a single agent",
        "operationId" : "getAgent",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When the agent is fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AgentApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if agent does not exist or ID is invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if authentication headers are missing/invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      },
      "patch" : {
        "tags" : [ "Agents" ],
        "summary" : "Update an agent",
        "operationId" : "updateAgent",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "The agent update request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AgentRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When agent is updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AgentApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if agent does not exist or request is invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if authentication headers are missing/invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Agents" ],
        "summary" : "Delete an agent",
        "operationId" : "deleteAgent",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When agent is deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if agent does not exist or request is invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if authentication headers are missing/invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/auditlogs" : {
      "get" : {
        "tags" : [ "AuditLogs" ],
        "summary" : "Get audit logs",
        "operationId" : "getAuditLogs",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "Getting audit logs successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AuditLogsApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/brands" : {
      "post" : {
        "tags" : [ "Brands" ],
        "summary" : "Add a brand",
        "operationId" : "addBrand",
        "parameters" : [ ],
        "requestBody" : {
          "description" : "The add brand request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BrandRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When a brand is added successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BrandApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the brand name already exists",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "get" : {
        "tags" : [ "Brands" ],
        "summary" : "Get brands (with optional search)",
        "description" : "Fetch brands. If `query` is provided, results come from the search index. Otherwise, falls back to database.",
        "operationId" : "getAllBrands",
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "description" : "Brand search query",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Brands offset (for pagination)",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "How many brands to return per page",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When brands are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BrandsApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if authentication headers are missing/invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      }
    },
    "/api/v1/brands/{id}" : {
      "get" : {
        "tags" : [ "Brands" ],
        "summary" : "Get a single brand",
        "operationId" : "getBrand",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When the brand is fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BrandApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if brand does not exist or ID is invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if authentication headers are missing/invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      },
      "patch" : {
        "tags" : [ "Brands" ],
        "summary" : "Update a brand",
        "operationId" : "updateBrand",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "The brand update request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BrandRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When brand is updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BrandApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if brand does not exist or request is invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if authentication headers are missing/invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Brands" ],
        "summary" : "Delete a brand",
        "operationId" : "deleteBrand",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When brand is deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if brand does not exist or request is invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if authentication headers are missing/invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/businesses" : {
      "post" : {
        "tags" : [ "Businesses" ],
        "summary" : "Add a business",
        "operationId" : "addBusiness",
        "parameters" : [ ],
        "requestBody" : {
          "description" : "The add business request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BusinessRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When a business is added successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BusinessApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the business name already exists",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "get" : {
        "tags" : [ "Businesses" ],
        "summary" : "Get businesses",
        "operationId" : "getAllBusinesses",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "description" : "Businesses offset (for pagination)",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "How many businesses to return per page",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When businesses are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BusinessesApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if authentication headers are missing/invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      }
    },
    "/api/v1/businesses/{id}" : {
      "get" : {
        "tags" : [ "Businesses" ],
        "summary" : "Get a single business",
        "operationId" : "getBusiness",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When the business is fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BusinessApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if business does not exist or ID is invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if authentication headers are missing/invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      },
      "patch" : {
        "tags" : [ "Businesses" ],
        "summary" : "Update a business",
        "operationId" : "updateBusiness",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "The business update request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BusinessRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When business is updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BusinessApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if business does not exist or request is invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if authentication headers are missing/invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Businesses" ],
        "summary" : "Delete a business",
        "operationId" : "deleteBusiness",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When business is deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if business does not exist or request is invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if authentication headers are missing/invalid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/configs" : {
      "post" : {
        "tags" : [ "Configs" ],
        "summary" : "Create or update configs",
        "operationId" : "createConfigs",
        "parameters" : [ ],
        "requestBody" : {
          "description" : "The create/update configs request",
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/ConfigRequest"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When create/update configs request successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "get" : {
        "tags" : [ "Configs" ],
        "summary" : "Get configs",
        "operationId" : "getConfigs",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "Getting configs successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConfigsApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/configs/{configKey}" : {
      "get" : {
        "tags" : [ "Configs" ],
        "summary" : "Get a config",
        "operationId" : "getConfig",
        "parameters" : [ {
          "name" : "configKey",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When config is retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConfigsApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the configKey provided wasn't found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Configs" ],
        "summary" : "Delete a config",
        "operationId" : "deleteConfig",
        "parameters" : [ {
          "name" : "configKey",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When delete config request successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the configKey provided wasn't found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/contact" : {
      "post" : {
        "tags" : [ "Contact" ],
        "summary" : "Customer contact",
        "operationId" : "customerContact",
        "parameters" : [ ],
        "requestBody" : {
          "description" : "Customer contact us request",
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/CustomerContactRequest"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When customer contact request was successful",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      }
    },
    "/api/v1/devices" : {
      "post" : {
        "tags" : [ "Devices" ],
        "summary" : "Add a device",
        "operationId" : "addDevice",
        "parameters" : [ ],
        "requestBody" : {
          "description" : "The add device request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DeviceRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When a device is added successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DeviceApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the device name already exists",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "get" : {
        "tags" : [ "Devices" ],
        "summary" : "Get devices",
        "operationId" : "getDevices",
        "parameters" : [ {
          "name" : "offset",
          "in" : "query",
          "description" : "Devices offset",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "How many devices to return at once",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "minPrice",
          "in" : "query",
          "description" : "Min device price",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "maxPrice",
          "in" : "query",
          "description" : "Max device price",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "query",
          "in" : "query",
          "description" : "Device query",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "terms",
          "in" : "query",
          "description" : "Terms - either cash/credit",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sorting",
          "in" : "query",
          "description" : "Sorting method - either rating/price/date[-asc or -desc]",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When devices are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DevicesApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      }
    },
    "/api/v1/devices/featured" : {
      "get" : {
        "tags" : [ "Devices" ],
        "summary" : "Get featured devices",
        "operationId" : "getFeaturedDevices",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "When devices are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DevicesApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      }
    },
    "/api/v1/devices/latest" : {
      "get" : {
        "tags" : [ "Devices" ],
        "summary" : "Get latest devices",
        "operationId" : "getLatestDevices",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "When devices are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DevicesApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      }
    },
    "/api/v1/devices/{id}" : {
      "get" : {
        "tags" : [ "Devices" ],
        "summary" : "Get device",
        "operationId" : "getDevice",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When the device details are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DeviceApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the device does not exist",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      },
      "patch" : {
        "tags" : [ "Devices" ],
        "summary" : "Update a device",
        "operationId" : "updateDevice",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "The device update request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DeviceRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When a device details are updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DeviceApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the device does not exist",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Devices" ],
        "summary" : "Delete a device",
        "operationId" : "deleteDevice",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When the device is deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the device does not exist",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/devices/{id}/plans/{userId}" : {
      "get" : {
        "tags" : [ "Devices" ],
        "summary" : "Get device payment plans",
        "operationId" : "getDevicePaymentPlans",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "When payment plans are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentPlanApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/interactions" : {
      "post" : {
        "tags" : [ "Interactions" ],
        "summary" : "Add a interaction",
        "operationId" : "addInteraction",
        "parameters" : [ ],
        "requestBody" : {
          "description" : "The add interaction request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/InteractionRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When a interaction is added successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InteractionApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the interaction name already exists",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "get" : {
        "tags" : [ "Interactions" ],
        "summary" : "Get interactions",
        "operationId" : "getAllInteractions",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "When interactions are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InteractionsApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      }
    },
    "/api/v1/interactions/{id}" : {
      "get" : {
        "tags" : [ "Interactions" ],
        "summary" : "Get interaction",
        "operationId" : "getInteraction",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When the interaction details are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InteractionApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the interaction does not exist",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      },
      "patch" : {
        "tags" : [ "Interactions" ],
        "summary" : "Update a interaction",
        "operationId" : "updateInteraction",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "The interaction update request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/InteractionRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When a interaction details are updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InteractionApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the interaction does not exist",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Interactions" ],
        "summary" : "Delete a interaction",
        "operationId" : "deleteInteraction",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When the interaction is deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the interaction does not exist",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/kyc" : {
      "post" : {
        "tags" : [ "KYC" ],
        "summary" : "Retry customer KYC",
        "operationId" : "retryKyc",
        "parameters" : [ ],
        "requestBody" : {
          "description" : "Retry KYC request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/RetryKycRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When KYC has been retried successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "get" : {
        "tags" : [ "KYC" ],
        "summary" : "Get KYC requests",
        "operationId" : "getKycRequests",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "When the KYC requests are retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/KycApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/limit/{userId}" : {
      "get" : {
        "tags" : [ "Score" ],
        "summary" : "Get limit",
        "operationId" : "getLimit",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "When limit is fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LimitApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "When the scoring is still underway or the customer has not shared their statement",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LimitInProgressApiResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/loans" : {
      "get" : {
        "tags" : [ "Loans" ],
        "summary" : "Get Loans",
        "operationId" : "getLoans",
        "parameters" : [ {
          "name" : "from",
          "in" : "query",
          "description" : "From which date",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "to",
          "in" : "query",
          "description" : "To which date",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When loans are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LoansApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/messages" : {
      "get" : {
        "tags" : [ "Messages" ],
        "summary" : "Get messages",
        "operationId" : "getTextMessages",
        "parameters" : [ {
          "name" : "from",
          "in" : "query",
          "description" : "From which date",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "to",
          "in" : "query",
          "description" : "To which date",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Getting messages successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MessagesApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/notifications/{userId}" : {
      "post" : {
        "tags" : [ "Notifications" ],
        "summary" : "Create a notification",
        "operationId" : "addNotification",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "The create notification request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/NotificationsRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When create notification request is successful",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "get" : {
        "tags" : [ "Notifications" ],
        "summary" : "Get notifications",
        "operationId" : "getNotifications",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "from",
          "in" : "query",
          "description" : "From which date",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "to",
          "in" : "query",
          "description" : "To which date",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Getting notifications successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationsApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/orders" : {
      "post" : {
        "tags" : [ "Orders" ],
        "summary" : "Make order",
        "operationId" : "makeOrder",
        "parameters" : [ ],
        "requestBody" : {
          "description" : "The order device(s) request",
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/OrderRequest"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When the order is made successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OrderApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "get" : {
        "tags" : [ "Orders" ],
        "summary" : "Get orders",
        "operationId" : "getOrders",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "When orders are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OrdersApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/orders/{id}" : {
      "get" : {
        "tags" : [ "Orders" ],
        "summary" : "Get order",
        "operationId" : "getOrder",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When the order details are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OrderApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the order does not exist",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      },
      "patch" : {
        "tags" : [ "Orders" ],
        "summary" : "Update an order",
        "operationId" : "updateOrder",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "The order update request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OrderUpdateRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When a order details are updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OrderApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the order does not exist",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/orders/{id}/cancel" : {
      "patch" : {
        "tags" : [ "Orders" ],
        "summary" : "Cancel a order",
        "operationId" : "cancelOrder",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When the order is cancelled successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OrderApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the order does not exist",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/password/forgot" : {
      "post" : {
        "tags" : [ "Password" ],
        "summary" : "Forgot password",
        "operationId" : "forgotPassword",
        "parameters" : [ ],
        "requestBody" : {
          "description" : "The password request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ForgotPasswordRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When a password is reset successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserIdApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      }
    },
    "/api/v1/password/{userId}/change" : {
      "post" : {
        "tags" : [ "Password" ],
        "summary" : "Change password",
        "operationId" : "changePassword",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "The change password request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ChangePasswordRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When password change request is done successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/password/{userId}/reset" : {
      "post" : {
        "tags" : [ "Password" ],
        "summary" : "Reset password",
        "operationId" : "resetPassword",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "The password reset request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ResetPasswordRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When password reset request is done successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      }
    },
    "/api/v1/payments" : {
      "post" : {
        "tags" : [ "Payments" ],
        "summary" : "Make payment",
        "operationId" : "makePayment",
        "parameters" : [ {
          "name" : "userId",
          "in" : "query",
          "description" : "For which user",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "The make payment request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/RepayRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When the payment is initiated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "get" : {
        "tags" : [ "Payments" ],
        "summary" : "Get payments",
        "operationId" : "getPayments",
        "parameters" : [ {
          "name" : "from",
          "in" : "query",
          "description" : "From which date",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "to",
          "in" : "query",
          "description" : "To which date",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of records to fetch",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start at",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When payments are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentsApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/payments/{id}/status" : {
      "get" : {
        "tags" : [ "Payments" ],
        "summary" : "Get payment status",
        "operationId" : "getPaymentStatus",
        "parameters" : [ {
          "name" : "from",
          "in" : "query",
          "description" : "From which date",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "to",
          "in" : "query",
          "description" : "To which date",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When loans are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LoansApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/reports" : {
      "get" : {
        "tags" : [ "Reports" ],
        "summary" : "Get reports",
        "operationId" : "getReports",
        "parameters" : [ {
          "name" : "from",
          "in" : "query",
          "description" : "From which date",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "to",
          "in" : "query",
          "description" : "To which date",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When reports are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ReportsApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/statements" : {
      "get" : {
        "tags" : [ "Statements" ],
        "summary" : "Get statements",
        "operationId" : "getStatements",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "When the statements are retrieved successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/StatementsApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/statements/key" : {
      "post" : {
        "tags" : [ "Statements" ],
        "summary" : "Share statement key",
        "operationId" : "statementKey",
        "parameters" : [ ],
        "requestBody" : {
          "description" : "Share statement key request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/StatementKeyRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When the statement key has been shared successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/users" : {
      "post" : {
        "tags" : [ "Users" ],
        "summary" : "Register a user",
        "operationId" : "registerUser",
        "parameters" : [ ],
        "requestBody" : {
          "description" : "The registration request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/RegistrationRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When a user is registered successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the phone number already exists",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      },
      "get" : {
        "tags" : [ "Users" ],
        "summary" : "Get users",
        "operationId" : "getAllUsers",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "When users are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UsersApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/users/login" : {
      "post" : {
        "tags" : [ "Users" ],
        "summary" : "Login a user",
        "operationId" : "loginUser",
        "parameters" : [ ],
        "requestBody" : {
          "description" : "The login request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LoginRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When a user is logged in successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the login credentials are incorrect",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      }
    },
    "/api/v1/users/{id}" : {
      "get" : {
        "tags" : [ "Users" ],
        "summary" : "Get user",
        "operationId" : "getUser",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When the user details are fetched successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the user does not exist",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      },
      "patch" : {
        "tags" : [ "Users" ],
        "summary" : "Update a user",
        "operationId" : "updateUser",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "The user update request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateUserRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When a user details are updated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the user does not exist",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "Users" ],
        "summary" : "Delete a user",
        "operationId" : "deleteUser",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When the user is deleted successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the user does not exist",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/users/{id}/activate" : {
      "put" : {
        "tags" : [ "Users" ],
        "summary" : "Activate a user",
        "operationId" : "activateUser",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When the user is activated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the user does not exist",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/users/{id}/deactivate" : {
      "put" : {
        "tags" : [ "Users" ],
        "summary" : "Deactivate a user",
        "operationId" : "deactivateUser",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When the user is deactivated successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OkResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the user does not exist",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v1/users/{id}/verify" : {
      "post" : {
        "tags" : [ "Users" ],
        "summary" : "Verify a user",
        "operationId" : "verifyUser",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "The verification request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/VerificationRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When a user is verified successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if the request is not valid or the confirmation code is incorrect",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      }
    },
    "/api/v1/users/{id}/verify/resend" : {
      "post" : {
        "tags" : [ "Users" ],
        "summary" : "Resend a verification code",
        "operationId" : "resendVerificationCode",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : false,
          "deprecated" : false,
          "allowEmptyValue" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "When the verification code is resent successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserApiResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Returns 400 if user was not found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        } ]
      }
    },
    "/api/v2/orders" : {
      "post" : {
        "tags" : [ "Orders" ],
        "summary" : "Make order",
        "operationId" : "makeOrderV2",
        "parameters" : [ ],
        "requestBody" : {
          "description" : "The order device(s) request",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OrderRequestV2"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "When the order is made successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OrderApiResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Returns 401 if the right authentication headers were not provided",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UnAuthorizedResponse"
                }
              }
            }
          }
        },
        "deprecated" : false,
        "security" : [ {
          "apiKey" : [ ]
        }, {
          "bearerAuth" : [ ]
        } ]
      }
    }
  },
  "components" : {
    "schemas" : {
      "AgentApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/AgentResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "AgentRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "name" : {
            "type" : "string",
            "nullable" : true
          },
          "phoneNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "email" : {
            "type" : "string",
            "nullable" : true
          },
          "idNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "businessId" : {
            "type" : "string",
            "nullable" : true
          },
          "relationManagerId" : {
            "type" : "string",
            "nullable" : true
          },
          "location" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "AgentResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "phoneNumber" : {
            "type" : "string"
          },
          "email" : {
            "type" : "string",
            "nullable" : true
          },
          "idNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "location" : {
            "type" : "string",
            "nullable" : true
          },
          "businessId" : {
            "type" : "string",
            "nullable" : true
          },
          "businessName" : {
            "type" : "string",
            "nullable" : true
          },
          "relationManagerId" : {
            "type" : "string",
            "nullable" : true
          },
          "relationManagerName" : {
            "type" : "string",
            "nullable" : true
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime"
          },
          "updatedAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          }
        },
        "required" : [ "id", "name", "phoneNumber", "createdAt" ]
      },
      "AgentsApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/AgentResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "AuditLogsApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AuditLogsResponse"
            }
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "AuditLogsResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "module" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime"
          },
          "userId" : {
            "type" : "string"
          },
          "userName" : {
            "type" : "string"
          },
          "phoneNumber" : {
            "type" : "string"
          }
        },
        "required" : [ "id", "module", "description", "createdAt", "userId", "userName", "phoneNumber" ]
      },
      "BadRequestResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          }
        },
        "required" : [ "status", "message" ]
      },
      "BrandApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/BrandResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "BrandRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "name" : {
            "type" : "string",
            "nullable" : true
          },
          "logoUrl" : {
            "type" : "string",
            "nullable" : true
          },
          "promoTitle" : {
            "type" : "string",
            "nullable" : true
          },
          "promoUrl" : {
            "type" : "string",
            "nullable" : true
          },
          "promoDescription" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "BrandsApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/BrandResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "BusinessApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/BusinessResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "BusinessRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "name" : {
            "type" : "string",
            "nullable" : true
          },
          "location" : {
            "type" : "string",
            "nullable" : true
          },
          "contract" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "BusinessResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "location" : {
            "type" : "string",
            "nullable" : true
          },
          "contract" : {
            "type" : "string",
            "nullable" : true
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime"
          },
          "updatedAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          }
        },
        "required" : [ "id", "name", "createdAt" ]
      },
      "BusinessesApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/BusinessResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "ChangePasswordRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "currentPassword" : {
            "type" : "string",
            "nullable" : true
          },
          "newPassword" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "ChartReportResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "today" : {
            "type" : "string"
          },
          "week" : {
            "type" : "string"
          },
          "month" : {
            "type" : "string"
          },
          "year" : {
            "type" : "string"
          },
          "all" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/DayReport"
            },
            "nullable" : true
          }
        },
        "required" : [ "today", "week", "month", "year" ]
      },
      "ConfigRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "configKey" : {
            "type" : "string",
            "nullable" : true
          },
          "configValue" : {
            "type" : "string",
            "nullable" : true
          },
          "description" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "ConfigResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "configKey" : {
            "type" : "string"
          },
          "configValue" : {
            "type" : "string",
            "nullable" : true
          },
          "description" : {
            "type" : "string",
            "nullable" : true
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "updatedAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          }
        },
        "required" : [ "configKey" ]
      },
      "ConfigsApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ConfigResponse"
            }
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "CustomerContactRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "phoneNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "name" : {
            "type" : "string",
            "nullable" : true
          },
          "email" : {
            "type" : "string",
            "nullable" : true
          },
          "message" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "DayReport" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "date" : {
            "$ref" : "#/components/schemas/DateTime"
          },
          "amount" : {
            "type" : "string"
          },
          "count" : {
            "type" : "integer",
            "format" : "int64"
          }
        },
        "required" : [ "date", "amount", "count" ]
      },
      "DeviceApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/DeviceResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "DeviceRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "name" : {
            "type" : "string",
            "nullable" : true
          },
          "description" : {
            "type" : "string",
            "nullable" : true
          },
          "dealerPrice" : {
            "type" : "number",
            "format" : "double",
            "nullable" : true
          },
          "quantityAvailable" : {
            "type" : "integer",
            "format" : "int32",
            "nullable" : true
          },
          "takeOnCredit" : {
            "type" : "boolean",
            "nullable" : true
          },
          "hidden" : {
            "type" : "boolean",
            "nullable" : true
          },
          "featured" : {
            "type" : "boolean",
            "nullable" : true
          },
          "latest" : {
            "type" : "boolean",
            "nullable" : true
          },
          "images" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "nullable" : true
          },
          "attributes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/DeviceAttribute"
            },
            "nullable" : true
          },
          "brand" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "DevicesApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/DeviceResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "ForgotPasswordRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "email" : {
            "type" : "string",
            "nullable" : true
          },
          "phoneNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "countryCode" : {
            "type" : "string",
            "nullable" : true
          },
          "role" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "InteractionApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/InteractionResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "InteractionComment" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "comment" : {
            "type" : "string",
            "nullable" : true
          },
          "operatorName" : {
            "type" : "string",
            "nullable" : true
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "updatedAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          }
        },
        "required" : [ "id" ]
      },
      "InteractionRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "phoneNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "conversation" : {
            "type" : "string",
            "nullable" : true
          },
          "pledgedDate" : {
            "type" : "string",
            "nullable" : true
          },
          "pledgedSchedule" : {
            "type" : "string",
            "nullable" : true
          },
          "pledgeAmount" : {
            "type" : "number",
            "format" : "double",
            "nullable" : true
          },
          "tags" : {
            "type" : "string",
            "nullable" : true
          },
          "comment" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "InteractionResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "conversation" : {
            "type" : "string",
            "nullable" : true
          },
          "tags" : {
            "type" : "string",
            "nullable" : true
          },
          "pledgedDate" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "pledgedSchedule" : {
            "type" : "string",
            "nullable" : true
          },
          "pledgeAmount" : {
            "type" : "number",
            "format" : "double",
            "nullable" : true
          },
          "customerId" : {
            "type" : "string",
            "nullable" : true
          },
          "customerName" : {
            "type" : "string",
            "nullable" : true
          },
          "customerPhone" : {
            "type" : "string",
            "nullable" : true
          },
          "operatorId" : {
            "type" : "string",
            "nullable" : true
          },
          "operatorName" : {
            "type" : "string",
            "nullable" : true
          },
          "operatorPhone" : {
            "type" : "string",
            "nullable" : true
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "updatedAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "comments" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/InteractionComment"
            }
          }
        },
        "required" : [ "id", "comments" ]
      },
      "InteractionsApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/InteractionResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "KycApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/KycResponse"
            }
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "KycResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "userId" : {
            "type" : "string"
          },
          "kycId" : {
            "type" : "string"
          },
          "userName" : {
            "type" : "string"
          },
          "phoneNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "nationalId" : {
            "type" : "string",
            "nullable" : true
          },
          "dateOfBirth" : {
            "type" : "string",
            "nullable" : true
          },
          "crbResponseCode" : {
            "type" : "integer",
            "format" : "int32",
            "nullable" : true
          },
          "httpResponseCode" : {
            "type" : "integer",
            "format" : "int32",
            "nullable" : true
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "failureMessage" : {
            "type" : "string",
            "nullable" : true
          }
        },
        "required" : [ "userId", "kycId", "userName" ]
      },
      "LimitApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LimitResponse"
            }
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "LimitInProgressApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          }
        },
        "required" : [ "status", "message" ]
      },
      "LimitResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "userId" : {
            "type" : "string"
          },
          "score" : {
            "type" : "number",
            "format" : "double"
          },
          "creditLimit" : {
            "type" : "number",
            "format" : "double"
          }
        },
        "required" : [ "userId", "score", "creditLimit" ]
      },
      "LoanDeviceResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string",
            "nullable" : true
          },
          "description" : {
            "type" : "string",
            "nullable" : true
          },
          "price" : {
            "type" : "number",
            "format" : "double",
            "nullable" : true
          }
        },
        "required" : [ "id" ]
      },
      "LoanResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "userId" : {
            "type" : "string"
          },
          "userName" : {
            "type" : "string"
          },
          "phoneNumber" : {
            "type" : "string"
          },
          "principalAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "totalAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "interest" : {
            "type" : "number",
            "format" : "double"
          },
          "paidAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "dueAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "duration" : {
            "type" : "integer",
            "format" : "int32"
          },
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime"
          },
          "dueAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "device" : {
            "$ref" : "#/components/schemas/LoanDeviceResponse"
          },
          "paymentStatus" : {
            "$ref" : "#/components/schemas/PaymentStatus"
          }
        },
        "required" : [ "id", "userId", "userName", "phoneNumber", "principalAmount", "totalAmount", "interest", "paidAmount", "dueAmount", "duration", "status", "createdAt", "device", "paymentStatus" ]
      },
      "LoansApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LoanResponse"
            }
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "LoansSummaryStats" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "activeCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "activeAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "paidCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "paidAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "lateCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "lateAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "defaultedCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "defaultedAmount" : {
            "type" : "number",
            "format" : "double"
          }
        },
        "required" : [ "activeCount", "activeAmount", "paidCount", "paidAmount", "lateCount", "lateAmount", "defaultedCount", "defaultedAmount" ]
      },
      "LoginRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "username" : {
            "type" : "string",
            "nullable" : true
          },
          "password" : {
            "type" : "string",
            "nullable" : true
          },
          "countryCode" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "MessagesApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TextMessageResponse"
            }
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "NotificationResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "message" : {
            "type" : "string",
            "nullable" : true
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "updatedAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          }
        },
        "required" : [ "id" ]
      },
      "NotificationsApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NotificationResponse"
            }
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "NotificationsRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "message" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "OkResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          }
        },
        "required" : [ "status", "message" ]
      },
      "OrderApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/OrderResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "OrderDeviceResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string",
            "nullable" : true
          },
          "description" : {
            "type" : "string",
            "nullable" : true
          },
          "price" : {
            "type" : "number",
            "format" : "double",
            "nullable" : true
          },
          "images" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "nullable" : true
          },
          "onCredit" : {
            "type" : "boolean"
          },
          "paymentStatus" : {
            "$ref" : "#/components/schemas/PaymentStatus",
            "nullable" : true
          },
          "buyingPrice" : {
            "type" : "number",
            "format" : "double",
            "nullable" : true
          }
        },
        "required" : [ "id", "onCredit" ]
      },
      "OrderDeviceUpdateRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string",
            "nullable" : true
          },
          "buyingPrice" : {
            "type" : "number",
            "format" : "double",
            "nullable" : true
          }
        }
      },
      "OrderRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "deviceId" : {
            "type" : "string"
          },
          "onCredit" : {
            "type" : "boolean"
          },
          "paymentPlanId" : {
            "type" : "string",
            "nullable" : true,
            "description" : "The payment plan selected - required if the device is being taken on credit"
          },
          "instalmentId" : {
            "type" : "string",
            "nullable" : true,
            "description" : "The instalment option selected - required if the device is being taken on credit"
          },
          "shippingInfo" : {
            "$ref" : "#/components/schemas/ShippingInfo",
            "nullable" : true
          },
          "agentId" : {
            "type" : "string",
            "nullable" : true
          },
          "agentPhoneNumber" : {
            "type" : "string",
            "nullable" : true
          }
        },
        "required" : [ "deviceId", "onCredit" ]
      },
      "OrderRequestDevice" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "deviceId" : {
            "type" : "string"
          },
          "onCredit" : {
            "type" : "boolean"
          },
          "paymentPlanId" : {
            "type" : "string",
            "nullable" : true,
            "description" : "The payment plan selected - required if the device is being taken on credit"
          },
          "instalmentId" : {
            "type" : "string",
            "nullable" : true,
            "description" : "The instalment option selected - required if the device is being taken on credit"
          }
        },
        "required" : [ "deviceId", "onCredit" ]
      },
      "OrderRequestV2" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "devices" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrderRequestDevice"
            },
            "nullable" : true
          },
          "shippingInfo" : {
            "$ref" : "#/components/schemas/ShippingInfo",
            "nullable" : true
          },
          "agentId" : {
            "type" : "string",
            "nullable" : true
          },
          "agentPhoneNumber" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "OrderResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "userId" : {
            "type" : "string"
          },
          "userName" : {
            "type" : "string"
          },
          "phoneNumber" : {
            "type" : "string"
          },
          "totalAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "paidAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "dueAmount" : {
            "type" : "number",
            "format" : "double"
          },
          "orderNumber" : {
            "type" : "string"
          },
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "shippingStatus" : {
            "type" : "string"
          },
          "orderType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "devices" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrderDeviceResponse"
            },
            "nullable" : true
          },
          "shippingInfo" : {
            "$ref" : "#/components/schemas/ShippingInfo",
            "nullable" : true
          },
          "deliveredAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "cancelledAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          }
        },
        "required" : [ "id", "userId", "userName", "phoneNumber", "totalAmount", "paidAmount", "dueAmount", "orderNumber", "status", "shippingStatus", "orderType" ]
      },
      "OrderUpdateRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "shippingInfo" : {
            "$ref" : "#/components/schemas/ShippingInfo",
            "nullable" : true
          },
          "orderDevice" : {
            "$ref" : "#/components/schemas/OrderDeviceUpdateRequest",
            "nullable" : true
          }
        }
      },
      "OrdersApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/OrderResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "PaymentPlanApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PaymentPlanResponse"
            }
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "PaymentPlanResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "duration" : {
            "type" : "integer",
            "format" : "int32"
          },
          "deposit" : {
            "type" : "integer",
            "format" : "int32"
          },
          "totalPrice" : {
            "type" : "integer",
            "format" : "int32"
          },
          "balance" : {
            "type" : "integer",
            "format" : "int32"
          },
          "instalments" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PaymentPlanInstalment"
            }
          }
        },
        "required" : [ "id", "duration", "deposit", "totalPrice", "balance", "instalments" ]
      },
      "PaymentResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "transactionId" : {
            "type" : "string"
          },
          "amount" : {
            "type" : "string"
          },
          "accountNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "paymentNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "payerId" : {
            "type" : "string",
            "nullable" : true
          },
          "payerPhone" : {
            "type" : "string",
            "nullable" : true
          },
          "payerName" : {
            "type" : "string",
            "nullable" : true
          },
          "channel" : {
            "type" : "integer",
            "format" : "int32",
            "nullable" : true
          },
          "actionedAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "paymentDate" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "updatedAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          }
        },
        "required" : [ "id", "transactionId", "amount" ]
      },
      "PaymentStatus" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "totalDeposit" : {
            "type" : "number",
            "format" : "double"
          },
          "paidDeposit" : {
            "type" : "number",
            "format" : "double"
          },
          "instalmentPlan" : {
            "$ref" : "#/components/schemas/PaymentPlanInstalment",
            "nullable" : true
          },
          "instalmentsPaid" : {
            "type" : "number",
            "format" : "double"
          },
          "overallBalance" : {
            "type" : "number",
            "format" : "double"
          },
          "nextDueDate" : {
            "type" : "string"
          },
          "nextDueAmount" : {
            "type" : "number",
            "format" : "double"
          }
        },
        "required" : [ "status", "totalDeposit", "paidDeposit", "instalmentsPaid", "overallBalance", "nextDueDate", "nextDueAmount" ]
      },
      "PaymentsApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PaymentResponse"
            }
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "RegistrationRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "name" : {
            "type" : "string",
            "nullable" : true
          },
          "phoneNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "idNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "email" : {
            "type" : "string",
            "nullable" : true
          },
          "password" : {
            "type" : "string",
            "nullable" : true
          },
          "referrerCode" : {
            "type" : "string",
            "nullable" : true
          },
          "gender" : {
            "type" : "string",
            "nullable" : true
          },
          "countryCode" : {
            "type" : "string",
            "nullable" : true
          },
          "shippingInfo" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            },
            "nullable" : true
          },
          "dateOfBirth" : {
            "type" : "string",
            "nullable" : true,
            "description" : "The date of birth in the format yyyy-MM-dd"
          }
        }
      },
      "RepayRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "amount" : {
            "type" : "integer",
            "format" : "int32"
          }
        },
        "required" : [ "amount" ]
      },
      "ReportsApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/ReportsResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "ReportsResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "devicesInStock" : {
            "type" : "integer",
            "format" : "int64"
          },
          "registeredUsers" : {
            "type" : "integer",
            "format" : "int64"
          },
          "cashOrders" : {
            "type" : "number",
            "format" : "double"
          },
          "creditOrders" : {
            "type" : "number",
            "format" : "double"
          },
          "deliveriesMade" : {
            "type" : "integer",
            "format" : "int64"
          },
          "paymentsMade" : {
            "type" : "number",
            "format" : "double"
          },
          "payments" : {
            "$ref" : "#/components/schemas/ChartReportResponse"
          },
          "loans" : {
            "$ref" : "#/components/schemas/ChartReportResponse"
          },
          "loansSummary" : {
            "$ref" : "#/components/schemas/LoansSummaryStats"
          }
        },
        "required" : [ "devicesInStock", "registeredUsers", "cashOrders", "creditOrders", "deliveriesMade", "paymentsMade", "payments", "loans", "loansSummary" ]
      },
      "ResetPasswordRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "resetCode" : {
            "type" : "string",
            "nullable" : true
          },
          "newPassword" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "RetryKycRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "userId" : {
            "type" : "string",
            "nullable" : true,
            "description" : "The user id"
          }
        }
      },
      "StatementKeyRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "key" : {
            "type" : "string",
            "description" : "The statement key"
          }
        },
        "required" : [ "key" ]
      },
      "StatementResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "userId" : {
            "type" : "string"
          },
          "userName" : {
            "type" : "string"
          },
          "phoneNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "docId" : {
            "type" : "string"
          },
          "periodStart" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "periodEnd" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "updatedAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "failureMessage" : {
            "type" : "string",
            "nullable" : true
          }
        },
        "required" : [ "userId", "userName", "docId", "status" ]
      },
      "StatementsApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/StatementResponse"
            }
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "TextMessageResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "recipientPhone" : {
            "type" : "string",
            "nullable" : true
          },
          "message" : {
            "type" : "string",
            "nullable" : true
          },
          "messageId" : {
            "type" : "string",
            "nullable" : true
          },
          "cost" : {
            "type" : "number",
            "format" : "double"
          },
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "failureReason" : {
            "type" : "string",
            "nullable" : true
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          }
        },
        "required" : [ "id", "cost", "status" ]
      },
      "UnAuthorizedResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          }
        },
        "required" : [ "status", "message" ]
      },
      "UpdateUserRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "name" : {
            "type" : "string",
            "nullable" : true
          },
          "email" : {
            "type" : "string",
            "nullable" : true
          },
          "idNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "idNumberPhoto" : {
            "type" : "string",
            "nullable" : true
          },
          "gender" : {
            "type" : "string",
            "nullable" : true
          },
          "role" : {
            "type" : "string",
            "nullable" : true
          },
          "shippingInfo" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            },
            "nullable" : true
          },
          "secondaryNumber" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "UserApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/UserResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "UserIdApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "type" : "integer",
            "format" : "int32"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "UserResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "email" : {
            "type" : "string",
            "nullable" : true
          },
          "phoneNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "secondaryNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "phoneVerified" : {
            "type" : "boolean"
          },
          "role" : {
            "type" : "string"
          },
          "idNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "gender" : {
            "type" : "string",
            "nullable" : true
          },
          "referralCode" : {
            "type" : "string",
            "nullable" : true
          },
          "dateOfBirth" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "countryCode" : {
            "type" : "string",
            "nullable" : true
          },
          "deactivatedAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "updatedAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "idCheckStatus" : {
            "type" : "integer",
            "format" : "int32"
          },
          "token" : {
            "type" : "string",
            "nullable" : true
          }
        },
        "required" : [ "id", "name", "phoneVerified", "role", "idCheckStatus" ]
      },
      "UsersApiResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "status" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "result" : {
            "$ref" : "#/components/schemas/UserResponse"
          }
        },
        "required" : [ "status", "message", "result" ]
      },
      "VerificationRequest" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "confirmationCode" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "DeviceAttribute" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "empty" : {
            "type" : "boolean"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "" : {
            "type" : "string"
          },
          "values" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "orDefault" : {
            "type" : "string"
          },
          "keys" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "entries" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Entry"
            }
          }
        },
        "required" : [ "empty", "size" ]
      },
      "PaymentPlanInstalment" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "amount" : {
            "type" : "number",
            "format" : "double"
          },
          "intervalInDays" : {
            "type" : "integer",
            "format" : "int32"
          }
        },
        "required" : [ "id", "description", "number", "amount", "intervalInDays" ]
      },
      "ShippingInfo" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "county" : {
            "type" : "string",
            "nullable" : true
          },
          "town" : {
            "type" : "string",
            "nullable" : true
          },
          "estate" : {
            "type" : "string",
            "nullable" : true
          },
          "houseNumber" : {
            "type" : "string",
            "nullable" : true
          },
          "postalCode" : {
            "type" : "string",
            "nullable" : true
          }
        }
      },
      "BrandResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime"
          },
          "updatedAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "logoUrl" : {
            "type" : "string",
            "nullable" : true
          },
          "promoTitle" : {
            "type" : "string",
            "nullable" : true
          },
          "promoUrl" : {
            "type" : "string",
            "nullable" : true
          },
          "promoDescription" : {
            "type" : "string",
            "nullable" : true
          }
        },
        "required" : [ "id", "name", "createdAt" ]
      },
      "DeviceResponse" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string",
            "nullable" : true
          },
          "description" : {
            "type" : "string",
            "nullable" : true
          },
          "price" : {
            "type" : "number",
            "format" : "double",
            "nullable" : true
          },
          "dealerPrice" : {
            "type" : "number",
            "format" : "double",
            "nullable" : true
          },
          "deposit" : {
            "type" : "number",
            "format" : "double",
            "nullable" : true
          },
          "quantityAvailable" : {
            "type" : "integer",
            "format" : "int32",
            "nullable" : true
          },
          "takeOnCredit" : {
            "type" : "boolean",
            "nullable" : true
          },
          "hidden" : {
            "type" : "boolean",
            "nullable" : true
          },
          "featured" : {
            "type" : "boolean",
            "nullable" : true
          },
          "latest" : {
            "type" : "boolean",
            "nullable" : true
          },
          "images" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "nullable" : true
          },
          "attributes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/DeviceAttribute"
            },
            "nullable" : true
          },
          "deactivatedAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "createdAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "updatedAt" : {
            "$ref" : "#/components/schemas/DateTime",
            "nullable" : true
          },
          "rating" : {
            "type" : "number",
            "format" : "double",
            "nullable" : true
          },
          "brand" : {
            "type" : "string",
            "nullable" : true
          }
        },
        "required" : [ "id" ]
      },
      "Entry" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "key" : {
            "type" : "object"
          },
          "value" : {
            "type" : "object"
          }
        }
      },
      "Chronology" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "zone" : {
            "$ref" : "#/components/schemas/DateTimeZone"
          },
          "dateTimeMillis" : {
            "type" : "integer",
            "format" : "int64"
          },
          "" : {
            "type" : "array",
            "items" : {
              "type" : "integer",
              "format" : "int32"
            }
          }
        },
        "required" : [ "dateTimeMillis", "dateTimeMillis", "dateTimeMillis" ]
      },
      "DateTime" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "zone" : {
            "$ref" : "#/components/schemas/DateTimeZone"
          },
          "supported" : {
            "type" : "boolean"
          },
          "" : {
            "type" : "integer",
            "format" : "int32"
          },
          "after" : {
            "type" : "boolean"
          },
          "afterNow" : {
            "type" : "boolean"
          },
          "before" : {
            "type" : "boolean"
          },
          "beforeNow" : {
            "type" : "boolean"
          },
          "equal" : {
            "type" : "boolean"
          },
          "equalNow" : {
            "type" : "boolean"
          },
          "era" : {
            "type" : "integer",
            "format" : "int32"
          },
          "centuryOfEra" : {
            "type" : "integer",
            "format" : "int32"
          },
          "yearOfEra" : {
            "type" : "integer",
            "format" : "int32"
          },
          "yearOfCentury" : {
            "type" : "integer",
            "format" : "int32"
          },
          "year" : {
            "type" : "integer",
            "format" : "int32"
          },
          "weekyear" : {
            "type" : "integer",
            "format" : "int32"
          },
          "monthOfYear" : {
            "type" : "integer",
            "format" : "int32"
          },
          "weekOfWeekyear" : {
            "type" : "integer",
            "format" : "int32"
          },
          "dayOfYear" : {
            "type" : "integer",
            "format" : "int32"
          },
          "dayOfMonth" : {
            "type" : "integer",
            "format" : "int32"
          },
          "dayOfWeek" : {
            "type" : "integer",
            "format" : "int32"
          },
          "hourOfDay" : {
            "type" : "integer",
            "format" : "int32"
          },
          "minuteOfDay" : {
            "type" : "integer",
            "format" : "int32"
          },
          "minuteOfHour" : {
            "type" : "integer",
            "format" : "int32"
          },
          "secondOfDay" : {
            "type" : "integer",
            "format" : "int32"
          },
          "secondOfMinute" : {
            "type" : "integer",
            "format" : "int32"
          },
          "millisOfDay" : {
            "type" : "integer",
            "format" : "int32"
          },
          "millisOfSecond" : {
            "type" : "integer",
            "format" : "int32"
          },
          "millis" : {
            "type" : "integer",
            "format" : "int64"
          },
          "chronology" : {
            "$ref" : "#/components/schemas/Chronology"
          }
        },
        "required" : [ "supported", "", "after", "afterNow", "after", "before", "beforeNow", "before", "equal", "equalNow", "equal", "", "era", "centuryOfEra", "yearOfEra", "yearOfCentury", "year", "weekyear", "monthOfYear", "weekOfWeekyear", "dayOfYear", "dayOfMonth", "dayOfWeek", "hourOfDay", "minuteOfDay", "minuteOfHour", "secondOfDay", "secondOfMinute", "millisOfDay", "millisOfSecond", "millis" ]
      },
      "DateTimeZone" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "iD" : {
            "type" : "string"
          },
          "nameKey" : {
            "type" : "string"
          },
          "shortName" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "standardOffset" : {
            "type" : "boolean"
          },
          "offsetFromLocal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "millisKeepLocal" : {
            "type" : "integer",
            "format" : "int64"
          },
          "localDateTimeGap" : {
            "type" : "boolean"
          },
          "fixed" : {
            "type" : "boolean"
          }
        },
        "required" : [ "offset", "offset", "standardOffset", "standardOffset", "offsetFromLocal", "millisKeepLocal", "localDateTimeGap", "fixed" ]
      }
    },
    "securitySchemes" : {
      "bearerAuth" : {
        "scheme" : "bearer",
        "type" : "http"
      },
      "apiKey" : {
        "in" : "header",
        "name" : "X-API-KEY",
        "type" : "apiKey"
      }
    }
  },
  "servers" : [ ],
  "security" : [ ]
}