{ "openapi": "3.1.0", "info": { "title": "InvoiceShelf API", "version": "3.0.0-alpha.1", "description": "REST API for InvoiceShelf \u2014 open-source invoicing & expense tracking. Authenticate with a Sanctum personal access token (Authorization: Bearer ). Company-scoped endpoints additionally require a `company` header carrying the company ID." }, "servers": [ { "url": "https://your-instance.example.com/api/v1", "description": "Your InvoiceShelf instance" } ], "security": [ { "http": [] } ], "paths": { "/abilities": { "get": { "operationId": "role.abilities", "summary": "Handle the incoming request", "tags": [ "Abilities" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "abilities": { "type": "string" } }, "required": [ "abilities" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/{company}/customer/estimate/{id}/status": { "post": { "operationId": "estimate.acceptEstimate", "summary": "Handle the incoming request", "tags": [ "AcceptEstimate" ], "parameters": [ { "name": "company", "in": "path", "required": true, "description": "The company slug", "schema": { "type": [ "string", "null" ] } }, { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/super-admin/dashboard": { "get": { "operationId": "adminDashboard.index", "tags": [ "AdminDashboard" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "app_version": { "anyOf": [ { "type": "null" }, { "type": "array", "items": {} }, { "type": "string" }, { "type": "object" } ] }, "php_version": { "anyOf": [ { "type": "string" }, { "type": "object" } ] }, "database": { "type": "object", "properties": { "driver": { "type": "string" }, "version": { "type": [ "string", "null" ] } }, "required": [ "driver", "version" ] }, "counts": { "type": "object", "properties": { "companies": { "type": "integer", "minimum": 0 }, "users": { "type": "integer", "minimum": 0 } }, "required": [ "companies", "users" ] } }, "required": [ "app_version", "php_version", "database", "counts" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/installation/ai/config": { "get": { "operationId": "aiConfiguration.show", "summary": "Return the current AI config defaults plus the driver list for the wizard form", "tags": [ "AiConfiguration" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "config": { "type": "array", "items": {} }, "drivers": { "type": "array", "items": { "type": "object", "properties": { "value": { "type": "string" }, "label": {}, "website": {}, "default_base_url": {}, "supported_roles": {}, "suggested_models": {}, "config_fields": {} }, "required": [ "value", "label", "website", "default_base_url", "supported_roles", "suggested_models", "config_fields" ] } } }, "required": [ "config", "drivers" ] } } } } } }, "post": { "operationId": "aiConfiguration.save", "summary": "Persist the installer's AI config choice and advance the wizard step", "tags": [ "AiConfiguration" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "ai_enabled": { "type": "string", "enum": [ "YES", "NO" ] }, "ai_driver": { "type": [ "string", "null" ] }, "ai_api_key": { "type": [ "string", "null" ] }, "ai_base_url": { "type": [ "string", "null" ], "format": "uri" }, "ai_chat_enabled": { "type": [ "string", "null" ], "enum": [ "YES", "NO" ] }, "ai_chat_model": { "type": [ "string", "null" ], "maxLength": 200 }, "ai_text_generation_enabled": { "type": [ "string", "null" ], "enum": [ "YES", "NO" ] }, "ai_text_generation_model": { "type": [ "string", "null" ], "maxLength": 200 } }, "required": [ "ai_enabled" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/ai/drivers": { "get": { "operationId": "aiConfiguration.getDrivers", "summary": "Return the AI driver list for the admin UI \u2014 same shape as the exchange rate endpoint", "tags": [ "AiConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "ai_drivers": { "type": "array", "items": { "type": "object", "properties": { "value": { "type": "string" }, "label": {}, "website": {}, "default_base_url": {}, "supported_roles": {}, "suggested_models": {}, "config_fields": {} }, "required": [ "value", "label", "website", "default_base_url", "supported_roles", "suggested_models", "config_fields" ] } } }, "required": [ "ai_drivers" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/ai/config": { "get": { "operationId": "aiConfiguration.getConfig", "summary": "Get the global AI configuration with decrypted API key masked for response", "tags": [ "AiConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": {} } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "aiConfiguration.saveConfig", "description": "If the submitted api_key is the masked placeholder, we retain the stored value \u2014\notherwise the user would have to re-enter the key every time they save the form.", "summary": "Persist the global AI configuration", "tags": [ "AiConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "use_custom_ai_config": { "type": "string" }, "ai_enabled": { "type": [ "string", "null" ], "enum": [ "YES", "NO" ] }, "ai_driver": { "type": [ "string", "null" ], "enum": [ "openrouter" ] }, "ai_api_key": { "type": [ "string", "null" ] }, "ai_base_url": { "type": [ "string", "null" ], "format": "uri" }, "ai_chat_enabled": { "type": [ "string", "null" ], "enum": [ "YES", "NO" ] }, "ai_chat_model": { "type": [ "string", "null" ], "maxLength": 200 }, "ai_text_generation_enabled": { "type": [ "string", "null" ], "enum": [ "YES", "NO" ] }, "ai_text_generation_model": { "type": [ "string", "null" ], "maxLength": 200 } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "string", "const": "ai_variables_save_successfully" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "422": { "$ref": "#/components/responses/ValidationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/ai/test": { "post": { "operationId": "aiConfiguration.testConnection", "summary": "Test the currently configured AI provider by instantiating its driver and calling validateConnection()", "tags": [ "AiConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "ai_driver": { "type": "string" }, "ai_api_key": { "type": [ "string", "null" ] }, "ai_base_url": { "type": [ "string", "null" ], "format": "uri" } }, "required": [ "ai_driver" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "details": { "type": "object", "additionalProperties": {} } }, "required": [ "success", "details" ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/installation/set-domain": { "put": { "operationId": "setup.appDomain", "tags": [ "AppDomain" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainEnvironmentRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, { "anyOf": [ { "type": "object", "properties": { "success": { "type": "string", "const": "domain_variable_save_successfully" } }, "required": [ "success" ] }, { "type": "object", "properties": { "error": { "type": "string", "const": "domain_verification_failed" } }, "required": [ "error" ] } ] } ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/app/version": { "get": { "operationId": "appVersion", "summary": "Handle the incoming request", "tags": [ "AppVersion" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "version": { "anyOf": [ { "type": "null" }, { "type": "array", "items": {} }, { "type": "string" }, { "type": "object" } ] }, "channel": { "type": "string", "const": "stable" } }, "required": [ "version", "channel" ] } } } } } } }, "/auth/login": { "post": { "operationId": "auth.login", "tags": [ "Auth" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "type": { "type": "string", "const": "Bearer" }, "token": { "type": "string" } }, "required": [ "type", "token" ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/auth/logout": { "post": { "operationId": "auth.logout", "tags": [ "Auth" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/auth/check": { "get": { "operationId": "auth.check", "tags": [ "Auth" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "boolean" } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/backups": { "get": { "operationId": "backups.index", "tags": [ "Backups" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "backups": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "error": { "type": "string", "const": "invalid_disk_credentials" }, "error_message": { "type": "string" } }, "required": [ "backups", "error", "error_message" ] }, { "type": "object", "properties": { "backups": { "type": "array", "items": {} } }, "required": [ "backups" ] } ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "backups.store", "tags": [ "Backups" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/backups/{disk}": { "delete": { "operationId": "backups.destroy", "tags": [ "Backups" ], "parameters": [ { "name": "disk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "path", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "422": { "$ref": "#/components/responses/ValidationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/download-backup": { "get": { "operationId": "backups.download", "tags": [ "Backups" ], "parameters": [ { "name": "path", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/zip": { "schema": { "type": "string" } } }, "headers": { "Transfer-Encoding": { "required": true, "schema": { "type": "string", "enum": [ "chunked" ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/bootstrap": { "get": { "operationId": "company.general.bootstrap", "summary": "Handle the incoming request", "tags": [ "Bootstrap" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "current_user": { "$ref": "#/components/schemas/UserResource" }, "current_user_settings": { "type": "array", "items": { "type": "string" } }, "current_user_abilities": { "type": "object" }, "companies": { "type": "array", "items": { "$ref": "#/components/schemas/CompanyResource" } }, "current_company": { "$ref": "#/components/schemas/CompanyResource" }, "current_company_settings": { "type": "array", "items": { "type": "string" } }, "current_company_currency": { "anyOf": [ { "type": "string" }, { "$ref": "#/components/schemas/Currency" }, { "type": "null" } ] }, "config": { "type": "string" }, "global_settings": { "type": "array", "items": { "type": "string" } }, "ai": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "chat_enabled": { "type": "boolean" }, "text_generation_enabled": { "type": "boolean" } }, "required": [ "enabled", "chat_enabled", "text_generation_enabled" ] }, "main_menu": { "type": "array", "items": { "anyOf": [ { "type": "object", "properties": { "title": { "type": "string" }, "link": { "type": "string" }, "icon": { "type": "string" }, "name": { "type": "string" }, "group": { "type": "string" }, "group_label": { "anyOf": [ { "type": "string" }, { "type": "string", "enum": [ "" ] } ] }, "priority": { "anyOf": [ { "type": "string" }, { "type": "integer", "enum": [ 100 ] } ] } }, "required": [ "title", "link", "icon", "name", "group", "group_label", "priority" ] }, { "type": "object", "properties": { "title": { "type": "string" }, "link": { "type": "string" }, "icon": { "type": "string" }, "name": { "type": "string" }, "group": { "anyOf": [ { "type": "string" }, { "type": "string", "enum": [ "modules" ] } ] }, "group_label": { "anyOf": [ { "type": "string" }, { "type": "string", "enum": [ "navigation.modules" ] } ] }, "priority": { "anyOf": [ { "type": "string" }, { "type": "integer", "enum": [ 100 ] } ] } }, "required": [ "title", "link", "icon", "name", "group", "group_label", "priority" ] } ] } }, "setting_menu": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": "string" }, "link": { "type": "string" }, "icon": { "type": "string" }, "name": { "type": "string" }, "group": { "type": "string" }, "group_label": { "anyOf": [ { "type": "string" }, { "type": "string", "enum": [ "" ] } ] }, "priority": { "anyOf": [ { "type": "string" }, { "type": "integer", "enum": [ 100 ] } ] } }, "required": [ "title", "link", "icon", "name", "group", "group_label", "priority" ] } }, "modules": { "type": "array", "items": {} }, "user_menu": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": "string" }, "link": { "type": "string" }, "icon": { "type": "string" }, "priority": { "type": "integer" }, "name": { "type": "string" } }, "required": [ "title", "link", "icon", "name" ] } }, "pending_invitations": { "type": "array", "items": { "$ref": "#/components/schemas/CompanyInvitationResource" } } }, "required": [ "current_user", "current_user_settings", "current_user_abilities", "companies", "current_company", "current_company_settings", "current_company_currency", "config", "global_settings", "ai", "main_menu", "setting_menu", "modules", "user_menu", "pending_invitations" ] }, { "type": "object", "properties": { "current_user": { "$ref": "#/components/schemas/UserResource" }, "current_user_settings": { "type": "array", "items": { "type": "string" } }, "current_user_abilities": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "companies": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "current_company": { "type": "null" }, "current_company_settings": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "current_company_currency": { "anyOf": [ { "$ref": "#/components/schemas/Currency" }, { "type": "null" } ] }, "config": { "type": "string" }, "global_settings": { "type": "array", "items": { "type": "string" } }, "main_menu": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "setting_menu": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "modules": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "pending_invitations": { "type": "array", "items": { "$ref": "#/components/schemas/CompanyInvitationResource" } } }, "required": [ "current_user", "current_user_settings", "current_user_abilities", "companies", "current_company", "current_company_settings", "current_company_currency", "config", "global_settings", "main_menu", "setting_menu", "modules", "pending_invitations" ] }, { "type": "object", "properties": { "current_user": { "$ref": "#/components/schemas/UserResource" }, "current_user_settings": { "type": "array", "items": { "type": "string" } }, "current_user_abilities": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "companies": { "type": "array", "items": { "$ref": "#/components/schemas/CompanyResource" } }, "current_company": { "type": "null" }, "current_company_settings": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "current_company_currency": { "anyOf": [ { "$ref": "#/components/schemas/Currency" }, { "type": "null" } ] }, "config": { "type": "string" }, "global_settings": { "type": "array", "items": { "type": "string" } }, "main_menu": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": "string" }, "link": { "type": "string" }, "icon": { "type": "string" }, "name": { "type": "string" }, "group": { "type": "string" }, "group_label": { "anyOf": [ { "type": "string" }, { "type": "string", "enum": [ "" ] } ] }, "priority": { "anyOf": [ { "type": "string" }, { "type": "integer", "enum": [ 100 ] } ] } }, "required": [ "title", "link", "icon", "name", "group", "group_label", "priority" ] } }, "setting_menu": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "modules": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "admin_mode": { "type": "boolean" }, "pending_invitations": { "type": "array", "items": { "$ref": "#/components/schemas/CompanyInvitationResource" } } }, "required": [ "current_user", "current_user_settings", "current_user_abilities", "companies", "current_company", "current_company_settings", "current_company_currency", "config", "global_settings", "main_menu", "setting_menu", "modules", "admin_mode", "pending_invitations" ] } ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/current-company": { "get": { "operationId": "bootstrap.currentCompany", "tags": [ "Bootstrap" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`CompanyResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "data" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/{company}/customer/bootstrap": { "get": { "operationId": "customerPortal.general.bootstrap", "summary": "Handle the incoming request", "tags": [ "Bootstrap" ], "parameters": [ { "name": "company", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "`App.Http.Resources.Customer.CustomerResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CustomerResource" }, "meta": { "type": "object", "properties": { "menu": { "type": "string" }, "current_customer_currency": { "type": "string" }, "current_company_currency": { "type": [ "string", "null" ] }, "modules": { "type": "array", "items": {} }, "current_company_language": { "type": "null" } }, "required": [ "menu", "current_customer_currency", "current_company_currency", "modules", "current_company_language" ] } }, "required": [ "data", "meta" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/ai/chat": { "post": { "operationId": "ai.chat", "description": "If `conversation_id` is omitted (or belongs to a conversation the user\ndoesn't own), we start a fresh conversation scoped to the current\n(company_id, user_id). This matches the \"new chat\" UX where the user\nopens the drawer and starts typing immediately.", "summary": "Send a message into a conversation and get the assistant's reply", "tags": [ "Chat" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "conversation_id": { "type": [ "integer", "null" ] }, "message": { "type": "string", "maxLength": 10000 } }, "required": [ "message" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "conversation": { "type": "object", "properties": { "id": { "type": "integer" }, "title": { "type": [ "string", "null" ] }, "model": { "type": [ "string", "null" ] }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" } }, "required": [ "id", "title", "model", "updated_at" ] }, "message": { "type": "object", "properties": { "id": { "type": "integer" }, "role": { "type": "string" }, "content": { "type": [ "string", "null" ] }, "created_at": { "type": "string", "format": "date-time" } }, "required": [ "id", "role", "content", "created_at" ] } }, "required": [ "conversation", "message" ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/super-admin/companies": { "get": { "operationId": "companies.index", "tags": [ "Companies" ], "parameters": [ { "name": "limit", "in": "query", "schema": { "type": "string", "default": 10 } } ], "responses": { "200": { "description": "Paginated set of `CompanyResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/CompanyResource" } }, "links": { "type": "object", "properties": { "first": { "type": [ "string", "null" ] }, "last": { "type": [ "string", "null" ] }, "prev": { "type": [ "string", "null" ] }, "next": { "type": [ "string", "null" ] } }, "required": [ "first", "last", "prev", "next" ] }, "meta": { "type": "object", "properties": { "current_page": { "type": "integer", "minimum": 1 }, "from": { "type": [ "integer", "null" ], "minimum": 1 }, "last_page": { "type": "integer", "minimum": 1 }, "links": { "type": "array", "description": "Generated paginator links.", "items": { "type": "object", "properties": { "url": { "type": [ "string", "null" ] }, "label": { "type": "string" }, "active": { "type": "boolean" } }, "required": [ "url", "label", "active" ] } }, "path": { "type": [ "string", "null" ], "description": "Base path for paginator generated URLs." }, "per_page": { "type": "integer", "description": "Number of items shown per page.", "minimum": 0 }, "to": { "type": [ "integer", "null" ], "description": "Number of the last item in the slice.", "minimum": 1 }, "total": { "type": "integer", "description": "Total number of items being paginated.", "minimum": 0 } }, "required": [ "current_page", "from", "last_page", "links", "path", "per_page", "to", "total" ] } }, "required": [ "data", "links", "meta" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/super-admin/companies/{company}": { "get": { "operationId": "companies.show", "tags": [ "Companies" ], "parameters": [ { "name": "company", "in": "path", "required": true, "description": "The company ID", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "`CompanyResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "data" ] } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "companies.update", "tags": [ "Companies" ], "parameters": [ { "name": "company", "in": "path", "required": true, "description": "The company ID", "schema": { "type": "integer" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCompanyUpdateRequest" } } } }, "responses": { "200": { "description": "`CompanyResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "data" ] } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" }, "403": { "$ref": "#/components/responses/AuthorizationException" } } } }, "/companies": { "post": { "operationId": "companies.store", "tags": [ "Companies" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompaniesRequest" } } } }, "responses": { "200": { "description": "`CompanyResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } }, "get": { "operationId": "companies.userCompanies", "tags": [ "Companies" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `CompanyResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/CompanyResource" } } }, "required": [ "data" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/companies/delete": { "post": { "operationId": "companies.destroy", "tags": [ "Companies" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, { "type": "string" } ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/company": { "put": { "operationId": "company.updateCompany", "tags": [ "Company" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompanyRequest" } } } }, "responses": { "200": { "description": "`CompanyResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/company/upload-logo": { "post": { "operationId": "company.uploadCompanyLogo", "tags": [ "Company" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompanyLogoRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/company/ai/config": { "get": { "operationId": "companyAiConfiguration.getConfig", "summary": "Get the per-company AI config with decrypted API key masked for response", "tags": [ "CompanyAiConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": {} } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "companyAiConfiguration.saveConfig", "description": "Respects the `use_custom_ai_config` toggle \u2014 when OFF, only the toggle is written\nand the driver fields are discarded (same pattern as the mail company override).", "summary": "Persist the per-company AI config", "tags": [ "CompanyAiConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "use_custom_ai_config": { "type": [ "string", "null" ], "enum": [ "YES", "NO" ] }, "ai_enabled": { "type": [ "string", "null" ], "enum": [ "YES", "NO" ] }, "ai_driver": { "type": [ "string", "null" ], "enum": [ "openrouter" ] }, "ai_api_key": { "type": [ "string", "null" ] }, "ai_base_url": { "type": [ "string", "null" ], "format": "uri" }, "ai_chat_enabled": { "type": [ "string", "null" ], "enum": [ "YES", "NO" ] }, "ai_chat_model": { "type": [ "string", "null" ], "maxLength": 200 }, "ai_text_generation_enabled": { "type": [ "string", "null" ], "enum": [ "YES", "NO" ] }, "ai_text_generation_model": { "type": [ "string", "null" ], "maxLength": 200 } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "422": { "$ref": "#/components/responses/ValidationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/company/ai/test": { "post": { "operationId": "companyAiConfiguration.testConnection", "summary": "Test a company-level AI configuration without persisting it", "tags": [ "CompanyAiConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "ai_driver": { "type": "string" }, "ai_api_key": { "type": [ "string", "null" ] }, "ai_base_url": { "type": [ "string", "null" ], "format": "uri" } }, "required": [ "ai_driver" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "details": { "type": "object", "additionalProperties": {} } }, "required": [ "success", "details" ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/company/mail/config": { "get": { "operationId": "companyMailConfiguration.getDefaultConfig", "tags": [ "CompanyMailConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "from_name": { "type": "string" }, "from_mail": { "type": "string" } }, "required": [ "from_name", "from_mail" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/company/mail/company-config": { "get": { "operationId": "companyMailConfiguration.getMailConfig", "tags": [ "CompanyMailConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": {} } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "companyMailConfiguration.saveMailConfig", "tags": [ "CompanyMailConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompanyMailConfigurationRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/company/mail/company-test": { "post": { "operationId": "companyMailConfiguration.testMailConfig", "tags": [ "CompanyMailConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "to": { "type": "string", "format": "email" }, "subject": { "type": "string" }, "message": { "type": "string" } }, "required": [ "to", "subject", "message" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "422": { "$ref": "#/components/responses/ValidationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/company-modules": { "get": { "operationId": "companyModules.index", "tags": [ "CompanyModules" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "slug": { "type": "string" }, "name": { "type": "string" }, "display_name": { "type": "string" }, "version": { "type": "string" }, "has_settings": { "type": "boolean" }, "menu": { "type": [ "object", "null" ], "properties": { "": { "type": [ "object", "null" ], "properties": { "title": { "type": "string" }, "link": { "type": "string" }, "icon": { "type": "string" } }, "required": [ "title", "link", "icon" ] }, "title": { "type": "string" } }, "required": [ null, "title" ] } }, "required": [ "slug", "name", "display_name", "version", "has_settings", "menu" ] } } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/company/settings": { "get": { "operationId": "companySettings.show", "tags": [ "CompanySettings" ], "parameters": [ { "name": "settings[]", "in": "query", "required": true, "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } }, "post": { "operationId": "companySettings.update", "tags": [ "CompanySettings" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSettingsRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, { "type": "object", "properties": { "success": { "type": "boolean" }, "message": { "type": "string", "const": "Cannot update company currency after transactions are created." } }, "required": [ "success", "message" ] } ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/company/has-transactions": { "get": { "operationId": "companySettings.checkTransactions", "tags": [ "CompanySettings" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "has_transactions": { "type": "string" } }, "required": [ "has_transactions" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/transfer/ownership/{user}": { "post": { "operationId": "companySettings.transferOwnership", "tags": [ "CompanySettings" ], "parameters": [ { "name": "user", "in": "path", "required": true, "description": "The user ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, { "type": "object", "properties": { "success": { "type": "boolean" }, "message": { "type": "string", "const": "User does not belong to this company." } }, "required": [ "success", "message" ] } ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/config": { "get": { "operationId": "general.config", "summary": "Handle the incoming request", "tags": [ "Config" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "array", "prefixItems": [ { "type": "string" } ], "minItems": 1, "maxItems": 1, "additionalItems": false }, { "type": "object", "properties": { "exchange_rate_drivers": { "type": "array", "items": { "type": "object", "properties": { "value": { "type": "string" }, "label": {}, "website": {}, "config_fields": {} }, "required": [ "value", "label", "website", "config_fields" ] } } }, "required": [ "exchange_rate_drivers" ] } ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/ai/conversations": { "get": { "operationId": "conversation.index", "summary": "List the current user's conversations for the current company", "tags": [ "Conversation" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "conversations": { "type": "array", "items": { "$ref": "#/components/schemas/AiConversation" } } }, "required": [ "conversations" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/ai/conversations/{id}": { "get": { "operationId": "conversation.show", "summary": "Show a single conversation with its full message history", "tags": [ "Conversation" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "conversation": { "type": "object", "properties": { "id": { "type": "integer" }, "title": { "type": [ "string", "null" ] }, "model": { "type": [ "string", "null" ] }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" } }, "required": [ "id", "title", "model", "created_at", "updated_at" ] }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/AiMessage" } } }, "required": [ "conversation", "messages" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "patch": { "operationId": "conversation.update", "summary": "Rename a conversation", "tags": [ "Conversation" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string", "maxLength": 255 } }, "required": [ "title" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "422": { "$ref": "#/components/responses/ValidationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "delete": { "operationId": "conversation.destroy", "summary": "Delete a conversation (cascades to messages via DB foreign key)", "tags": [ "Conversation" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/countries": { "get": { "operationId": "admin.countries_0", "summary": "Handle the incoming request", "tags": [ "Countries" ], "responses": { "200": { "description": "Array of `CountryResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/CountryResource" } } }, "required": [ "data" ] } } } } } } }, "/{company}/customer/countries": { "get": { "operationId": "admin.countries_0", "summary": "Handle the incoming request", "tags": [ "Countries" ], "parameters": [ { "name": "company", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `CountryResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/CountryResource" } } }, "required": [ "data" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/currencies": { "get": { "operationId": "admin.currencies", "tags": [ "Currencies" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `CurrencyResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/CurrencyResource" } } }, "required": [ "data" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/custom-fields": { "get": { "operationId": "custom-fields.index", "summary": "Display a listing of the resource", "tags": [ "CustomFields" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `CustomFieldResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/CustomFieldResource" } } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "custom-fields.store", "summary": "Store a newly created resource in storage", "tags": [ "CustomFields" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomFieldRequest" } } } }, "responses": { "200": { "description": "`CustomFieldResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/CustomFieldResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/custom-fields/{customField}": { "get": { "operationId": "custom-fields.show", "summary": "Display the specified resource", "tags": [ "CustomFields" ], "parameters": [ { "name": "customField", "in": "path", "required": true, "description": "The custom field ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`CustomFieldResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/CustomFieldResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "custom-fields.update", "summary": "Update the specified resource in storage", "tags": [ "CustomFields" ], "parameters": [ { "name": "customField", "in": "path", "required": true, "description": "The custom field ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomFieldRequest" } } } }, "responses": { "200": { "description": "`CustomFieldResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/CustomFieldResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } }, "delete": { "operationId": "custom-fields.destroy", "summary": "Remove the specified resource from storage", "tags": [ "CustomFields" ], "parameters": [ { "name": "customField", "in": "path", "required": true, "description": "The custom field ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/customers/{customer}/stats": { "get": { "operationId": "customer.customerStats", "tags": [ "CustomerStats" ], "parameters": [ { "name": "customer", "in": "path", "required": true, "description": "The customer ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`CustomerResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/CustomerResource" }, "meta": { "type": "object", "properties": { "chartData": { "type": "object", "properties": { "months": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "invoiceTotals": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "expenseTotals": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "receiptTotals": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "netProfit": { "type": "string" }, "netProfits": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false }, "salesTotal": {}, "totalReceipts": {}, "totalExpenses": {} }, "required": [ "months", "invoiceTotals", "expenseTotals", "receiptTotals", "netProfit", "netProfits", "salesTotal", "totalReceipts", "totalExpenses" ] } }, "required": [ "chartData" ] } }, "required": [ "data", "meta" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/customers/delete": { "post": { "operationId": "customers.delete", "summary": "Remove a list of Customers along side all their resources (ie. Estimates, Invoices, Payments and Addresses)", "tags": [ "Customers" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteCustomersRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/customers": { "get": { "operationId": "customers.index", "summary": "Display a listing of the resource", "tags": [ "Customers" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `CustomerResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/CustomerResource" } }, "meta": { "type": "object", "properties": { "customer_total_count": { "type": "integer", "minimum": 0 } }, "required": [ "customer_total_count" ] } }, "required": [ "data", "meta" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "customers.store", "summary": "Store a newly created resource in storage", "tags": [ "Customers" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomerRequest" } } } }, "responses": { "200": { "description": "`CustomerResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/CustomerResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/customers/{customer}": { "get": { "operationId": "customers.show", "summary": "Display the specified resource", "tags": [ "Customers" ], "parameters": [ { "name": "customer", "in": "path", "required": true, "description": "The customer ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`CustomerResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/CustomerResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "customers.update", "summary": "Update the specified resource in storage", "tags": [ "Customers" ], "parameters": [ { "name": "customer", "in": "path", "required": true, "description": "The customer ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomerRequest" } } } }, "responses": { "200": { "description": "`CustomerResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/CustomerResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "422": { "$ref": "#/components/responses/ValidationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/dashboard": { "get": { "operationId": "dashboard.dashboard", "summary": "Handle the incoming request", "tags": [ "Dashboard" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "total_amount_due": {}, "total_customer_count": { "type": "integer", "minimum": 0 }, "total_invoice_count": { "type": "integer", "minimum": 0 }, "total_estimate_count": { "type": "integer", "minimum": 0 }, "recent_due_invoices": { "anyOf": [ { "type": "array", "items": { "$ref": "#/components/schemas/Invoice" } }, { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false } ] }, "recent_estimates": { "anyOf": [ { "type": "array", "items": { "$ref": "#/components/schemas/Estimate" } }, { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false } ] }, "chart_data": { "type": "object", "properties": { "months": { "type": "array", "items": { "type": "string" } }, "invoice_totals": { "type": "array", "items": {} }, "expense_totals": { "type": "array", "items": {} }, "receipt_totals": { "type": "array", "items": {} }, "net_income_totals": { "type": "array", "items": { "type": "string" } } }, "required": [ "months", "invoice_totals", "expense_totals", "receipt_totals", "net_income_totals" ] }, "total_sales": {}, "total_receipts": {}, "total_expenses": {}, "total_net_income": { "type": "string" } }, "required": [ "total_amount_due", "total_customer_count", "total_invoice_count", "total_estimate_count", "recent_due_invoices", "recent_estimates", "chart_data", "total_sales", "total_receipts", "total_expenses", "total_net_income" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/{company}/customer/dashboard": { "get": { "operationId": "general.dashboard", "summary": "Handle the incoming request", "tags": [ "Dashboard" ], "parameters": [ { "name": "company", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "due_amount": {}, "recentInvoices": { "type": "array", "items": { "$ref": "#/components/schemas/Invoice" } }, "recentEstimates": { "type": "array", "items": { "$ref": "#/components/schemas/Estimate" } }, "invoice_count": { "type": "integer", "minimum": 0 }, "estimate_count": { "type": "integer", "minimum": 0 }, "payment_count": { "type": "integer", "minimum": 0 } }, "required": [ "due_amount", "recentInvoices", "recentEstimates", "invoice_count", "estimate_count", "payment_count" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/installation/database/config": { "post": { "operationId": "databaseConfiguration.saveDatabaseEnvironment", "tags": [ "DatabaseConfiguration" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DatabaseEnvironmentRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "string" } } } }, "422": { "$ref": "#/components/responses/ValidationException" } } }, "get": { "operationId": "databaseConfiguration.getDatabaseEnvironment", "tags": [ "DatabaseConfiguration" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "config": { "type": "object", "properties": { "database_connection": { "type": "string", "const": "mysql" }, "database_host": { "type": "string", "const": "127.0.0.1" }, "database_port": { "type": "integer", "const": 3306 } }, "required": [ "database_connection", "database_host", "database_port" ] }, "success": { "type": "boolean" } }, "required": [ "config", "success" ] } } } } } } }, "/disks": { "get": { "operationId": "disks.index", "tags": [ "Disk" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `FileDiskResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/FileDiskResource" } } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "disks.store", "tags": [ "Disk" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiskEnvironmentRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/disks/{disk}": { "get": { "operationId": "disks.show", "tags": [ "Disk" ], "parameters": [ { "name": "disk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "token": { "type": "string" }, "key": { "type": "string" }, "secret": { "type": "string" }, "app": { "type": "string" }, "root": { "type": "string" } }, "required": [ "token", "key", "secret", "app", "root" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "disks.update", "tags": [ "Disk" ], "parameters": [ { "name": "disk", "in": "path", "required": true, "description": "The disk ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`FileDiskResource`", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object" }, { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/FileDiskResource" } }, "required": [ "data" ] } ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "delete": { "operationId": "disks.destroy", "summary": "Remove the specified resource from storage", "tags": [ "Disk" ], "parameters": [ { "name": "disk", "in": "path", "required": true, "description": "The disk ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/disk/drivers": { "get": { "operationId": "disk.getDiskDrivers", "tags": [ "Disk" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "drivers": { "type": "array", "prefixItems": [ { "type": "object", "properties": { "name": { "type": "string", "const": "Local" }, "value": { "type": "string", "const": "local" } }, "required": [ "name", "value" ] }, { "type": "object", "properties": { "name": { "type": "string", "const": "Amazon S3" }, "value": { "type": "string", "const": "s3" } }, "required": [ "name", "value" ] }, { "type": "object", "properties": { "name": { "type": "string", "const": "S3 Compatible Storage" }, "value": { "type": "string", "const": "s3compat" } }, "required": [ "name", "value" ] }, { "type": "object", "properties": { "name": { "type": "string", "const": "Digital Ocean Spaces" }, "value": { "type": "string", "const": "doSpaces" } }, "required": [ "name", "value" ] }, { "type": "object", "properties": { "name": { "type": "string", "const": "Dropbox" }, "value": { "type": "string", "const": "dropbox" } }, "required": [ "name", "value" ] } ], "minItems": 5, "maxItems": 5, "additionalItems": false }, "default": { "anyOf": [ { "type": "string" }, { "type": "string", "enum": [ "local" ] } ] } }, "required": [ "drivers", "default" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/disk/purposes": { "get": { "operationId": "disk.getDiskPurposes", "tags": [ "Disk" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "media_disk_id": { "type": "string" }, "pdf_disk_id": { "type": "string" }, "backup_disk_id": { "type": "string" } }, "required": [ "media_disk_id", "pdf_disk_id", "backup_disk_id" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "disk.updateDiskPurposes", "tags": [ "Disk" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "media_disk_id": { "type": [ "integer", "null" ] }, "pdf_disk_id": { "type": [ "integer", "null" ] }, "backup_disk_id": { "type": [ "integer", "null" ] } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "422": { "$ref": "#/components/responses/ValidationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/estimates/templates": { "get": { "operationId": "estimate.estimateTemplates", "summary": "Handle the incoming request", "tags": [ "EstimateTemplates" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "estimateTemplates": { "type": "array", "items": {} } }, "required": [ "estimateTemplates" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/estimates/{estimate}/send/preview": { "get": { "operationId": "estimates.sendPreview", "tags": [ "Estimates" ], "parameters": [ { "name": "estimate", "in": "path", "required": true, "description": "The estimate ID", "schema": { "type": "integer" } }, { "name": "subject", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "body", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "from", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "to", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "cc", "in": "query", "schema": { "type": [ "string", "null" ] } }, { "name": "bcc", "in": "query", "schema": { "type": [ "string", "null" ] } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/estimates/{estimate}/send": { "post": { "operationId": "estimates.send", "tags": [ "Estimates" ], "parameters": [ { "name": "estimate", "in": "path", "required": true, "description": "The estimate ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SendEstimatesRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "type": { "type": "string", "const": "send" } }, "required": [ "success", "type" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/estimates/{estimate}/clone": { "post": { "operationId": "estimates.clone", "tags": [ "Estimates" ], "parameters": [ { "name": "estimate", "in": "path", "required": true, "description": "The estimate ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`EstimateResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/EstimateResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/estimates/{estimate}/status": { "post": { "operationId": "estimates.changeStatus", "tags": [ "Estimates" ], "parameters": [ { "name": "estimate", "in": "path", "required": true, "description": "The estimate ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/estimates/{estimate}/convert-to-invoice": { "post": { "operationId": "estimates.convertToInvoice", "tags": [ "Estimates" ], "parameters": [ { "name": "estimate", "in": "path", "required": true, "description": "The estimate ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`InvoiceResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/InvoiceResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/estimates/delete": { "post": { "operationId": "estimates.delete", "tags": [ "Estimates" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteEstimatesRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/estimates": { "get": { "operationId": "estimates.index", "tags": [ "Estimates" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `EstimateResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/EstimateResource" } }, "meta": { "type": "object", "properties": { "estimate_total_count": { "type": "integer", "minimum": 0 } }, "required": [ "estimate_total_count" ] } }, "required": [ "data", "meta" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "estimates.store", "tags": [ "Estimates" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EstimatesRequest" } } } }, "responses": { "200": { "description": "`EstimateResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/EstimateResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/estimates/{estimate}": { "get": { "operationId": "estimates.show", "tags": [ "Estimates" ], "parameters": [ { "name": "estimate", "in": "path", "required": true, "description": "The estimate ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`EstimateResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/EstimateResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "estimates.update", "tags": [ "Estimates" ], "parameters": [ { "name": "estimate", "in": "path", "required": true, "description": "The estimate ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`EstimateResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/EstimateResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/{company}/customer/estimates": { "get": { "operationId": "customerPortal.estimate.estimates.index", "summary": "Display a listing of the resource", "tags": [ "Estimates" ], "parameters": [ { "name": "company", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `App.Http.Resources.Customer.EstimateResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/App.Http.Resources.Customer.EstimateResource" } }, "meta": { "type": "object", "properties": { "estimateTotalCount": { "type": "integer", "minimum": 0 } }, "required": [ "estimateTotalCount" ] } }, "required": [ "data", "meta" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/{company}/customer/estimates/{id}": { "get": { "operationId": "customerPortal.estimate.estimates.show", "summary": "Display the specified resource", "tags": [ "Estimates" ], "parameters": [ { "name": "company", "in": "path", "required": true, "description": "The company slug", "schema": { "type": [ "string", "null" ] } }, { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/currencies/used": { "get": { "operationId": "exchangeRateProvider.usedCurrenciesWithoutRate", "tags": [ "ExchangeRateProvider" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "currencies": { "type": "array", "items": { "$ref": "#/components/schemas/Currency" } } }, "required": [ "currencies" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/currencies/bulk-update-exchange-rate": { "post": { "operationId": "exchangeRateProvider.bulkUpdate", "tags": [ "ExchangeRateProvider" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkExchangeRateRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "error": { "type": "boolean" } }, "required": [ "error" ] }, { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/currencies/{currency}/exchange-rate": { "get": { "operationId": "exchangeRateProvider.getRate", "tags": [ "ExchangeRateProvider" ], "parameters": [ { "name": "currency", "in": "path", "required": true, "description": "The currency ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "error": { "type": "string", "const": "no_exchange_rate_available" } }, "required": [ "error" ] }, { "type": "object", "properties": { "exchangeRate": { "type": "array", "prefixItems": [ {} ], "minItems": 1, "maxItems": 1, "additionalItems": false } }, "required": [ "exchangeRate" ] }, { "type": "string" }, { "type": "object", "properties": { "exchangeRate": { "type": "array", "items": {} } }, "required": [ "exchangeRate" ] } ] } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/currencies/{currency}/active-provider": { "get": { "operationId": "exchangeRateProvider.activeProvider", "tags": [ "ExchangeRateProvider" ], "parameters": [ { "name": "currency", "in": "path", "required": true, "description": "The currency ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "error": { "type": "string", "const": "no_active_provider" } }, "required": [ "error" ] }, { "type": "object", "properties": { "success": { "type": "boolean" }, "message": { "type": "string", "const": "provider_active" } }, "required": [ "success", "message" ] } ] } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/used-currencies": { "get": { "operationId": "exchangeRateProvider.usedCurrencies", "tags": [ "ExchangeRateProvider" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "allUsedCurrencies": { "type": "array", "items": { "type": "string" } }, "activeUsedCurrencies": { "type": "array", "items": { "type": "string" } } }, "required": [ "allUsedCurrencies", "activeUsedCurrencies" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/supported-currencies": { "get": { "operationId": "exchangeRateProvider.supportedCurrencies", "tags": [ "ExchangeRateProvider" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "string" }, { "type": "object", "properties": { "supportedCurrencies": { "type": "array", "items": {} } }, "required": [ "supportedCurrencies" ] } ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/exchange-rate-providers": { "get": { "operationId": "exchange-rate-providers.index", "summary": "Display a listing of the resource", "tags": [ "ExchangeRateProvider" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Paginated set of `ExchangeRateProviderResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/ExchangeRateProviderResource" } }, "links": { "type": "object", "properties": { "first": { "type": [ "string", "null" ] }, "last": { "type": [ "string", "null" ] }, "prev": { "type": [ "string", "null" ] }, "next": { "type": [ "string", "null" ] } }, "required": [ "first", "last", "prev", "next" ] }, "meta": { "type": "object", "properties": { "current_page": { "type": "integer", "minimum": 1 }, "from": { "type": [ "integer", "null" ], "minimum": 1 }, "last_page": { "type": "integer", "minimum": 1 }, "links": { "type": "array", "description": "Generated paginator links.", "items": { "type": "object", "properties": { "url": { "type": [ "string", "null" ] }, "label": { "type": "string" }, "active": { "type": "boolean" } }, "required": [ "url", "label", "active" ] } }, "path": { "type": [ "string", "null" ], "description": "Base path for paginator generated URLs." }, "per_page": { "type": "integer", "description": "Number of items shown per page.", "minimum": 0 }, "to": { "type": [ "integer", "null" ], "description": "Number of the last item in the slice.", "minimum": 1 }, "total": { "type": "integer", "description": "Total number of items being paginated.", "minimum": 0 } }, "required": [ "current_page", "from", "last_page", "links", "path", "per_page", "to", "total" ] } }, "required": [ "data", "links", "meta" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "exchange-rate-providers.store", "summary": "Store a newly created resource in storage", "tags": [ "ExchangeRateProvider" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExchangeRateProviderRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/exchange-rate-providers/{exchangeRateProvider}": { "get": { "operationId": "exchange-rate-providers.show", "summary": "Display the specified resource", "tags": [ "ExchangeRateProvider" ], "parameters": [ { "name": "exchangeRateProvider", "in": "path", "required": true, "description": "The exchange rate provider ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`ExchangeRateProviderResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ExchangeRateProviderResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "exchange-rate-providers.update", "summary": "Update the specified resource in storage", "tags": [ "ExchangeRateProvider" ], "parameters": [ { "name": "exchangeRateProvider", "in": "path", "required": true, "description": "The exchange rate provider ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExchangeRateProviderRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } }, "delete": { "operationId": "exchange-rate-providers.destroy", "summary": "Remove the specified resource from storage", "tags": [ "ExchangeRateProvider" ], "parameters": [ { "name": "exchangeRateProvider", "in": "path", "required": true, "description": "The exchange rate provider ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/categories": { "get": { "operationId": "categories.index", "summary": "Display a listing of the resource", "tags": [ "ExpenseCategories" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `ExpenseCategoryResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/ExpenseCategoryResource" } } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "categories.store", "summary": "Store a newly created resource in storage", "tags": [ "ExpenseCategories" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExpenseCategoryRequest" } } } }, "responses": { "200": { "description": "`ExpenseCategoryResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ExpenseCategoryResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/categories/{category}": { "get": { "operationId": "categories.show", "summary": "Display the specified resource", "tags": [ "ExpenseCategories" ], "parameters": [ { "name": "category", "in": "path", "required": true, "description": "The category ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`ExpenseCategoryResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ExpenseCategoryResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "categories.update", "summary": "Update the specified resource in storage", "tags": [ "ExpenseCategories" ], "parameters": [ { "name": "category", "in": "path", "required": true, "description": "The category ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExpenseCategoryRequest" } } } }, "responses": { "200": { "description": "`ExpenseCategoryResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ExpenseCategoryResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } }, "delete": { "operationId": "categories.destroy", "summary": "Remove the specified resource from storage", "tags": [ "ExpenseCategories" ], "parameters": [ { "name": "category", "in": "path", "required": true, "description": "The category ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/expenses/{expense}/show/receipt": { "get": { "operationId": "expenses.showReceipt", "tags": [ "Expenses" ], "parameters": [ { "name": "expense", "in": "path", "required": true, "description": "The expense ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "string" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/expenses/{expense}/upload/receipts": { "post": { "operationId": "expenses.uploadReceipt", "tags": [ "Expenses" ], "parameters": [ { "name": "expense", "in": "path", "required": true, "description": "The expense ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadExpenseReceiptRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "string", "const": "Expense receipts uploaded successfully" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/expenses/delete": { "post": { "operationId": "expenses.delete", "tags": [ "Expenses" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteExpensesRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/expenses": { "get": { "operationId": "expenses.index", "summary": "Display a listing of the resource", "tags": [ "Expenses" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `ExpenseResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/ExpenseResource" } }, "meta": { "type": "object", "properties": { "expense_total_count": { "type": "integer", "minimum": 0 } }, "required": [ "expense_total_count" ] } }, "required": [ "data", "meta" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "expenses.store", "summary": "Store a newly created resource in storage", "tags": [ "Expenses" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/ExpenseRequest" } } } }, "responses": { "200": { "description": "`ExpenseResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ExpenseResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/expenses/{expense}": { "get": { "operationId": "expenses.show", "summary": "Display the specified resource", "tags": [ "Expenses" ], "parameters": [ { "name": "expense", "in": "path", "required": true, "description": "The expense ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`ExpenseResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ExpenseResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "expenses.update", "summary": "Update the specified resource in storage", "tags": [ "Expenses" ], "parameters": [ { "name": "expense", "in": "path", "required": true, "description": "The expense ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/ExpenseRequest" } } } }, "responses": { "200": { "description": "`ExpenseResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ExpenseResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/{company}/customer/expenses": { "get": { "operationId": "customerPortal.expense.expenses.index", "summary": "Display a listing of the resource", "tags": [ "Expenses" ], "parameters": [ { "name": "company", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `App.Http.Resources.Customer.ExpenseResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/App.Http.Resources.Customer.ExpenseResource" } }, "meta": { "type": "object", "properties": { "expenseTotalCount": { "type": "string" } }, "required": [ "expenseTotalCount" ] } }, "required": [ "data", "meta" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/{company}/customer/expenses/{id}": { "get": { "operationId": "customerPortal.expense.expenses.show", "summary": "Display the specified resource", "tags": [ "Expenses" ], "parameters": [ { "name": "company", "in": "path", "required": true, "description": "The company slug", "schema": { "type": [ "string", "null" ] } }, { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/installation/permissions": { "get": { "operationId": "filePermissions.permissions", "summary": "Display the permissions check page", "tags": [ "FilePermissions" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "permissions": { "type": "string" } }, "required": [ "permissions" ] } } } } } } }, "/installation/finish": { "post": { "operationId": "setup.finish", "summary": "Handle the incoming request", "tags": [ "Finish" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } } } } }, "/fonts/status": { "get": { "operationId": "font.status", "tags": [ "Font" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "packages": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string" }, "name": { "type": "string" }, "family": { "type": "string" }, "locales": { "type": "string" }, "size": { "type": "string" }, "installed": { "type": "boolean" }, "bundled": { "type": "boolean" } }, "required": [ "key", "name", "family", "locales", "size", "installed", "bundled" ] } } }, "required": [ "packages" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/fonts/{package}/install": { "post": { "operationId": "font.install", "tags": [ "Font" ], "parameters": [ { "name": "package", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "500": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string" } }, "required": [ "success", "error" ] } } } }, "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "success": { "type": "boolean" }, "installed": { "type": "boolean" } }, "required": [ "success", "installed" ] }, { "type": "object", "properties": { "success": { "type": "boolean" }, "message": { "type": "string", "const": "Already installed" } }, "required": [ "success", "message" ] } ] } } } }, "404": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string", "const": "Unknown font package" } }, "required": [ "error" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/auth/password/email": { "post": { "operationId": "company.auth.forgotPassword.sendResetLinkEmail", "summary": "Send a reset link to the given user", "tags": [ "ForgotPassword" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "const": "Password reset email sent." }, "data": { "type": "string" } }, "required": [ "message", "data" ] } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string", "const": "Email could not be sent to this email address." } }, "required": [ "error" ] } } } } } } }, "/{company}/customer/auth/password/email": { "post": { "operationId": "customerPortal.auth.forgotPassword.sendResetLinkEmail", "summary": "Send a reset link to the given user", "tags": [ "ForgotPassword" ], "parameters": [ { "name": "company", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "message": { "type": "string", "const": "Password reset email sent." }, "data": { "type": "string" } }, "required": [ "message", "data" ] }, { "type": "object" } ] } } } } } } }, "/timezones": { "get": { "operationId": "formats.timezones", "tags": [ "Formats" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "time_zones": { "type": "array", "prefixItems": [ { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Midway" }, "key": { "type": "string", "const": "(UTC-11:00) Midway" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Niue" }, "key": { "type": "string", "const": "(UTC-11:00) Niue" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Pago_Pago" }, "key": { "type": "string", "const": "(UTC-11:00) Pago Pago" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Adak" }, "key": { "type": "string", "const": "(UTC-10:00) Adak" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Honolulu" }, "key": { "type": "string", "const": "(UTC-10:00) Honolulu" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Johnston" }, "key": { "type": "string", "const": "(UTC-10:00) Johnston" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Rarotonga" }, "key": { "type": "string", "const": "(UTC-10:00) Rarotonga" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Tahiti" }, "key": { "type": "string", "const": "(UTC-10:00) Tahiti" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Marquesas" }, "key": { "type": "string", "const": "(UTC-09:30) Marquesas" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Anchorage" }, "key": { "type": "string", "const": "(UTC-09:00) Anchorage" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Gambier" }, "key": { "type": "string", "const": "(UTC-09:00) Gambier" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Juneau" }, "key": { "type": "string", "const": "(UTC-09:00) Juneau" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Nome" }, "key": { "type": "string", "const": "(UTC-09:00) Nome" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Sitka" }, "key": { "type": "string", "const": "(UTC-09:00) Sitka" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Yakutat" }, "key": { "type": "string", "const": "(UTC-09:00) Yakutat" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Dawson" }, "key": { "type": "string", "const": "(UTC-08:00) Dawson" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Los_Angeles" }, "key": { "type": "string", "const": "(UTC-08:00) Los Angeles" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Metlakatla" }, "key": { "type": "string", "const": "(UTC-08:00) Metlakatla" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Pitcairn" }, "key": { "type": "string", "const": "(UTC-08:00) Pitcairn" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Santa_Isabel" }, "key": { "type": "string", "const": "(UTC-08:00) Santa Isabel" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Tijuana" }, "key": { "type": "string", "const": "(UTC-08:00) Tijuana" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Vancouver" }, "key": { "type": "string", "const": "(UTC-08:00) Vancouver" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Whitehorse" }, "key": { "type": "string", "const": "(UTC-08:00) Whitehorse" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Boise" }, "key": { "type": "string", "const": "(UTC-07:00) Boise" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Cambridge_Bay" }, "key": { "type": "string", "const": "(UTC-07:00) Cambridge Bay" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Chihuahua" }, "key": { "type": "string", "const": "(UTC-07:00) Chihuahua" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Creston" }, "key": { "type": "string", "const": "(UTC-07:00) Creston" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Dawson_Creek" }, "key": { "type": "string", "const": "(UTC-07:00) Dawson Creek" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Denver" }, "key": { "type": "string", "const": "(UTC-07:00) Denver" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Edmonton" }, "key": { "type": "string", "const": "(UTC-07:00) Edmonton" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Hermosillo" }, "key": { "type": "string", "const": "(UTC-07:00) Hermosillo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Inuvik" }, "key": { "type": "string", "const": "(UTC-07:00) Inuvik" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Mazatlan" }, "key": { "type": "string", "const": "(UTC-07:00) Mazatlan" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Ojinaga" }, "key": { "type": "string", "const": "(UTC-07:00) Ojinaga" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Phoenix" }, "key": { "type": "string", "const": "(UTC-07:00) Phoenix" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Shiprock" }, "key": { "type": "string", "const": "(UTC-07:00) Shiprock" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Yellowknife" }, "key": { "type": "string", "const": "(UTC-07:00) Yellowknife" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Bahia_Banderas" }, "key": { "type": "string", "const": "(UTC-06:00) Bahia Banderas" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Belize" }, "key": { "type": "string", "const": "(UTC-06:00) Belize" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/North_Dakota/Beulah" }, "key": { "type": "string", "const": "(UTC-06:00) Beulah" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Cancun" }, "key": { "type": "string", "const": "(UTC-06:00) Cancun" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/North_Dakota/Center" }, "key": { "type": "string", "const": "(UTC-06:00) Center" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Chicago" }, "key": { "type": "string", "const": "(UTC-06:00) Chicago" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Costa_Rica" }, "key": { "type": "string", "const": "(UTC-06:00) Costa Rica" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Easter" }, "key": { "type": "string", "const": "(UTC-06:00) Easter" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/El_Salvador" }, "key": { "type": "string", "const": "(UTC-06:00) El Salvador" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Galapagos" }, "key": { "type": "string", "const": "(UTC-06:00) Galapagos" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Guatemala" }, "key": { "type": "string", "const": "(UTC-06:00) Guatemala" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Indiana/Knox" }, "key": { "type": "string", "const": "(UTC-06:00) Knox" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Managua" }, "key": { "type": "string", "const": "(UTC-06:00) Managua" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Matamoros" }, "key": { "type": "string", "const": "(UTC-06:00) Matamoros" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Menominee" }, "key": { "type": "string", "const": "(UTC-06:00) Menominee" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Merida" }, "key": { "type": "string", "const": "(UTC-06:00) Merida" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Mexico_City" }, "key": { "type": "string", "const": "(UTC-06:00) Mexico City" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Monterrey" }, "key": { "type": "string", "const": "(UTC-06:00) Monterrey" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/North_Dakota/New_Salem" }, "key": { "type": "string", "const": "(UTC-06:00) New Salem" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Rainy_River" }, "key": { "type": "string", "const": "(UTC-06:00) Rainy River" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Rankin_Inlet" }, "key": { "type": "string", "const": "(UTC-06:00) Rankin Inlet" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Regina" }, "key": { "type": "string", "const": "(UTC-06:00) Regina" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Resolute" }, "key": { "type": "string", "const": "(UTC-06:00) Resolute" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Swift_Current" }, "key": { "type": "string", "const": "(UTC-06:00) Swift Current" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Tegucigalpa" }, "key": { "type": "string", "const": "(UTC-06:00) Tegucigalpa" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Indiana/Tell_City" }, "key": { "type": "string", "const": "(UTC-06:00) Tell City" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Winnipeg" }, "key": { "type": "string", "const": "(UTC-06:00) Winnipeg" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Atikokan" }, "key": { "type": "string", "const": "(UTC-05:00) Atikokan" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Bogota" }, "key": { "type": "string", "const": "(UTC-05:00) Bogota" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Cayman" }, "key": { "type": "string", "const": "(UTC-05:00) Cayman" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Detroit" }, "key": { "type": "string", "const": "(UTC-05:00) Detroit" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Grand_Turk" }, "key": { "type": "string", "const": "(UTC-05:00) Grand Turk" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Guayaquil" }, "key": { "type": "string", "const": "(UTC-05:00) Guayaquil" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Havana" }, "key": { "type": "string", "const": "(UTC-05:00) Havana" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Indiana/Indianapolis" }, "key": { "type": "string", "const": "(UTC-05:00) Indianapolis" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Iqaluit" }, "key": { "type": "string", "const": "(UTC-05:00) Iqaluit" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Jamaica" }, "key": { "type": "string", "const": "(UTC-05:00) Jamaica" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Lima" }, "key": { "type": "string", "const": "(UTC-05:00) Lima" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Kentucky/Louisville" }, "key": { "type": "string", "const": "(UTC-05:00) Louisville" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Indiana/Marengo" }, "key": { "type": "string", "const": "(UTC-05:00) Marengo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Kentucky/Monticello" }, "key": { "type": "string", "const": "(UTC-05:00) Monticello" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Montreal" }, "key": { "type": "string", "const": "(UTC-05:00) Montreal" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Nassau" }, "key": { "type": "string", "const": "(UTC-05:00) Nassau" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/New_York" }, "key": { "type": "string", "const": "(UTC-05:00) New York" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Nipigon" }, "key": { "type": "string", "const": "(UTC-05:00) Nipigon" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Panama" }, "key": { "type": "string", "const": "(UTC-05:00) Panama" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Pangnirtung" }, "key": { "type": "string", "const": "(UTC-05:00) Pangnirtung" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Indiana/Petersburg" }, "key": { "type": "string", "const": "(UTC-05:00) Petersburg" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Port-au-Prince" }, "key": { "type": "string", "const": "(UTC-05:00) Port-au-Prince" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Thunder_Bay" }, "key": { "type": "string", "const": "(UTC-05:00) Thunder Bay" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Toronto" }, "key": { "type": "string", "const": "(UTC-05:00) Toronto" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Indiana/Vevay" }, "key": { "type": "string", "const": "(UTC-05:00) Vevay" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Indiana/Vincennes" }, "key": { "type": "string", "const": "(UTC-05:00) Vincennes" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Indiana/Winamac" }, "key": { "type": "string", "const": "(UTC-05:00) Winamac" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Caracas" }, "key": { "type": "string", "const": "(UTC-04:30) Caracas" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Anguilla" }, "key": { "type": "string", "const": "(UTC-04:00) Anguilla" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Antigua" }, "key": { "type": "string", "const": "(UTC-04:00) Antigua" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Aruba" }, "key": { "type": "string", "const": "(UTC-04:00) Aruba" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Asuncion" }, "key": { "type": "string", "const": "(UTC-04:00) Asuncion" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Barbados" }, "key": { "type": "string", "const": "(UTC-04:00) Barbados" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Atlantic/Bermuda" }, "key": { "type": "string", "const": "(UTC-04:00) Bermuda" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Blanc-Sablon" }, "key": { "type": "string", "const": "(UTC-04:00) Blanc-Sablon" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Boa_Vista" }, "key": { "type": "string", "const": "(UTC-04:00) Boa Vista" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Campo_Grande" }, "key": { "type": "string", "const": "(UTC-04:00) Campo Grande" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Cuiaba" }, "key": { "type": "string", "const": "(UTC-04:00) Cuiaba" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Curacao" }, "key": { "type": "string", "const": "(UTC-04:00) Curacao" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Dominica" }, "key": { "type": "string", "const": "(UTC-04:00) Dominica" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Eirunepe" }, "key": { "type": "string", "const": "(UTC-04:00) Eirunepe" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Glace_Bay" }, "key": { "type": "string", "const": "(UTC-04:00) Glace Bay" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Goose_Bay" }, "key": { "type": "string", "const": "(UTC-04:00) Goose Bay" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Grenada" }, "key": { "type": "string", "const": "(UTC-04:00) Grenada" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Guadeloupe" }, "key": { "type": "string", "const": "(UTC-04:00) Guadeloupe" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Guyana" }, "key": { "type": "string", "const": "(UTC-04:00) Guyana" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Halifax" }, "key": { "type": "string", "const": "(UTC-04:00) Halifax" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Kralendijk" }, "key": { "type": "string", "const": "(UTC-04:00) Kralendijk" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/La_Paz" }, "key": { "type": "string", "const": "(UTC-04:00) La Paz" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Lower_Princes" }, "key": { "type": "string", "const": "(UTC-04:00) Lower Princes" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Manaus" }, "key": { "type": "string", "const": "(UTC-04:00) Manaus" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Marigot" }, "key": { "type": "string", "const": "(UTC-04:00) Marigot" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Martinique" }, "key": { "type": "string", "const": "(UTC-04:00) Martinique" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Moncton" }, "key": { "type": "string", "const": "(UTC-04:00) Moncton" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Montserrat" }, "key": { "type": "string", "const": "(UTC-04:00) Montserrat" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Antarctica/Palmer" }, "key": { "type": "string", "const": "(UTC-04:00) Palmer" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Port_of_Spain" }, "key": { "type": "string", "const": "(UTC-04:00) Port of Spain" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Porto_Velho" }, "key": { "type": "string", "const": "(UTC-04:00) Porto Velho" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Puerto_Rico" }, "key": { "type": "string", "const": "(UTC-04:00) Puerto Rico" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Rio_Branco" }, "key": { "type": "string", "const": "(UTC-04:00) Rio Branco" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Santiago" }, "key": { "type": "string", "const": "(UTC-04:00) Santiago" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Santo_Domingo" }, "key": { "type": "string", "const": "(UTC-04:00) Santo Domingo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/St_Barthelemy" }, "key": { "type": "string", "const": "(UTC-04:00) St. Barthelemy" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/St_Kitts" }, "key": { "type": "string", "const": "(UTC-04:00) St. Kitts" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/St_Lucia" }, "key": { "type": "string", "const": "(UTC-04:00) St. Lucia" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/St_Thomas" }, "key": { "type": "string", "const": "(UTC-04:00) St. Thomas" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/St_Vincent" }, "key": { "type": "string", "const": "(UTC-04:00) St. Vincent" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Thule" }, "key": { "type": "string", "const": "(UTC-04:00) Thule" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Tortola" }, "key": { "type": "string", "const": "(UTC-04:00) Tortola" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/St_Johns" }, "key": { "type": "string", "const": "(UTC-03:30) St. Johns" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Araguaina" }, "key": { "type": "string", "const": "(UTC-03:00) Araguaina" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Bahia" }, "key": { "type": "string", "const": "(UTC-03:00) Bahia" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Belem" }, "key": { "type": "string", "const": "(UTC-03:00) Belem" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Argentina/Buenos_Aires" }, "key": { "type": "string", "const": "(UTC-03:00) Buenos Aires" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Argentina/Catamarca" }, "key": { "type": "string", "const": "(UTC-03:00) Catamarca" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Cayenne" }, "key": { "type": "string", "const": "(UTC-03:00) Cayenne" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Argentina/Cordoba" }, "key": { "type": "string", "const": "(UTC-03:00) Cordoba" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Fortaleza" }, "key": { "type": "string", "const": "(UTC-03:00) Fortaleza" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Godthab" }, "key": { "type": "string", "const": "(UTC-03:00) Godthab" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Argentina/Jujuy" }, "key": { "type": "string", "const": "(UTC-03:00) Jujuy" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Argentina/La_Rioja" }, "key": { "type": "string", "const": "(UTC-03:00) La Rioja" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Maceio" }, "key": { "type": "string", "const": "(UTC-03:00) Maceio" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Argentina/Mendoza" }, "key": { "type": "string", "const": "(UTC-03:00) Mendoza" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Miquelon" }, "key": { "type": "string", "const": "(UTC-03:00) Miquelon" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Montevideo" }, "key": { "type": "string", "const": "(UTC-03:00) Montevideo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Paramaribo" }, "key": { "type": "string", "const": "(UTC-03:00) Paramaribo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Recife" }, "key": { "type": "string", "const": "(UTC-03:00) Recife" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Argentina/Rio_Gallegos" }, "key": { "type": "string", "const": "(UTC-03:00) Rio Gallegos" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Antarctica/Rothera" }, "key": { "type": "string", "const": "(UTC-03:00) Rothera" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Argentina/Salta" }, "key": { "type": "string", "const": "(UTC-03:00) Salta" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Argentina/San_Juan" }, "key": { "type": "string", "const": "(UTC-03:00) San Juan" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Argentina/San_Luis" }, "key": { "type": "string", "const": "(UTC-03:00) San Luis" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Santarem" }, "key": { "type": "string", "const": "(UTC-03:00) Santarem" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Sao_Paulo" }, "key": { "type": "string", "const": "(UTC-03:00) Sao Paulo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Atlantic/Stanley" }, "key": { "type": "string", "const": "(UTC-03:00) Stanley" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Argentina/Tucuman" }, "key": { "type": "string", "const": "(UTC-03:00) Tucuman" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Argentina/Ushuaia" }, "key": { "type": "string", "const": "(UTC-03:00) Ushuaia" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Noronha" }, "key": { "type": "string", "const": "(UTC-02:00) Noronha" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Atlantic/South_Georgia" }, "key": { "type": "string", "const": "(UTC-02:00) South Georgia" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Atlantic/Azores" }, "key": { "type": "string", "const": "(UTC-01:00) Azores" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Atlantic/Cape_Verde" }, "key": { "type": "string", "const": "(UTC-01:00) Cape Verde" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Scoresbysund" }, "key": { "type": "string", "const": "(UTC-01:00) Scoresbysund" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Abidjan" }, "key": { "type": "string", "const": "(UTC+00:00) Abidjan" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Accra" }, "key": { "type": "string", "const": "(UTC+00:00) Accra" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Bamako" }, "key": { "type": "string", "const": "(UTC+00:00) Bamako" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Banjul" }, "key": { "type": "string", "const": "(UTC+00:00) Banjul" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Bissau" }, "key": { "type": "string", "const": "(UTC+00:00) Bissau" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Atlantic/Canary" }, "key": { "type": "string", "const": "(UTC+00:00) Canary" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Casablanca" }, "key": { "type": "string", "const": "(UTC+00:00) Casablanca" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Conakry" }, "key": { "type": "string", "const": "(UTC+00:00) Conakry" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Dakar" }, "key": { "type": "string", "const": "(UTC+00:00) Dakar" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "America/Danmarkshavn" }, "key": { "type": "string", "const": "(UTC+00:00) Danmarkshavn" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Dublin" }, "key": { "type": "string", "const": "(UTC+00:00) Dublin" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/El_Aaiun" }, "key": { "type": "string", "const": "(UTC+00:00) El Aaiun" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Atlantic/Faroe" }, "key": { "type": "string", "const": "(UTC+00:00) Faroe" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Freetown" }, "key": { "type": "string", "const": "(UTC+00:00) Freetown" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Guernsey" }, "key": { "type": "string", "const": "(UTC+00:00) Guernsey" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Isle_of_Man" }, "key": { "type": "string", "const": "(UTC+00:00) Isle of Man" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Jersey" }, "key": { "type": "string", "const": "(UTC+00:00) Jersey" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Lisbon" }, "key": { "type": "string", "const": "(UTC+00:00) Lisbon" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Lome" }, "key": { "type": "string", "const": "(UTC+00:00) Lome" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/London" }, "key": { "type": "string", "const": "(UTC+00:00) London" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Atlantic/Madeira" }, "key": { "type": "string", "const": "(UTC+00:00) Madeira" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Monrovia" }, "key": { "type": "string", "const": "(UTC+00:00) Monrovia" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Nouakchott" }, "key": { "type": "string", "const": "(UTC+00:00) Nouakchott" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Ouagadougou" }, "key": { "type": "string", "const": "(UTC+00:00) Ouagadougou" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Atlantic/Reykjavik" }, "key": { "type": "string", "const": "(UTC+00:00) Reykjavik" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Sao_Tome" }, "key": { "type": "string", "const": "(UTC+00:00) Sao Tome" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Atlantic/St_Helena" }, "key": { "type": "string", "const": "(UTC+00:00) St. Helena" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "UTC" }, "key": { "type": "string", "const": "(UTC+00:00) UTC" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Algiers" }, "key": { "type": "string", "const": "(UTC+01:00) Algiers" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Amsterdam" }, "key": { "type": "string", "const": "(UTC+01:00) Amsterdam" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Andorra" }, "key": { "type": "string", "const": "(UTC+01:00) Andorra" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Bangui" }, "key": { "type": "string", "const": "(UTC+01:00) Bangui" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Belgrade" }, "key": { "type": "string", "const": "(UTC+01:00) Belgrade" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Berlin" }, "key": { "type": "string", "const": "(UTC+01:00) Berlin" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Bratislava" }, "key": { "type": "string", "const": "(UTC+01:00) Bratislava" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Brazzaville" }, "key": { "type": "string", "const": "(UTC+01:00) Brazzaville" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Brussels" }, "key": { "type": "string", "const": "(UTC+01:00) Brussels" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Budapest" }, "key": { "type": "string", "const": "(UTC+01:00) Budapest" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Busingen" }, "key": { "type": "string", "const": "(UTC+01:00) Busingen" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Ceuta" }, "key": { "type": "string", "const": "(UTC+01:00) Ceuta" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Copenhagen" }, "key": { "type": "string", "const": "(UTC+01:00) Copenhagen" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Douala" }, "key": { "type": "string", "const": "(UTC+01:00) Douala" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Gibraltar" }, "key": { "type": "string", "const": "(UTC+01:00) Gibraltar" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Kinshasa" }, "key": { "type": "string", "const": "(UTC+01:00) Kinshasa" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Lagos" }, "key": { "type": "string", "const": "(UTC+01:00) Lagos" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Libreville" }, "key": { "type": "string", "const": "(UTC+01:00) Libreville" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Ljubljana" }, "key": { "type": "string", "const": "(UTC+01:00) Ljubljana" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Arctic/Longyearbyen" }, "key": { "type": "string", "const": "(UTC+01:00) Longyearbyen" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Luanda" }, "key": { "type": "string", "const": "(UTC+01:00) Luanda" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Luxembourg" }, "key": { "type": "string", "const": "(UTC+01:00) Luxembourg" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Madrid" }, "key": { "type": "string", "const": "(UTC+01:00) Madrid" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Malabo" }, "key": { "type": "string", "const": "(UTC+01:00) Malabo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Malta" }, "key": { "type": "string", "const": "(UTC+01:00) Malta" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Monaco" }, "key": { "type": "string", "const": "(UTC+01:00) Monaco" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Ndjamena" }, "key": { "type": "string", "const": "(UTC+01:00) Ndjamena" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Niamey" }, "key": { "type": "string", "const": "(UTC+01:00) Niamey" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Oslo" }, "key": { "type": "string", "const": "(UTC+01:00) Oslo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Paris" }, "key": { "type": "string", "const": "(UTC+01:00) Paris" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Podgorica" }, "key": { "type": "string", "const": "(UTC+01:00) Podgorica" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Porto-Novo" }, "key": { "type": "string", "const": "(UTC+01:00) Porto-Novo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Prague" }, "key": { "type": "string", "const": "(UTC+01:00) Prague" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Rome" }, "key": { "type": "string", "const": "(UTC+01:00) Rome" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/San_Marino" }, "key": { "type": "string", "const": "(UTC+01:00) San Marino" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Sarajevo" }, "key": { "type": "string", "const": "(UTC+01:00) Sarajevo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Skopje" }, "key": { "type": "string", "const": "(UTC+01:00) Skopje" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Stockholm" }, "key": { "type": "string", "const": "(UTC+01:00) Stockholm" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Tirane" }, "key": { "type": "string", "const": "(UTC+01:00) Tirane" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Tripoli" }, "key": { "type": "string", "const": "(UTC+01:00) Tripoli" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Tunis" }, "key": { "type": "string", "const": "(UTC+01:00) Tunis" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Vaduz" }, "key": { "type": "string", "const": "(UTC+01:00) Vaduz" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Vatican" }, "key": { "type": "string", "const": "(UTC+01:00) Vatican" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Vienna" }, "key": { "type": "string", "const": "(UTC+01:00) Vienna" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Warsaw" }, "key": { "type": "string", "const": "(UTC+01:00) Warsaw" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Windhoek" }, "key": { "type": "string", "const": "(UTC+01:00) Windhoek" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Zagreb" }, "key": { "type": "string", "const": "(UTC+01:00) Zagreb" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Zurich" }, "key": { "type": "string", "const": "(UTC+01:00) Zurich" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Athens" }, "key": { "type": "string", "const": "(UTC+02:00) Athens" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Beirut" }, "key": { "type": "string", "const": "(UTC+02:00) Beirut" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Blantyre" }, "key": { "type": "string", "const": "(UTC+02:00) Blantyre" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Bucharest" }, "key": { "type": "string", "const": "(UTC+02:00) Bucharest" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Bujumbura" }, "key": { "type": "string", "const": "(UTC+02:00) Bujumbura" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Cairo" }, "key": { "type": "string", "const": "(UTC+02:00) Cairo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Chisinau" }, "key": { "type": "string", "const": "(UTC+02:00) Chisinau" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Damascus" }, "key": { "type": "string", "const": "(UTC+02:00) Damascus" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Gaborone" }, "key": { "type": "string", "const": "(UTC+02:00) Gaborone" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Gaza" }, "key": { "type": "string", "const": "(UTC+02:00) Gaza" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Harare" }, "key": { "type": "string", "const": "(UTC+02:00) Harare" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Hebron" }, "key": { "type": "string", "const": "(UTC+02:00) Hebron" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Helsinki" }, "key": { "type": "string", "const": "(UTC+02:00) Helsinki" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Istanbul" }, "key": { "type": "string", "const": "(UTC+02:00) Istanbul" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Jerusalem" }, "key": { "type": "string", "const": "(UTC+02:00) Jerusalem" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Johannesburg" }, "key": { "type": "string", "const": "(UTC+02:00) Johannesburg" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Kiev" }, "key": { "type": "string", "const": "(UTC+02:00) Kiev" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Kigali" }, "key": { "type": "string", "const": "(UTC+02:00) Kigali" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Lubumbashi" }, "key": { "type": "string", "const": "(UTC+02:00) Lubumbashi" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Lusaka" }, "key": { "type": "string", "const": "(UTC+02:00) Lusaka" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Maputo" }, "key": { "type": "string", "const": "(UTC+02:00) Maputo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Mariehamn" }, "key": { "type": "string", "const": "(UTC+02:00) Mariehamn" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Maseru" }, "key": { "type": "string", "const": "(UTC+02:00) Maseru" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Mbabane" }, "key": { "type": "string", "const": "(UTC+02:00) Mbabane" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Nicosia" }, "key": { "type": "string", "const": "(UTC+02:00) Nicosia" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Riga" }, "key": { "type": "string", "const": "(UTC+02:00) Riga" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Simferopol" }, "key": { "type": "string", "const": "(UTC+02:00) Simferopol" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Sofia" }, "key": { "type": "string", "const": "(UTC+02:00) Sofia" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Tallinn" }, "key": { "type": "string", "const": "(UTC+02:00) Tallinn" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Uzhgorod" }, "key": { "type": "string", "const": "(UTC+02:00) Uzhgorod" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Vilnius" }, "key": { "type": "string", "const": "(UTC+02:00) Vilnius" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Zaporozhye" }, "key": { "type": "string", "const": "(UTC+02:00) Zaporozhye" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Addis_Ababa" }, "key": { "type": "string", "const": "(UTC+03:00) Addis Ababa" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Aden" }, "key": { "type": "string", "const": "(UTC+03:00) Aden" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Amman" }, "key": { "type": "string", "const": "(UTC+03:00) Amman" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Indian/Antananarivo" }, "key": { "type": "string", "const": "(UTC+03:00) Antananarivo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Asmara" }, "key": { "type": "string", "const": "(UTC+03:00) Asmara" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Baghdad" }, "key": { "type": "string", "const": "(UTC+03:00) Baghdad" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Bahrain" }, "key": { "type": "string", "const": "(UTC+03:00) Bahrain" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Indian/Comoro" }, "key": { "type": "string", "const": "(UTC+03:00) Comoro" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Dar_es_Salaam" }, "key": { "type": "string", "const": "(UTC+03:00) Dar es Salaam" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Djibouti" }, "key": { "type": "string", "const": "(UTC+03:00) Djibouti" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Juba" }, "key": { "type": "string", "const": "(UTC+03:00) Juba" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Kaliningrad" }, "key": { "type": "string", "const": "(UTC+03:00) Kaliningrad" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Kampala" }, "key": { "type": "string", "const": "(UTC+03:00) Kampala" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Khartoum" }, "key": { "type": "string", "const": "(UTC+03:00) Khartoum" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Kuwait" }, "key": { "type": "string", "const": "(UTC+03:00) Kuwait" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Indian/Mayotte" }, "key": { "type": "string", "const": "(UTC+03:00) Mayotte" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Minsk" }, "key": { "type": "string", "const": "(UTC+03:00) Minsk" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Mogadishu" }, "key": { "type": "string", "const": "(UTC+03:00) Mogadishu" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Africa/Nairobi" }, "key": { "type": "string", "const": "(UTC+03:00) Nairobi" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Qatar" }, "key": { "type": "string", "const": "(UTC+03:00) Qatar" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Riyadh" }, "key": { "type": "string", "const": "(UTC+03:00) Riyadh" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Antarctica/Syowa" }, "key": { "type": "string", "const": "(UTC+03:00) Syowa" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Tehran" }, "key": { "type": "string", "const": "(UTC+03:30) Tehran" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Baku" }, "key": { "type": "string", "const": "(UTC+04:00) Baku" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Dubai" }, "key": { "type": "string", "const": "(UTC+04:00) Dubai" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Indian/Mahe" }, "key": { "type": "string", "const": "(UTC+04:00) Mahe" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Indian/Mauritius" }, "key": { "type": "string", "const": "(UTC+04:00) Mauritius" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Moscow" }, "key": { "type": "string", "const": "(UTC+04:00) Moscow" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Muscat" }, "key": { "type": "string", "const": "(UTC+04:00) Muscat" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Indian/Reunion" }, "key": { "type": "string", "const": "(UTC+04:00) Reunion" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Samara" }, "key": { "type": "string", "const": "(UTC+04:00) Samara" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Tbilisi" }, "key": { "type": "string", "const": "(UTC+04:00) Tbilisi" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Europe/Volgograd" }, "key": { "type": "string", "const": "(UTC+04:00) Volgograd" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Yerevan" }, "key": { "type": "string", "const": "(UTC+04:00) Yerevan" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Kabul" }, "key": { "type": "string", "const": "(UTC+04:30) Kabul" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Aqtau" }, "key": { "type": "string", "const": "(UTC+05:00) Aqtau" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Aqtobe" }, "key": { "type": "string", "const": "(UTC+05:00) Aqtobe" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Ashgabat" }, "key": { "type": "string", "const": "(UTC+05:00) Ashgabat" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Dushanbe" }, "key": { "type": "string", "const": "(UTC+05:00) Dushanbe" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Karachi" }, "key": { "type": "string", "const": "(UTC+05:00) Karachi" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Indian/Kerguelen" }, "key": { "type": "string", "const": "(UTC+05:00) Kerguelen" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Indian/Maldives" }, "key": { "type": "string", "const": "(UTC+05:00) Maldives" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Antarctica/Mawson" }, "key": { "type": "string", "const": "(UTC+05:00) Mawson" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Oral" }, "key": { "type": "string", "const": "(UTC+05:00) Oral" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Samarkand" }, "key": { "type": "string", "const": "(UTC+05:00) Samarkand" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Tashkent" }, "key": { "type": "string", "const": "(UTC+05:00) Tashkent" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Colombo" }, "key": { "type": "string", "const": "(UTC+05:30) Colombo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Kolkata" }, "key": { "type": "string", "const": "(UTC+05:30) Kolkata" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Kathmandu" }, "key": { "type": "string", "const": "(UTC+05:45) Kathmandu" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Almaty" }, "key": { "type": "string", "const": "(UTC+06:00) Almaty" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Bishkek" }, "key": { "type": "string", "const": "(UTC+06:00) Bishkek" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Indian/Chagos" }, "key": { "type": "string", "const": "(UTC+06:00) Chagos" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Dhaka" }, "key": { "type": "string", "const": "(UTC+06:00) Dhaka" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Qyzylorda" }, "key": { "type": "string", "const": "(UTC+06:00) Qyzylorda" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Thimphu" }, "key": { "type": "string", "const": "(UTC+06:00) Thimphu" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Antarctica/Vostok" }, "key": { "type": "string", "const": "(UTC+06:00) Vostok" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Yekaterinburg" }, "key": { "type": "string", "const": "(UTC+06:00) Yekaterinburg" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Indian/Cocos" }, "key": { "type": "string", "const": "(UTC+06:30) Cocos" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Rangoon" }, "key": { "type": "string", "const": "(UTC+06:30) Rangoon" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Bangkok" }, "key": { "type": "string", "const": "(UTC+07:00) Bangkok" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Indian/Christmas" }, "key": { "type": "string", "const": "(UTC+07:00) Christmas" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Antarctica/Davis" }, "key": { "type": "string", "const": "(UTC+07:00) Davis" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Ho_Chi_Minh" }, "key": { "type": "string", "const": "(UTC+07:00) Ho Chi Minh" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Hovd" }, "key": { "type": "string", "const": "(UTC+07:00) Hovd" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Jakarta" }, "key": { "type": "string", "const": "(UTC+07:00) Jakarta" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Novokuznetsk" }, "key": { "type": "string", "const": "(UTC+07:00) Novokuznetsk" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Novosibirsk" }, "key": { "type": "string", "const": "(UTC+07:00) Novosibirsk" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Omsk" }, "key": { "type": "string", "const": "(UTC+07:00) Omsk" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Phnom_Penh" }, "key": { "type": "string", "const": "(UTC+07:00) Phnom Penh" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Pontianak" }, "key": { "type": "string", "const": "(UTC+07:00) Pontianak" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Vientiane" }, "key": { "type": "string", "const": "(UTC+07:00) Vientiane" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Brunei" }, "key": { "type": "string", "const": "(UTC+08:00) Brunei" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Antarctica/Casey" }, "key": { "type": "string", "const": "(UTC+08:00) Casey" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Choibalsan" }, "key": { "type": "string", "const": "(UTC+08:00) Choibalsan" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Chongqing" }, "key": { "type": "string", "const": "(UTC+08:00) Chongqing" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Harbin" }, "key": { "type": "string", "const": "(UTC+08:00) Harbin" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Hong_Kong" }, "key": { "type": "string", "const": "(UTC+08:00) Hong Kong" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Kashgar" }, "key": { "type": "string", "const": "(UTC+08:00) Kashgar" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Krasnoyarsk" }, "key": { "type": "string", "const": "(UTC+08:00) Krasnoyarsk" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Kuala_Lumpur" }, "key": { "type": "string", "const": "(UTC+08:00) Kuala Lumpur" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Kuching" }, "key": { "type": "string", "const": "(UTC+08:00) Kuching" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Macau" }, "key": { "type": "string", "const": "(UTC+08:00) Macau" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Makassar" }, "key": { "type": "string", "const": "(UTC+08:00) Makassar" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Manila" }, "key": { "type": "string", "const": "(UTC+08:00) Manila" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Australia/Perth" }, "key": { "type": "string", "const": "(UTC+08:00) Perth" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Shanghai" }, "key": { "type": "string", "const": "(UTC+08:00) Shanghai" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Singapore" }, "key": { "type": "string", "const": "(UTC+08:00) Singapore" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Taipei" }, "key": { "type": "string", "const": "(UTC+08:00) Taipei" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Ulaanbaatar" }, "key": { "type": "string", "const": "(UTC+08:00) Ulaanbaatar" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Urumqi" }, "key": { "type": "string", "const": "(UTC+08:00) Urumqi" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Australia/Eucla" }, "key": { "type": "string", "const": "(UTC+08:45) Eucla" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Dili" }, "key": { "type": "string", "const": "(UTC+09:00) Dili" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Irkutsk" }, "key": { "type": "string", "const": "(UTC+09:00) Irkutsk" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Jayapura" }, "key": { "type": "string", "const": "(UTC+09:00) Jayapura" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Palau" }, "key": { "type": "string", "const": "(UTC+09:00) Palau" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Pyongyang" }, "key": { "type": "string", "const": "(UTC+09:00) Pyongyang" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Seoul" }, "key": { "type": "string", "const": "(UTC+09:00) Seoul" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Tokyo" }, "key": { "type": "string", "const": "(UTC+09:00) Tokyo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Australia/Adelaide" }, "key": { "type": "string", "const": "(UTC+09:30) Adelaide" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Australia/Broken_Hill" }, "key": { "type": "string", "const": "(UTC+09:30) Broken Hill" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Australia/Darwin" }, "key": { "type": "string", "const": "(UTC+09:30) Darwin" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Australia/Brisbane" }, "key": { "type": "string", "const": "(UTC+10:00) Brisbane" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Chuuk" }, "key": { "type": "string", "const": "(UTC+10:00) Chuuk" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Australia/Currie" }, "key": { "type": "string", "const": "(UTC+10:00) Currie" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Antarctica/DumontDUrville" }, "key": { "type": "string", "const": "(UTC+10:00) DumontDUrville" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Guam" }, "key": { "type": "string", "const": "(UTC+10:00) Guam" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Australia/Hobart" }, "key": { "type": "string", "const": "(UTC+10:00) Hobart" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Khandyga" }, "key": { "type": "string", "const": "(UTC+10:00) Khandyga" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Australia/Lindeman" }, "key": { "type": "string", "const": "(UTC+10:00) Lindeman" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Australia/Melbourne" }, "key": { "type": "string", "const": "(UTC+10:00) Melbourne" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Port_Moresby" }, "key": { "type": "string", "const": "(UTC+10:00) Port Moresby" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Saipan" }, "key": { "type": "string", "const": "(UTC+10:00) Saipan" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Australia/Sydney" }, "key": { "type": "string", "const": "(UTC+10:00) Sydney" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Yakutsk" }, "key": { "type": "string", "const": "(UTC+10:00) Yakutsk" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Australia/Lord_Howe" }, "key": { "type": "string", "const": "(UTC+10:30) Lord Howe" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Efate" }, "key": { "type": "string", "const": "(UTC+11:00) Efate" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Guadalcanal" }, "key": { "type": "string", "const": "(UTC+11:00) Guadalcanal" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Kosrae" }, "key": { "type": "string", "const": "(UTC+11:00) Kosrae" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Antarctica/Macquarie" }, "key": { "type": "string", "const": "(UTC+11:00) Macquarie" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Noumea" }, "key": { "type": "string", "const": "(UTC+11:00) Noumea" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Pohnpei" }, "key": { "type": "string", "const": "(UTC+11:00) Pohnpei" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Sakhalin" }, "key": { "type": "string", "const": "(UTC+11:00) Sakhalin" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Ust-Nera" }, "key": { "type": "string", "const": "(UTC+11:00) Ust-Nera" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Vladivostok" }, "key": { "type": "string", "const": "(UTC+11:00) Vladivostok" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Norfolk" }, "key": { "type": "string", "const": "(UTC+11:30) Norfolk" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Anadyr" }, "key": { "type": "string", "const": "(UTC+12:00) Anadyr" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Auckland" }, "key": { "type": "string", "const": "(UTC+12:00) Auckland" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Fiji" }, "key": { "type": "string", "const": "(UTC+12:00) Fiji" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Funafuti" }, "key": { "type": "string", "const": "(UTC+12:00) Funafuti" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Kamchatka" }, "key": { "type": "string", "const": "(UTC+12:00) Kamchatka" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Kwajalein" }, "key": { "type": "string", "const": "(UTC+12:00) Kwajalein" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Asia/Magadan" }, "key": { "type": "string", "const": "(UTC+12:00) Magadan" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Majuro" }, "key": { "type": "string", "const": "(UTC+12:00) Majuro" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Antarctica/McMurdo" }, "key": { "type": "string", "const": "(UTC+12:00) McMurdo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Nauru" }, "key": { "type": "string", "const": "(UTC+12:00) Nauru" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Antarctica/South_Pole" }, "key": { "type": "string", "const": "(UTC+12:00) South Pole" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Tarawa" }, "key": { "type": "string", "const": "(UTC+12:00) Tarawa" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Wake" }, "key": { "type": "string", "const": "(UTC+12:00) Wake" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Wallis" }, "key": { "type": "string", "const": "(UTC+12:00) Wallis" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Chatham" }, "key": { "type": "string", "const": "(UTC+12:45) Chatham" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Apia" }, "key": { "type": "string", "const": "(UTC+13:00) Apia" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Enderbury" }, "key": { "type": "string", "const": "(UTC+13:00) Enderbury" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Fakaofo" }, "key": { "type": "string", "const": "(UTC+13:00) Fakaofo" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Tongatapu" }, "key": { "type": "string", "const": "(UTC+13:00) Tongatapu" } }, "required": [ "value", "key" ] }, { "type": "object", "properties": { "value": { "type": "string", "const": "Pacific/Kiritimati" }, "key": { "type": "string", "const": "(UTC+14:00) Kiritimati" } }, "required": [ "value", "key" ] } ], "minItems": 419, "maxItems": 419, "additionalItems": false } }, "required": [ "time_zones" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/date/formats": { "get": { "operationId": "formats.dateFormats", "tags": [ "Formats" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "date_formats": { "type": "array", "items": { "type": "object", "properties": { "display_date": { "type": "string" }, "carbon_format_value": { "type": "string" }, "moment_format_value": { "type": "string" } }, "required": [ "display_date", "carbon_format_value", "moment_format_value" ] } } }, "required": [ "date_formats" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/time/formats": { "get": { "operationId": "formats.timeFormats", "tags": [ "Formats" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "time_formats": { "type": "array", "items": { "type": "object", "properties": { "display_time": { "type": "string" }, "carbon_format_value": { "type": "string" }, "moment_format_value": { "type": "string" } }, "required": [ "display_time", "carbon_format_value", "moment_format_value" ] } } }, "required": [ "time_formats" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/ai/generate": { "post": { "operationId": "ai.generation", "description": "Stateless \u2014 nothing is persisted. Each call is fully self-contained.\nRate-limited via the shared 'ai' limiter so a stuck client can't\nhammer the provider.", "summary": "One-shot text generation for the WYSIWYG popup", "tags": [ "Generation" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "prompt": { "type": "string", "maxLength": 4000 }, "context": { "type": [ "string", "null" ], "maxLength": 20000 } }, "required": [ "prompt" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "text": { "type": "string" } }, "required": [ "text" ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/helloworlds": { "get": { "operationId": "helloworld.index", "summary": "Display a listing of the resource", "tags": [ "HelloWorld" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "string" } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "helloworld.store", "summary": "Store a newly created resource in storage", "tags": [ "HelloWorld" ], "responses": { "200": { "description": "" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/helloworlds/{id}": { "get": { "operationId": "helloworld.show", "summary": "Show the specified resource", "tags": [ "HelloWorld" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "string" } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "helloworld.update", "summary": "Update the specified resource in storage", "tags": [ "HelloWorld" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "delete": { "operationId": "helloworld.destroy", "summary": "Remove the specified resource from storage", "tags": [ "HelloWorld" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/company-invitations": { "get": { "operationId": "company-invitations.index", "tags": [ "Invitation" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "invitations": { "type": "array", "items": { "$ref": "#/components/schemas/CompanyInvitationResource" } } }, "required": [ "invitations" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "company-invitations.store", "tags": [ "Invitation" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "email": { "type": "string", "format": "email" }, "role_id": { "type": "integer" } }, "required": [ "email", "role_id" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "invitation": { "$ref": "#/components/schemas/CompanyInvitationResource" } }, "required": [ "success", "invitation" ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/company-invitations/{companyInvitation}": { "delete": { "operationId": "company-invitations.destroy", "tags": [ "Invitation" ], "parameters": [ { "name": "companyInvitation", "in": "path", "required": true, "description": "The company invitation ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "message": { "type": "string", "const": "Only pending invitations can be cancelled." } }, "required": [ "success", "message" ] } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/invitations/{token}/details": { "get": { "operationId": "invitationRegistration.details", "summary": "Get invitation details by token (public endpoint for registration page)", "tags": [ "InvitationRegistration" ], "parameters": [ { "name": "token", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "email": { "type": "string" }, "company_name": { "type": "string" }, "role_name": { "type": [ "string", "null" ] } }, "required": [ "email", "company_name", "role_name" ] } } } }, "404": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string", "const": "Invitation not found or expired." } }, "required": [ "error" ] } } } } } } }, "/auth/register-with-invitation": { "post": { "operationId": "invitationRegistration.register", "summary": "Register a new user and auto-accept the invitation", "tags": [ "InvitationRegistration" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 255 }, "email": { "type": "string", "format": "email", "maxLength": 255 }, "password": { "type": "string", "minLength": 8 }, "invitation_token": { "type": "string" }, "password_confirmation": { "type": "string", "minLength": 8 } }, "required": [ "name", "email", "password", "invitation_token", "password_confirmation" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "type": { "type": "string", "const": "Bearer" }, "token": { "type": "string" } }, "required": [ "type", "token" ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/invitations/pending": { "get": { "operationId": "invitationResponse.pending", "summary": "Get pending invitations for the authenticated user", "tags": [ "InvitationResponse" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "invitations": { "type": "array", "items": { "$ref": "#/components/schemas/CompanyInvitationResource" } } }, "required": [ "invitations" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/invitations/{invitation}/accept": { "post": { "operationId": "invitationResponse.accept", "summary": "Accept a company invitation", "tags": [ "InvitationResponse" ], "parameters": [ { "name": "invitation", "in": "path", "required": true, "description": "The invitation token", "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/invitations/{invitation}/decline": { "post": { "operationId": "invitationResponse.decline", "summary": "Decline a company invitation", "tags": [ "InvitationResponse" ], "parameters": [ { "name": "invitation", "in": "path", "required": true, "description": "The invitation token", "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/invoices/templates": { "get": { "operationId": "invoice.invoiceTemplates", "summary": "Handle the incoming request", "tags": [ "InvoiceTemplates" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "invoiceTemplates": { "type": "array", "items": {} } }, "required": [ "invoiceTemplates" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/invoices/{invoice}/send/preview": { "get": { "operationId": "invoices.sendPreview", "tags": [ "Invoices" ], "parameters": [ { "name": "invoice", "in": "path", "required": true, "description": "The invoice ID", "schema": { "type": "integer" } }, { "name": "body", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "subject", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "from", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "to", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "cc", "in": "query", "schema": { "type": [ "string", "null" ] } }, { "name": "bcc", "in": "query", "schema": { "type": [ "string", "null" ] } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/invoices/{invoice}/send": { "post": { "operationId": "invoices.send", "tags": [ "Invoices" ], "parameters": [ { "name": "invoice", "in": "path", "required": true, "description": "The invoice ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SendInvoiceRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/invoices/{invoice}/clone": { "post": { "operationId": "invoices.clone", "tags": [ "Invoices" ], "parameters": [ { "name": "invoice", "in": "path", "required": true, "description": "The invoice ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`InvoiceResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/InvoiceResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/invoices/{invoice}/convert-to-estimate": { "post": { "operationId": "invoices.convertToEstimate", "tags": [ "Invoices" ], "parameters": [ { "name": "invoice", "in": "path", "required": true, "description": "The invoice ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`EstimateResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/EstimateResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/invoices/{invoice}/status": { "post": { "operationId": "invoices.changeStatus", "tags": [ "Invoices" ], "parameters": [ { "name": "invoice", "in": "path", "required": true, "description": "The invoice ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/invoices/delete": { "post": { "operationId": "invoices.delete", "summary": "delete the specified resources in storage", "tags": [ "Invoices" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteInvoiceRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/invoices": { "get": { "operationId": "invoices.index", "summary": "Display a listing of the resource", "tags": [ "Invoices" ], "parameters": [ { "name": "limit", "in": "query", "schema": { "type": "string", "default": 10 } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `InvoiceResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/InvoiceResource" } }, "meta": { "type": "object", "properties": { "invoice_total_count": { "type": "integer", "minimum": 0 } }, "required": [ "invoice_total_count" ] } }, "required": [ "data", "meta" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "invoices.store", "summary": "Store a newly created resource in storage", "tags": [ "Invoices" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InvoicesRequest" } } } }, "responses": { "200": { "description": "`InvoiceResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/InvoiceResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/invoices/{invoice}": { "get": { "operationId": "invoices.show", "summary": "Display the specified resource", "tags": [ "Invoices" ], "parameters": [ { "name": "invoice", "in": "path", "required": true, "description": "The invoice ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`InvoiceResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/InvoiceResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "invoices.update", "summary": "Update the specified resource in storage", "tags": [ "Invoices" ], "parameters": [ { "name": "invoice", "in": "path", "required": true, "description": "The invoice ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`InvoiceResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/InvoiceResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "422": { "$ref": "#/components/responses/ValidationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/{company}/customer/invoices": { "get": { "operationId": "customerPortal.invoice.invoices.index", "summary": "Display a listing of the resource", "tags": [ "Invoices" ], "parameters": [ { "name": "company", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `App.Http.Resources.Customer.InvoiceResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/App.Http.Resources.Customer.InvoiceResource" } }, "meta": { "type": "object", "properties": { "invoiceTotalCount": { "type": "integer", "minimum": 0 } }, "required": [ "invoiceTotalCount" ] } }, "required": [ "data", "meta" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/{company}/customer/invoices/{id}": { "get": { "operationId": "customerPortal.invoice.invoices.show", "tags": [ "Invoices" ], "parameters": [ { "name": "company", "in": "path", "required": true, "description": "The company slug", "schema": { "type": [ "string", "null" ] } }, { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "`App.Http.Resources.Customer.InvoiceResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/App.Http.Resources.Customer.InvoiceResource" } }, "required": [ "data" ] } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/items/delete": { "post": { "operationId": "items.delete", "summary": "Delete a list of existing Items", "tags": [ "Items" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteItemsRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/items": { "get": { "operationId": "items.index", "summary": "Retrieve a list of existing Items", "tags": [ "Items" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `ItemResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/ItemResource" } }, "meta": { "type": "object", "properties": { "tax_types": { "type": "array", "items": { "$ref": "#/components/schemas/TaxType" } }, "item_total_count": { "type": "integer", "minimum": 0 } }, "required": [ "tax_types", "item_total_count" ] } }, "required": [ "data", "meta" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "items.store", "summary": "Create Item", "tags": [ "Items" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ItemsRequest" } } } }, "responses": { "200": { "description": "`ItemResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ItemResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/items/{item}": { "get": { "operationId": "items.show", "summary": "get an existing Item", "tags": [ "Items" ], "parameters": [ { "name": "item", "in": "path", "required": true, "description": "The item ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`ItemResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ItemResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "items.update", "summary": "Update an existing Item", "tags": [ "Items" ], "parameters": [ { "name": "item", "in": "path", "required": true, "description": "The item ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ItemsRequest" } } } }, "responses": { "200": { "description": "`ItemResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ItemResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/installation/languages": { "get": { "operationId": "languages.languages", "summary": "Display the languages page", "tags": [ "Languages" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "languages": { "type": "string" } }, "required": [ "languages" ] } } } } } } }, "/installation/login": { "post": { "operationId": "setup.login", "tags": [ "Login" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "type": { "type": "string", "const": "Bearer" }, "token": { "type": "string" }, "user": { "anyOf": [ { "$ref": "#/components/schemas/User" }, { "type": "null" } ] }, "company": { "allOf": [ { "$ref": "#/components/schemas/Company" }, { "type": "string" } ] } }, "required": [ "success", "type", "token", "user", "company" ] } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "const": "Super admin company not found." } }, "required": [ "message" ] } } } }, "404": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "const": "Super admin user not found." } }, "required": [ "message" ] } } } } } } }, "/mail/drivers": { "get": { "operationId": "mailConfiguration.getMailDrivers", "summary": "Return the available mail drivers", "tags": [ "MailConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": {} } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/mail/config": { "get": { "operationId": "mailConfiguration.getMailEnvironment", "summary": "Return the mail environment variables", "tags": [ "MailConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": {} } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "mailConfiguration.saveMailEnvironment", "summary": "Save the mail environment variables", "tags": [ "MailConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MailEnvironmentRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "string", "const": "mail_variables_save_successfully" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/mail/test": { "post": { "operationId": "mailConfiguration.testEmailConfig", "summary": "Test the email configuration", "tags": [ "MailConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "to": { "type": "string", "format": "email" }, "subject": { "type": "string" }, "message": { "type": "string" } }, "required": [ "to", "subject", "message" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "422": { "$ref": "#/components/responses/ValidationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/members/delete": { "post": { "operationId": "members.delete", "summary": "Display a listing of the resource", "tags": [ "Members" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteMemberRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/members": { "get": { "operationId": "members.index", "summary": "Display a listing of the resource", "tags": [ "Members" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Paginated set of `UserResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/UserResource" } }, "links": { "type": "object", "properties": { "first": { "type": [ "string", "null" ] }, "last": { "type": [ "string", "null" ] }, "prev": { "type": [ "string", "null" ] }, "next": { "type": [ "string", "null" ] } }, "required": [ "first", "last", "prev", "next" ] }, "meta": { "type": "object", "properties": { "current_page": { "type": "integer", "minimum": 1 }, "from": { "type": [ "integer", "null" ], "minimum": 1 }, "last_page": { "type": "integer", "minimum": 1 }, "links": { "type": "array", "description": "Generated paginator links.", "items": { "type": "object", "properties": { "url": { "type": [ "string", "null" ] }, "label": { "type": "string" }, "active": { "type": "boolean" } }, "required": [ "url", "label", "active" ] } }, "path": { "type": [ "string", "null" ], "description": "Base path for paginator generated URLs." }, "per_page": { "type": "integer", "description": "Number of items shown per page.", "minimum": 0 }, "to": { "type": [ "integer", "null" ], "description": "Number of the last item in the slice.", "minimum": 1 }, "total": { "type": "integer", "description": "Total number of items being paginated.", "minimum": 0 }, "user_total_count": { "type": "integer", "minimum": 0 } }, "required": [ "current_page", "from", "last_page", "links", "path", "per_page", "to", "total", "user_total_count" ] } }, "required": [ "data", "links", "meta" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "members.store", "summary": "Store a newly created resource in storage", "tags": [ "Members" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MemberRequest" } } } }, "responses": { "200": { "description": "`UserResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/UserResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/members/{member}": { "get": { "operationId": "members.show", "summary": "Display the specified resource", "tags": [ "Members" ], "parameters": [ { "name": "member", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`UserResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/UserResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "members.update", "summary": "Update the specified resource in storage", "tags": [ "Members" ], "parameters": [ { "name": "member", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MemberRequest" } } } }, "responses": { "200": { "description": "`UserResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/UserResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/modules/download": { "post": { "operationId": "moduleInstallation.download", "tags": [ "ModuleInstallation" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "success": { "type": "boolean" }, "path": { "type": "string" } }, "required": [ "success", "path" ] }, { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string", "const": "Checksum verification failed" } }, "required": [ "success", "error" ] }, { "type": "boolean" }, { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "anyOf": [ { "type": "string" }, { "type": "string", "enum": [ "Module download failed" ] } ] } }, "required": [ "success", "error" ] }, { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string", "const": "Download Exception" } }, "required": [ "success", "error" ] }, { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string", "const": "Download Exception" }, "data": { "type": "object", "properties": { "path": { "type": "null" } }, "required": [ "path" ] } }, "required": [ "success", "error", "data" ] } ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/modules/upload": { "post": { "operationId": "moduleInstallation.upload", "tags": [ "ModuleInstallation" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/UploadModuleRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "string" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/modules/unzip": { "post": { "operationId": "moduleInstallation.unzip", "tags": [ "ModuleInstallation" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnzipUpdateRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "path": { "type": "string" } }, "required": [ "success", "path" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/modules/copy": { "post": { "operationId": "moduleInstallation.copy", "tags": [ "ModuleInstallation" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/modules/complete": { "post": { "operationId": "moduleInstallation.complete", "tags": [ "ModuleInstallation" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/modules/{slug}/settings": { "get": { "operationId": "moduleSettings.show", "tags": [ "ModuleSettings" ], "parameters": [ { "name": "slug", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "schema": { "type": "object", "properties": { "sections": { "type": "array", "items": { "type": "object", "additionalProperties": {} } } }, "required": [ "sections" ] }, "values": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": [ "schema", "values" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "moduleSettings.update", "tags": [ "ModuleSettings" ], "parameters": [ { "name": "slug", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "422": { "$ref": "#/components/responses/ValidationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/modules": { "get": { "operationId": "modules.index", "tags": [ "Modules" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `ModuleResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/ModuleResource" } } }, "required": [ "data" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string", "const": "marketplace_unavailable" } }, "required": [ "error" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/modules/check": { "get": { "operationId": "modules.checkToken", "tags": [ "Modules" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "error": { "type": "string", "const": "invalid_token" } }, "required": [ "error" ] }, { "type": [ "object", "null" ] } ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/modules/{module}": { "get": { "operationId": "modules.show", "tags": [ "Modules" ], "parameters": [ { "name": "module", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`ModuleResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ModuleResource" }, "meta": { "type": "object", "properties": { "modules": { "type": "array", "items": { "$ref": "#/components/schemas/ModuleResource" } } }, "required": [ "modules" ] } }, "required": [ "data", "meta" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string", "const": "marketplace_unavailable" } }, "required": [ "error" ] } } } }, "404": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string", "const": "not_found" } }, "required": [ "error" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/modules/{module}/enable": { "post": { "operationId": "modules.enable", "tags": [ "Modules" ], "parameters": [ { "name": "module", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/modules/{module}/disable": { "post": { "operationId": "modules.disable", "tags": [ "Modules" ], "parameters": [ { "name": "module", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/notes": { "get": { "operationId": "notes.index", "summary": "Display a listing of the resource", "tags": [ "Notes" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Paginated set of `NoteResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/NoteResource" } }, "links": { "type": "object", "properties": { "first": { "type": [ "string", "null" ] }, "last": { "type": [ "string", "null" ] }, "prev": { "type": [ "string", "null" ] }, "next": { "type": [ "string", "null" ] } }, "required": [ "first", "last", "prev", "next" ] }, "meta": { "type": "object", "properties": { "current_page": { "type": "integer", "minimum": 1 }, "from": { "type": [ "integer", "null" ], "minimum": 1 }, "last_page": { "type": "integer", "minimum": 1 }, "links": { "type": "array", "description": "Generated paginator links.", "items": { "type": "object", "properties": { "url": { "type": [ "string", "null" ] }, "label": { "type": "string" }, "active": { "type": "boolean" } }, "required": [ "url", "label", "active" ] } }, "path": { "type": [ "string", "null" ], "description": "Base path for paginator generated URLs." }, "per_page": { "type": "integer", "description": "Number of items shown per page.", "minimum": 0 }, "to": { "type": [ "integer", "null" ], "description": "Number of the last item in the slice.", "minimum": 1 }, "total": { "type": "integer", "description": "Total number of items being paginated.", "minimum": 0 } }, "required": [ "current_page", "from", "last_page", "links", "path", "per_page", "to", "total" ] } }, "required": [ "data", "links", "meta" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "notes.store", "summary": "Store a newly created resource in storage", "tags": [ "Notes" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotesRequest" } } } }, "responses": { "200": { "description": "`NoteResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/NoteResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/notes/{note}": { "get": { "operationId": "notes.show", "summary": "Display the specified resource", "tags": [ "Notes" ], "parameters": [ { "name": "note", "in": "path", "required": true, "description": "The note ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`NoteResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/NoteResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "notes.update", "summary": "Update the specified resource in storage", "tags": [ "Notes" ], "parameters": [ { "name": "note", "in": "path", "required": true, "description": "The note ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`NoteResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/NoteResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } }, "delete": { "operationId": "notes.destroy", "summary": "Remove the specified resource from storage", "tags": [ "Notes" ], "parameters": [ { "name": "note", "in": "path", "required": true, "description": "The note ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/installation/wizard-step": { "get": { "operationId": "onboardingWizard.getStep", "summary": "Handle the incoming request", "tags": [ "OnboardingWizard" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "profile_complete": { "type": "null" }, "profile_language": { "type": "null" } }, "required": [ "profile_complete", "profile_language" ] }, { "type": "object", "properties": { "profile_complete": { "type": "integer" }, "profile_language": { "type": "string", "const": "en" } }, "required": [ "profile_complete", "profile_language" ] } ] } } } } } }, "post": { "operationId": "onboardingWizard.updateStep", "tags": [ "OnboardingWizard" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "profile_complete": { "type": "null" } }, "required": [ "profile_complete" ] } } } } } } }, "/installation/wizard-language": { "post": { "operationId": "onboardingWizard.saveLanguage", "tags": [ "OnboardingWizard" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "profile_language": { "type": "null" } }, "required": [ "profile_language" ] } } } } } } }, "/pdf/drivers": { "get": { "operationId": "pDFConfiguration.getDrivers", "summary": "Returns the available drivers", "tags": [ "PDFConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "prefixItems": [ { "type": "string", "const": "dompdf" }, { "type": "string", "const": "gotenberg" } ], "minItems": 2, "maxItems": 2, "additionalItems": false } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/pdf/config": { "get": { "operationId": "pDFConfiguration.getEnvironment", "summary": "Return the PDF settings", "tags": [ "PDFConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "pdf_driver": { "type": "string" }, "gotenberg_host": { "type": "string" }, "gotenberg_margins": { "type": "string" }, "gotenberg_papersize": { "type": "string" } }, "required": [ "pdf_driver", "gotenberg_host", "gotenberg_margins", "gotenberg_papersize" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "pDFConfiguration.saveEnvironment", "summary": "Saves the settings", "tags": [ "PDFConfiguration" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PDFConfigurationRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "string", "const": "pdf_variables_save_successfully" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/{company}/customer/payment-method": { "get": { "operationId": "payment.paymentMethod", "summary": "Handle the incoming request", "tags": [ "PaymentMethod" ], "parameters": [ { "name": "company", "in": "path", "required": true, "description": "The company slug", "schema": { "type": [ "string", "null" ] } } ], "responses": { "200": { "description": "Array of `App.Http.Resources.Customer.PaymentMethodResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/App.Http.Resources.Customer.PaymentMethodResource" } } }, "required": [ "data" ] } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/payment-methods": { "get": { "operationId": "payment-methods.index", "summary": "Display a listing of the resource", "tags": [ "PaymentMethods" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `PaymentMethodResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentMethodResource" } } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "payment-methods.store", "summary": "Store a newly created resource in storage", "tags": [ "PaymentMethods" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaymentMethodRequest" } } } }, "responses": { "200": { "description": "`PaymentMethodResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/PaymentMethodResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/payment-methods/{paymentMethod}": { "get": { "operationId": "payment-methods.show", "summary": "Display the specified resource", "tags": [ "PaymentMethods" ], "parameters": [ { "name": "paymentMethod", "in": "path", "required": true, "description": "The payment method ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`PaymentMethodResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/PaymentMethodResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "payment-methods.update", "summary": "Update the specified resource in storage", "tags": [ "PaymentMethods" ], "parameters": [ { "name": "paymentMethod", "in": "path", "required": true, "description": "The payment method ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaymentMethodRequest" } } } }, "responses": { "200": { "description": "`PaymentMethodResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/PaymentMethodResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } }, "delete": { "operationId": "payment-methods.destroy", "summary": "Remove the specified resource from storage", "tags": [ "PaymentMethods" ], "parameters": [ { "name": "paymentMethod", "in": "path", "required": true, "description": "The payment method ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/payments/{payment}/send/preview": { "get": { "operationId": "payments.sendPreview", "tags": [ "Payments" ], "parameters": [ { "name": "payment", "in": "path", "required": true, "description": "The payment ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/payments/{payment}/send": { "post": { "operationId": "payments.send", "tags": [ "Payments" ], "parameters": [ { "name": "payment", "in": "path", "required": true, "description": "The payment ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SendPaymentRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/payments/delete": { "post": { "operationId": "payments.delete", "tags": [ "Payments" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeletePaymentsRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/payments": { "get": { "operationId": "payments.index", "summary": "Display a listing of the resource", "tags": [ "Payments" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `PaymentResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentResource" } }, "meta": { "type": "object", "properties": { "payment_total_count": { "type": "integer", "minimum": 0 } }, "required": [ "payment_total_count" ] } }, "required": [ "data", "meta" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "payments.store", "summary": "Store a newly created resource in storage", "tags": [ "Payments" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaymentRequest" } } } }, "responses": { "200": { "description": "`PaymentResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/PaymentResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/payments/{payment}": { "get": { "operationId": "payments.show", "tags": [ "Payments" ], "parameters": [ { "name": "payment", "in": "path", "required": true, "description": "The payment ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`PaymentResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/PaymentResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "payments.update", "tags": [ "Payments" ], "parameters": [ { "name": "payment", "in": "path", "required": true, "description": "The payment ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`PaymentResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/PaymentResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/{company}/customer/payments": { "get": { "operationId": "customerPortal.payment.payments.index", "summary": "Display a listing of the resource", "tags": [ "Payments" ], "parameters": [ { "name": "company", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `App.Http.Resources.Customer.PaymentResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/App.Http.Resources.Customer.PaymentResource" } }, "meta": { "type": "object", "properties": { "paymentTotalCount": { "type": "integer", "minimum": 0 } }, "required": [ "paymentTotalCount" ] } }, "required": [ "data", "meta" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/{company}/customer/payments/{id}": { "get": { "operationId": "customerPortal.payment.payments.show", "summary": "Display the specified resource", "tags": [ "Payments" ], "parameters": [ { "name": "company", "in": "path", "required": true, "description": "The company slug", "schema": { "type": [ "string", "null" ] } }, { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/{company}/customer/profile": { "post": { "operationId": "profile.updateProfile", "tags": [ "Profile" ], "parameters": [ { "name": "company", "in": "path", "required": true, "description": "The company slug", "schema": { "type": [ "string", "null" ] } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/CustomerProfileRequest" } } } }, "responses": { "200": { "description": "`App.Http.Resources.Customer.CustomerResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CustomerResource" } }, "required": [ "data" ] } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/{company}/customer/me": { "get": { "operationId": "profile.getUser", "tags": [ "Profile" ], "parameters": [ { "name": "company", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "`App.Http.Resources.Customer.CustomerResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CustomerResource" } }, "required": [ "data" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/recurring-invoices/delete": { "post": { "operationId": "recurringInvoice.delete", "summary": "Remove the specified resource from storage", "tags": [ "RecurringInvoice" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/recurring-invoices": { "get": { "operationId": "recurring-invoices.index", "summary": "Display a listing of the resource", "tags": [ "RecurringInvoice" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `RecurringInvoiceResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/RecurringInvoiceResource" } }, "meta": { "type": "object", "properties": { "recurring_invoice_total_count": { "type": "integer", "minimum": 0 } }, "required": [ "recurring_invoice_total_count" ] } }, "required": [ "data", "meta" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "recurring-invoices.store", "summary": "Store a newly created resource in storage", "tags": [ "RecurringInvoice" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RecurringInvoiceRequest" } } } }, "responses": { "200": { "description": "`RecurringInvoiceResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/RecurringInvoiceResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/recurring-invoices/{recurringInvoice}": { "get": { "operationId": "recurring-invoices.show", "summary": "Display the specified resource", "tags": [ "RecurringInvoice" ], "parameters": [ { "name": "recurringInvoice", "in": "path", "required": true, "description": "The recurring invoice ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`RecurringInvoiceResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/RecurringInvoiceResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "recurring-invoices.update", "summary": "Update the specified resource in storage", "tags": [ "RecurringInvoice" ], "parameters": [ { "name": "recurringInvoice", "in": "path", "required": true, "description": "The recurring invoice ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RecurringInvoiceRequest" } } } }, "responses": { "200": { "description": "`RecurringInvoiceResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/RecurringInvoiceResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/recurring-invoice-frequency": { "get": { "operationId": "recurringInvoice.recurringInvoiceFrequency", "tags": [ "RecurringInvoiceFrequency" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "next_invoice_at": { "type": "string" } }, "required": [ "success", "next_invoice_at" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/installation/requirements": { "get": { "operationId": "requirements.requirements", "summary": "Display the requirements page", "tags": [ "Requirements" ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "phpSupportInfo": { "type": "string" }, "requirements": { "type": "string" } }, "required": [ "phpSupportInfo", "requirements" ] } } } } } } }, "/auth/reset/password": { "post": { "operationId": "company.auth.resetPassword.reset", "summary": "Reset the given user's password", "tags": [ "ResetPassword" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "token": { "type": "string" }, "email": { "type": "string", "format": "email" }, "password": { "type": "string" }, "password_confirmation": { "type": "string" } }, "required": [ "token", "email", "password", "password_confirmation" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "message": { "type": "string", "const": "Password reset successfully." } }, "required": [ "message" ] }, { "type": "object" } ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/{company}/customer/auth/reset/password": { "post": { "operationId": "customer.password.reset", "summary": "Reset the given user's password", "tags": [ "ResetPassword" ], "parameters": [ { "name": "company", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "token": { "type": "string" }, "email": { "type": "string", "format": "email" }, "password": { "type": "string" }, "password_confirmation": { "type": "string" } }, "required": [ "token", "email", "password", "password_confirmation" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "message": { "type": "string", "const": "Password reset successfully." } }, "required": [ "message" ] }, { "type": "object" } ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/roles": { "get": { "operationId": "roles.index", "summary": "Display a listing of the resource", "tags": [ "Roles" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `RoleResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/RoleResource" } } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "roles.store", "summary": "Store a newly created resource in storage", "tags": [ "Roles" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoleRequest" } } } }, "responses": { "200": { "description": "`RoleResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/RoleResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/roles/{role}": { "get": { "operationId": "roles.show", "summary": "Display the specified resource", "tags": [ "Roles" ], "parameters": [ { "name": "role", "in": "path", "required": true, "description": "The role ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`RoleResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/RoleResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "roles.update", "summary": "Update the specified resource in storage", "tags": [ "Roles" ], "parameters": [ { "name": "role", "in": "path", "required": true, "description": "The role ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`RoleResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/RoleResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } }, "delete": { "operationId": "roles.destroy", "summary": "Remove the specified resource from storage", "tags": [ "Roles" ], "parameters": [ { "name": "role", "in": "path", "required": true, "description": "The role ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/search": { "get": { "operationId": "general.search", "summary": "Handle the incoming request", "tags": [ "Search" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "customers": { "type": "object", "properties": { "current_page": { "type": "integer", "minimum": 1 }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/Customer" } }, "first_page_url": { "type": [ "string", "null" ] }, "from": { "type": [ "integer", "null" ], "minimum": 1 }, "last_page_url": { "type": [ "string", "null" ] }, "last_page": { "type": "integer", "minimum": 1 }, "links": { "type": "array", "description": "Generated paginator links.", "items": { "type": "object", "properties": { "url": { "type": [ "string", "null" ] }, "label": { "type": "string" }, "active": { "type": "boolean" } }, "required": [ "url", "label", "active" ] } }, "next_page_url": { "type": [ "string", "null" ] }, "path": { "type": [ "string", "null" ], "description": "Base path for paginator generated URLs." }, "per_page": { "type": "integer", "description": "Number of items shown per page.", "minimum": 0 }, "prev_page_url": { "type": [ "string", "null" ] }, "to": { "type": [ "integer", "null" ], "description": "Number of the last item in the slice.", "minimum": 1 }, "total": { "type": "integer", "description": "Total number of items being paginated.", "minimum": 0 } }, "required": [ "current_page", "data", "first_page_url", "from", "last_page_url", "last_page", "links", "next_page_url", "path", "per_page", "prev_page_url", "to", "total" ] }, "users": { "type": "object", "properties": { "current_page": { "type": "integer", "minimum": 1 }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/User" } }, "first_page_url": { "type": [ "string", "null" ] }, "from": { "type": [ "integer", "null" ], "minimum": 1 }, "last_page_url": { "type": [ "string", "null" ] }, "last_page": { "type": "integer", "minimum": 1 }, "links": { "type": "array", "description": "Generated paginator links.", "items": { "type": "object", "properties": { "url": { "type": [ "string", "null" ] }, "label": { "type": "string" }, "active": { "type": "boolean" } }, "required": [ "url", "label", "active" ] } }, "next_page_url": { "type": [ "string", "null" ] }, "path": { "type": [ "string", "null" ], "description": "Base path for paginator generated URLs." }, "per_page": { "type": "integer", "description": "Number of items shown per page.", "minimum": 0 }, "prev_page_url": { "type": [ "string", "null" ] }, "to": { "type": [ "integer", "null" ], "description": "Number of the last item in the slice.", "minimum": 1 }, "total": { "type": "integer", "description": "Total number of items being paginated.", "minimum": 0 } }, "required": [ "current_page", "data", "first_page_url", "from", "last_page_url", "last_page", "links", "next_page_url", "path", "per_page", "prev_page_url", "to", "total" ] } }, "required": [ "customers", "users" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/search/user": { "get": { "operationId": "search.users", "tags": [ "Search" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "users": { "type": "object", "properties": { "current_page": { "type": "integer", "minimum": 1 }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/User" } }, "first_page_url": { "type": [ "string", "null" ] }, "from": { "type": [ "integer", "null" ], "minimum": 1 }, "last_page_url": { "type": [ "string", "null" ] }, "last_page": { "type": "integer", "minimum": 1 }, "links": { "type": "array", "description": "Generated paginator links.", "items": { "type": "object", "properties": { "url": { "type": [ "string", "null" ] }, "label": { "type": "string" }, "active": { "type": "boolean" } }, "required": [ "url", "label", "active" ] } }, "next_page_url": { "type": [ "string", "null" ] }, "path": { "type": [ "string", "null" ], "description": "Base path for paginator generated URLs." }, "per_page": { "type": "integer", "description": "Number of items shown per page.", "minimum": 0 }, "prev_page_url": { "type": [ "string", "null" ] }, "to": { "type": [ "integer", "null" ], "description": "Number of the last item in the slice.", "minimum": 1 }, "total": { "type": "integer", "description": "Total number of items being paginated.", "minimum": 0 } }, "required": [ "current_page", "data", "first_page_url", "from", "last_page_url", "last_page", "links", "next_page_url", "path", "per_page", "prev_page_url", "to", "total" ] } }, "required": [ "users" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/next-number": { "get": { "operationId": "serialNumber.nextNumber", "tags": [ "SerialNumber" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "success": { "type": "boolean" }, "nextNumber": { "type": "string" } }, "required": [ "success", "nextNumber" ] }, { "type": "object", "properties": { "success": { "type": "boolean" }, "message": { "type": "string" } }, "required": [ "success", "message" ] }, { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/number-placeholders": { "get": { "operationId": "serialNumber.placeholders", "tags": [ "SerialNumber" ], "parameters": [ { "name": "format", "in": "query", "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "placeholders": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false } }, "required": [ "success", "placeholders" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/settings": { "get": { "operationId": "settings.show", "tags": [ "Settings" ], "parameters": [ { "name": "key", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "prefixItems": [ { "type": "null" } ], "minItems": 1, "maxItems": 1, "additionalItems": false } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } }, "post": { "operationId": "settings.update", "tags": [ "Settings" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "": { "type": "string" } }, "required": [ "success", null ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/tax-types": { "get": { "operationId": "tax-types.index", "summary": "Display a listing of the resource", "tags": [ "TaxTypes" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `TaxTypeResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/TaxTypeResource" } } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "tax-types.store", "summary": "Store a newly created resource in storage", "tags": [ "TaxTypes" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaxTypeRequest" } } } }, "responses": { "200": { "description": "`TaxTypeResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/TaxTypeResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/tax-types/{taxType}": { "get": { "operationId": "tax-types.show", "summary": "Display the specified resource", "tags": [ "TaxTypes" ], "parameters": [ { "name": "taxType", "in": "path", "required": true, "description": "The tax type ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`TaxTypeResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/TaxTypeResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "tax-types.update", "summary": "Update the specified resource in storage", "tags": [ "TaxTypes" ], "parameters": [ { "name": "taxType", "in": "path", "required": true, "description": "The tax type ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`TaxTypeResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/TaxTypeResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } }, "delete": { "operationId": "tax-types.destroy", "summary": "Remove the specified resource from storage", "tags": [ "TaxTypes" ], "parameters": [ { "name": "taxType", "in": "path", "required": true, "description": "The tax type ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/units": { "get": { "operationId": "units.index", "summary": "Display a listing of the resource", "tags": [ "Units" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Array of `UnitResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/UnitResource" } } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "post": { "operationId": "units.store", "summary": "Store a newly created resource in storage", "tags": [ "Units" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnitRequest" } } } }, "responses": { "200": { "description": "`UnitResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/UnitResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/units/{unit}": { "get": { "operationId": "units.show", "summary": "Display the specified resource", "tags": [ "Units" ], "parameters": [ { "name": "unit", "in": "path", "required": true, "description": "The unit ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`UnitResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/UnitResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "units.update", "summary": "Update the specified resource in storage", "tags": [ "Units" ], "parameters": [ { "name": "unit", "in": "path", "required": true, "description": "The unit ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnitRequest" } } } }, "responses": { "200": { "description": "`UnitResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/UnitResource" } }, "required": [ "data" ] } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } }, "delete": { "operationId": "units.destroy", "summary": "Remove the specified resource from storage", "tags": [ "Units" ], "parameters": [ { "name": "unit", "in": "path", "required": true, "description": "The unit ID", "schema": { "type": "integer" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } }, "403": { "$ref": "#/components/responses/AuthorizationException" }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/check/update": { "get": { "operationId": "update.checkVersion", "tags": [ "Update" ], "parameters": [ { "name": "channel", "in": "query", "schema": { "type": "string", "default": "stable" } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": [ "object", "null" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/update/download": { "post": { "operationId": "update.download", "tags": [ "Update" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "version": { "type": "string" } }, "required": [ "version" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "path": { "anyOf": [ { "type": "string" }, { "type": "boolean" }, { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string", "const": "Download Exception" }, "data": { "type": "object", "properties": { "path": { "type": "null" } }, "required": [ "path" ] } }, "required": [ "success", "error", "data" ] } ] } }, "required": [ "success", "path" ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/update/unzip": { "post": { "operationId": "update.unzip", "tags": [ "Update" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "path": { "type": "string" } }, "required": [ "path" ] } } } }, "responses": { "500": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string" } }, "required": [ "success", "error" ] } } } }, "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "path": { "type": "string" } }, "required": [ "success", "path" ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/update/copy": { "post": { "operationId": "update.copy", "tags": [ "Update" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "path": { "type": "string" } }, "required": [ "path" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "path": { "type": "boolean" } }, "required": [ "success", "path" ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/update/delete": { "post": { "operationId": "update.delete", "tags": [ "Update" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "anyOf": [ { "type": "object", "properties": { "success": { "type": "boolean" }, "cleaned": { "type": "integer" } }, "required": [ "success", "cleaned" ] }, { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string", "const": "Invalid manifest" } }, "required": [ "success", "error" ] } ] }, { "type": "object", "properties": { "success": { "type": "boolean" }, "cleaned": { "type": "integer" } }, "required": [ "success", "cleaned" ] } ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/update/clean": { "post": { "operationId": "update.clean", "tags": [ "Update" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "anyOf": [ { "anyOf": [ { "type": "object", "properties": { "success": { "type": "boolean" }, "cleaned": { "type": "integer" } }, "required": [ "success", "cleaned" ] }, { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string", "const": "Invalid manifest" } }, "required": [ "success", "error" ] } ] }, { "type": "object", "properties": { "success": { "type": "boolean" }, "cleaned": { "type": "integer" } }, "required": [ "success", "cleaned" ] } ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/update/migrate": { "post": { "operationId": "update.migrate", "tags": [ "Update" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/update/finish": { "post": { "operationId": "update.finish", "tags": [ "Update" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "installed": { "type": "string" }, "version": { "type": "string" } }, "required": [ "installed", "version" ] } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "boolean" }, "data": { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false } }, "required": [ "success", "error", "data" ] } } } }, "422": { "$ref": "#/components/responses/ValidationException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/me": { "get": { "operationId": "userProfile.show", "tags": [ "UserProfile" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "`UserResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/UserResource" } }, "required": [ "data" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "userProfile.update", "tags": [ "UserProfile" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileRequest" } } } }, "responses": { "200": { "description": "`UserResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/UserResource" } }, "required": [ "data" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/me/settings": { "get": { "operationId": "userProfile.showSettings", "tags": [ "UserProfile" ], "parameters": [ { "name": "settings[]", "in": "query", "required": true, "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } }, "put": { "operationId": "userProfile.updateSettings", "tags": [ "UserProfile" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSettingsRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/me/upload-avatar": { "post": { "operationId": "userProfile.uploadAvatar", "tags": [ "UserProfile" ], "parameters": [ { "name": "company", "in": "header", "required": true, "description": "ID of the company the request operates on (multi-tenancy).", "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/AvatarRequest" } } } }, "responses": { "200": { "description": "`UserResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/UserResource" } }, "required": [ "data" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" } } } }, "/super-admin/users": { "get": { "operationId": "users.index", "tags": [ "Users" ], "responses": { "200": { "description": "Paginated set of `UserResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/UserResource" } }, "links": { "type": "object", "properties": { "first": { "type": [ "string", "null" ] }, "last": { "type": [ "string", "null" ] }, "prev": { "type": [ "string", "null" ] }, "next": { "type": [ "string", "null" ] } }, "required": [ "first", "last", "prev", "next" ] }, "meta": { "type": "object", "properties": { "current_page": { "type": "integer", "minimum": 1 }, "from": { "type": [ "integer", "null" ], "minimum": 1 }, "last_page": { "type": "integer", "minimum": 1 }, "links": { "type": "array", "description": "Generated paginator links.", "items": { "type": "object", "properties": { "url": { "type": [ "string", "null" ] }, "label": { "type": "string" }, "active": { "type": "boolean" } }, "required": [ "url", "label", "active" ] } }, "path": { "type": [ "string", "null" ], "description": "Base path for paginator generated URLs." }, "per_page": { "type": "integer", "description": "Number of items shown per page.", "minimum": 0 }, "to": { "type": [ "integer", "null" ], "description": "Number of the last item in the slice.", "minimum": 1 }, "total": { "type": "integer", "description": "Total number of items being paginated.", "minimum": 0 } }, "required": [ "current_page", "from", "last_page", "links", "path", "per_page", "to", "total" ] } }, "required": [ "data", "links", "meta" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/super-admin/users/{user}": { "get": { "operationId": "users.show", "tags": [ "Users" ], "parameters": [ { "name": "user", "in": "path", "required": true, "description": "The user ID", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "`UserResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/UserResource" } }, "required": [ "data" ] } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } }, "put": { "operationId": "users.update", "tags": [ "Users" ], "parameters": [ { "name": "user", "in": "path", "required": true, "description": "The user ID", "schema": { "type": "integer" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUserUpdateRequest" } } } }, "responses": { "200": { "description": "`UserResource`", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/UserResource" } }, "required": [ "data" ] } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" }, "422": { "$ref": "#/components/responses/ValidationException" }, "403": { "$ref": "#/components/responses/AuthorizationException" } } } }, "/super-admin/users/{user}/impersonate": { "post": { "operationId": "users.impersonate", "tags": [ "Users" ], "parameters": [ { "name": "user", "in": "path", "required": true, "description": "The user ID", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "token": { "type": "string" }, "impersonation_log_id": { "type": "integer" }, "user": { "$ref": "#/components/schemas/UserResource" } }, "required": [ "token", "impersonation_log_id", "user" ] } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string", "const": "cannot_impersonate_self" }, "message": { "type": "string", "const": "You cannot impersonate yourself." } }, "required": [ "error", "message" ] } } } }, "404": { "$ref": "#/components/responses/ModelNotFoundException" }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } }, "/super-admin/stop-impersonating": { "post": { "operationId": "users.stopImpersonating", "tags": [ "Users" ], "responses": { "422": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string", "const": "not_impersonating" }, "message": { "type": "string", "const": "No active impersonation session." } }, "required": [ "error", "message" ] } } } }, "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "401": { "$ref": "#/components/responses/AuthenticationException" } } } } }, "components": { "securitySchemes": { "http": { "type": "http", "scheme": "bearer" } }, "schemas": { "AddressResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": [ "string", "null" ] }, "address_street_1": { "type": [ "string", "null" ] }, "address_street_2": { "type": [ "string", "null" ] }, "city": { "type": [ "string", "null" ] }, "state": { "type": [ "string", "null" ] }, "country_id": { "type": [ "integer", "null" ] }, "zip": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] }, "fax": { "type": [ "string", "null" ] }, "type": { "type": [ "string", "null" ] }, "user_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "customer_id": { "type": [ "integer", "null" ] }, "country": { "$ref": "#/components/schemas/CountryResource" }, "user": { "$ref": "#/components/schemas/UserResource" } }, "required": [ "id", "name", "address_street_1", "address_street_2", "city", "state", "country_id", "zip", "phone", "fax", "type", "user_id", "company_id", "customer_id" ], "title": "AddressResource" }, "AdminCompanyUpdateRequest": { "type": "object", "properties": { "name": { "type": "string" }, "owner_id": { "type": "integer" }, "vat_id": { "type": [ "string", "null" ] }, "tax_id": { "type": [ "string", "null" ] }, "address": { "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "address_street_1": { "type": [ "string", "null" ] }, "address_street_2": { "type": [ "string", "null" ] }, "city": { "type": [ "string", "null" ] }, "state": { "type": [ "string", "null" ] }, "country_id": { "type": [ "integer", "null" ] }, "zip": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] } } } }, "required": [ "name", "owner_id" ], "title": "AdminCompanyUpdateRequest" }, "AdminUserUpdateRequest": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "type": "string" }, "phone": { "type": [ "string", "null" ] }, "password": { "type": [ "string", "null" ], "minLength": 8 } }, "required": [ "name", "email" ], "title": "AdminUserUpdateRequest" }, "AiConversation": { "type": "object", "properties": { "id": { "type": "integer" }, "company_id": { "type": "integer" }, "user_id": { "type": "integer" }, "title": { "type": [ "string", "null" ] }, "model": { "type": [ "string", "null" ] }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" } }, "required": [ "id", "company_id", "user_id", "title", "model", "created_at", "updated_at" ], "title": "AiConversation" }, "AiMessage": { "type": "object", "properties": { "id": { "type": "integer" }, "conversation_id": { "type": "integer" }, "role": { "type": "string" }, "content": { "type": [ "string", "null" ] }, "tool_call_id": { "type": [ "string", "null" ] }, "tool_calls": { "type": [ "array", "null" ], "items": {} }, "model": { "type": [ "string", "null" ] }, "tokens_in": { "type": [ "integer", "null" ] }, "tokens_out": { "type": [ "integer", "null" ] }, "created_at": { "type": "string", "format": "date-time" } }, "required": [ "id", "conversation_id", "role", "content", "tool_call_id", "tool_calls", "model", "tokens_in", "tokens_out", "created_at" ], "title": "AiMessage" }, "App.Http.Resources.Customer.AddressResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": [ "string", "null" ] }, "address_street_1": { "type": [ "string", "null" ] }, "address_street_2": { "type": [ "string", "null" ] }, "city": { "type": [ "string", "null" ] }, "state": { "type": [ "string", "null" ] }, "country_id": { "type": [ "integer", "null" ] }, "zip": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] }, "fax": { "type": [ "string", "null" ] }, "type": { "type": [ "string", "null" ] }, "user_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "customer_id": { "type": [ "integer", "null" ] }, "country": { "$ref": "#/components/schemas/CountryResource" }, "user": { "$ref": "#/components/schemas/UserResource" } }, "required": [ "id", "name", "address_street_1", "address_street_2", "city", "state", "country_id", "zip", "phone", "fax", "type", "user_id", "company_id", "customer_id" ], "title": "App.Http.Resources.Customer.AddressResource" }, "App.Http.Resources.Customer.CompanyResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "slug": { "type": [ "string", "null" ] }, "logo": { "type": [ "string", "null" ] }, "logo_path": { "type": "string" }, "unique_hash": { "type": [ "string", "null" ] }, "owner_id": { "type": [ "integer", "null" ] }, "address": { "$ref": "#/components/schemas/App.Http.Resources.Customer.AddressResource" } }, "required": [ "id", "name", "slug", "logo", "logo_path", "unique_hash", "owner_id" ], "title": "App.Http.Resources.Customer.CompanyResource" }, "App.Http.Resources.Customer.CurrencyResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "code": { "type": "string" }, "symbol": { "type": [ "string", "null" ] }, "precision": { "type": "integer" }, "thousand_separator": { "type": "string" }, "decimal_separator": { "type": "string" }, "swap_currency_symbol": { "type": "integer" }, "exchange_rate": { "type": "string" } }, "required": [ "id", "name", "code", "symbol", "precision", "thousand_separator", "decimal_separator", "swap_currency_symbol", "exchange_rate" ], "title": "App.Http.Resources.Customer.CurrencyResource" }, "App.Http.Resources.Customer.CustomFieldResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "slug": { "type": "string" }, "label": { "type": "string" }, "model_type": { "type": "string" }, "type": { "type": "string" }, "placeholder": { "type": [ "string", "null" ] }, "options": { "type": [ "string", "null" ] }, "boolean_answer": { "type": [ "integer", "null" ] }, "date_answer": { "type": [ "string", "null" ] }, "time_answer": { "type": [ "string", "null" ] }, "string_answer": { "type": [ "string", "null" ] }, "number_answer": { "type": [ "integer", "null" ] }, "date_time_answer": { "type": [ "string", "null" ] }, "is_required": { "type": "integer" }, "in_use": { "type": "string" }, "order": { "type": "integer" }, "company_id": { "type": "integer" }, "default_answer": { "type": "string" }, "company": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "id", "name", "slug", "label", "model_type", "type", "placeholder", "options", "boolean_answer", "date_answer", "time_answer", "string_answer", "number_answer", "date_time_answer", "is_required", "in_use", "order", "company_id", "default_answer" ], "title": "App.Http.Resources.Customer.CustomFieldResource" }, "App.Http.Resources.Customer.CustomFieldValueResource": { "type": "object", "properties": { "id": { "type": "integer" }, "custom_field_valuable_type": { "type": "string" }, "custom_field_valuable_id": { "type": "integer" }, "type": { "type": "string" }, "boolean_answer": { "type": [ "integer", "null" ] }, "date_answer": { "type": [ "string", "null" ] }, "time_answer": { "type": [ "string", "null" ] }, "string_answer": { "type": [ "string", "null" ] }, "number_answer": { "type": [ "integer", "null" ] }, "date_time_answer": { "type": [ "string", "null" ] }, "custom_field_id": { "type": "integer" }, "company_id": { "type": "integer" }, "default_answer": { "type": "string" }, "custom_field": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CustomFieldResource" }, "company": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CompanyResource" } }, "required": [ "id", "custom_field_valuable_type", "custom_field_valuable_id", "type", "boolean_answer", "date_answer", "time_answer", "string_answer", "number_answer", "date_time_answer", "custom_field_id", "company_id", "default_answer" ], "title": "App.Http.Resources.Customer.CustomFieldValueResource" }, "App.Http.Resources.Customer.CustomerResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] }, "contact_name": { "type": [ "string", "null" ] }, "company_name": { "type": [ "string", "null" ] }, "website": { "type": [ "string", "null" ] }, "enable_portal": { "type": "boolean" }, "currency_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "facebook_id": { "type": [ "string", "null" ] }, "google_id": { "type": [ "string", "null" ] }, "github_id": { "type": [ "string", "null" ] }, "formatted_created_at": { "type": "string" }, "avatar": { "type": "string" }, "prefix": { "type": [ "string", "null" ] }, "tax_id": { "type": [ "string", "null" ] }, "billing": { "$ref": "#/components/schemas/App.Http.Resources.Customer.AddressResource" }, "shipping": { "$ref": "#/components/schemas/App.Http.Resources.Customer.AddressResource" }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CustomFieldValueResource" } }, "company": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CompanyResource" }, "currency": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CurrencyResource" } }, "required": [ "id", "name", "email", "phone", "contact_name", "company_name", "website", "enable_portal", "currency_id", "company_id", "facebook_id", "google_id", "github_id", "formatted_created_at", "avatar", "prefix", "tax_id" ], "title": "App.Http.Resources.Customer.CustomerResource" }, "App.Http.Resources.Customer.EstimateItemResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "discount_type": { "type": "string" }, "quantity": { "type": "number" }, "unit_name": { "type": [ "string", "null" ] }, "discount": { "type": [ "number", "null" ] }, "discount_val": { "type": [ "integer", "null" ] }, "price": { "type": "integer" }, "tax": { "type": "integer" }, "total": { "type": "integer" }, "item_id": { "type": [ "integer", "null" ] }, "estimate_id": { "type": "integer" }, "company_id": { "type": [ "integer", "null" ] }, "exchange_rate": { "type": [ "string", "null" ] }, "base_discount_val": { "type": [ "integer", "null" ] }, "base_price": { "type": [ "integer", "null" ] }, "base_tax": { "type": [ "integer", "null" ] }, "base_total": { "type": [ "integer", "null" ] }, "taxes": { "type": "array", "items": { "$ref": "#/components/schemas/TaxResource" } }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/CustomFieldValueResource" } } }, "required": [ "id", "name", "description", "discount_type", "quantity", "unit_name", "discount", "discount_val", "price", "tax", "total", "item_id", "estimate_id", "company_id", "exchange_rate", "base_discount_val", "base_price", "base_tax", "base_total" ], "title": "App.Http.Resources.Customer.EstimateItemResource" }, "App.Http.Resources.Customer.EstimateResource": { "type": "object", "properties": { "id": { "type": "integer" }, "estimate_date": { "type": "string" }, "expiry_date": { "type": [ "string", "null" ] }, "estimate_number": { "type": "string" }, "status": { "type": "string" }, "reference_number": { "type": [ "string", "null" ] }, "tax_per_item": { "type": "string" }, "discount_per_item": { "type": "string" }, "notes": { "type": [ "string", "null" ] }, "discount": { "type": [ "number", "null" ] }, "discount_type": { "type": [ "string", "null" ] }, "discount_val": { "type": [ "integer", "null" ] }, "sub_total": { "type": "integer" }, "total": { "type": "integer" }, "tax": { "type": "integer" }, "unique_hash": { "type": [ "string", "null" ] }, "template_name": { "type": [ "string", "null" ] }, "customer_id": { "type": [ "integer", "null" ] }, "exchange_rate": { "type": [ "number", "null" ] }, "base_discount_val": { "type": [ "integer", "null" ] }, "base_sub_total": { "type": [ "integer", "null" ] }, "base_total": { "type": [ "integer", "null" ] }, "base_tax": { "type": [ "integer", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "formatted_expiry_date": { "type": "string" }, "formatted_estimate_date": { "type": "string" }, "estimate_pdf_url": { "type": "string" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/App.Http.Resources.Customer.EstimateItemResource" } }, "customer": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CustomerResource" }, "taxes": { "type": "array", "items": { "$ref": "#/components/schemas/App.Http.Resources.Customer.TaxResource" } }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CustomFieldValueResource" } }, "company": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CompanyResource" }, "currency": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CurrencyResource" } }, "required": [ "id", "estimate_date", "expiry_date", "estimate_number", "status", "reference_number", "tax_per_item", "discount_per_item", "notes", "discount", "discount_type", "discount_val", "sub_total", "total", "tax", "unique_hash", "template_name", "customer_id", "exchange_rate", "base_discount_val", "base_sub_total", "base_total", "base_tax", "currency_id", "formatted_expiry_date", "formatted_estimate_date", "estimate_pdf_url" ], "title": "App.Http.Resources.Customer.EstimateResource" }, "App.Http.Resources.Customer.ExpenseCategoryResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "amount": { "type": "string" }, "formatted_created_at": { "type": "string" }, "company": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "id", "name", "description", "company_id", "amount", "formatted_created_at" ], "title": "App.Http.Resources.Customer.ExpenseCategoryResource" }, "App.Http.Resources.Customer.ExpenseResource": { "type": "object", "properties": { "id": { "type": "integer" }, "expense_date": { "type": "string" }, "expense_number": { "type": [ "string", "null" ] }, "amount": { "type": "integer" }, "notes": { "type": [ "string", "null" ] }, "customer_id": { "type": [ "integer", "null" ] }, "attachment_receipt_url": { "type": "string" }, "attachment_receipt": { "type": "string" }, "attachment_receipt_meta": { "type": "string" }, "company_id": { "type": [ "integer", "null" ] }, "expense_category_id": { "type": "integer" }, "formatted_expense_date": { "type": "string" }, "formatted_created_at": { "type": "string" }, "exchange_rate": { "type": [ "number", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "base_amount": { "type": [ "integer", "null" ] }, "payment_method_id": { "type": [ "integer", "null" ] }, "customer": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CustomerResource" }, "expense_category": { "$ref": "#/components/schemas/App.Http.Resources.Customer.ExpenseCategoryResource" }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CustomFieldValueResource" } }, "company": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CompanyResource" }, "currency": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CurrencyResource" }, "payment_method": { "$ref": "#/components/schemas/App.Http.Resources.Customer.PaymentMethodResource" } }, "required": [ "id", "expense_date", "expense_number", "amount", "notes", "customer_id", "attachment_receipt_url", "attachment_receipt", "attachment_receipt_meta", "company_id", "expense_category_id", "formatted_expense_date", "formatted_created_at", "exchange_rate", "currency_id", "base_amount", "payment_method_id" ], "title": "App.Http.Resources.Customer.ExpenseResource" }, "App.Http.Resources.Customer.InvoiceItemResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "discount_type": { "type": "string" }, "price": { "type": "integer" }, "quantity": { "type": "number" }, "unit_name": { "type": [ "string", "null" ] }, "discount": { "type": [ "number", "null" ] }, "discount_val": { "type": "integer" }, "tax": { "type": "integer" }, "total": { "type": "integer" }, "invoice_id": { "type": [ "integer", "null" ] }, "item_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "base_price": { "type": [ "integer", "null" ] }, "exchange_rate": { "type": [ "string", "null" ] }, "base_discount_val": { "type": [ "integer", "null" ] }, "base_tax": { "type": [ "integer", "null" ] }, "base_total": { "type": [ "integer", "null" ] }, "recurring_invoice_id": { "type": [ "integer", "null" ] }, "taxes": { "type": "array", "items": { "$ref": "#/components/schemas/TaxResource" } }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/CustomFieldValueResource" } } }, "required": [ "id", "name", "description", "discount_type", "price", "quantity", "unit_name", "discount", "discount_val", "tax", "total", "invoice_id", "item_id", "company_id", "base_price", "exchange_rate", "base_discount_val", "base_tax", "base_total", "recurring_invoice_id" ], "title": "App.Http.Resources.Customer.InvoiceItemResource" }, "App.Http.Resources.Customer.InvoiceResource": { "type": "object", "properties": { "id": { "type": "integer" }, "invoice_date": { "type": "string" }, "due_date": { "type": [ "string", "null" ] }, "invoice_number": { "type": "string" }, "reference_number": { "type": [ "string", "null" ] }, "status": { "type": "string" }, "paid_status": { "type": "string" }, "tax_per_item": { "type": "string" }, "discount_per_item": { "type": "string" }, "notes": { "type": "string" }, "discount_type": { "type": [ "string", "null" ] }, "discount": { "type": [ "number", "null" ] }, "discount_val": { "type": [ "integer", "null" ] }, "sub_total": { "type": "integer" }, "total": { "type": "integer" }, "tax": { "type": "integer" }, "due_amount": { "type": "integer" }, "sent": { "type": "integer" }, "viewed": { "type": "integer" }, "unique_hash": { "type": [ "string", "null" ] }, "template_name": { "type": [ "string", "null" ] }, "customer_id": { "type": [ "integer", "null" ] }, "recurring_invoice_id": { "type": [ "integer", "null" ] }, "sequence_number": { "type": [ "integer", "null" ] }, "base_discount_val": { "type": [ "integer", "null" ] }, "base_sub_total": { "type": [ "integer", "null" ] }, "base_total": { "type": [ "integer", "null" ] }, "base_tax": { "type": [ "integer", "null" ] }, "base_due_amount": { "type": [ "integer", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "formatted_created_at": { "type": "string" }, "formatted_notes": { "type": "string" }, "invoice_pdf_url": { "type": "string" }, "formatted_invoice_date": { "type": "string" }, "formatted_due_date": { "type": "string" }, "payment_module_enabled": { "type": "string" }, "overdue": { "type": "integer" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/App.Http.Resources.Customer.InvoiceItemResource" } }, "customer": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CustomerResource" }, "taxes": { "type": "array", "items": { "$ref": "#/components/schemas/App.Http.Resources.Customer.TaxResource" } }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CustomFieldValueResource" } }, "company": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CompanyResource" }, "currency": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CurrencyResource" } }, "required": [ "id", "invoice_date", "due_date", "invoice_number", "reference_number", "status", "paid_status", "tax_per_item", "discount_per_item", "notes", "discount_type", "discount", "discount_val", "sub_total", "total", "tax", "due_amount", "sent", "viewed", "unique_hash", "template_name", "customer_id", "recurring_invoice_id", "sequence_number", "base_discount_val", "base_sub_total", "base_total", "base_tax", "base_due_amount", "currency_id", "formatted_created_at", "formatted_notes", "invoice_pdf_url", "formatted_invoice_date", "formatted_due_date", "payment_module_enabled", "overdue" ], "title": "App.Http.Resources.Customer.InvoiceResource" }, "App.Http.Resources.Customer.PaymentMethodResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "company_id": { "type": [ "integer", "null" ] }, "company": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CompanyResource" } }, "required": [ "id", "name", "company_id" ], "title": "App.Http.Resources.Customer.PaymentMethodResource" }, "App.Http.Resources.Customer.PaymentResource": { "type": "object", "properties": { "id": { "type": "integer" }, "payment_number": { "type": "string" }, "payment_date": { "type": "string" }, "notes": { "type": [ "string", "null" ] }, "amount": { "type": "integer" }, "unique_hash": { "type": [ "string", "null" ] }, "invoice_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "payment_method_id": { "type": [ "integer", "null" ] }, "customer_id": { "type": [ "integer", "null" ] }, "exchange_rate": { "type": [ "number", "null" ] }, "base_amount": { "type": [ "integer", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "transaction_id": { "type": [ "integer", "null" ] }, "formatted_created_at": { "type": "string" }, "formatted_payment_date": { "type": "string" }, "payment_pdf_url": { "type": "string" }, "customer": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CustomerResource" }, "invoice": { "$ref": "#/components/schemas/App.Http.Resources.Customer.InvoiceResource" }, "payment_method": { "$ref": "#/components/schemas/App.Http.Resources.Customer.PaymentMethodResource" }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CustomFieldValueResource" } }, "company": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CompanyResource" }, "currency": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CurrencyResource" }, "transaction": { "$ref": "#/components/schemas/App.Http.Resources.Customer.TransactionResource" } }, "required": [ "id", "payment_number", "payment_date", "notes", "amount", "unique_hash", "invoice_id", "company_id", "payment_method_id", "customer_id", "exchange_rate", "base_amount", "currency_id", "transaction_id", "formatted_created_at", "formatted_payment_date", "payment_pdf_url" ], "title": "App.Http.Resources.Customer.PaymentResource" }, "App.Http.Resources.Customer.TaxResource": { "type": "object", "properties": { "id": { "type": "integer" }, "tax_type_id": { "type": "integer" }, "invoice_id": { "type": [ "integer", "null" ] }, "estimate_id": { "type": [ "integer", "null" ] }, "invoice_item_id": { "type": [ "integer", "null" ] }, "estimate_item_id": { "type": [ "integer", "null" ] }, "item_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "name": { "type": "string" }, "amount": { "type": "integer" }, "percent": { "type": [ "number", "null" ] }, "compound_tax": { "type": "integer" }, "base_amount": { "type": [ "integer", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "recurring_invoice_id": { "type": [ "integer", "null" ] }, "tax_type": { "$ref": "#/components/schemas/App.Http.Resources.Customer.TaxTypeResource" }, "currency": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CurrencyResource" } }, "required": [ "id", "tax_type_id", "invoice_id", "estimate_id", "invoice_item_id", "estimate_item_id", "item_id", "company_id", "name", "amount", "percent", "compound_tax", "base_amount", "currency_id", "recurring_invoice_id" ], "title": "App.Http.Resources.Customer.TaxResource" }, "App.Http.Resources.Customer.TaxTypeResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "percent": { "type": [ "number", "null" ] }, "compound_tax": { "type": "boolean" }, "collective_tax": { "type": "integer" }, "description": { "type": [ "string", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "company": { "$ref": "#/components/schemas/App.Http.Resources.Customer.CompanyResource" } }, "required": [ "id", "name", "percent", "compound_tax", "collective_tax", "description", "company_id" ], "title": "App.Http.Resources.Customer.TaxTypeResource" }, "App.Http.Resources.Customer.TransactionResource": { "type": "object", "properties": { "id": { "type": "integer" }, "transaction_id": { "type": [ "string", "null" ] }, "type": { "type": [ "string", "null" ] }, "status": { "type": "string" }, "transaction_date": { "type": "string" }, "invoice_id": { "type": "integer" }, "invoice": { "$ref": "#/components/schemas/InvoiceResource" }, "company": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "id", "transaction_id", "type", "status", "transaction_date", "invoice_id" ], "title": "App.Http.Resources.Customer.TransactionResource" }, "AvatarRequest": { "type": "object", "properties": { "admin_avatar": { "type": [ "string", "null" ], "format": "binary", "contentMediaType": "application/octet-stream", "maxLength": 20000 }, "avatar": { "type": [ "string", "null" ] } }, "title": "AvatarRequest" }, "BulkExchangeRateRequest": { "type": "object", "properties": { "currencies": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "exchange_rate": { "type": "string" } }, "required": [ "id", "exchange_rate" ] } } }, "required": [ "currencies" ], "title": "BulkExchangeRateRequest" }, "CompaniesRequest": { "type": "object", "properties": { "name": { "type": "string" }, "currency": { "type": "string" }, "address": { "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "address_street_1": { "type": [ "string", "null" ] }, "address_street_2": { "type": [ "string", "null" ] }, "city": { "type": [ "string", "null" ] }, "state": { "type": [ "string", "null" ] }, "country_id": { "type": "string" }, "zip": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] }, "fax": { "type": [ "string", "null" ] } }, "required": [ "country_id" ] } }, "required": [ "name", "currency", "address" ], "title": "CompaniesRequest" }, "Company": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "logo": { "type": [ "string", "null" ] }, "unique_hash": { "type": [ "string", "null" ] }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" }, "slug": { "type": [ "string", "null" ] }, "owner_id": { "type": [ "integer", "null" ] }, "vat_id": { "type": [ "string", "null" ] }, "tax_id": { "type": [ "string", "null" ] }, "logo_path": { "type": "string" } }, "required": [ "id", "name", "logo", "unique_hash", "created_at", "updated_at", "slug", "owner_id", "vat_id", "tax_id", "logo_path" ], "title": "Company" }, "CompanyInvitationResource": { "type": "object", "properties": { "id": { "type": "integer" }, "company_id": { "type": "integer" }, "email": { "type": "string" }, "token": { "type": "string" }, "status": { "type": "string" }, "expires_at": { "type": "string" }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "company": { "$ref": "#/components/schemas/CompanyResource" }, "role": { "$ref": "#/components/schemas/RoleResource" }, "invited_by": { "$ref": "#/components/schemas/UserResource" } }, "required": [ "id", "company_id", "email", "token", "status", "expires_at", "created_at" ], "title": "CompanyInvitationResource" }, "CompanyLogoRequest": { "type": "object", "properties": { "company_logo": { "type": [ "string", "null" ] } }, "title": "CompanyLogoRequest" }, "CompanyMailConfigurationRequest": { "type": "object", "properties": { "use_custom_mail_config": { "type": "string", "enum": [ "YES", "NO" ] }, "mail_driver": { "type": [ "string", "null" ] } }, "required": [ "use_custom_mail_config" ], "title": "CompanyMailConfigurationRequest" }, "CompanyRequest": { "type": "object", "properties": { "name": { "type": "string" }, "vat_id": { "type": [ "string", "null" ] }, "tax_id": { "type": [ "string", "null" ] }, "address": { "type": "object", "properties": { "country_id": { "type": "string" } }, "required": [ "country_id" ] } }, "required": [ "name", "address" ], "title": "CompanyRequest" }, "CompanyResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "vat_id": { "type": [ "string", "null" ] }, "tax_id": { "type": [ "string", "null" ] }, "logo": { "type": [ "string", "null" ] }, "logo_path": { "type": "string" }, "unique_hash": { "type": [ "string", "null" ] }, "owner_id": { "type": [ "integer", "null" ] }, "slug": { "type": [ "string", "null" ] }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" }, "address": { "$ref": "#/components/schemas/AddressResource" }, "owner": { "$ref": "#/components/schemas/UserResource" }, "roles": { "type": "array", "items": { "$ref": "#/components/schemas/RoleResource" } }, "user_role": { "type": [ "string", "null" ] } }, "required": [ "id", "name", "vat_id", "tax_id", "logo", "logo_path", "unique_hash", "owner_id", "slug", "created_at", "updated_at", "roles", "user_role" ], "title": "CompanyResource" }, "CountryResource": { "type": "object", "properties": { "id": { "type": "integer" }, "code": { "type": "string" }, "name": { "type": "string" }, "phone_code": { "type": "string" } }, "required": [ "id", "code", "name", "phone_code" ], "title": "CountryResource" }, "Currency": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "code": { "type": "string" }, "symbol": { "type": [ "string", "null" ] }, "precision": { "type": "integer" }, "thousand_separator": { "type": "string" }, "decimal_separator": { "type": "string" }, "swap_currency_symbol": { "type": "integer" }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" } }, "required": [ "id", "name", "code", "symbol", "precision", "thousand_separator", "decimal_separator", "swap_currency_symbol", "created_at", "updated_at" ], "title": "Currency" }, "CurrencyResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "code": { "type": "string" }, "symbol": { "type": [ "string", "null" ] }, "precision": { "type": "integer" }, "thousand_separator": { "type": "string" }, "decimal_separator": { "type": "string" }, "swap_currency_symbol": { "type": "integer" }, "exchange_rate": { "type": "string" } }, "required": [ "id", "name", "code", "symbol", "precision", "thousand_separator", "decimal_separator", "swap_currency_symbol", "exchange_rate" ], "title": "CurrencyResource" }, "CustomFieldRequest": { "type": "object", "properties": { "name": { "type": "string" }, "label": { "type": "string" }, "model_type": { "type": "string" }, "order": { "type": "string" }, "type": { "type": "string" }, "is_required": { "type": "boolean" }, "options": { "type": "array", "items": { "type": "string" } }, "placeholder": { "type": [ "string", "null" ] } }, "required": [ "name", "label", "model_type", "order", "type", "is_required" ], "title": "CustomFieldRequest" }, "CustomFieldResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "slug": { "type": "string" }, "label": { "type": "string" }, "model_type": { "type": "string" }, "type": { "type": "string" }, "placeholder": { "type": [ "string", "null" ] }, "options": { "type": [ "string", "null" ] }, "boolean_answer": { "type": [ "integer", "null" ] }, "date_answer": { "type": [ "string", "null" ] }, "time_answer": { "type": [ "string", "null" ] }, "string_answer": { "type": [ "string", "null" ] }, "number_answer": { "type": [ "integer", "null" ] }, "date_time_answer": { "type": [ "string", "null" ] }, "is_required": { "type": "integer" }, "in_use": { "type": "string" }, "order": { "type": "integer" }, "company_id": { "type": "integer" }, "default_answer": { "type": "string" }, "company": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "id", "name", "slug", "label", "model_type", "type", "placeholder", "options", "boolean_answer", "date_answer", "time_answer", "string_answer", "number_answer", "date_time_answer", "is_required", "in_use", "order", "company_id", "default_answer" ], "title": "CustomFieldResource" }, "CustomFieldValueResource": { "type": "object", "properties": { "id": { "type": "integer" }, "custom_field_valuable_type": { "type": "string" }, "custom_field_valuable_id": { "type": "integer" }, "type": { "type": "string" }, "boolean_answer": { "type": [ "integer", "null" ] }, "date_answer": { "type": [ "string", "null" ] }, "time_answer": { "type": [ "string", "null" ] }, "string_answer": { "type": [ "string", "null" ] }, "number_answer": { "type": [ "integer", "null" ] }, "date_time_answer": { "type": [ "string", "null" ] }, "custom_field_id": { "type": "integer" }, "company_id": { "type": "integer" }, "default_answer": { "type": "string" }, "default_formatted_answer": { "type": [ "string", "null" ] }, "custom_field": { "$ref": "#/components/schemas/CustomFieldResource" }, "company": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "id", "custom_field_valuable_type", "custom_field_valuable_id", "type", "boolean_answer", "date_answer", "time_answer", "string_answer", "number_answer", "date_time_answer", "custom_field_id", "company_id", "default_answer", "default_formatted_answer" ], "title": "CustomFieldValueResource" }, "Customer": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] }, "facebook_id": { "type": [ "string", "null" ] }, "google_id": { "type": [ "string", "null" ] }, "github_id": { "type": [ "string", "null" ] }, "contact_name": { "type": [ "string", "null" ] }, "company_name": { "type": [ "string", "null" ] }, "website": { "type": [ "string", "null" ] }, "enable_portal": { "type": "boolean" }, "currency_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "creator_id": { "type": [ "integer", "null" ] }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" }, "prefix": { "type": [ "string", "null" ] }, "tax_id": { "type": [ "string", "null" ] }, "avatar": { "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency" } }, "required": [ "id", "name", "email", "phone", "facebook_id", "google_id", "github_id", "contact_name", "company_name", "website", "enable_portal", "currency_id", "company_id", "creator_id", "created_at", "updated_at", "prefix", "tax_id", "avatar" ], "title": "Customer" }, "CustomerProfileRequest": { "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "password": { "type": [ "string", "null" ], "minLength": 8 }, "email": { "type": [ "string", "null" ] }, "customer_avatar": { "type": [ "string", "null" ], "format": "binary", "contentMediaType": "application/octet-stream", "maxLength": 20000 }, "billing": { "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "address_street_1": { "type": [ "string", "null" ] }, "address_street_2": { "type": [ "string", "null" ] }, "city": { "type": [ "string", "null" ] }, "state": { "type": [ "string", "null" ] }, "country_id": { "type": [ "string", "null" ] }, "zip": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] }, "fax": { "type": [ "string", "null" ] } } }, "shipping": { "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "address_street_1": { "type": [ "string", "null" ] }, "address_street_2": { "type": [ "string", "null" ] }, "city": { "type": [ "string", "null" ] }, "state": { "type": [ "string", "null" ] }, "country_id": { "type": [ "string", "null" ] }, "zip": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] }, "fax": { "type": [ "string", "null" ] } } } }, "title": "CustomerProfileRequest" }, "CustomerRequest": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "type": [ "string", "null" ] }, "password": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] }, "company_name": { "type": [ "string", "null" ] }, "contact_name": { "type": [ "string", "null" ] }, "website": { "type": [ "string", "null" ] }, "prefix": { "type": [ "string", "null" ] }, "tax_id": { "type": [ "string", "null" ] }, "enable_portal": { "type": "boolean" }, "currency_id": { "type": [ "string", "null" ] }, "billing": { "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "address_street_1": { "type": [ "string", "null" ] }, "address_street_2": { "type": [ "string", "null" ] }, "city": { "type": [ "string", "null" ] }, "state": { "type": [ "string", "null" ] }, "country_id": { "type": [ "string", "null" ] }, "zip": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] }, "fax": { "type": [ "string", "null" ] } } }, "shipping": { "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "address_street_1": { "type": [ "string", "null" ] }, "address_street_2": { "type": [ "string", "null" ] }, "city": { "type": [ "string", "null" ] }, "state": { "type": [ "string", "null" ] }, "country_id": { "type": [ "string", "null" ] }, "zip": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] }, "fax": { "type": [ "string", "null" ] } } } }, "required": [ "name" ], "title": "CustomerRequest" }, "CustomerResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] }, "contact_name": { "type": [ "string", "null" ] }, "company_name": { "type": [ "string", "null" ] }, "website": { "type": [ "string", "null" ] }, "enable_portal": { "type": "boolean" }, "password_added": { "type": "boolean" }, "currency_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "facebook_id": { "type": [ "string", "null" ] }, "google_id": { "type": [ "string", "null" ] }, "github_id": { "type": [ "string", "null" ] }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "formatted_created_at": { "type": "string" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" }, "avatar": { "type": "string" }, "due_amount": { "type": "string" }, "base_due_amount": { "type": "string" }, "prefix": { "type": [ "string", "null" ] }, "tax_id": { "type": [ "string", "null" ] }, "billing": { "$ref": "#/components/schemas/AddressResource" }, "shipping": { "$ref": "#/components/schemas/AddressResource" }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/CustomFieldValueResource" } }, "company": { "$ref": "#/components/schemas/CompanyResource" }, "currency": { "$ref": "#/components/schemas/CurrencyResource" } }, "required": [ "id", "name", "email", "phone", "contact_name", "company_name", "website", "enable_portal", "password_added", "currency_id", "company_id", "facebook_id", "google_id", "github_id", "created_at", "formatted_created_at", "updated_at", "avatar", "due_amount", "base_due_amount", "prefix", "tax_id" ], "title": "CustomerResource" }, "DatabaseEnvironmentRequest": { "type": "object", "properties": { "app_url": { "type": "string", "format": "uri" }, "database_connection": { "type": "string" }, "database_hostname": { "type": "string" }, "database_port": { "type": "number" }, "database_name": { "type": "string" }, "database_username": { "type": "string" }, "database_overwrite": { "type": [ "boolean", "null" ] } }, "required": [ "app_url", "database_connection", "database_hostname", "database_port", "database_name", "database_username" ], "title": "DatabaseEnvironmentRequest" }, "DeleteCustomersRequest": { "type": "object", "properties": { "ids": { "type": "array", "items": { "type": "integer" } } }, "required": [ "ids" ], "title": "DeleteCustomersRequest" }, "DeleteEstimatesRequest": { "type": "object", "properties": { "ids": { "type": "array", "items": { "type": "integer" } } }, "required": [ "ids" ], "title": "DeleteEstimatesRequest" }, "DeleteExpensesRequest": { "type": "object", "properties": { "ids": { "type": "array", "items": { "type": "integer" } } }, "required": [ "ids" ], "title": "DeleteExpensesRequest" }, "DeleteInvoiceRequest": { "type": "object", "properties": { "ids": { "type": "array", "items": { "type": "integer" } } }, "required": [ "ids" ], "title": "DeleteInvoiceRequest" }, "DeleteItemsRequest": { "type": "object", "properties": { "ids": { "type": "array", "items": { "type": "integer" } } }, "required": [ "ids" ], "title": "DeleteItemsRequest" }, "DeleteMemberRequest": { "type": "object", "properties": { "users": { "type": "array", "items": { "type": "integer" } } }, "required": [ "users" ], "title": "DeleteMemberRequest" }, "DeletePaymentsRequest": { "type": "object", "properties": { "ids": { "type": "array", "items": { "type": "integer" } } }, "required": [ "ids" ], "title": "DeletePaymentsRequest" }, "DiskEnvironmentRequest": { "type": "object", "properties": { "name": { "type": "string" }, "driver": { "type": "string" } }, "required": [ "name", "driver" ], "title": "DiskEnvironmentRequest" }, "DomainEnvironmentRequest": { "type": "object", "properties": { "app_domain": { "type": "string" } }, "required": [ "app_domain" ], "title": "DomainEnvironmentRequest" }, "Estimate": { "type": "object", "properties": { "id": { "type": "integer" }, "estimate_date": { "type": "string" }, "expiry_date": { "type": [ "string", "null" ] }, "estimate_number": { "type": "string" }, "status": { "type": "string" }, "reference_number": { "type": [ "string", "null" ] }, "tax_per_item": { "type": "string" }, "discount_per_item": { "type": "string" }, "notes": { "type": [ "string", "null" ] }, "discount": { "type": [ "number", "null" ] }, "discount_type": { "type": [ "string", "null" ] }, "discount_val": { "type": [ "integer", "null" ] }, "sub_total": { "type": "integer" }, "total": { "type": "integer" }, "tax": { "type": "integer" }, "unique_hash": { "type": [ "string", "null" ] }, "user_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" }, "creator_id": { "type": [ "integer", "null" ] }, "template_name": { "type": [ "string", "null" ] }, "customer_id": { "type": [ "integer", "null" ] }, "exchange_rate": { "type": [ "number", "null" ] }, "base_discount_val": { "type": [ "integer", "null" ] }, "base_sub_total": { "type": [ "integer", "null" ] }, "base_total": { "type": [ "integer", "null" ] }, "base_tax": { "type": [ "integer", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "sequence_number": { "type": [ "integer", "null" ] }, "customer_sequence_number": { "type": [ "integer", "null" ] }, "sales_tax_type": { "type": [ "string", "null" ] }, "sales_tax_address_type": { "type": [ "string", "null" ] }, "tax_included": { "type": "integer" } }, "required": [ "id", "estimate_date", "expiry_date", "estimate_number", "status", "reference_number", "tax_per_item", "discount_per_item", "notes", "discount", "discount_type", "discount_val", "sub_total", "total", "tax", "unique_hash", "user_id", "company_id", "created_at", "updated_at", "creator_id", "template_name", "customer_id", "exchange_rate", "base_discount_val", "base_sub_total", "base_total", "base_tax", "currency_id", "sequence_number", "customer_sequence_number", "sales_tax_type", "sales_tax_address_type", "tax_included" ], "title": "Estimate" }, "EstimateItemResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "discount_type": { "type": "string" }, "quantity": { "type": "number" }, "unit_name": { "type": [ "string", "null" ] }, "discount": { "type": [ "number", "null" ] }, "discount_val": { "type": [ "integer", "null" ] }, "price": { "type": "integer" }, "tax": { "type": "integer" }, "total": { "type": "integer" }, "item_id": { "type": [ "integer", "null" ] }, "estimate_id": { "type": "integer" }, "company_id": { "type": [ "integer", "null" ] }, "exchange_rate": { "type": [ "string", "null" ] }, "base_discount_val": { "type": [ "integer", "null" ] }, "base_price": { "type": [ "integer", "null" ] }, "base_tax": { "type": [ "integer", "null" ] }, "base_total": { "type": [ "integer", "null" ] }, "taxes": { "type": "array", "items": { "$ref": "#/components/schemas/TaxResource" } }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/CustomFieldValueResource" } } }, "required": [ "id", "name", "description", "discount_type", "quantity", "unit_name", "discount", "discount_val", "price", "tax", "total", "item_id", "estimate_id", "company_id", "exchange_rate", "base_discount_val", "base_price", "base_tax", "base_total" ], "title": "EstimateItemResource" }, "EstimateResource": { "type": "object", "properties": { "id": { "type": "integer" }, "estimate_date": { "type": "string" }, "expiry_date": { "type": [ "string", "null" ] }, "estimate_number": { "type": "string" }, "status": { "type": "string" }, "reference_number": { "type": [ "string", "null" ] }, "tax_per_item": { "type": "string" }, "tax_included": { "type": "integer" }, "discount_per_item": { "type": "string" }, "notes": { "type": "string" }, "discount": { "type": [ "number", "null" ] }, "discount_type": { "type": [ "string", "null" ] }, "discount_val": { "type": [ "integer", "null" ] }, "sub_total": { "type": "integer" }, "total": { "type": "integer" }, "tax": { "type": "integer" }, "unique_hash": { "type": [ "string", "null" ] }, "creator_id": { "type": [ "integer", "null" ] }, "template_name": { "type": [ "string", "null" ] }, "customer_id": { "type": [ "integer", "null" ] }, "exchange_rate": { "type": [ "number", "null" ] }, "base_discount_val": { "type": [ "integer", "null" ] }, "base_sub_total": { "type": [ "integer", "null" ] }, "base_total": { "type": [ "integer", "null" ] }, "base_tax": { "type": [ "integer", "null" ] }, "sequence_number": { "type": [ "integer", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "formatted_expiry_date": { "type": "string" }, "formatted_estimate_date": { "type": "string" }, "estimate_pdf_url": { "type": "string" }, "sales_tax_type": { "type": [ "string", "null" ] }, "sales_tax_address_type": { "type": [ "string", "null" ] }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/EstimateItemResource" } }, "customer": { "$ref": "#/components/schemas/CustomerResource" }, "creator": { "$ref": "#/components/schemas/UserResource" }, "taxes": { "type": "array", "items": { "$ref": "#/components/schemas/TaxResource" } }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/CustomFieldValueResource" } }, "company": { "$ref": "#/components/schemas/CompanyResource" }, "currency": { "$ref": "#/components/schemas/CurrencyResource" } }, "required": [ "id", "estimate_date", "expiry_date", "estimate_number", "status", "reference_number", "tax_per_item", "tax_included", "discount_per_item", "notes", "discount", "discount_type", "discount_val", "sub_total", "total", "tax", "unique_hash", "creator_id", "template_name", "customer_id", "exchange_rate", "base_discount_val", "base_sub_total", "base_total", "base_tax", "sequence_number", "currency_id", "formatted_expiry_date", "formatted_estimate_date", "estimate_pdf_url", "sales_tax_type", "sales_tax_address_type" ], "title": "EstimateResource" }, "EstimatesRequest": { "type": "object", "properties": { "estimate_date": { "type": "string" }, "expiry_date": { "type": [ "string", "null" ] }, "customer_id": { "type": "string" }, "estimate_number": { "type": "string" }, "exchange_rate": { "type": [ "string", "null" ] }, "discount": { "type": "number" }, "discount_val": { "type": "integer" }, "sub_total": { "type": "integer" }, "total": { "type": "integer", "maximum": 999999999999 }, "tax": { "type": "string" }, "template_name": { "type": "string" }, "items": { "type": "array", "items": { "type": "object", "properties": { "description": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "quantity": { "type": "number" }, "price": { "type": "integer" } }, "required": [ "name", "quantity", "price" ] }, "minItems": 1 } }, "required": [ "estimate_date", "customer_id", "estimate_number", "discount", "discount_val", "sub_total", "total", "tax", "template_name", "items" ], "title": "EstimatesRequest" }, "ExchangeRateProviderRequest": { "type": "object", "properties": { "driver": { "type": "string" }, "key": { "type": "string" }, "active": { "type": [ "boolean", "null" ] }, "currencies": { "type": [ "array", "null" ], "items": { "type": [ "string", "null" ] } }, "driver_config": { "type": [ "object", "null" ], "properties": { "url": { "type": [ "string", "null" ], "format": "uri", "description": "Only the CurrencyConverter \"DEDICATED\" plan reads a custom URL from\ndriver_config; guard it against SSRF (private/reserved targets)." } } } }, "required": [ "driver", "key" ], "title": "ExchangeRateProviderRequest" }, "ExchangeRateProviderResource": { "type": "object", "properties": { "id": { "type": "integer" }, "key": { "type": "string" }, "driver": { "type": "string" }, "currencies": { "type": [ "string", "null" ] }, "driver_config": { "type": [ "string", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "active": { "type": "boolean" }, "company": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "id", "key", "driver", "currencies", "driver_config", "company_id", "active" ], "title": "ExchangeRateProviderResource" }, "ExpenseCategoryRequest": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": [ "string", "null" ] } }, "required": [ "name" ], "title": "ExpenseCategoryRequest" }, "ExpenseCategoryResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "amount": { "type": "string" }, "formatted_created_at": { "type": "string" }, "company": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "id", "name", "description", "company_id", "amount", "formatted_created_at" ], "title": "ExpenseCategoryResource" }, "ExpenseRequest": { "type": "object", "properties": { "expense_date": { "type": "string" }, "expense_number": { "type": [ "string", "null" ], "maxLength": 255 }, "expense_category_id": { "type": "string" }, "exchange_rate": { "type": [ "string", "null" ] }, "payment_method_id": { "type": [ "string", "null" ] }, "amount": { "type": "string" }, "customer_id": { "type": [ "string", "null" ] }, "notes": { "type": [ "string", "null" ] }, "currency_id": { "type": "string" }, "attachment_receipt": { "type": [ "string", "null" ], "format": "binary", "contentMediaType": "application/octet-stream", "maxLength": 20000 } }, "required": [ "expense_date", "expense_category_id", "amount", "currency_id" ], "title": "ExpenseRequest" }, "ExpenseResource": { "type": "object", "properties": { "id": { "type": "integer" }, "expense_date": { "type": "string" }, "expense_number": { "type": [ "string", "null" ] }, "amount": { "type": "integer" }, "notes": { "type": [ "string", "null" ] }, "customer_id": { "type": [ "integer", "null" ] }, "attachment_receipt_url": { "type": "string" }, "attachment_receipt": { "type": "string" }, "attachment_receipt_meta": { "type": "string" }, "company_id": { "type": [ "integer", "null" ] }, "expense_category_id": { "type": "integer" }, "creator_id": { "type": [ "integer", "null" ] }, "formatted_expense_date": { "type": "string" }, "formatted_created_at": { "type": "string" }, "exchange_rate": { "type": [ "number", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "base_amount": { "type": [ "integer", "null" ] }, "payment_method_id": { "type": [ "integer", "null" ] }, "customer": { "$ref": "#/components/schemas/CustomerResource" }, "expense_category": { "$ref": "#/components/schemas/ExpenseCategoryResource" }, "creator": { "$ref": "#/components/schemas/UserResource" }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/CustomFieldValueResource" } }, "company": { "$ref": "#/components/schemas/CompanyResource" }, "currency": { "$ref": "#/components/schemas/CurrencyResource" }, "payment_method": { "$ref": "#/components/schemas/PaymentMethodResource" } }, "required": [ "id", "expense_date", "expense_number", "amount", "notes", "customer_id", "attachment_receipt_url", "attachment_receipt", "attachment_receipt_meta", "company_id", "expense_category_id", "creator_id", "formatted_expense_date", "formatted_created_at", "exchange_rate", "currency_id", "base_amount", "payment_method_id" ], "title": "ExpenseResource" }, "FileDiskResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "type": { "type": "string" }, "driver": { "type": "string" }, "set_as_default": { "type": "boolean" }, "credentials": { "type": "string" }, "company_id": { "type": "string" } }, "required": [ "id", "name", "type", "driver", "set_as_default", "credentials", "company_id" ], "title": "FileDiskResource" }, "Invoice": { "type": "object", "properties": { "id": { "type": "integer" }, "invoice_date": { "type": "string" }, "due_date": { "type": [ "string", "null" ] }, "invoice_number": { "type": "string" }, "reference_number": { "type": [ "string", "null" ] }, "status": { "type": "string" }, "paid_status": { "type": "string" }, "tax_per_item": { "type": "string" }, "discount_per_item": { "type": "string" }, "notes": { "type": [ "string", "null" ] }, "discount_type": { "type": [ "string", "null" ] }, "discount": { "type": [ "number", "null" ] }, "discount_val": { "type": [ "integer", "null" ] }, "sub_total": { "type": "integer" }, "total": { "type": "integer" }, "tax": { "type": "integer" }, "due_amount": { "type": "integer" }, "sent": { "type": "integer" }, "viewed": { "type": "integer" }, "unique_hash": { "type": [ "string", "null" ] }, "user_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" }, "creator_id": { "type": [ "integer", "null" ] }, "template_name": { "type": [ "string", "null" ] }, "customer_id": { "type": [ "integer", "null" ] }, "recurring_invoice_id": { "type": [ "integer", "null" ] }, "exchange_rate": { "type": [ "number", "null" ] }, "base_discount_val": { "type": [ "integer", "null" ] }, "base_sub_total": { "type": [ "integer", "null" ] }, "base_total": { "type": [ "integer", "null" ] }, "base_tax": { "type": [ "integer", "null" ] }, "base_due_amount": { "type": [ "integer", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "sequence_number": { "type": [ "integer", "null" ] }, "customer_sequence_number": { "type": [ "integer", "null" ] }, "sales_tax_type": { "type": [ "string", "null" ] }, "sales_tax_address_type": { "type": [ "string", "null" ] }, "overdue": { "type": "integer" }, "tax_included": { "type": "integer" } }, "required": [ "id", "invoice_date", "due_date", "invoice_number", "reference_number", "status", "paid_status", "tax_per_item", "discount_per_item", "notes", "discount_type", "discount", "discount_val", "sub_total", "total", "tax", "due_amount", "sent", "viewed", "unique_hash", "user_id", "company_id", "created_at", "updated_at", "creator_id", "template_name", "customer_id", "recurring_invoice_id", "exchange_rate", "base_discount_val", "base_sub_total", "base_total", "base_tax", "base_due_amount", "currency_id", "sequence_number", "customer_sequence_number", "sales_tax_type", "sales_tax_address_type", "overdue", "tax_included" ], "title": "Invoice" }, "InvoiceItemResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "discount_type": { "type": "string" }, "price": { "type": "integer" }, "quantity": { "type": "number" }, "unit_name": { "type": [ "string", "null" ] }, "discount": { "type": [ "number", "null" ] }, "discount_val": { "type": "integer" }, "tax": { "type": "integer" }, "total": { "type": "integer" }, "invoice_id": { "type": [ "integer", "null" ] }, "item_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "base_price": { "type": [ "integer", "null" ] }, "exchange_rate": { "type": [ "string", "null" ] }, "base_discount_val": { "type": [ "integer", "null" ] }, "base_tax": { "type": [ "integer", "null" ] }, "base_total": { "type": [ "integer", "null" ] }, "recurring_invoice_id": { "type": [ "integer", "null" ] }, "taxes": { "type": "array", "items": { "$ref": "#/components/schemas/TaxResource" } }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/CustomFieldValueResource" } } }, "required": [ "id", "name", "description", "discount_type", "price", "quantity", "unit_name", "discount", "discount_val", "tax", "total", "invoice_id", "item_id", "company_id", "base_price", "exchange_rate", "base_discount_val", "base_tax", "base_total", "recurring_invoice_id" ], "title": "InvoiceItemResource" }, "InvoiceResource": { "type": "object", "properties": { "id": { "type": "integer" }, "invoice_date": { "type": "string" }, "due_date": { "type": [ "string", "null" ] }, "invoice_number": { "type": "string" }, "reference_number": { "type": [ "string", "null" ] }, "status": { "type": "string" }, "paid_status": { "type": "string" }, "tax_per_item": { "type": "string" }, "tax_included": { "type": "integer" }, "discount_per_item": { "type": "string" }, "notes": { "type": [ "string", "null" ] }, "discount_type": { "type": [ "string", "null" ] }, "discount": { "type": [ "number", "null" ] }, "discount_val": { "type": [ "integer", "null" ] }, "sub_total": { "type": "integer" }, "total": { "type": "integer" }, "tax": { "type": "integer" }, "due_amount": { "type": "integer" }, "sent": { "type": "integer" }, "viewed": { "type": "integer" }, "unique_hash": { "type": [ "string", "null" ] }, "template_name": { "type": [ "string", "null" ] }, "customer_id": { "type": [ "integer", "null" ] }, "recurring_invoice_id": { "type": [ "integer", "null" ] }, "sequence_number": { "type": [ "integer", "null" ] }, "exchange_rate": { "type": [ "number", "null" ] }, "base_discount_val": { "type": [ "integer", "null" ] }, "base_sub_total": { "type": [ "integer", "null" ] }, "base_total": { "type": [ "integer", "null" ] }, "creator_id": { "type": [ "integer", "null" ] }, "base_tax": { "type": [ "integer", "null" ] }, "base_due_amount": { "type": [ "integer", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "formatted_created_at": { "type": "string" }, "invoice_pdf_url": { "type": "string" }, "formatted_invoice_date": { "type": "string" }, "formatted_due_date": { "type": "string" }, "allow_edit": { "type": "string" }, "payment_module_enabled": { "type": "string" }, "sales_tax_type": { "type": [ "string", "null" ] }, "sales_tax_address_type": { "type": [ "string", "null" ] }, "overdue": { "type": "integer" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/InvoiceItemResource" } }, "customer": { "$ref": "#/components/schemas/CustomerResource" }, "creator": { "$ref": "#/components/schemas/UserResource" }, "taxes": { "type": "array", "items": { "$ref": "#/components/schemas/TaxResource" } }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/CustomFieldValueResource" } }, "company": { "$ref": "#/components/schemas/CompanyResource" }, "currency": { "$ref": "#/components/schemas/CurrencyResource" } }, "required": [ "id", "invoice_date", "due_date", "invoice_number", "reference_number", "status", "paid_status", "tax_per_item", "tax_included", "discount_per_item", "notes", "discount_type", "discount", "discount_val", "sub_total", "total", "tax", "due_amount", "sent", "viewed", "unique_hash", "template_name", "customer_id", "recurring_invoice_id", "sequence_number", "exchange_rate", "base_discount_val", "base_sub_total", "base_total", "creator_id", "base_tax", "base_due_amount", "currency_id", "formatted_created_at", "invoice_pdf_url", "formatted_invoice_date", "formatted_due_date", "allow_edit", "payment_module_enabled", "sales_tax_type", "sales_tax_address_type", "overdue" ], "title": "InvoiceResource" }, "InvoicesRequest": { "type": "object", "properties": { "invoice_date": { "type": "string" }, "due_date": { "type": [ "string", "null" ] }, "customer_id": { "type": "string" }, "invoice_number": { "type": "string" }, "exchange_rate": { "type": [ "string", "null" ] }, "discount": { "type": "number" }, "discount_val": { "type": "integer" }, "sub_total": { "type": "number" }, "total": { "type": "number", "maximum": 999999999999 }, "tax": { "type": "string" }, "template_name": { "type": "string" }, "items": { "type": "array", "items": { "type": "object", "properties": { "description": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "quantity": { "type": "number" }, "price": { "type": "number" } }, "required": [ "name", "quantity", "price" ] }, "minItems": 1 } }, "required": [ "invoice_date", "customer_id", "invoice_number", "discount", "discount_val", "sub_total", "total", "tax", "template_name", "items" ], "title": "InvoicesRequest" }, "ItemResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "price": { "type": "integer" }, "unit_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "creator_id": { "type": [ "integer", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" }, "tax_per_item": { "type": "integer" }, "formatted_created_at": { "type": "string" }, "unit": { "$ref": "#/components/schemas/UnitResource" }, "company": { "$ref": "#/components/schemas/CompanyResource" }, "taxes": { "type": "array", "items": { "$ref": "#/components/schemas/TaxResource" } }, "currency": { "$ref": "#/components/schemas/CurrencyResource" } }, "required": [ "id", "name", "description", "price", "unit_id", "company_id", "creator_id", "currency_id", "created_at", "updated_at", "tax_per_item", "formatted_created_at" ], "title": "ItemResource" }, "ItemsRequest": { "type": "object", "properties": { "name": { "type": "string" }, "price": { "type": "string" }, "unit_id": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] } }, "required": [ "name", "price" ], "title": "ItemsRequest" }, "LoginRequest": { "type": "object", "properties": { "username": { "type": "string" }, "password": { "type": "string" }, "device_name": { "type": "string" } }, "required": [ "username", "password", "device_name" ], "title": "LoginRequest" }, "MailEnvironmentRequest": { "type": "object", "properties": { "mail_driver": { "type": "string", "enum": [ "sendmail", "smtp", "mail", "ses", "mailgun", "postmark" ] }, "from_name": { "type": "string" }, "from_mail": { "type": "string", "format": "email" }, "mail_sendmail_path": { "type": [ "string", "null" ] } }, "required": [ "mail_driver", "from_name", "from_mail" ], "title": "MailEnvironmentRequest" }, "MemberRequest": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "type": "string" }, "phone": { "type": [ "string", "null" ] }, "password": { "type": "string", "minLength": 8 }, "companies": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "role": { "type": "string" } }, "required": [ "id", "role" ] } } }, "required": [ "name", "email", "password", "companies" ], "title": "MemberRequest" }, "ModuleResource": { "type": "object", "properties": { "id": { "type": "integer" }, "average_rating": { "type": "string" }, "cover": { "type": "string" }, "slug": { "type": "string" }, "module_name": { "type": "string" }, "access_tier": { "anyOf": [ { "type": "string" }, { "type": "string", "enum": [ "public" ] } ] }, "faq": { "type": "string" }, "highlights": { "type": "string" }, "installed_module_version": { "type": [ "string", "null" ] }, "installed_module_version_updated_at": { "type": [ "string", "null" ] }, "latest_module_version": { "type": "string" }, "latest_module_version_updated_at": { "type": "string" }, "latest_min_invoiceshelf_version": { "type": [ "string", "null" ] }, "latest_module_checksum_sha256": { "type": [ "string", "null" ] }, "is_dev": { "type": "string" }, "license": { "type": "string" }, "long_description": { "type": "string" }, "monthly_price": { "type": "string" }, "name": { "type": "string" }, "purchased": { "anyOf": [ { "type": "string" }, { "type": "boolean" } ] }, "reviews": { "anyOf": [ { "type": "string" }, { "type": "array", "items": { "type": "string" }, "minItems": 0, "maxItems": 0, "additionalItems": false } ] }, "screenshots": { "type": "string" }, "short_description": { "type": "string" }, "type": { "type": "string" }, "yearly_price": { "type": "string" }, "author_name": { "type": "string" }, "author_avatar": { "type": "string" }, "installed": { "type": "boolean" }, "enabled": { "type": "boolean" }, "update_available": { "type": "boolean" }, "video_link": { "type": "string" }, "video_thumbnail": { "type": "string" }, "links": { "type": "string" } }, "required": [ "id", "average_rating", "cover", "slug", "module_name", "access_tier", "faq", "highlights", "installed_module_version", "installed_module_version_updated_at", "latest_module_version", "latest_module_version_updated_at", "latest_min_invoiceshelf_version", "latest_module_checksum_sha256", "is_dev", "license", "long_description", "monthly_price", "name", "purchased", "reviews", "screenshots", "short_description", "type", "yearly_price", "author_name", "author_avatar", "installed", "enabled", "update_available", "video_link", "video_thumbnail", "links" ], "title": "ModuleResource" }, "NoteResource": { "type": "object", "properties": { "id": { "type": "integer" }, "type": { "type": "string" }, "name": { "type": "string" }, "notes": { "type": "string" }, "is_default": { "type": "integer" }, "company": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "id", "type", "name", "notes", "is_default" ], "title": "NoteResource" }, "NotesRequest": { "type": "object", "properties": { "type": { "type": "string" }, "name": { "type": "string" }, "notes": { "type": "string" }, "is_default": { "type": "string" } }, "required": [ "type", "name", "notes", "is_default" ], "title": "NotesRequest" }, "PDFConfigurationRequest": { "type": "object", "properties": { "pdf_driver": { "type": "string" } }, "required": [ "pdf_driver" ], "title": "PDFConfigurationRequest" }, "PaymentMethodRequest": { "type": "object", "properties": { "name": { "type": "string" } }, "required": [ "name" ], "title": "PaymentMethodRequest" }, "PaymentMethodResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "company_id": { "type": [ "integer", "null" ] }, "type": { "type": "string" }, "company": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "id", "name", "company_id", "type" ], "title": "PaymentMethodResource" }, "PaymentRequest": { "type": "object", "properties": { "payment_date": { "type": "string" }, "customer_id": { "type": "string" }, "exchange_rate": { "type": [ "string", "null" ] }, "amount": { "type": "string" }, "payment_number": { "type": "string" }, "invoice_id": { "type": [ "string", "null" ] }, "payment_method_id": { "type": [ "string", "null" ] }, "notes": { "type": [ "string", "null" ] } }, "required": [ "payment_date", "customer_id", "amount", "payment_number" ], "title": "PaymentRequest" }, "PaymentResource": { "type": "object", "properties": { "id": { "type": "integer" }, "payment_number": { "type": "string" }, "payment_date": { "type": "string" }, "notes": { "type": "string" }, "amount": { "type": "integer" }, "unique_hash": { "type": [ "string", "null" ] }, "invoice_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "payment_method_id": { "type": [ "integer", "null" ] }, "creator_id": { "type": [ "integer", "null" ] }, "customer_id": { "type": [ "integer", "null" ] }, "exchange_rate": { "type": [ "number", "null" ] }, "base_amount": { "type": [ "integer", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "transaction_id": { "type": [ "integer", "null" ] }, "sequence_number": { "type": [ "integer", "null" ] }, "formatted_created_at": { "type": "string" }, "formatted_payment_date": { "type": "string" }, "payment_pdf_url": { "type": "string" }, "customer": { "$ref": "#/components/schemas/CustomerResource" }, "invoice": { "$ref": "#/components/schemas/InvoiceResource" }, "payment_method": { "$ref": "#/components/schemas/PaymentMethodResource" }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/CustomFieldValueResource" } }, "company": { "$ref": "#/components/schemas/CompanyResource" }, "currency": { "$ref": "#/components/schemas/CurrencyResource" }, "transaction": { "$ref": "#/components/schemas/TransactionResource" } }, "required": [ "id", "payment_number", "payment_date", "notes", "amount", "unique_hash", "invoice_id", "company_id", "payment_method_id", "creator_id", "customer_id", "exchange_rate", "base_amount", "currency_id", "transaction_id", "sequence_number", "formatted_created_at", "formatted_payment_date", "payment_pdf_url" ], "title": "PaymentResource" }, "ProfileRequest": { "type": "object", "properties": { "name": { "type": "string" }, "password": { "type": [ "string", "null" ], "minLength": 8 }, "email": { "type": "string" } }, "required": [ "name", "email" ], "title": "ProfileRequest" }, "RecurringInvoiceRequest": { "type": "object", "properties": { "starts_at": { "type": "string" }, "send_automatically": { "type": "boolean" }, "customer_id": { "type": "string" }, "exchange_rate": { "type": [ "string", "null" ] }, "discount": { "type": "number" }, "discount_val": { "type": "integer" }, "sub_total": { "type": "integer" }, "total": { "type": "integer", "maximum": 999999999999 }, "tax": { "type": "string" }, "status": { "type": "string" }, "frequency": { "type": "string" }, "limit_by": { "type": "string" }, "limit_count": { "type": "string" }, "limit_date": { "type": "string" }, "items": { "type": "array", "items": { "type": "object", "properties": { "description": { "type": [ "string", "null" ] } } } } }, "required": [ "starts_at", "send_automatically", "customer_id", "discount", "discount_val", "sub_total", "total", "tax", "status", "frequency", "limit_by", "items" ], "title": "RecurringInvoiceRequest" }, "RecurringInvoiceResource": { "type": "object", "properties": { "id": { "type": "integer" }, "starts_at": { "type": "string" }, "formatted_starts_at": { "type": "string" }, "formatted_created_at": { "type": "string" }, "formatted_next_invoice_at": { "type": "string" }, "formatted_limit_date": { "type": "string" }, "send_automatically": { "type": "boolean" }, "customer_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "creator_id": { "type": [ "integer", "null" ] }, "status": { "type": "string" }, "next_invoice_at": { "type": [ "string", "null" ] }, "frequency": { "type": "string" }, "limit_by": { "type": "string" }, "limit_count": { "type": [ "integer", "null" ] }, "limit_date": { "type": [ "string", "null" ] }, "exchange_rate": { "type": [ "number", "null" ] }, "tax_per_item": { "type": "string" }, "tax_included": { "type": "integer" }, "discount_per_item": { "type": "string" }, "notes": { "type": [ "string", "null" ] }, "discount_type": { "type": [ "string", "null" ] }, "discount": { "type": [ "string", "null" ] }, "discount_val": { "type": [ "integer", "null" ] }, "sub_total": { "type": "integer" }, "total": { "type": "integer" }, "tax": { "type": "integer" }, "due_amount": { "type": "integer" }, "template_name": { "type": [ "string", "null" ] }, "sales_tax_type": { "type": [ "string", "null" ] }, "sales_tax_address_type": { "type": [ "string", "null" ] }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/CustomFieldValueResource" } }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/InvoiceItemResource" } }, "customer": { "$ref": "#/components/schemas/CustomerResource" }, "company": { "$ref": "#/components/schemas/CompanyResource" }, "invoices": { "type": "array", "items": { "$ref": "#/components/schemas/InvoiceResource" } }, "taxes": { "type": "array", "items": { "$ref": "#/components/schemas/TaxResource" } }, "creator": { "$ref": "#/components/schemas/UserResource" }, "currency": { "$ref": "#/components/schemas/CurrencyResource" } }, "required": [ "id", "starts_at", "formatted_starts_at", "formatted_created_at", "formatted_next_invoice_at", "formatted_limit_date", "send_automatically", "customer_id", "company_id", "creator_id", "status", "next_invoice_at", "frequency", "limit_by", "limit_count", "limit_date", "exchange_rate", "tax_per_item", "tax_included", "discount_per_item", "notes", "discount_type", "discount", "discount_val", "sub_total", "total", "tax", "due_amount", "template_name", "sales_tax_type", "sales_tax_address_type" ], "title": "RecurringInvoiceResource" }, "Role": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "title": { "type": [ "string", "null" ] }, "level": { "type": [ "integer", "null" ] }, "scope": { "type": [ "integer", "null" ] }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" } }, "required": [ "id", "name", "title", "level", "scope", "created_at", "updated_at" ], "title": "Role" }, "RoleRequest": { "type": "object", "properties": { "name": { "type": "string" }, "abilities": { "type": "array", "items": { "type": "string" } } }, "required": [ "name", "abilities" ], "title": "RoleRequest" }, "RoleResource": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "title": { "type": "string" }, "level": { "type": "string" }, "formatted_created_at": { "type": "string" }, "abilities": { "type": "string" } }, "required": [ "id", "name", "title", "level", "formatted_created_at", "abilities" ], "title": "RoleResource" }, "SendEstimatesRequest": { "type": "object", "properties": { "subject": { "type": "string" }, "body": { "type": "string" }, "from": { "type": "string" }, "to": { "type": "string" }, "cc": { "type": [ "string", "null" ] }, "bcc": { "type": [ "string", "null" ] } }, "required": [ "subject", "body", "from", "to" ], "title": "SendEstimatesRequest" }, "SendInvoiceRequest": { "type": "object", "properties": { "body": { "type": "string" }, "subject": { "type": "string" }, "from": { "type": "string" }, "to": { "type": "string" }, "cc": { "type": [ "string", "null" ] }, "bcc": { "type": [ "string", "null" ] } }, "required": [ "body", "subject", "from", "to" ], "title": "SendInvoiceRequest" }, "SendPaymentRequest": { "type": "object", "properties": { "subject": { "type": "string" }, "body": { "type": "string" }, "from": { "type": "string" }, "to": { "type": "string" }, "cc": { "type": [ "string", "null" ] }, "bcc": { "type": [ "string", "null" ] } }, "required": [ "subject", "body", "from", "to" ], "title": "SendPaymentRequest" }, "SettingRequest": { "type": "object", "properties": { "settings": { "type": "string" } }, "required": [ "settings" ], "title": "SettingRequest" }, "TaxResource": { "type": "object", "properties": { "id": { "type": "integer" }, "tax_type_id": { "type": "integer" }, "invoice_id": { "type": [ "integer", "null" ] }, "estimate_id": { "type": [ "integer", "null" ] }, "invoice_item_id": { "type": [ "integer", "null" ] }, "estimate_item_id": { "type": [ "integer", "null" ] }, "item_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "name": { "type": "string" }, "amount": { "type": "integer" }, "percent": { "type": [ "number", "null" ] }, "calculation_type": { "type": "string" }, "fixed_amount": { "type": [ "integer", "null" ] }, "compound_tax": { "type": "integer" }, "base_amount": { "type": [ "integer", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "type": { "type": "string" }, "recurring_invoice_id": { "type": [ "integer", "null" ] }, "tax_type": { "$ref": "#/components/schemas/TaxTypeResource" }, "currency": { "$ref": "#/components/schemas/CurrencyResource" } }, "required": [ "id", "tax_type_id", "invoice_id", "estimate_id", "invoice_item_id", "estimate_item_id", "item_id", "company_id", "name", "amount", "percent", "calculation_type", "fixed_amount", "compound_tax", "base_amount", "currency_id", "type", "recurring_invoice_id" ], "title": "TaxResource" }, "TaxType": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "percent": { "type": [ "number", "null" ] }, "compound_tax": { "type": "boolean" }, "collective_tax": { "type": "integer" }, "description": { "type": [ "string", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" }, "type": { "type": "string" }, "calculation_type": { "type": "string" }, "fixed_amount": { "type": [ "integer", "null" ] } }, "required": [ "id", "name", "percent", "compound_tax", "collective_tax", "description", "company_id", "created_at", "updated_at", "type", "calculation_type", "fixed_amount" ], "title": "TaxType" }, "TaxTypeRequest": { "type": "object", "properties": { "name": { "type": "string" }, "calculation_type": { "type": "string", "enum": [ "percentage", "fixed" ] }, "percent": { "type": [ "number", "null" ] }, "fixed_amount": { "type": [ "number", "null" ] }, "description": { "type": [ "string", "null" ] }, "compound_tax": { "type": [ "string", "null" ] }, "collective_tax": { "type": [ "string", "null" ] } }, "required": [ "name", "calculation_type" ], "title": "TaxTypeRequest" }, "TaxTypeResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "percent": { "type": [ "number", "null" ] }, "fixed_amount": { "type": [ "integer", "null" ] }, "calculation_type": { "type": "string" }, "type": { "type": "string" }, "compound_tax": { "type": "boolean" }, "collective_tax": { "type": "integer" }, "description": { "type": [ "string", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "company": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "id", "name", "percent", "fixed_amount", "calculation_type", "type", "compound_tax", "collective_tax", "description", "company_id" ], "title": "TaxTypeResource" }, "TransactionResource": { "type": "object", "properties": { "id": { "type": "integer" }, "transaction_id": { "type": [ "string", "null" ] }, "type": { "type": [ "string", "null" ] }, "status": { "type": "string" }, "transaction_date": { "type": "string" }, "invoice_id": { "type": "integer" }, "invoice": { "$ref": "#/components/schemas/InvoiceResource" }, "company": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "id", "transaction_id", "type", "status", "transaction_date", "invoice_id" ], "title": "TransactionResource" }, "UnitRequest": { "type": "object", "properties": { "name": { "type": "string" } }, "required": [ "name" ], "title": "UnitRequest" }, "UnitResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "company_id": { "type": [ "integer", "null" ] }, "company": { "$ref": "#/components/schemas/CompanyResource" } }, "required": [ "id", "name", "company_id" ], "title": "UnitResource" }, "UnzipUpdateRequest": { "type": "object", "properties": { "path": { "type": "string", "pattern": "^[\\.\\/\\w\\-]+$" }, "module": { "type": [ "string", "null" ] }, "module_name": { "type": "string" } }, "required": [ "path" ], "title": "UnzipUpdateRequest" }, "UpdateSettingsRequest": { "type": "object", "properties": { "settings": { "type": "string" } }, "required": [ "settings" ], "title": "UpdateSettingsRequest" }, "UploadExpenseReceiptRequest": { "type": "object", "properties": { "attachment_receipt": { "type": [ "string", "null" ] } }, "title": "UploadExpenseReceiptRequest" }, "UploadModuleRequest": { "type": "object", "properties": { "avatar": { "type": "string", "format": "binary", "contentMediaType": "application/octet-stream", "maxLength": 20000 }, "module": { "type": "string", "maxLength": 100 } }, "required": [ "avatar", "module" ], "title": "UploadModuleRequest" }, "User": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] }, "role": { "type": "string" }, "facebook_id": { "type": [ "string", "null" ] }, "google_id": { "type": [ "string", "null" ] }, "github_id": { "type": [ "string", "null" ] }, "contact_name": { "type": [ "string", "null" ] }, "company_name": { "type": [ "string", "null" ] }, "website": { "type": [ "string", "null" ] }, "enable_portal": { "type": [ "integer", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "company_id": { "type": [ "integer", "null" ] }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" }, "creator_id": { "type": [ "integer", "null" ] }, "avatar": { "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency" } }, "required": [ "id", "name", "email", "phone", "role", "facebook_id", "google_id", "github_id", "contact_name", "company_name", "website", "enable_portal", "currency_id", "company_id", "created_at", "updated_at", "creator_id", "avatar" ], "title": "User" }, "UserResource": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] }, "role": { "type": "string" }, "contact_name": { "type": [ "string", "null" ] }, "company_name": { "type": [ "string", "null" ] }, "website": { "type": [ "string", "null" ] }, "enable_portal": { "type": [ "integer", "null" ] }, "currency_id": { "type": [ "integer", "null" ] }, "facebook_id": { "type": [ "string", "null" ] }, "google_id": { "type": [ "string", "null" ] }, "github_id": { "type": [ "string", "null" ] }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" }, "avatar": { "type": "string" }, "is_owner": { "type": "boolean" }, "is_super_admin": { "type": "boolean" }, "roles": { "type": "array", "items": { "$ref": "#/components/schemas/Role" } }, "formatted_created_at": { "type": "string" }, "currency": { "$ref": "#/components/schemas/CurrencyResource" }, "companies": { "type": "array", "items": { "$ref": "#/components/schemas/CompanyResource" } } }, "required": [ "id", "name", "email", "phone", "role", "contact_name", "company_name", "website", "enable_portal", "currency_id", "facebook_id", "google_id", "github_id", "created_at", "updated_at", "avatar", "is_owner", "is_super_admin", "roles", "formatted_created_at" ], "title": "UserResource" } }, "responses": { "ValidationException": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "description": "Errors overview." }, "errors": { "type": "object", "description": "A detailed description of each field that failed validation.", "additionalProperties": { "type": "array", "items": { "type": "string" } } } }, "required": [ "message", "errors" ] } } } }, "AuthenticationException": { "description": "Unauthenticated", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "description": "Error overview." } }, "required": [ "message" ] } } } }, "ModelNotFoundException": { "description": "Not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "description": "Error overview." } }, "required": [ "message" ] } } } }, "AuthorizationException": { "description": "Authorization error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "description": "Error overview." } }, "required": [ "message" ] } } } } } } }