Files
InvoiceShelf/public/openapi.json
Darko Gjorgjijoski 8d929ec09d feat(api): generate OpenAPI spec with Scramble for api-docs.invoiceshelf.com (#685)
Auto-generate an OpenAPI 3.1 spec from the v1 API's FormRequests and Resources
(no annotations) for publishing at api-docs.invoiceshelf.com as a static
Swagger UI site.

- config/scramble.php: scope to api/v1, version from version.md, clean
  placeholder server, export to public/openapi.json
- ScrambleServiceProvider: advertise Bearer (Sanctum) auth; add the required
  `company` tenancy header only to routes using the `company` middleware
- OpenApiDocumentationTest: assert spec shape, auth scheme, company-header gating
- .github/workflows/openapi.yml: export + commit spec on release, notify the
  api-docs site to rebuild
- public/openapi.json: generated seed spec (184 paths)
- dedoc/scramble added as a dev-only dependency

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 15:51:54 +02:00

31244 lines
1.4 MiB

{
"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 <token>). 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"
]
}
}
}
}
}
}
}