From 1868d571b5351c476d74a22a8a0c342e23f7971c Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sun, 12 Feb 2023 18:58:00 +1100 Subject: [PATCH] Working on api docs --- app/Console/Commands/OpenApiYaml.php | 6 +- openapi/api-docs.yaml | 1871 ++++++----- openapi/components/components.yaml | 4065 ----------------------- openapi/components/schemas.yaml | 4059 ++++++++++++++++++++++ openapi/components/schemas/account.yaml | 7 + openapi/paths/clients.yaml | 783 +++++ openapi/paths/paths.yaml | 645 +--- 7 files changed, 5861 insertions(+), 5575 deletions(-) create mode 100644 openapi/components/schemas.yaml create mode 100644 openapi/components/schemas/account.yaml create mode 100644 openapi/paths/clients.yaml diff --git a/app/Console/Commands/OpenApiYaml.php b/app/Console/Commands/OpenApiYaml.php index cb70e59c34..8ffc478a49 100644 --- a/app/Console/Commands/OpenApiYaml.php +++ b/app/Console/Commands/OpenApiYaml.php @@ -61,14 +61,18 @@ class OpenApiYaml extends Command $this->info($file); + } + Storage::disk('base')->delete('/openapi/api-docs.yaml'); Storage::disk('base')->append('/openapi/api-docs.yaml', file_get_contents($path.'/info.yaml')); Storage::disk('base')->append('/openapi/api-docs.yaml', file_get_contents($path.'/paths/paths.yaml')); + Storage::disk('base')->append('/openapi/api-docs.yaml', file_get_contents($path.'/paths/clients.yaml')); Storage::disk('base')->append('/openapi/api-docs.yaml', file_get_contents($path.'/components/components.yaml')); + Storage::disk('base')->append('/openapi/api-docs.yaml', file_get_contents($path.'/components/schemas.yaml')); + Storage::disk('base')->append('/openapi/api-docs.yaml', file_get_contents($path.'/components/schemas/account.yaml')); Storage::disk('base')->append('/openapi/api-docs.yaml', file_get_contents($path.'/misc/misc.yaml')); - } } } diff --git a/openapi/api-docs.yaml b/openapi/api-docs.yaml index b78a01cbd5..c1e16d0903 100644 --- a/openapi/api-docs.yaml +++ b/openapi/api-docs.yaml @@ -1565,588 +1565,7 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' - /api/v1/clients: - get: - tags: - - clients - summary: 'List clients' - description: | - Lists clients. Fine grained filtering is also available using query parameters. - operationId: getClients - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/client_include' - - - $ref: '#/components/parameters/index' - - - name: name - in: query - description: Filter by client name - required: false - schema: - type: string - example: bob - - - name: balance - in: query - description: Filter by client balance, format uses an operator and value separated by a colon. lt,lte, gt, gte, eq - required: false - schema: - type: string - example: lt:10 - - - name: between_balance - in: query - description: Filter between client balances, format uses two values separated by a colon - required: false - schema: - type: string - example: 10:100 - - - name: email - in: query - description: Filter by client email - required: false - schema: - type: string - example: bob@gmail.com - - - name: id_number - in: query - description: Filter by client id_number - required: false - schema: - type: string - example: a1039883 - - - name: number - in: query - description: Filter by client number - required: false - schema: - type: string - example: a1039883 - - - name: filter - in: query - description: Filters clients on columns - name, id_number, contact.first_name contact.last_name, contact.email, custom_value1-4 - required: false - schema: - type: string - example: a1039883 - - - name: sort - in: query - description: Returns the list sorted by column in ascending or descending order. - required: false - schema: - type: string - example: id|desc name|desc balance|asc - responses: - 200: - description: 'A list of clients' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 403: - description: 'Authorization error' - content: - application/json: - schema: - $ref: '#components/schemas/AuthorizationError' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - post: - tags: - - clients - summary: 'Create client' - description: 'Adds an client to a company' - operationId: storeClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - responses: - 200: - description: 'Returns the saved client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '/api/v1/clients/{id}': - get: - tags: - - clients - summary: 'Show client' - description: 'Displays a client by id' - operationId: showClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - - - name: id - in: path - description: 'The Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - responses: - 200: - description: 'Returns the cl.ient object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - put: - tags: - - clients - summary: 'Update client' - description: 'Handles the updating of a client by id' - operationId: updateClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - - - name: id - in: path - description: 'The Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - responses: - 200: - description: 'Returns the client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - delete: - tags: - - clients - summary: 'Delete client' - description: 'Handles the deletion of a client by id' - operationId: deleteClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - - - name: id - in: path - description: 'The Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - responses: - 200: - description: 'Returns a HTTP status' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '/api/v1/clients/{id}/edit': - get: - tags: - - clients - summary: 'Edit Client' - description: 'Displays a client by id' - operationId: editClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - - - name: id - in: path - description: 'The Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - responses: - 200: - description: 'Returns the client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /api/v1/clients/create: - get: - tags: - - clients - summary: 'Blank Client' - description: 'Returns a blank object with default values' - operationId: getClientsCreate - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - responses: - 200: - description: 'A blank client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /api/v1/clients/bulk: - post: - tags: - - clients - summary: 'Bulk actions' - description: '' - operationId: bulkClients - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/index' - requestBody: - description: 'User credentials' - required: true - content: - application/json: - schema: - type: array - items: - description: 'Array of hashed IDs to be bulk ''actioned' - type: integer - example: '[0,1,2,3]' - responses: - 200: - description: 'The Client User response' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '/api/v1/clients/{id}/upload': - put: - tags: - - clients - summary: 'Add client document' - description: 'Handles the uploading of a document to a client' - operationId: uploadClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - - - name: id - in: path - description: 'The Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - responses: - 200: - description: 'Returns the client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '/api/v1/clients/{id}/purge': - post: - tags: - - clients - summary: 'Purge client' - description: 'Handles purging a client' - operationId: purgeClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - - - name: id - in: path - description: 'The Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - responses: - 200: - description: 'Returns the client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '/api/v1/clients/{id}/{mergeable_client_hashed_id}/merge': - post: - tags: - - clients - summary: 'Merge client' - description: 'Handles merging 2 clients' - operationId: mergeClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - - - name: id - in: path - description: 'The Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - - - name: mergeable_client_hashed_id - in: path - description: 'The Mergeable Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - responses: - 200: - description: 'Returns the client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' /api/v1/client_gateway_tokens: get: tags: @@ -2458,69 +1877,7 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' - /api/v1/client_statement: - post: - tags: - - clients - summary: 'Client statement PDF' - description: 'Return a PDF of the client statement' - operationId: clientStatement - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - requestBody: - description: 'Statment Options' - required: true - content: - application/json: - schema: - properties: - start_date: - description: 'The start date of the statement period - format Y-m-d' - type: string - end_date: - description: 'The start date of the statement period - format Y-m-d' - type: string - client_id: - description: 'The hashed ID of the client' - type: string - show_payments_table: - description: 'Flag which determines if the payments table is shown' - type: boolean - show_aging_table: - description: 'Flag which determines if the aging table is shown' - type: boolean - type: object - responses: - 200: - description: 'Returns the client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' + /api/v1/companies: get: tags: @@ -14939,15 +14296,1002 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' + /api/v1/clients: + get: + tags: + - clients + summary: 'List clients' + description: | + Lists clients. Fine grained filtering is also available using query parameters. + operationId: getClients + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + - + $ref: '#/components/parameters/index' + - + name: name + in: query + description: Filter by client name + required: false + schema: + type: string + example: bob + - + name: balance + in: query + description: Filter by client balance, format uses an operator and value separated by a colon. lt,lte, gt, gte, eq + required: false + schema: + type: string + example: lt:10 + - + name: between_balance + in: query + description: Filter between client balances, format uses two values separated by a colon + required: false + schema: + type: string + example: 10:100 + - + name: email + in: query + description: Filter by client email + required: false + schema: + type: string + example: bob@gmail.com + - + name: id_number + in: query + description: Filter by client id_number + required: false + schema: + type: string + example: a1039883 + - + name: number + in: query + description: Filter by client number + required: false + schema: + type: string + example: a1039883 + - + name: filter + in: query + description: Filters clients on columns - name, id_number, contact.first_name contact.last_name, contact.email, custom_value1-4 + required: false + schema: + type: string + example: a1039883 + - + name: sort + in: query + description: Returns the list sorted by column in ascending or descending order. + required: false + schema: + type: string + example: id|desc name|desc balance|asc + + responses: + 200: + description: 'A list of clients' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - clients + summary: 'Create client' + description: 'Adds an client to a company' + operationId: storeClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + responses: + 200: + description: 'Returns the saved client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '/api/v1/clients/{id}': + get: + tags: + - clients + summary: 'Show client' + description: 'Displays a client by id' + operationId: showClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + - + name: id + in: path + description: 'The Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + responses: + 200: + description: 'Returns the cl.ient object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + put: + tags: + - clients + summary: 'Update client' + description: 'Handles the updating of a client by id' + operationId: updateClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + - + name: id + in: path + description: 'The Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + responses: + 200: + description: 'Returns the client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + delete: + tags: + - clients + summary: 'Delete client' + description: 'Handles the deletion of a client by id' + operationId: deleteClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + - + name: id + in: path + description: 'The Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + responses: + 200: + description: 'Returns a HTTP status' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '/api/v1/clients/{id}/edit': + get: + tags: + - clients + summary: 'Edit Client' + description: 'Displays a client by id' + operationId: editClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/include' + - + name: id + in: path + description: 'The Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + responses: + 200: + description: 'Returns the client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /api/v1/clients/create: + get: + tags: + - clients + summary: 'Blank Client' + description: 'Returns a blank object with default values' + operationId: getClientsCreate + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + responses: + 200: + description: 'A blank client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /api/v1/clients/bulk: + post: + tags: + - clients + summary: 'Bulk actions' + description: '' + operationId: bulkClients + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/index' + requestBody: + description: 'User credentials' + required: true + content: + application/json: + schema: + type: array + items: + description: 'Array of hashed IDs to be bulk ''actioned' + type: integer + example: '[0,1,2,3]' + responses: + 200: + description: 'The Client User response' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '/api/v1/clients/{id}/upload': + put: + tags: + - clients + summary: 'Add client document' + description: 'Handles the uploading of a document to a client' + operationId: uploadClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + - + name: id + in: path + description: 'The Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + responses: + 200: + description: 'Returns the client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '/api/v1/clients/{id}/purge': + post: + tags: + - clients + summary: 'Purge client' + description: 'Handles purging a client' + operationId: purgeClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + - + name: id + in: path + description: 'The Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + responses: + 200: + description: 'Returns the client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '/api/v1/clients/{id}/{mergeable_client_hashed_id}/merge': + post: + tags: + - clients + summary: 'Merge client' + description: 'Handles merging 2 clients' + operationId: mergeClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + - + name: id + in: path + description: 'The Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + - + name: mergeable_client_hashed_id + in: path + description: 'The Mergeable Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + responses: + 200: + description: 'Returns the client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /api/v1/client_statement: + post: + tags: + - clients + summary: 'Client statement PDF' + description: 'Return a PDF of the client statement' + operationId: clientStatement + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/include' + requestBody: + description: 'Statment Options' + required: true + content: + application/json: + schema: + properties: + start_date: + description: 'The start date of the statement period - format Y-m-d' + type: string + end_date: + description: 'The start date of the statement period - format Y-m-d' + type: string + client_id: + description: 'The hashed ID of the client' + type: string + show_payments_table: + description: 'Flag which determines if the payments table is shown' + type: boolean + show_aging_table: + description: 'Flag which determines if the aging table is shown' + type: boolean + type: object + responses: + 200: + description: 'Returns the client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' components: + parameters: + X-API-SECRET: + name: X-API-SECRET + in: header + description: 'The API secret as defined by the .env variable API_SECRET. Only needed for self hosted users, and only applicable on the login route.' + required: false + schema: + type: string + example: password + X-Requested-With: + name: X-Requested-With + in: header + description: 'Used to send the XMLHttpRequest header' + required: true + schema: + type: string + readOnly: true + example: XMLHttpRequest + X-API-TOKEN: + name: X-API-TOKEN + in: header + description: 'The API token to be used for authentication' + required: true + schema: + type: string + example: TOKEN + X-API-PASSWORD: + name: X-API-PASSWORD + in: header + description: 'The login password when challenged on certain protected routes' + required: false + schema: + type: string + example: supersecretpassword + bank_integration_include: + name: include + in: query + description: Include child relations of the BankIntegration object. Format is comma separated. + require: false + schema: + type: string + examples: + company: + value: company + summary: The associated Company + account: + value: account + summary: The associated Account + bank_transactions: + value: bank_transactions + summary: The associated Bank Transactions + client_include: + name: include + in: query + description: Include child relationships of the Client Object. + required: false + schema: + type: string + examples: + activities: + value: activities + summary: include=activities will include the activities object in the response + ledger: + value: ledger + summary: include=ledger will include the ledger object in the response + system_logs: + value: system_logs + summary: include=system_logs will include the system_logs object in the response + activity_include: + name: include + in: query + description: Include child relations of the Activity object, format is comma separated. **Note** it is possible to chain multiple includes together, ie. include=account,token + required: false + schema: + type: string + examples: + history: + value: history + summary: include=history will include the history object in the response (This could include references to the backup HTML of the entity) + user: + value: user + summary: include=user will include the user object in the response + client: + value: client + summary: include=client will include the client object in the response + recurring_invoice: + value: recurring_invoice + summary: include=recurring_invoice will include the recurring_invoice object in the response + invoice: + value: invoice + summary: include=invoice will include the invoice object in the response + credit: + value: credit + summary: include=credit will include the credit object in the response + quote: + value: quote + summary: include=quote will include the quote object in the response + payment: + value: payment + summary: include=payment will include the payment object in the response + expense: + value: expense + summary: include=expense will include the expense object in the response + vendor_contact: + value: vendor_contact + summary: include=vendor_contact will include the vendor_contact object in the response + vendor: + value: vendor + summary: include=vendor will include the vendor object in the response + purchase_order: + value: purchase_order + summary: include=purchase_order will include the purchase_order object in the response + task: + value: task + summary: include=task will include the task object in the response + login_include: + name: include + in: query + description: Include child relations of the CompanyUser object, format is comma separated. **Note** it is possible to chain multiple includes together, ie. include=account,token + required: false + schema: + type: string + examples: + user: + value: user + summary: include=user will include the user object in the response + company: + value: company + summary: include=company will include the company object in the response + token: + value: token + summary: include=token will include the token object in the response + account: + value: account + summary: include=account will include the account object in the response + per_page_meta: + name: per_page + in: query + description: The number of records to return for each request, default is 20 + required: false + schema: + type: int + example: 20 + page_meta: + name: page + in: query + description: The page number to return for this request (when performing pagination), default is 1 + required: false + schema: + type: int + example: 1 + include: + name: include + in: query + description: 'Includes child relationships in the response, format is comma separated. Check each model for the list of associated includes' + required: false + schema: + type: string + example: 'first_load' + include_static: + name: include_static + in: query + description: 'Returns static variables' + required: false + schema: + type: string + example: include_static=true + clear_cache: + name: clear_cache + in: query + description: 'Clears the static cache' + required: false + schema: + type: string + example: clear_cache=true + index: + name: index + in: query + description: 'Replaces the default response index from data to a user specific string' + required: false + schema: + type: string + example: user + api_version: + name: api_version + in: query + description: 'The API version' + required: false + schema: + type: number + example: user + headers: + X-MINIMUM-CLIENT-VERSION: + description: 'The API version' + schema: + type: number + X-RateLimit-Remaining: + description: 'The number of requests left for the time window.' + schema: + type: integer + X-RateLimit-Limit: + description: 'The total number of requests in a given time window.' + schema: + type: integer + components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-TOKEN schemas: - Account: - properties: - id: - description: 'The account hashed id' - type: string - example: AS3df3A - type: object + Activity: properties: id: @@ -18757,9 +19101,9 @@ components: type: object properties: message: - description: 'These credentials do not match our records' + description: 'These credentials do not match our records / Invalid Token' type: string - example: 'These credentials do not match our records' + example: 'These credentials do not match our records / Invalid Token' ValidationError: properties: message: @@ -18777,9 +19121,9 @@ components: AuthorizationError: properties: message: - description: 'Invalid Token' + description: 'Insufficient permissions for this resource.' type: string - example: 'Invalid Token' + example: 'Insufficient permissions for this resource.' errors: properties: value: @@ -19005,216 +19349,13 @@ components: type: string example: JSON type: object - parameters: - X-API-SECRET: - name: X-API-SECRET - in: header - description: 'The API secret as defined by the .env variable API_SECRET. Only needed for self hosted users, and only applicable on the login route.' - required: false - schema: - type: string - example: password - X-Requested-With: - name: X-Requested-With - in: header - description: 'Used to send the XMLHttpRequest header' - required: true - schema: - type: string - readOnly: true - example: XMLHttpRequest - X-API-TOKEN: - name: X-API-TOKEN - in: header - description: 'The API token to be used for authentication' - required: true - schema: - type: string - example: TOKEN - X-API-PASSWORD: - name: X-API-PASSWORD - in: header - description: 'The login password when challenged on certain protected routes' - required: false - schema: - type: string - example: supersecretpassword - bank_integration_include: - name: include - in: query - description: Include child relations of the BankIntegration object. Format is comma separated. - require: false - schema: - type: string - examples: - company: - value: company - summary: The associated Company - account: - value: account - summary: The associated Account - bank_transactions: - value: bank_transactions - summary: The associated Bank Transactions - client_include: - name: include - in: query - description: Include child relationships of the Client Object. - required: false - schema: - type: string - examples: - activities: - value: activities - summary: include=activities will include the activities object in the response - ledger: - value: ledger - summary: include=ledger will include the ledger object in the response - system_logs: - value: system_logs - summary: include=system_logs will include the system_logs object in the response - activity_include: - name: include - in: query - description: Include child relations of the Activity object, format is comma separated. **Note** it is possible to chain multiple includes together, ie. include=account,token - required: false - schema: - type: string - examples: - history: - value: history - summary: include=history will include the history object in the response (This could include references to the backup HTML of the entity) - user: - value: user - summary: include=user will include the user object in the response - client: - value: client - summary: include=client will include the client object in the response - recurring_invoice: - value: recurring_invoice - summary: include=recurring_invoice will include the recurring_invoice object in the response - invoice: - value: invoice - summary: include=invoice will include the invoice object in the response - credit: - value: credit - summary: include=credit will include the credit object in the response - quote: - value: quote - summary: include=quote will include the quote object in the response - payment: - value: payment - summary: include=payment will include the payment object in the response - expense: - value: expense - summary: include=expense will include the expense object in the response - vendor_contact: - value: vendor_contact - summary: include=vendor_contact will include the vendor_contact object in the response - vendor: - value: vendor - summary: include=vendor will include the vendor object in the response - purchase_order: - value: purchase_order - summary: include=purchase_order will include the purchase_order object in the response - task: - value: task - summary: include=task will include the task object in the response - login_include: - name: include - in: query - description: Include child relations of the CompanyUser object, format is comma separated. **Note** it is possible to chain multiple includes together, ie. include=account,token - required: false - schema: - type: string - examples: - user: - value: user - summary: include=user will include the user object in the response - company: - value: company - summary: include=company will include the company object in the response - token: - value: token - summary: include=token will include the token object in the response - account: - value: account - summary: include=account will include the account object in the response - per_page_meta: - name: per_page - in: query - description: The number of records to return for each request, default is 20 - required: false - schema: - type: int - example: 20 - page_meta: - name: page - in: query - description: The page number to return for this request (when performing pagination), default is 1 - required: false - schema: - type: int - example: 1 - include: - name: include - in: query - description: 'Includes child relationships in the response, format is comma separated. Check each model for the list of associated includes' - required: false - schema: - type: string - example: 'first_load' - include_static: - name: include_static - in: query - description: 'Returns static variables' - required: false - schema: - type: string - example: include_static=true - clear_cache: - name: clear_cache - in: query - description: 'Clears the static cache' - required: false - schema: - type: string - example: clear_cache=true - index: - name: index - in: query - description: 'Replaces the default response index from data to a user specific string' - required: false - schema: - type: string - example: user - api_version: - name: api_version - in: query - description: 'The API version' - required: false - schema: - type: number - example: user - headers: - X-MINIMUM-CLIENT-VERSION: - description: 'The API version' - schema: - type: number - X-RateLimit-Remaining: - description: 'The number of requests left for the time window.' - schema: - type: integer - X-RateLimit-Limit: - description: 'The total number of requests in a given time window.' - schema: - type: integer - components: - securitySchemes: - ApiKeyAuth: - type: apiKey - in: header - name: X-API-TOKEN + Account: + properties: + id: + description: 'The account hashed id' + type: string + example: AS3df3A + type: object tags: - name: login diff --git a/openapi/components/components.yaml b/openapi/components/components.yaml index c5f8a18232..040a5958ae 100644 --- a/openapi/components/components.yaml +++ b/openapi/components/components.yaml @@ -1,4069 +1,4 @@ components: - schemas: - Account: - properties: - id: - description: 'The account hashed id' - type: string - example: AS3df3A - type: object - Activity: - properties: - id: - description: 'The id field of the activity' - type: string - example: Opnel5aKBz - activity_type_id: - description: 'The activity type id' - type: string - example: Opnel5aKBz - client_id: - description: 'The client hashed id' - type: string - example: Opnel5aKBz - company_id: - description: 'The company hashed id' - type: string - example: Opnel5aKBz - user_id: - description: 'The user hashed id' - type: string - example: Opnel5aKBz - invoice_id: - description: 'The invoice hashed id' - type: string - example: Opnel5aKBz - payment_id: - description: 'The payment hashed id' - type: string - example: Opnel5aKBz - credit_id: - description: 'The credit hashed id' - type: string - example: Opnel5aKBz - updated_at: - description: 'Unixtimestamp the last time the record was updated' - type: integer - example: '343421434' - expense_id: - description: 'The expense hashed id' - type: string - example: Opnel5aKBz - is_system: - description: 'Defines is the activity was performed by the system' - type: boolean - example: true - contact_id: - description: 'The contact hashed id' - type: string - example: Opnel5aKBz - task_id: - description: 'The task hashed id' - type: string - example: Opnel5aKBz - notes: - description: 'Activity Notes' - type: string - example: Opnel5aKBz - token_id: - description: 'The hashed ID of the token who performed the action' - type: string - example: Opnel5aKBz - ip: - description: 'The IP Address of the user who performed the action' - type: string - example: 192.168.1.252 - user: - $ref: '#/components/schemas/User' - client: - $ref: '#/components/schemas/Client' - contact: - $ref: '#/components/schemas/ClientContact' - recurring_invoice: - $ref: '#/components/schemas/RecurringInvoice' - invoice: - $ref: '#/components/schemas/Invoice' - credit: - $ref: '#/components/schemas/Credit' - quote: - $ref: '#/components/schemas/Quote' - payment: - $ref: '#/components/schemas/Payment' - expense: - $ref: '#/components/schemas/Expense' - task: - $ref: '#/components/schemas/Task' - purchase_order: - $ref: '#/components/schemas/PurchaseOrder' - vendor: - $ref: '#/components/schemas/Vendor' - vendor_contact: - $ref: '#/components/schemas/VendorContact' - type: object - BTRules: - properties: - data_key: - description: 'The key to search' - type: string - example: 'description,amount' - operator: - description: 'The operator flag of the search' - type: string - example: '>' - value: - description: 'The value to search for' - type: string - example: bob - type: object - BankIntegration: - properties: - id: - description: 'The bank integration hashed id' - type: string - example: AS3df3A - company_id: - description: 'The company hashed id' - type: string - example: AS3df3A - user_id: - description: 'The user hashed id' - type: string - example: AS3df3A - provider_bank_name: - description: 'The providers bank name' - type: string - example: 'Chase Bank' - bank_account_id: - description: 'The bank account id' - type: integer - example: '1233434' - bank_account_name: - description: 'The name of the account' - type: string - example: 'My Checking Acc' - bank_account_number: - description: 'The account number' - type: string - example: '111 234 2332' - bank_account_status: - description: 'The status of the bank account' - type: string - example: ACTIVE - bank_account_type: - description: 'The type of account' - type: string - example: CREDITCARD - balance: - description: 'The current bank balance if available' - type: number - example: '1000000' - currency: - description: 'iso_3166_3 code' - type: string - example: USD - type: object - BankTransaction: - properties: - id: - description: 'The bank integration hashed id' - type: string - example: AS3df3A - company_id: - description: 'The company hashed id' - type: string - example: AS3df3A - user_id: - description: 'The user hashed id' - type: string - example: AS3df3A - transaction_id: - description: 'The id of the transaction rule' - type: integer - example: 343434 - amount: - description: 'The transaction amount' - type: number - example: 10 - currency_id: - description: 'The currency ID of the currency' - type: string - example: '1' - account_type: - description: 'The account type' - type: string - example: creditCard - description: - description: 'The description of the transaction' - type: string - example: 'Potato purchases for kevin' - category_id: - description: 'The category id' - type: integer - example: 1 - category_type: - description: 'The category description' - type: string - example: Expenses - base_type: - description: 'Either CREDIT or DEBIT' - type: string - example: CREDIT - date: - description: 'The date of the transaction' - type: string - example: '2022-09-01' - bank_account_id: - description: 'The ID number of the bank account' - type: integer - example: '1' - type: object - BankTransactionRule: - properties: - id: - description: 'The bank transaction rules hashed id' - type: string - example: AS3df3A - company_id: - description: 'The company hashed id' - type: string - example: AS3df3A - user_id: - description: 'The user hashed id' - type: string - example: AS3df3A - name: - description: 'The name of the transaction' - type: string - example: 'Rule 1' - rules: - description: 'A mapped collection of the sub rules for the BankTransactionRule' - type: array - items: - $ref: '#/components/schemas/BTRules' - auto_convert: - description: 'Flags whether the rule converts the transaction automatically' - type: boolean - example: true - matches_on_all: - description: 'Flags whether all subrules are required for the match' - type: boolean - example: true - applies_to: - description: 'Flags whether the rule applies to a CREDIT or DEBIT' - type: string - example: CREDIT - client_id: - description: 'The client hashed id' - type: string - example: AS3df3A - vendor_id: - description: 'The vendor hashed id' - type: string - example: AS3df3A - category_id: - description: 'The category hashed id' - type: string - example: AS3df3A - type: object - Subscription: - properties: - id: - description: ______ - type: string - example: Opnel5aKBz - user_id: - description: ______ - type: string - example: Opnel5aKBz - product_id: - description: ______ - type: string - example: Opnel5aKBz - company_id: - description: ______ - type: string - example: Opnel5aKBz - recurring_invoice_id: - description: ______ - type: string - example: Opnel5aKBz - is_recurring: - description: ______ - type: boolean - example: 'true' - frequency_id: - description: 'integer const representation of the frequency' - type: string - example: '1' - auto_bill: - description: 'enum setting' - type: string - example: always - promo_code: - description: ______ - type: string - example: PROMOCODE4U - promo_discount: - description: ______ - type: number - example: 10 - is_amount_discount: - description: ______ - type: boolean - example: 'true' - allow_cancellation: - description: ______ - type: boolean - example: 'true' - per_seat_enabled: - description: ______ - type: boolean - example: 'true' - currency_id: - description: ______ - type: integer - example: '1' - max_seats_limit: - description: ______ - type: integer - example: '100' - trial_enabled: - description: ______ - type: boolean - example: 'true' - trial_duration: - description: ______ - type: integer - example: '2' - allow_query_overrides: - description: ______ - type: boolean - example: 'true' - allow_plan_changes: - description: ______ - type: boolean - example: 'true' - refund_period: - description: ______ - type: integer - example: '2' - webhook_configuration: - description: ______ - type: string - example: '2' - is_deleted: - description: ______ - type: boolean - example: 'true' - archived_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - created_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - updated_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - type: object - BulkAction: - type: array - items: - type: integer - example: '[0,1,2,3,]' - ClientContact: - properties: - id: - description: 'The hashed if of the contact' - type: string - example: Opnel5aKBz - user_id: - description: 'The hashed id of the user who created the contact' - type: string - example: Opnel5aKBz - company_id: - description: 'The hashed id of the company' - type: string - example: Opnel5aKBz - client_id: - description: 'The hashed id of the client' - type: string - example: Opnel5aKBz - first_name: - description: 'The first name of the contact' - type: string - example: John - last_name: - description: 'The last name of the contact' - type: string - example: Doe - phone: - description: 'The phone number of the contact' - type: string - example: 555-152-4524 - custom_value1: - description: 'A Custom field value' - type: string - example: '' - custom_value2: - description: 'A Custom field value' - type: string - example: '' - custom_value3: - description: 'A Custom field value' - type: string - example: '' - custom_value4: - description: 'A Custom field value' - type: string - example: '' - email: - description: 'The email of the contact' - type: string - example: '' - accepted_terms_version: - description: 'The terms of service which the contact has accpeted' - type: string - example: 'A long set of ToS' - password: - description: 'The hashed password of the contact' - type: string - example: '*****' - confirmation-code: - description: 'The confirmation code used to authenticate the contacts email address' - type: string - example: 333-sdjkh34gbasd - token: - description: 'A uuid based token.' - type: string - example: 333-sdjkh34gbasd - is_primary: - description: 'Defines is this contact is the primary contact for the client' - type: boolean - example: true - confirmed: - description: 'Boolean value confirms the user has confirmed their account.' - type: boolean - example: true - is_locked: - description: 'Boolean value defines if the contact has been locked out.' - type: boolean - example: true - send_email: - description: 'Boolean value determines is this contact should receive emails' - type: boolean - example: true - failed_logins: - description: 'The number of failed logins the contact has had' - type: number - format: integer - example: '3' - email_verified_at: - description: 'The date which the contact confirmed their email' - type: number - format: integer - example: '134341234234' - last_login: - description: Timestamp - type: number - format: integer - example: '134341234234' - created_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - updated_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - deleted_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - type: object - ClientGatewayToken: - properties: - id: - description: 'The hashed id of the client gateway token' - type: string - example: Opnel5aKBz - company_id: - description: 'The hashed id of the company' - type: string - example: '2' - client_id: - description: 'The hashed_id of the client' - type: string - example: '2' - token: - description: 'The payment token' - type: string - example: '2' - routing_number: - description: 'THe bank account routing number' - type: string - example: '2' - company_gateway_id: - description: 'The hashed id of the company gateway' - type: string - example: '2' - is_default: - description: 'Flag determining if the token is the default payment method' - type: boolean - example: 'true' - type: object - Client: - properties: - id: - description: 'The hashed id of the client' - type: string - example: Opnel5aKBz - user_id: - description: 'The hashed id of the user' - type: string - example: '' - company_id: - description: 'The hashed id of the company' - type: string - example: '' - contacts: - type: array - items: - $ref: '#/components/schemas/ClientContact' - name: - description: 'The client name' - type: string - example: 'Jims housekeeping' - website: - description: 'The client website' - type: string - example: www.jims.com - private_notes: - description: 'Private notes on the client' - type: string - example: 'These are very private notes' - client_hash: - description: 'The client hash' - type: string - example: asdfkjhk342hjhbfdvmnfb1 - industry_id: - description: 'The industry id of the client' - type: number - example: '5' - size_id: - description: 'The size id of the client' - type: number - example: '2' - address1: - description: 'Address line 1' - type: string - example: '' - address2: - description: 'Address line 2' - type: string - example: '' - city: - description: City - type: string - example: 'Beverley Hills' - state: - description: State/Locality - type: string - example: Californnia - postal_code: - description: 'Zip / Postal code' - type: string - example: '90210' - phone: - description: 'The client phone number' - type: string - example: 555-3434-3434 - country_id: - description: 'The client country id' - type: number - format: integer - example: '1' - custom_value1: - description: 'A custom value' - type: string - example: 'Something custom' - custom_value2: - description: 'A custom value' - type: string - example: '2002-01-01' - custom_value3: - description: 'A custom value' - type: string - example: 'Something custom' - custom_value4: - description: 'A custom value' - type: string - example: 'Something custom' - vat_number: - description: 'The client VAT number' - type: string - example: VAT123 - id_number: - description: ' The client id number' - type: string - example: CLIENT_ID_NUMBER - number: - description: 'The client number - assigned by the system typically' - type: string - example: '' - shipping_address1: - description: 'The shipping address line 1' - type: string - example: '5 Wallaby Way' - shipping_address2: - description: 'The shipping address line 2' - type: string - example: 'Suite 5' - shipping_city: - description: 'The shipping city' - type: string - example: Perth - shipping_state: - description: 'The shipping state' - type: string - example: 'Western Australia' - shipping_postal_code: - description: 'The shipping postal code' - type: string - example: '6110' - shipping_country_id: - description: 'The shipping country id' - type: number - format: integer - example: '4' - is_deleted: - description: 'Boolean flagged determining if the client has been deleted' - type: boolean - example: true - balance: - description: 'The client balance' - type: number - format: float - example: '10.00' - paid_to_date: - description: 'The amount the client has paid to date.' - type: number - format: float - example: '10.00' - credit_balance: - description: 'An amount which is available to the client for future use.' - type: number - format: float - example: '10.00' - last_login: - description: Timestamp - type: number - format: integer - example: '134341234234' - created_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - updated_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - settings: - $ref: '#/components/schemas/CompanySettings' - type: object - CompanyGateway: - properties: - id: - description: 'The hashed id of the company gateway' - type: string - example: Opnel5aKBz - company_id: - description: 'The company hashed id' - type: string - example: '2' - gateway_key: - description: 'The gateway key (hash)' - type: string - example: '2' - accepted_credit_cards: - description: 'Bitmask representation of cards' - type: integer - example: '32' - require_billing_address: - description: 'Determines if the the billing address is required prior to payment.' - type: boolean - example: true - require_shipping_address: - description: 'Determines if the the billing address is required prior to payment.' - type: boolean - example: true - config: - description: 'The configuration map for the gateway' - type: string - example: dfadsfdsafsafd - update_details: - description: 'Determines if the client details should be updated.' - type: boolean - example: true - fees_and_limits: - description: 'A mapped collection of the fees and limits for the configured gateway' - type: array - items: - $ref: '#/components/schemas/FeesAndLimits' - type: object - CompanyLedger: - properties: - entity_id: - description: 'This field will reference one of the following entity hashed ID payment_id, invoice_id or credit_id' - type: string - example: AS3df3A - notes: - description: 'The notes which reference this entry of the ledger' - type: string - example: 'Credit note for invoice #3212' - balance: - description: 'The client balance' - type: number - format: float - example: '10.00' - adjustment: - description: 'The amount the client balance is adjusted by' - type: number - format: float - example: '10.00' - updated_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - created_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - type: object - Company: - properties: - id: - description: 'The company hash id' - type: string - example: WJxbojagwO - size_id: - description: 'The company size ID' - type: string - example: '1' - industry_id: - description: 'The company industry ID' - type: string - example: '1' - slack_webhook_url: - description: 'The slack webhook notification URL' - type: string - example: 'https://slack.com/sh328sj' - google_analytics_key: - description: 'The google analytics key' - type: string - example: '1' - portal_mode: - description: 'Determines the client facing urls ie: subdomain,domain,iframe' - type: string - example: subdomain - subdomain: - description: 'Specifies the first part of the company domain ie acme in acme.domain.com' - type: string - example: aceme - portal_domain: - description: 'The fully qualified domain for client facing URLS' - type: string - example: 'https://subdomain.invoicing.co' - enabled_tax_rates: - description: 'Number of taxes rates used per entity' - type: integer - example: '1' - fill_products: - description: 'Toggles filling a product description based on product key' - type: boolean - example: true - convert_products: - description: ___________ - type: boolean - example: true - update_products: - description: 'Toggles updating a product description which description changes' - type: boolean - example: true - show_product_details: - description: 'Toggles showing a product description which description changes' - type: boolean - example: true - custom_fields: - description: 'Custom fields map' - type: object - enable_product_cost: - description: 'Show/Hide the product cost field in the UI' - type: boolean - example: true - enable_product_quantity: - description: 'Show/hide the product quantity field (used in the UI to show the default quantity)' - type: boolean - example: true - default_quantity: - description: 'Enable/Disable whether to use a default quantity' - type: boolean - example: true - custom_surcharge_taxes1: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_taxes2: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_taxes3: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_taxes4: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - logo: - description: 'The company logo - binary' - type: object - example: logo.png - settings: - $ref: '#/components/schemas/CompanySettings' - type: object - CompanySettings: - properties: - timezone_id: - description: 'The timezone id' - type: string - example: '15' - date_format_id: - description: 'The date format id' - type: string - example: '15' - military_time: - description: 'Toggles 12/24 hour time' - type: boolean - example: true - language_id: - description: 'The language id' - type: string - example: '1' - show_currency_code: - description: 'Toggles whether the currency symbol or code is shown' - type: boolean - example: true - currency_id: - description: 'The default currency id' - type: string - example: true - payment_terms: - description: '-1 sets no payment term, 0 sets payment due immediately, positive integers indicates payment terms in days' - type: integer - example: '1' - company_gateway_ids: - description: 'A commad separate list of available gateways' - type: string - example: '1,2,3,4' - custom_value1: - description: 'A Custom Label' - type: string - example: 'Custom Label' - custom_value2: - description: 'A Custom Label' - type: string - example: 'Custom Label' - custom_value3: - description: 'A Custom Label' - type: string - example: 'Custom Label' - custom_value4: - description: 'A Custom Label' - type: string - example: 'Custom Label' - default_task_rate: - description: 'The default task rate' - type: number - format: float - example: '10.00' - send_reminders: - description: 'Toggles whether reminders are sent' - type: boolean - example: true - enable_client_portal_tasks: - description: 'Show/hide the tasks panel in the client portal' - type: boolean - example: true - email_style: - description: 'options include plain,light,dark,custom' - type: string - example: light - reply_to_email: - description: 'The reply to email address' - type: string - example: email@gmail.com - bcc_email: - description: 'A comma separate list of BCC emails' - type: string - example: 'email@gmail.com, contact@gmail.com' - pdf_email_attachment: - description: 'Toggles whether to attach PDF as attachment' - type: boolean - example: true - ubl_email_attachment: - description: 'Toggles whether to attach UBL as attachment' - type: boolean - example: true - email_style_custom: - description: 'The custom template' - type: string - example: '' - counter_number_applied: - description: 'enum when the invoice number counter is set, ie when_saved, when_sent, when_paid' - type: string - example: when_sent - quote_number_applied: - description: 'enum when the quote number counter is set, ie when_saved, when_sent' - type: string - example: when_sent - custom_message_dashboard: - description: 'A custom message which is displayed on the dashboard' - type: string - example: 'Please pay invoices immediately' - custom_message_unpaid_invoice: - description: 'A custom message which is displayed in the client portal when a client is viewing a unpaid invoice.' - type: string - example: 'Please pay invoices immediately' - custom_message_paid_invoice: - description: 'A custom message which is displayed in the client portal when a client is viewing a paid invoice.' - type: string - example: 'Thanks for paying this invoice!' - custom_message_unapproved_quote: - description: 'A custom message which is displayed in the client portal when a client is viewing a unapproved quote.' - type: string - example: 'Please approve quote' - lock_invoices: - description: 'Toggles whether invoices are locked once sent and cannot be modified further' - type: boolean - example: true - auto_archive_invoice: - description: 'Toggles whether a invoice is archived immediately following payment' - type: boolean - example: true - auto_archive_quote: - description: 'Toggles whether a quote is archived after being converted to a invoice' - type: boolean - example: true - auto_convert_quote: - description: 'Toggles whether a quote is converted to a invoice when approved' - type: boolean - example: true - inclusive_taxes: - description: 'Boolean flag determining whether inclusive or exclusive taxes are used' - type: boolean - example: true - translations: - description: 'JSON payload of customized translations' - type: object - example: '' - task_number_pattern: - description: 'Allows customisation of the task number pattern' - type: string - example: '{$year}-{$counter}' - task_number_counter: - description: 'The incrementing counter for tasks' - type: integer - example: '1' - reminder_send_time: - description: 'Time from UTC +0 when the email will be sent to the client' - type: integer - example: '32400' - expense_number_pattern: - description: 'Allows customisation of the expense number pattern' - type: string - example: '{$year}-{$counter}' - expense_number_counter: - description: 'The incrementing counter for expenses' - type: integer - example: '1' - vendor_number_pattern: - description: 'Allows customisation of the vendor number pattern' - type: string - example: '{$year}-{$counter}' - vendor_number_counter: - description: 'The incrementing counter for vendors' - type: integer - example: '1' - ticket_number_pattern: - description: 'Allows customisation of the ticket number pattern' - type: string - example: '{$year}-{$counter}' - ticket_number_counter: - description: 'The incrementing counter for tickets' - type: integer - example: '1' - payment_number_pattern: - description: 'Allows customisation of the payment number pattern' - type: string - example: '{$year}-{$counter}' - payment_number_counter: - description: 'The incrementing counter for payments' - type: integer - example: '1' - invoice_number_pattern: - description: 'Allows customisation of the invoice number pattern' - type: string - example: '{$year}-{$counter}' - invoice_number_counter: - description: 'The incrementing counter for invoices' - type: integer - example: '1' - quote_number_pattern: - description: 'Allows customisation of the quote number pattern' - type: string - example: '{$year}-{$counter}' - quote_number_counter: - description: 'The incrementing counter for quotes' - type: integer - example: '1' - client_number_pattern: - description: 'Allows customisation of the client number pattern' - type: string - example: '{$year}-{$counter}' - client_number_counter: - description: 'The incrementing counter for clients' - type: integer - example: '1' - credit_number_pattern: - description: 'Allows customisation of the credit number pattern' - type: string - example: '{$year}-{$counter}' - credit_number_counter: - description: 'The incrementing counter for credits' - type: integer - example: '1' - recurring_invoice_number_prefix: - description: 'This string is prepended to the recurring invoice number' - type: string - example: R - reset_counter_frequency_id: - description: 'CONSTANT which is used to apply the frequency which the counters are reset' - type: integer - example: '1' - reset_counter_date: - description: 'The explicit date which is used to reset counters' - type: string - example: '2019-01-01' - counter_padding: - description: 'Pads the counter with leading zeros' - type: integer - example: '1' - shared_invoice_quote_counter: - description: 'Flags whether to share the counter for invoices and quotes' - type: boolean - example: true - update_products: - description: 'Determines if client fields are updated from third party APIs' - type: boolean - example: true - convert_products: - description: '' - type: boolean - example: true - fill_products: - description: 'Automatically fill products based on product_key' - type: boolean - example: true - invoice_terms: - description: 'The default invoice terms' - type: string - example: 'Invoice Terms are...' - quote_terms: - description: 'The default quote terms' - type: string - example: 'Quote Terms are...' - invoice_taxes: - description: 'Taxes can be applied to the invoice' - type: number - example: '1' - invoice_design_id: - description: 'The default design id (invoice, quote etc)' - type: string - example: '1' - quote_design_id: - description: 'The default design id (invoice, quote etc)' - type: string - example: '1' - invoice_footer: - description: 'The default invoice footer' - type: string - example: '1' - invoice_labels: - description: 'JSON string of invoice labels' - type: string - example: '1' - tax_rate1: - description: 'The tax rate (float)' - type: number - example: '10' - tax_name1: - description: 'The tax name' - type: string - example: GST - tax_rate2: - description: 'The tax rate (float)' - type: number - example: '10' - tax_name2: - description: 'The tax name' - type: string - example: GST - tax_rate3: - description: 'The tax rate (float)' - type: number - example: '10' - tax_name3: - description: 'The tax name' - type: string - example: GST - payment_type_id: - description: 'The default payment type id' - type: string - example: '1' - custom_fields: - description: 'JSON string of custom fields' - type: string - example: '{}' - email_footer: - description: 'The default email footer' - type: string - example: 'A default email footer' - email_sending_method: - description: 'The email driver to use to send email, options include default, gmail' - type: string - example: default - gmail_sending_user_id: - description: 'The hashed_id of the user account to send email from' - type: string - example: F76sd34D - email_subject_invoice: - description: '' - type: string - example: 'Your Invoice Subject' - email_subject_quote: - description: '' - type: string - example: 'Your Quote Subject' - email_subject_payment: - description: '' - type: string - example: 'Your Payment Subject' - email_template_invoice: - description: 'The full template for invoice emails' - type: string - example: '' - email_template_quote: - description: 'The full template for quote emails' - type: string - example: '' - email_template_payment: - description: 'The full template for payment emails' - type: string - example: '' - email_subject_reminder1: - description: 'Email subject for Reminder' - type: string - example: '' - email_subject_reminder2: - description: 'Email subject for Reminder' - type: string - example: '' - email_subject_reminder3: - description: 'Email subject for Reminder' - type: string - example: '' - email_subject_reminder_endless: - description: 'Email subject for endless reminders' - type: string - example: '' - email_template_reminder1: - description: 'The full template for Reminder 1' - type: string - example: '' - email_template_reminder2: - description: 'The full template for Reminder 2' - type: string - example: '' - email_template_reminder3: - description: 'The full template for Reminder 3' - type: string - example: '' - email_template_reminder_endless: - description: 'The full template for enless reminders' - type: string - example: '' - enable_portal_password: - description: 'Toggles whether a password is required to log into the client portal' - type: boolean - example: true - show_accept_invoice_terms: - description: 'Toggles whether the terms dialogue is shown to the client' - type: boolean - example: true - show_accept_quote_terms: - description: 'Toggles whether the terms dialogue is shown to the client' - type: boolean - example: true - require_invoice_signature: - description: 'Toggles whether a invoice signature is required' - type: boolean - example: true - require_quote_signature: - description: 'Toggles whether a quote signature is required' - type: boolean - example: true - name: - description: 'The company name' - type: string - example: 'Acme Co' - company_logo: - description: 'The company logo file' - type: object - example: logo.png - website: - description: 'The company website URL' - type: string - example: www.acme.com - address1: - description: 'The company address line 1' - type: string - example: 'Suite 888' - address2: - description: 'The company address line 2' - type: string - example: '5 Jimbo Way' - city: - description: 'The company city' - type: string - example: Sydney - state: - description: 'The company state' - type: string - example: Florisa - postal_code: - description: 'The company zip/postal code' - type: string - example: '90210' - phone: - description: 'The company phone' - type: string - example: 555-213-3948 - email: - description: 'The company email' - type: string - example: joe@acme.co - country_id: - description: 'The country ID' - type: string - example: '1' - vat_number: - description: 'The company VAT/TAX ID number' - type: string - example: '32 120 377 720' - page_size: - description: 'The default page size' - type: string - example: A4 - font_size: - description: 'The font size' - type: number - example: '9' - primary_font: - description: 'The primary font' - type: string - example: roboto - secondary_font: - description: 'The secondary font' - type: string - example: roboto - hide_paid_to_date: - description: 'Flags whether to hide the paid to date field' - type: boolean - example: false - embed_documents: - description: 'Toggled whether to embed documents in the PDF' - type: boolean - example: false - all_pages_header: - description: 'The header for the PDF' - type: boolean - example: false - all_pages_footer: - description: 'The footer for the PDF' - type: boolean - example: false - document_email_attachment: - description: 'Toggles whether to attach documents in the email' - type: boolean - example: false - enable_client_portal_password: - description: 'Toggles password protection of the client portal' - type: boolean - example: false - enable_email_markup: - description: 'Toggles the use of markdown in emails' - type: boolean - example: false - enable_client_portal_dashboard: - description: 'Toggles whether the client dashboard is shown in the client portal' - type: boolean - example: false - enable_client_portal: - description: 'Toggles whether the entire client portal is displayed to the client, or only the context' - type: boolean - example: false - email_template_statement: - description: 'The body of the email for statements' - type: string - example: 'template matter' - email_subject_statement: - description: 'The subject of the email for statements' - type: string - example: 'subject matter' - signature_on_pdf: - description: 'Toggles whether the signature (if available) is displayed on the PDF' - type: boolean - example: false - quote_footer: - description: 'The default quote footer' - type: string - example: 'the quote footer' - email_subject_custom1: - description: 'Custom reminder template subject' - type: string - example: 'Custom Subject 1' - email_subject_custom2: - description: 'Custom reminder template subject' - type: string - example: 'Custom Subject 2' - email_subject_custom3: - description: 'Custom reminder template subject' - type: string - example: 'Custom Subject 3' - email_template_custom1: - description: 'Custom reminder template body' - type: string - example: '' - email_template_custom2: - description: 'Custom reminder template body' - type: string - example: '' - email_template_custom3: - description: 'Custom reminder template body' - type: string - example: '' - enable_reminder1: - description: 'Toggles whether this reminder is enabled' - type: boolean - example: false - enable_reminder2: - description: 'Toggles whether this reminder is enabled' - type: boolean - example: false - enable_reminder3: - description: 'Toggles whether this reminder is enabled' - type: boolean - example: false - num_days_reminder1: - description: 'The Reminder interval' - type: number - example: '9' - num_days_reminder2: - description: 'The Reminder interval' - type: number - example: '9' - num_days_reminder3: - description: 'The Reminder interval' - type: number - example: '9' - schedule_reminder1: - description: '(enum: after_invoice_date, before_due_date, after_due_date)' - type: string - example: after_invoice_date - schedule_reminder2: - description: '(enum: after_invoice_date, before_due_date, after_due_date)' - type: string - example: after_invoice_date - schedule_reminder3: - description: '(enum: after_invoice_date, before_due_date, after_due_date)' - type: string - example: after_invoice_date - late_fee_amount1: - description: 'The late fee amount for reminder 1' - type: number - example: 10 - late_fee_amount2: - description: 'The late fee amount for reminder 2' - type: number - example: 20 - late_fee_amount3: - description: 'The late fee amount for reminder 2' - type: number - example: 100 - endless_reminder_frequency_id: - description: 'The frequency id of the endless reminder' - type: string - example: '1' - client_online_payment_notification: - description: 'Determines if a client should receive the notification for a online payment' - type: boolean - example: false - client_manual_payment_notification: - description: 'Determines if a client should receive the notification for a manually entered payment' - type: boolean - example: false - type: object - CompanyToken: - properties: - name: - description: 'The token name' - type: string - example: 'Token Name' - token: - description: 'The token value' - type: string - example: AS3df3jUUH765fhfd9KJuidj3JShjA - is_system: - description: 'Determines whether the token is created by the system rather than a user' - type: boolean - example: 'true' - type: object - CompanyUser: - properties: - permissions: - description: 'The company user permissions' - type: string - example: '[create_invoice]' - settings: - description: 'Settings that are used for the frontend applications to store user preferences / metadata' - type: object - example: 'json object' - is_owner: - description: 'Determines whether the user owns this company' - type: boolean - example: true - is_admin: - description: 'Determines whether the user is the admin of this company' - type: boolean - example: true - is_locked: - description: 'Determines whether the users access to this company has been locked' - type: boolean - example: true - updated_at: - description: 'The last time the record was modified, format Unix Timestamp' - type: integer - example: '1231232312321' - deleted_at: - description: 'Timestamp when the user was archived, format Unix Timestamp' - type: integer - example: '12312312321' - account: - $ref: '#/components/schemas/Account' - company: - $ref: '#/components/schemas/Company' - user: - $ref: '#/components/schemas/User' - token: - $ref: '#/components/schemas/CompanyToken' - type: object - CreditPaymentable: - properties: - credit_id: - description: 'The credit hashed id' - type: string - example: Opnel5aKBz - amount: - description: 'The credit amount' - type: string - example: '2' - type: object - Credit: - properties: - id: - description: 'The credit hashed id' - type: string - example: Opnel5aKBz - user_id: - description: 'The user hashed id' - type: string - example: '' - assigned_user_id: - description: 'The assigned user hashed id' - type: string - example: '' - company_id: - description: 'The company hashed id' - type: string - example: '' - client_id: - description: 'The client hashed id' - type: string - example: '' - status_id: - description: 'The status field id infors of the current status of the credit' - type: string - example: '' - invoice_id: - description: 'The linked invoice this credit is applied to' - type: string - example: '' - number: - description: 'The credit number - is a unique alpha numeric number per credit per company' - type: string - example: QUOTE_101 - po_number: - description: 'The purchase order number this credit refers to' - type: string - example: '' - terms: - description: 'The credit terms field' - type: string - example: '' - public_notes: - description: 'The public notes field of the credit' - type: string - example: '' - private_notes: - description: 'The private notes field of the credit' - type: string - example: '' - footer: - description: 'The credit footer text' - type: string - example: '' - custom_value1: - description: 'A Custom value' - type: string - example: '' - custom_value2: - description: 'A Custom value' - type: string - example: '' - custom_value3: - description: 'A Custom value' - type: string - example: '' - custom_value4: - description: 'A Custom value' - type: string - example: '' - tax_name1: - description: 'The tax name' - type: string - example: '' - tax_name2: - description: 'The tax rate' - type: string - example: '' - tax_rate1: - description: 'The tax name' - type: number - format: float - example: '10.00' - tax_rate2: - description: 'The tax rate' - type: number - format: float - example: '10.00' - tax_name3: - description: 'The tax name' - type: string - example: '' - tax_rate3: - description: 'The tax rate' - type: number - format: float - example: '10.00' - total_taxes: - description: 'The total taxes for the credit' - type: number - format: float - example: '10.00' - line_items: - description: 'The line items array containing the line items of the credit' - type: object - example: '' - amount: - description: 'The total credit amount' - type: number - format: float - example: '10.00' - balance: - description: 'The credit balance' - type: number - format: float - example: '10.00' - paid_to_date: - description: _________ - type: number - format: float - example: '10.00' - discount: - description: _________ - type: number - format: float - example: '10.00' - partial: - description: _________ - type: number - format: float - example: '10.00' - is_amount_discount: - description: _________ - type: boolean - example: true - is_deleted: - description: _________ - type: boolean - example: true - uses_inclusive_taxes: - description: 'Defines the type of taxes used as either inclusive or exclusive' - type: boolean - example: true - date: - description: 'The Credit Date' - type: string - format: date - example: '1994-07-30' - last_sent_date: - description: 'The last date the credit was sent out' - type: string - format: date - example: '1994-07-30' - next_send_date: - description: 'The Next date for a reminder to be sent' - type: string - format: date - example: '1994-07-30' - partial_due_date: - description: _________ - type: string - format: date - example: '1994-07-30' - due_date: - description: _________ - type: string - format: date - example: '1994-07-30' - settings: - $ref: '#/components/schemas/CompanySettings' - last_viewed: - description: Timestamp - type: number - format: integer - example: '1434342123' - updated_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - archived_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - custom_surcharge1: - description: 'First Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge2: - description: 'Second Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge3: - description: 'Third Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge4: - description: 'Fourth Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge_tax1: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax2: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax3: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax4: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - type: object - Design: - properties: - id: - description: 'The design hashed id' - type: string - example: AS3df3A - name: - description: 'The design name' - type: string - example: Beauty - design: - description: 'The design HTML' - type: string - example: '' - is_custom: - description: 'Flag to determine if the design is a custom user design' - type: boolean - example: true - is_active: - description: 'Flag to determine if the design is available for use' - type: boolean - example: true - is_deleted: - description: 'Flag to determine if the design is deleted' - type: boolean - example: true - created_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - updated_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - deleted_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - type: object - Document: - properties: - id: - description: 'The document hashed id' - type: string - example: AS3df3A - user_id: - description: 'The user hashed id' - type: string - example: '' - assigned_user_id: - description: 'The assigned user hashed id' - type: string - example: '' - project_id: - description: 'The project associated with this document' - type: string - example: '' - vendor_id: - description: 'The vendor associated with this documents' - type: string - example: '' - name: - description: 'The document name' - type: string - example: Beauty - url: - description: 'The document url' - type: string - example: Beauty - preview: - description: 'The document preview url' - type: string - example: Beauty - type: - description: 'The document type' - type: string - example: Beauty - disk: - description: 'The document disk' - type: string - example: Beauty - hash: - description: 'The document hashed' - type: string - example: Beauty - is_deleted: - description: 'Flag to determine if the document is deleted' - type: boolean - example: true - is_default: - description: 'Flag to determine if the document is a default doc' - type: boolean - example: true - created_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - updated_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - deleted_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - type: object - Error: - properties: - message: - description: 'Something terrible went wrong' - type: string - example: 'Unexpected error' - code: - description: 'The HTTP error code, ie 5xx 4xx' - type: integer - example: '500' - type: object - ExpenseCategory: - properties: - id: - description: 'The expense hashed id' - type: string - example: Opnel5aKBz - name: - description: 'The expense category name' - type: string - example: Accounting - user_id: - description: 'The user hashed id' - type: string - example: XS987sD - is_deleted: - description: 'Flag determining whether the expense category has been deleted' - type: boolean - example: true - updated_at: - description: 'The updated at timestamp' - type: integer - example: '2' - created_at: - description: 'The created at timestamp' - type: integer - example: '2' - type: object - Expense: - properties: - id: - description: 'The expense hashed id' - type: string - example: Opnel5aKBz - user_id: - description: 'The user hashed id' - type: string - example: '' - assigned_user_id: - description: 'The assigned user hashed id' - type: string - example: '' - company_id: - description: 'The company hashed id' - type: string - example: '' - client_id: - description: 'The client hashed id' - type: string - example: '' - invoice_id: - description: 'The related invoice hashed id' - type: string - example: '' - bank_id: - description: 'The bank id related to this expense' - type: string - example: '' - invoice_currency_id: - description: 'The currency id of the related invoice' - type: string - example: '' - expense_currency_id: - description: 'The currency id of the expense' - type: string - example: '' - invoice_category_id: - description: 'The invoice category id' - type: string - example: '' - payment_type_id: - description: 'The payment type id' - type: string - example: '' - recurring_expense_id: - description: 'The related recurring expense this expense was created from' - type: string - example: '' - private_notes: - description: 'The private notes of the expense' - type: string - example: '' - public_notes: - description: 'The public notes of the expense' - type: string - example: '' - transaction_reference: - description: 'The transaction references of the expense' - type: string - example: '' - transcation_id: - description: 'The transaction id of the expense' - type: string - example: '' - custom_value1: - description: 'A custom value' - type: string - example: '' - custom_value2: - description: 'A custom value' - type: string - example: '' - custom_value3: - description: 'A custom value' - type: string - example: '' - custom_value4: - description: 'A custom value' - type: string - example: '' - tax_name1: - description: 'Tax name' - type: string - example: '' - tax_name2: - description: 'Tax name' - type: string - example: '' - tax_rate1: - description: 'Tax rate' - type: number - format: float - example: '10.00' - tax_rate2: - description: 'Tax rate' - type: number - format: float - example: '10.00' - tax_name3: - description: 'Tax name' - type: string - example: '' - tax_rate3: - description: 'Tax rate' - type: number - format: float - example: '10.00' - amount: - description: 'The total expense amont' - type: number - format: float - example: '10.00' - foreign_amount: - description: 'The total foreign amount of the expense' - type: number - format: float - example: '10.00' - exchange_rate: - description: 'The exchange rate at the time of the expense' - type: number - format: float - example: '0.80' - date: - description: 'The expense date formate Y-m-d' - type: string - example: '2022-12-01' - payment_date: - description: 'The date of payment for the expense, format Y-m-d' - type: string - example: '' - should_be_invoiced: - description: 'Flag whether the expense should be invoiced' - type: boolean - example: true - is_deleted: - description: 'Boolean determining whether the expense has been deleted' - type: boolean - example: true - invoice_documents: - description: 'Passing the expense documents over to the invoice' - type: boolean - example: true - updated_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - archived_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - type: object - FeesAndLimits: - properties: - min_limit: - description: 'The minimum amount accepted for this gateway' - type: string - example: '2' - max_limit: - description: 'The maximum amount accepted for this gateway' - type: string - example: '2' - fee_amount: - description: 'The gateway fee amount' - type: number - format: float - example: '2.0' - fee_percent: - description: 'The gateway fee percentage' - type: number - format: float - example: '2.0' - fee_tax_name1: - description: 'Fee tax name' - type: string - example: GST - fee_tax_name2: - description: 'Fee tax name' - type: string - example: VAT - fee_tax_name3: - description: 'Fee tax name' - type: string - example: 'CA Sales Tax' - fee_tax_rate1: - description: 'The tax rate' - type: number - format: float - example: '10.0' - fee_tax_rate2: - description: 'The tax rate' - type: number - format: float - example: '17.5' - fee_tax_rate3: - description: 'The tax rate' - type: number - format: float - example: '25.0' - fee_cap: - description: 'If set the fee amount will be no higher than this amount' - type: number - format: float - example: '2.0' - adjust_fee_percent: - description: 'Adjusts the fee to match the exact gateway fee.' - type: boolean - example: true - type: object - FillableInvoice: - properties: - assigned_user_id: - description: __________ - type: string - example: '' - client_id: - description: ________ - type: string - example: '' - number: - description: 'The invoice number - is a unique alpha numeric number per invoice per company' - type: string - example: INV_101 - po_number: - description: ________ - type: string - example: '' - terms: - description: ________ - type: string - example: '' - public_notes: - description: ________ - type: string - example: '' - private_notes: - description: ________ - type: string - example: '' - footer: - description: ________ - type: string - example: '' - custom_value1: - description: ________ - type: string - example: '' - custom_value2: - description: ________ - type: string - example: '' - custom_value3: - description: ________ - type: string - example: '' - custom_value4: - description: ________ - type: string - example: '' - tax_name1: - description: ________ - type: string - example: '' - tax_name2: - description: ________ - type: string - example: '' - tax_rate1: - description: _________ - type: number - example: '10.00' - tax_rate2: - description: _________ - type: number - example: '10.00' - tax_name3: - description: ________ - type: string - example: '' - tax_rate3: - description: _________ - type: number - example: '10.00' - line_items: - description: _________ - type: object - example: '' - discount: - description: _________ - type: number - example: '10.00' - partial: - description: _________ - type: number - example: '10.00' - is_amount_discount: - description: _________ - type: boolean - example: '1' - uses_inclusive_taxes: - description: 'Defines the type of taxes used as either inclusive or exclusive' - type: boolean - example: '1' - date: - description: 'The Invoice Date' - type: string - example: '1994-07-30' - partial_due_date: - description: _________ - type: string - example: '1994-07-30' - due_date: - description: _________ - type: string - example: '1994-07-30' - custom_surcharge1: - description: 'First Custom Surcharge' - type: number - example: '10.00' - custom_surcharge2: - description: 'Second Custom Surcharge' - type: number - example: '10.00' - custom_surcharge3: - description: 'Third Custom Surcharge' - type: number - example: '10.00' - custom_surcharge4: - description: 'Fourth Custom Surcharge' - type: number - example: '10.00' - type: object - GenericReportSchema: - properties: - date_range: - description: 'The string representation of the date range of data to be returned' - type: string - example: last7 - date_key: - description: 'The date column to search between.' - type: string - example: created_at - start_date: - description: 'The start date to search between' - type: string - example: '2000-10-31' - end_date: - description: 'The end date to search between' - type: string - example: '2' - report_keys: - type: array - items: - description: 'Array of Keys to export' - type: string - example: '[''name'',''date'']' - type: object - GroupSetting: - properties: - id: - description: 'The group setting hashed id' - type: string - example: Opnel5aKBz - user_id: - description: 'The user hashed id' - type: string - example: Opnel5aKBz - company_id: - description: 'The company hashed id' - type: string - example: Opnel5aKBz - name: - description: 'The name of the group' - type: string - example: 'A groupies group' - settings: - description: 'The settings object' - type: object - example: '' - type: object - InvoicePaymentable: - properties: - invoice_id: - description: ______ - type: string - example: Opnel5aKBz - amount: - description: ______ - type: string - example: '2' - type: object - Invoice: - properties: - id: - description: 'The invoice hashed id' - type: string - example: Opnel5aKBz - user_id: - description: 'The user hashed id' - type: string - example: Opnel5aKBz - assigned_user_id: - description: 'The assigned user hashed id' - type: string - example: Opnel5aKBz - company_id: - description: 'The company hashed id' - type: string - example: Opnel5aKBz - client_id: - description: 'The client hashed id' - type: string - example: Opnel5aKBz - status_id: - description: 'The invoice status variable' - type: string - example: '4' - number: - description: 'The invoice number - is a unique alpha numeric number per invoice per company' - type: string - example: INV_101 - po_number: - description: 'The purchase order associated with this invoice' - type: string - example: PO-1234 - terms: - description: 'The invoice terms' - type: string - example: 'These are invoice terms' - public_notes: - description: 'The public notes of the invoice' - type: string - example: 'These are some public notes' - private_notes: - description: 'The private notes of the invoice' - type: string - example: 'These are some private notes' - footer: - description: 'The invoice footer notes' - type: string - example: '' - custom_value1: - description: 'A custom field value' - type: string - example: '2022-10-01' - custom_value2: - description: 'A custom field value' - type: string - example: 'Something custom' - custom_value3: - description: 'A custom field value' - type: string - example: '' - custom_value4: - description: 'A custom field value' - type: string - example: '' - tax_name1: - description: 'The tax name' - type: string - example: '' - tax_name2: - description: 'The tax name' - type: string - example: '' - tax_rate1: - description: 'The tax rate' - type: number - format: float - example: '10.00' - tax_rate2: - description: 'The tax rate' - type: number - format: float - example: '10.00' - tax_name3: - description: 'The tax name' - type: string - example: '' - tax_rate3: - description: 'The tax rate' - type: number - format: float - example: '10.00' - total_taxes: - description: 'The total taxes for the invoice' - type: number - format: float - example: '10.00' - line_items: - description: 'An array of objects which define the line items of the invoice' - type: object - example: '' - amount: - description: 'The invoice amount' - type: number - format: float - example: '10.00' - balance: - description: 'The invoice balance' - type: number - format: float - example: '10.00' - paid_to_date: - description: 'The amount paid on the invoice to date' - type: number - format: float - example: '10.00' - discount: - description: 'The invoice discount, can be an amount or a percentage' - type: number - format: float - example: '10.00' - partial: - description: 'The deposit/partial amount' - type: number - format: float - example: '10.00' - is_amount_discount: - description: 'Flag determining if the discount is an amount or a percentage' - type: boolean - example: true - is_deleted: - description: 'Defines if the invoice has been deleted' - type: boolean - example: true - uses_inclusive_taxes: - description: 'Defines the type of taxes used as either inclusive or exclusive' - type: boolean - example: true - date: - description: 'The Invoice Date' - type: string - format: date - example: '1994-07-30' - last_sent_date: - description: 'The last date the invoice was sent out' - type: string - format: date - example: '1994-07-30' - next_send_date: - description: 'The Next date for a reminder to be sent' - type: string - format: date - example: '1994-07-30' - partial_due_date: - description: 'The due date for the deposit/partial amount' - type: string - format: date - example: '1994-07-30' - due_date: - description: 'The due date of the invoice' - type: string - format: date - example: '1994-07-30' - settings: - $ref: '#/components/schemas/CompanySettings' - last_viewed: - description: Timestamp - type: number - format: integer - example: '1434342123' - updated_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - archived_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - custom_surcharge1: - description: 'First Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge2: - description: 'Second Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge3: - description: 'Third Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge4: - description: 'Fourth Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge_tax1: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax2: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax3: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax4: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - type: object - Payment: - properties: - id: - description: 'The payment hashed id' - type: string - example: Opnel5aKBz - client_id: - description: 'The client hashed id' - type: string - example: Opnel5aKBz - invitation_id: - description: 'The invitation hashed id' - type: string - example: Opnel5aKBz - client_contact_id: - description: 'The client contact hashed id' - type: string - example: Opnel5aKBz - user_id: - description: 'The user hashed id' - type: string - example: Opnel5aKBz - type_id: - description: 'The Payment Type ID' - type: string - example: '1' - date: - description: 'The Payment date' - type: string - example: 1-1-2014 - transaction_reference: - description: 'The transaction reference as defined by the payment gateway' - type: string - example: xcsSxcs124asd - assigned_user_id: - description: 'The assigned user hashed id' - type: string - example: Opnel5aKBz - private_notes: - description: 'The private notes of the payment' - type: string - example: 'The payment was refunded due to error' - is_manual: - description: 'Flags whether the payment was made manually or processed via a gateway' - type: boolean - example: true - is_deleted: - description: 'Defines if the payment has been deleted' - type: boolean - example: true - amount: - description: 'The amount of this payment' - type: number - example: 10 - refunded: - description: 'The refunded amount of this payment' - type: number - example: 10 - updated_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - archived_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - company_gateway_id: - description: 'The company gateway id' - type: string - example: '3' - paymentables: - $ref: '#/components/schemas/Paymentable' - invoices: - description: '' - type: array - items: - $ref: '#/components/schemas/InvoicePaymentable' - credits: - description: '' - type: array - items: - $ref: '#/components/schemas/CreditPaymentable' - type: object - PaymentTerm: - properties: - num_days: - description: 'The payment term length in days' - type: integer - example: '1' - name: - description: 'The payment term length in string format' - type: string - example: 'NET 1' - created_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - updated_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - archived_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - type: object - Paymentable: - properties: - id: - description: 'The paymentable hashed id' - type: string - example: AS3df3A - invoice_id: - description: 'The invoice hashed id' - type: string - example: AS3df3A - credit_id: - description: 'The credit hashed id' - type: string - example: AS3df3A - refunded: - description: 'The amount that has been refunded for this payment' - type: number - format: float - example: '10.00' - amount: - description: 'The amount that has been applied to the payment' - type: number - format: float - example: '10.00' - updated_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - created_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - type: object - Product: - properties: - id: - description: 'The product hashed id' - type: string - example: Opnel5aKBz - type: object - Project: - properties: - id: - description: 'The project hashed id' - type: string - example: Opnel5aKBz - name: - description: 'The project name' - type: string - example: 'New Project' - type: object - PurchaseOrder: - properties: - id: - description: 'The purchase order hashed id' - type: string - example: Opnel5aKBz - type: object - Quote: - properties: - id: - description: 'The quote hashed id' - type: string - example: Opnel5aKBz - user_id: - description: 'The user hashed id' - type: string - example: '' - assigned_user_id: - description: 'The assigned user hashed id' - type: string - example: '' - company_id: - description: 'The company hashed id' - type: string - example: '' - client_id: - description: 'The client hashed id' - type: string - example: '' - status_id: - description: 'The status of the quote' - type: string - example: '' - number: - description: 'The quote number - is a unique alpha numeric number per quote per company' - type: string - example: QUOTE_101 - po_number: - description: 'The purchase order number associated with this quote' - type: string - example: PO-1234 - terms: - description: 'The quote terms' - type: string - example: 'These are some quote terms. Valid for 14 days.' - public_notes: - description: 'Public notes for the quote' - type: string - example: 'These are public notes which the client may see' - private_notes: - description: 'Private notes for the quote' - type: string - example: 'These are private notes, not to be disclosed to the client' - footer: - description: 'Footer text of quote' - type: string - example: 'The text goes in the footer of the quote' - custom_value1: - description: 'Custom value field' - type: string - example: 'A custom value' - custom_value2: - description: 'Custom value field' - type: string - example: 'A custom value' - custom_value3: - description: 'Custom value field' - type: string - example: 'A custom value' - custom_value4: - description: 'Custom value field' - type: string - example: 'A custom value' - tax_name1: - description: 'The tax name' - type: string - example: GST - tax_name2: - description: 'The tax name' - type: string - example: VAT - tax_rate1: - description: 'The tax rate' - type: number - format: float - example: '10.00' - tax_rate2: - description: 'The tax rate' - type: number - format: float - example: '10.00' - tax_name3: - description: 'The tax name' - type: string - example: '' - tax_rate3: - description: 'The tax rate' - type: number - format: float - example: '10.00' - total_taxes: - description: 'The total taxes for the quote' - type: number - format: float - example: '10.00' - line_items: - description: 'An array of line items of the quote' - type: object - example: '' - amount: - description: 'The total amount of the quote' - type: number - format: float - example: '10.00' - balance: - description: 'The balance due of the quote' - type: number - format: float - example: '10.00' - paid_to_date: - description: 'The amount that has been paid to date on the quote' - type: number - format: float - example: '10.00' - discount: - description: 'The quote discount' - type: number - format: float - example: '10.00' - partial: - description: 'The partial/deposit amount' - type: number - format: float - example: '10.00' - is_amount_discount: - description: 'Boolean flag determining if the quote is an amount or percentage' - type: boolean - example: true - is_deleted: - description: 'Boolean flag determining if the quote has been deleted' - type: boolean - example: true - uses_inclusive_taxes: - description: 'Defines the type of taxes used as either inclusive or exclusive' - type: boolean - example: true - date: - description: 'The Quote Date' - type: string - format: date - example: '1994-07-30' - last_sent_date: - description: 'The last date the quote was sent out' - type: string - format: date - example: '1994-07-30' - next_send_date: - description: 'The Next date for a reminder to be sent' - type: string - format: date - example: '1994-07-30' - partial_due_date: - description: 'The date when the partial/deposit is due' - type: string - format: date - example: '1994-07-30' - due_date: - description: 'The date the quote is valid until' - type: string - format: date - example: '1994-07-30' - settings: - $ref: '#/components/schemas/CompanySettings' - last_viewed: - description: Timestamp - type: number - format: integer - example: '1434342123' - updated_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - archived_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - custom_surcharge1: - description: 'First Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge2: - description: 'Second Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge3: - description: 'Third Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge4: - description: 'Fourth Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge_tax1: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax2: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax3: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax4: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - type: object - RecurringExpense: - properties: - id: - description: 'The hashed id of the recurring expense' - type: string - example: Opnel5aKBz - user_id: - description: 'The hashed id of the user who created the recurring expense' - type: string - example: Opnel5aKBz - assigned_user_id: - description: 'The hashed id of the user assigned to this recurring expense' - type: string - example: Opnel5aKBz - company_id: - description: 'The hashed id of the company' - type: string - example: Opnel5aKBz - client_id: - description: 'The hashed id of the client' - type: string - example: Opnel5aKBz - invoice_id: - description: 'The hashed id of the invoice' - type: string - example: Opnel5aKBz - bank_id: - description: 'The id of the bank associated with this recurring expense' - type: string - example: '22' - invoice_currency_id: - description: 'The currency id of the invoice associated with this recurring expense' - type: string - example: '1' - expense_currency_id: - description: 'The currency id of the expense associated with this recurring expense' - type: string - example: '1' - invoice_category_id: - description: 'The category id of the invoice' - type: string - example: '1' - payment_type_id: - description: 'The payment type id' - type: string - example: '1' - private_notes: - description: 'The recurring expense private notes' - type: string - example: 'Private and confidential' - public_notes: - description: 'The recurring expense public notes' - type: string - example: 'This is the best client in the world' - transaction_reference: - description: 'The recurring expense transaction reference' - type: string - example: EXP-1223-2333 - transcation_id: - description: 'The transaction id of the recurring expense' - type: string - example: '1233312312' - custom_value1: - description: 'Custom value field' - type: string - example: $1000 - custom_value2: - description: 'Custom value field' - type: string - example: '2022-10-10' - custom_value3: - description: 'Custom value field' - type: string - example: 'short text' - custom_value4: - description: 'Custom value field' - type: string - example: 'very long text' - tax_name1: - description: 'The tax name' - type: string - example: GST - tax_name2: - description: 'The tax name' - type: string - example: VAT - tax_rate1: - description: 'The tax rate' - type: number - format: float - example: '10.00' - tax_rate2: - description: 'The tax rate' - type: number - format: float - example: '10.00' - tax_name3: - description: 'The tax name' - type: string - example: '' - tax_rate3: - description: 'The tax rate' - type: number - format: float - example: '10.00' - amount: - description: 'The total amount of the recurring expense' - type: number - format: float - example: '10.00' - frequency_id: - description: 'The frequency this recurring expense fires' - type: number - format: int - example: '1' - remaining_cycles: - description: 'The number of remaining cycles for this recurring expense' - type: number - format: int - example: '1' - foreign_amount: - description: 'The foreign currency amount of the recurring expense' - type: number - format: float - example: '10.00' - exchange_rate: - description: 'The exchange rate for the expernse' - type: number - format: float - example: '0.80' - date: - description: 'The date of the expense' - type: string - example: '' - payment_date: - description: 'The date the expense was paid' - type: string - example: '' - should_be_invoiced: - description: 'Boolean flag determining if the expense should be invoiced' - type: boolean - example: true - is_deleted: - description: 'Boolean flag determining if the recurring expense is deleted' - type: boolean - example: true - last_sent_date: - description: 'The Date it was sent last' - type: string - format: date - example: '1994-07-30' - next_send_date: - description: 'The next send date' - type: string - format: date - example: '1994-07-30' - invoice_documents: - description: 'Boolean flag determining if the documents associated with this expense should be passed onto the invoice if it is converted to an invoice' - type: boolean - example: true - updated_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - archived_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - type: object - RecurringInvoice: - properties: - id: - description: 'The hashed id of the recurring invoice' - type: string - example: Opnel5aKBz - user_id: - description: 'The user hashed id' - type: string - example: Opnel5aKBz - assigned_user_id: - description: 'The assigned user hashed id' - type: string - example: Opnel5aKBz - company_id: - description: 'The company hashed id' - type: string - example: Opnel5aKBz - client_id: - description: 'The client hashed id' - type: string - example: Opnel5aKBz - status_id: - description: 'The invoice status variable' - type: string - example: '4' - frequency_id: - description: 'The recurring invoice frequency' - type: number - example: '4' - remaining_cycles: - description: 'The number of invoices left to be generated' - type: number - example: '4' - number: - description: 'The recurringinvoice number - is a unique alpha numeric number per invoice per company' - type: string - example: INV_101 - po_number: - description: 'The purchase order associated with this recurring invoice' - type: string - example: PO-1234 - terms: - description: 'The invoice terms' - type: string - example: 'These are invoice terms' - public_notes: - description: 'The public notes of the invoice' - type: string - example: 'These are some public notes' - private_notes: - description: 'The private notes of the invoice' - type: string - example: 'These are some private notes' - footer: - description: 'The invoice footer notes' - type: string - example: '' - custom_value1: - description: 'A custom field value' - type: string - example: '2022-10-01' - custom_value2: - description: 'A custom field value' - type: string - example: 'Something custom' - custom_value3: - description: 'A custom field value' - type: string - example: '' - custom_value4: - description: 'A custom field value' - type: string - example: '' - tax_name1: - description: 'The tax name' - type: string - example: '' - tax_name2: - description: 'The tax name' - type: string - example: '' - tax_rate1: - description: 'The tax rate' - type: number - format: float - example: '10.00' - tax_rate2: - description: 'The tax rate' - type: number - format: float - example: '10.00' - tax_name3: - description: 'The tax name' - type: string - example: '' - tax_rate3: - description: 'The tax rate' - type: number - format: float - example: '10.00' - total_taxes: - description: 'The total taxes for the invoice' - type: number - format: float - example: '10.00' - line_items: - description: 'An array of objects which define the line items of the invoice' - type: object - example: '' - amount: - description: 'The invoice amount' - type: number - format: float - example: '10.00' - balance: - description: 'The invoice balance' - type: number - format: float - example: '10.00' - paid_to_date: - description: 'The amount paid on the invoice to date' - type: number - format: float - example: '10.00' - discount: - description: 'The invoice discount, can be an amount or a percentage' - type: number - format: float - example: '10.00' - partial: - description: 'The deposit/partial amount' - type: number - format: float - example: '10.00' - is_amount_discount: - description: 'Flag determining if the discount is an amount or a percentage' - type: boolean - example: true - is_deleted: - description: 'Defines if the invoice has been deleted' - type: boolean - example: true - uses_inclusive_taxes: - description: 'Defines the type of taxes used as either inclusive or exclusive' - type: boolean - example: true - date: - description: 'The Invoice Date' - type: string - format: date - example: '1994-07-30' - last_sent_date: - description: 'The last date the invoice was sent out' - type: string - format: date - example: '1994-07-30' - next_send_date: - description: 'The Next date for a reminder to be sent' - type: string - format: date - example: '1994-07-30' - partial_due_date: - description: 'The due date for the deposit/partial amount' - type: string - format: date - example: '1994-07-30' - due_date: - description: 'The due date of the invoice' - type: string - format: date - example: '1994-07-30' - settings: - $ref: '#/components/schemas/CompanySettings' - last_viewed: - description: Timestamp - type: number - format: integer - example: '1434342123' - updated_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - archived_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - custom_surcharge1: - description: 'First Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge2: - description: 'Second Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge3: - description: 'Third Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge4: - description: 'Fourth Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge_tax1: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax2: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax3: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax4: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - type: object - RecurringQuote: - properties: - id: - description: 'The hashed id of the recurring quote' - type: string - example: Opnel5aKBz - user_id: - description: 'The user hashed id' - type: string - example: Opnel5aKBz - assigned_user_id: - description: 'The assigned user hashed id' - type: string - example: Opnel5aKBz - company_id: - description: 'The company hashed id' - type: string - example: Opnel5aKBz - client_id: - description: 'The client hashed id' - type: string - example: Opnel5aKBz - status_id: - description: 'The quote status variable' - type: string - example: '4' - frequency_id: - description: 'The recurring quote frequency' - type: number - example: '4' - remaining_cycles: - description: 'The number of quotes left to be generated' - type: number - example: '4' - number: - description: 'The recurringquote number - is a unique alpha numeric number per quote per company' - type: string - example: INV_101 - po_number: - description: 'The purchase order associated with this recurring quote' - type: string - example: PO-1234 - terms: - description: 'The quote terms' - type: string - example: 'These are quote terms' - public_notes: - description: 'The public notes of the quote' - type: string - example: 'These are some public notes' - private_notes: - description: 'The private notes of the quote' - type: string - example: 'These are some private notes' - footer: - description: 'The quote footer notes' - type: string - example: '' - custom_value1: - description: 'A custom field value' - type: string - example: '2022-10-01' - custom_value2: - description: 'A custom field value' - type: string - example: 'Something custom' - custom_value3: - description: 'A custom field value' - type: string - example: '' - custom_value4: - description: 'A custom field value' - type: string - example: '' - tax_name1: - description: 'The tax name' - type: string - example: '' - tax_name2: - description: 'The tax name' - type: string - example: '' - tax_rate1: - description: 'The tax rate' - type: number - format: float - example: '10.00' - tax_rate2: - description: 'The tax rate' - type: number - format: float - example: '10.00' - tax_name3: - description: 'The tax name' - type: string - example: '' - tax_rate3: - description: 'The tax rate' - type: number - format: float - example: '10.00' - total_taxes: - description: 'The total taxes for the quote' - type: number - format: float - example: '10.00' - line_items: - description: 'An array of objects which define the line items of the quote' - type: object - example: '' - amount: - description: 'The quote amount' - type: number - format: float - example: '10.00' - balance: - description: 'The quote balance' - type: number - format: float - example: '10.00' - paid_to_date: - description: 'The amount paid on the quote to date' - type: number - format: float - example: '10.00' - discount: - description: 'The quote discount, can be an amount or a percentage' - type: number - format: float - example: '10.00' - partial: - description: 'The deposit/partial amount' - type: number - format: float - example: '10.00' - is_amount_discount: - description: 'Flag determining if the discount is an amount or a percentage' - type: boolean - example: true - is_deleted: - description: 'Defines if the quote has been deleted' - type: boolean - example: true - uses_inclusive_taxes: - description: 'Defines the type of taxes used as either inclusive or exclusive' - type: boolean - example: true - date: - description: 'The quote Date' - type: string - format: date - example: '1994-07-30' - last_sent_date: - description: 'The last date the quote was sent out' - type: string - format: date - example: '1994-07-30' - next_send_date: - description: 'The Next date for a reminder to be sent' - type: string - format: date - example: '1994-07-30' - partial_due_date: - description: 'The due date for the deposit/partial amount' - type: string - format: date - example: '1994-07-30' - due_date: - description: 'The due date of the quote' - type: string - format: date - example: '1994-07-30' - settings: - $ref: '#/components/schemas/CompanySettings' - last_viewed: - description: Timestamp - type: number - format: integer - example: '1434342123' - updated_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - archived_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - custom_surcharge1: - description: 'First Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge2: - description: 'Second Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge3: - description: 'Third Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge4: - description: 'Fourth Custom Surcharge' - type: number - format: float - example: '10.00' - custom_surcharge_tax1: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax2: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax3: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - custom_surcharge_tax4: - description: 'Toggles charging taxes on custom surcharge amounts' - type: boolean - example: true - type: object - SystemLog: - properties: - id: - description: 'The account hashed id' - type: string - example: AS3df3A - company_id: - description: 'The company hashed id' - type: string - example: AS3df3A - user_id: - description: 'The user_id hashed id' - type: string - example: AS3df3A - client_id: - description: 'The client_id hashed id' - type: string - example: AS3df3A - event_id: - description: 'The Log Type ID' - type: integer - example: 1 - category_id: - description: 'The Category Type ID' - type: integer - example: 1 - type_id: - description: 'The Type Type ID' - type: integer - example: 1 - log: - description: 'The json object of the error' - type: object - example: '{''key'':''value''}' - updated_at: - description: Timestamp - type: string - example: '2' - created_at: - description: Timestamp - type: string - example: '2' - type: object - TaskSchedulerSchema: - properties: - paused: - description: 'The scheduler paused state' - type: boolean - example: 'false' - repeat_every: - description: 'Accepted values (DAY,WEEK,MONTH,3MONTHS,YEAR)' - type: string - example: DAY - start_from: - description: 'Timestamp when we should start the scheduler, default is today' - type: integer - example: '1652898504' - job: - description: 'Job, we can find list of available jobs in Scheduler model' - type: string - example: create_credit_report - date_range: - description: 'The string representation of the date range of data to be returned' - type: string - example: last7 - date_key: - description: 'The date column to search between.' - type: string - example: created_at - start_date: - description: 'The start date to search between' - type: string - example: '2022-10-31' - end_date: - description: 'The end date to search between' - type: string - example: '2022-10-31' - report_keys: - type: array - items: - description: 'Array of Keys to export' - type: string - example: '[''name'',''date'']' - type: object - UpdateTaskSchedulerSchema: - properties: - paused: - description: 'The scheduler paused state' - type: boolean - example: 'false' - repeat_every: - description: 'Accepted values (DAY,WEEK,MONTH,3MONTHS,YEAR)' - type: string - example: DAY - start_from: - description: 'Timestamp when we should start the scheduler, default is today' - type: integer - example: '1652898504' - job: - description: 'Job, we can find list of available jobs in Scheduler model' - type: string - example: create_credit_report - date_range: - description: 'The string representation of the date range of data to be returned' - type: string - example: last7 - date_key: - description: 'The date column to search between.' - type: string - example: created_at - start_date: - description: 'The start date to search between' - type: string - example: '2022-10-31' - end_date: - description: 'The end date to search between' - type: string - example: '2022-10-31' - type: object - UpdateJobForASchedulerSchema: - properties: - job: - description: 'Set action name, action names can be found in Scheduler Model' - type: string - example: create_client_report - type: object - Task: - properties: - id: - description: 'The hashed id of the task' - type: string - example: Opnel5aKBz - user_id: - description: 'The hashed id of the user who created the task' - type: string - example: Opnel5aKBz - assigned_user_id: - description: 'The assigned user of the task' - type: string - example: Opnel5aKBz - company_id: - description: 'The hashed id of the company' - type: string - example: Opnel5aKBz - client_id: - description: 'The hashed if of the client' - type: string - example: Opnel5aKBz - invoice_id: - description: 'The hashed id of the invoice associated with the task' - type: string - example: Opnel5aKBz - project_id: - description: 'The hashed id of the project associated with the task' - type: string - example: Opnel5aKBz - number: - description: 'The number of the task' - type: string - example: TASK-123 - time_log: - description: 'An array of unix time stamps defining the start and end times of the task' - type: string - example: '[[1,2],[3,4]]' - is_running: - description: 'Determines if the task is still running' - type: boolean - example: true - is_deleted: - description: 'Boolean flag determining if the task has been deleted' - type: boolean - example: true - task_status_id: - description: 'The hashed id of the task status' - type: string - example: Opnel5aKBz - description: - description: 'The task description' - type: string - example: 'A wonder task to work on' - duration: - description: 'The task duration' - type: integer - example: '' - task_status_order: - description: 'The order of the task' - type: integer - example: '4' - custom_value1: - description: 'A custom value' - type: string - example: '2022-10-10' - custom_value2: - description: 'A custom value' - type: string - example: $1100 - custom_value3: - description: 'A custom value' - type: string - example: 'I need help' - custom_value4: - description: 'A custom value' - type: string - example: INV-3343 - created_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - updated_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - archived_at: - description: Timestamp - type: number - format: integer - example: '1434342123' - type: object - TaskStatus: - properties: - name: - description: 'The task status name' - type: string - example: Backlog - created_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - is_deleted: - description: 'A boolean flag determining if the task status has been deleted' - type: boolean - example: true - updated_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - archived_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - type: object - TaxRate: - properties: - id: - description: 'Thie hashed id of the tax' - type: string - example: Opnel5aKBz - name: - description: 'The tax name' - type: string - example: GST - rate: - description: 'The tax rate' - type: number - example: '10' - is_deleted: - description: 'Boolean flag determining if the tax has been deleted' - type: boolean - example: true - type: object - Template: - properties: - html: - description: 'The template HTML' - type: string - example: '' - type: object - User: - properties: - id: - description: 'The hashed id of the user' - type: string - example: Opnel5aKBz - first_name: - description: 'The first name of the user' - type: string - example: Brad - last_name: - description: 'The last name of the user' - type: string - example: Pitt - email: - description: 'The users email address' - type: string - example: brad@pitt.com - phone: - description: 'The users phone number' - type: string - example: 555-1233-23232 - signature: - description: 'The users sign off signature' - type: string - example: 'Have a nice day!' - avatar: - description: 'The users avatar' - type: string - example: 'https://url.to.your/avatar.png' - accepted_terms_version: - description: 'The version of the invoice ninja terms that has been accepted by the user' - type: string - example: 1.0.1 - oauth_user_id: - description: 'The provider id of the oauth entity' - type: string - example: jkhasdf789as6f675sdf768sdfs - oauth_provider_id: - description: 'The oauth entity id' - type: string - example: google - type: object - AuthenticationError: - type: object - properties: - message: - description: 'These credentials do not match our records' - type: string - example: 'These credentials do not match our records' - ValidationError: - properties: - message: - description: 'The error message' - type: string - example: 'The given data was invalid.' - errors: - properties: - value: - type: array - items: - type: string - type: object - type: object - AuthorizationError: - properties: - message: - description: 'Invalid Token' - type: string - example: 'Invalid Token' - errors: - properties: - value: - type: array - items: - type: string - type: object - type: object - VendorContact: - properties: - id: - description: 'The hashed id of the vendor contact' - type: string - example: Opnel5aKBz - user_id: - description: 'The hashed id of the user id' - type: string - example: Opnel5aKBz - company_id: - description: 'The hashed id of the company' - type: string - example: Opnel5aKBz - vendor_id: - description: 'The hashed id of the vendor' - type: string - example: Opnel5aKBz - first_name: - description: 'The first name of the contact' - type: string - example: Harry - last_name: - description: 'The last name of the contact' - type: string - example: Windsor - phone: - description: 'The contacts phone number' - type: string - example: 555-123-1234 - custom_value1: - description: 'A custom value' - type: string - example: '2022-10-10' - custom_value2: - description: 'A custom value' - type: string - example: $1000 - custom_value3: - description: 'A custom value' - type: string - example: '' - custom_value4: - description: 'A custom value' - type: string - example: '' - email: - description: 'The contact email address' - type: string - example: harry@windsor.com - is_primary: - description: 'Boolean flag determining if the contact is the primary contact for the vendor' - type: boolean - example: true - created_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - updated_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - deleted_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - type: object - Vendor: - properties: - id: - description: 'The hashed id of the vendor' - type: string - example: Opnel5aKBz - user_id: - description: 'The hashed id of the user who created the vendor' - type: string - example: Opnel5aKBz - assigned_user_id: - description: 'The hashed id of the assigned user to this vendor' - type: string - example: Opnel5aKBz - company_id: - description: 'The hashed id of the company' - type: string - example: Opnel5aKBz - client_id: - description: 'The hashed id of the client' - type: string - example: Opnel5aKBz - contacts: - type: array - items: - $ref: '#/components/schemas/VendorContact' - name: - description: 'The vendor name' - type: string - example: 'Harry''s cafe de wheels' - website: - description: 'The website of the vendor' - type: string - example: www.harry.com - private_notes: - description: 'The private notes of the vendor' - type: string - example: 'Shhh, don''t tell the vendor' - industry_id: - description: 'The industry id of the vendor' - type: string - example: '1' - size_id: - description: ________ - type: string - example: '' - address1: - description: ________ - type: string - example: '' - address2: - description: ________ - type: string - example: '' - city: - description: ________ - type: string - example: '' - state: - description: ________ - type: string - example: '' - postal_code: - description: ________ - type: string - example: '' - phone: - description: 'The client phone number' - type: string - example: 555-3434-3434 - country_id: - description: ________ - type: string - example: '' - currency_id: - description: ________ - type: string - example: '4' - custom_value1: - description: ________ - type: string - example: '' - custom_value2: - description: ________ - type: string - example: '' - custom_value3: - description: ________ - type: string - example: '' - custom_value4: - description: ________ - type: string - example: '' - vat_number: - description: ________ - type: string - example: '' - id_number: - description: ________ - type: string - example: '' - number: - description: ________ - type: string - example: '' - is_deleted: - description: ________ - type: boolean - example: true - last_login: - description: Timestamp - type: number - format: integer - example: '134341234234' - created_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - updated_at: - description: Timestamp - type: number - format: integer - example: '134341234234' - settings: - $ref: '#/components/schemas/CompanySettings' - type: object - Webhook: - properties: - id: - description: 'The subscription hashed id' - type: string - example: AS3df3A - event_id: - description: 'The subscription event id' - type: string - example: AS3df3A - target_url: - description: 'The api endpoint' - type: string - example: AS3df3A - format: - description: 'JSON or UBL' - type: string - example: JSON - type: object parameters: X-API-SECRET: name: X-API-SECRET diff --git a/openapi/components/schemas.yaml b/openapi/components/schemas.yaml new file mode 100644 index 0000000000..c6bd7cdb9e --- /dev/null +++ b/openapi/components/schemas.yaml @@ -0,0 +1,4059 @@ + schemas: + + Activity: + properties: + id: + description: 'The id field of the activity' + type: string + example: Opnel5aKBz + activity_type_id: + description: 'The activity type id' + type: string + example: Opnel5aKBz + client_id: + description: 'The client hashed id' + type: string + example: Opnel5aKBz + company_id: + description: 'The company hashed id' + type: string + example: Opnel5aKBz + user_id: + description: 'The user hashed id' + type: string + example: Opnel5aKBz + invoice_id: + description: 'The invoice hashed id' + type: string + example: Opnel5aKBz + payment_id: + description: 'The payment hashed id' + type: string + example: Opnel5aKBz + credit_id: + description: 'The credit hashed id' + type: string + example: Opnel5aKBz + updated_at: + description: 'Unixtimestamp the last time the record was updated' + type: integer + example: '343421434' + expense_id: + description: 'The expense hashed id' + type: string + example: Opnel5aKBz + is_system: + description: 'Defines is the activity was performed by the system' + type: boolean + example: true + contact_id: + description: 'The contact hashed id' + type: string + example: Opnel5aKBz + task_id: + description: 'The task hashed id' + type: string + example: Opnel5aKBz + notes: + description: 'Activity Notes' + type: string + example: Opnel5aKBz + token_id: + description: 'The hashed ID of the token who performed the action' + type: string + example: Opnel5aKBz + ip: + description: 'The IP Address of the user who performed the action' + type: string + example: 192.168.1.252 + user: + $ref: '#/components/schemas/User' + client: + $ref: '#/components/schemas/Client' + contact: + $ref: '#/components/schemas/ClientContact' + recurring_invoice: + $ref: '#/components/schemas/RecurringInvoice' + invoice: + $ref: '#/components/schemas/Invoice' + credit: + $ref: '#/components/schemas/Credit' + quote: + $ref: '#/components/schemas/Quote' + payment: + $ref: '#/components/schemas/Payment' + expense: + $ref: '#/components/schemas/Expense' + task: + $ref: '#/components/schemas/Task' + purchase_order: + $ref: '#/components/schemas/PurchaseOrder' + vendor: + $ref: '#/components/schemas/Vendor' + vendor_contact: + $ref: '#/components/schemas/VendorContact' + type: object + BTRules: + properties: + data_key: + description: 'The key to search' + type: string + example: 'description,amount' + operator: + description: 'The operator flag of the search' + type: string + example: '>' + value: + description: 'The value to search for' + type: string + example: bob + type: object + BankIntegration: + properties: + id: + description: 'The bank integration hashed id' + type: string + example: AS3df3A + company_id: + description: 'The company hashed id' + type: string + example: AS3df3A + user_id: + description: 'The user hashed id' + type: string + example: AS3df3A + provider_bank_name: + description: 'The providers bank name' + type: string + example: 'Chase Bank' + bank_account_id: + description: 'The bank account id' + type: integer + example: '1233434' + bank_account_name: + description: 'The name of the account' + type: string + example: 'My Checking Acc' + bank_account_number: + description: 'The account number' + type: string + example: '111 234 2332' + bank_account_status: + description: 'The status of the bank account' + type: string + example: ACTIVE + bank_account_type: + description: 'The type of account' + type: string + example: CREDITCARD + balance: + description: 'The current bank balance if available' + type: number + example: '1000000' + currency: + description: 'iso_3166_3 code' + type: string + example: USD + type: object + BankTransaction: + properties: + id: + description: 'The bank integration hashed id' + type: string + example: AS3df3A + company_id: + description: 'The company hashed id' + type: string + example: AS3df3A + user_id: + description: 'The user hashed id' + type: string + example: AS3df3A + transaction_id: + description: 'The id of the transaction rule' + type: integer + example: 343434 + amount: + description: 'The transaction amount' + type: number + example: 10 + currency_id: + description: 'The currency ID of the currency' + type: string + example: '1' + account_type: + description: 'The account type' + type: string + example: creditCard + description: + description: 'The description of the transaction' + type: string + example: 'Potato purchases for kevin' + category_id: + description: 'The category id' + type: integer + example: 1 + category_type: + description: 'The category description' + type: string + example: Expenses + base_type: + description: 'Either CREDIT or DEBIT' + type: string + example: CREDIT + date: + description: 'The date of the transaction' + type: string + example: '2022-09-01' + bank_account_id: + description: 'The ID number of the bank account' + type: integer + example: '1' + type: object + BankTransactionRule: + properties: + id: + description: 'The bank transaction rules hashed id' + type: string + example: AS3df3A + company_id: + description: 'The company hashed id' + type: string + example: AS3df3A + user_id: + description: 'The user hashed id' + type: string + example: AS3df3A + name: + description: 'The name of the transaction' + type: string + example: 'Rule 1' + rules: + description: 'A mapped collection of the sub rules for the BankTransactionRule' + type: array + items: + $ref: '#/components/schemas/BTRules' + auto_convert: + description: 'Flags whether the rule converts the transaction automatically' + type: boolean + example: true + matches_on_all: + description: 'Flags whether all subrules are required for the match' + type: boolean + example: true + applies_to: + description: 'Flags whether the rule applies to a CREDIT or DEBIT' + type: string + example: CREDIT + client_id: + description: 'The client hashed id' + type: string + example: AS3df3A + vendor_id: + description: 'The vendor hashed id' + type: string + example: AS3df3A + category_id: + description: 'The category hashed id' + type: string + example: AS3df3A + type: object + Subscription: + properties: + id: + description: ______ + type: string + example: Opnel5aKBz + user_id: + description: ______ + type: string + example: Opnel5aKBz + product_id: + description: ______ + type: string + example: Opnel5aKBz + company_id: + description: ______ + type: string + example: Opnel5aKBz + recurring_invoice_id: + description: ______ + type: string + example: Opnel5aKBz + is_recurring: + description: ______ + type: boolean + example: 'true' + frequency_id: + description: 'integer const representation of the frequency' + type: string + example: '1' + auto_bill: + description: 'enum setting' + type: string + example: always + promo_code: + description: ______ + type: string + example: PROMOCODE4U + promo_discount: + description: ______ + type: number + example: 10 + is_amount_discount: + description: ______ + type: boolean + example: 'true' + allow_cancellation: + description: ______ + type: boolean + example: 'true' + per_seat_enabled: + description: ______ + type: boolean + example: 'true' + currency_id: + description: ______ + type: integer + example: '1' + max_seats_limit: + description: ______ + type: integer + example: '100' + trial_enabled: + description: ______ + type: boolean + example: 'true' + trial_duration: + description: ______ + type: integer + example: '2' + allow_query_overrides: + description: ______ + type: boolean + example: 'true' + allow_plan_changes: + description: ______ + type: boolean + example: 'true' + refund_period: + description: ______ + type: integer + example: '2' + webhook_configuration: + description: ______ + type: string + example: '2' + is_deleted: + description: ______ + type: boolean + example: 'true' + archived_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + created_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + updated_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + type: object + BulkAction: + type: array + items: + type: integer + example: '[0,1,2,3,]' + ClientContact: + properties: + id: + description: 'The hashed if of the contact' + type: string + example: Opnel5aKBz + user_id: + description: 'The hashed id of the user who created the contact' + type: string + example: Opnel5aKBz + company_id: + description: 'The hashed id of the company' + type: string + example: Opnel5aKBz + client_id: + description: 'The hashed id of the client' + type: string + example: Opnel5aKBz + first_name: + description: 'The first name of the contact' + type: string + example: John + last_name: + description: 'The last name of the contact' + type: string + example: Doe + phone: + description: 'The phone number of the contact' + type: string + example: 555-152-4524 + custom_value1: + description: 'A Custom field value' + type: string + example: '' + custom_value2: + description: 'A Custom field value' + type: string + example: '' + custom_value3: + description: 'A Custom field value' + type: string + example: '' + custom_value4: + description: 'A Custom field value' + type: string + example: '' + email: + description: 'The email of the contact' + type: string + example: '' + accepted_terms_version: + description: 'The terms of service which the contact has accpeted' + type: string + example: 'A long set of ToS' + password: + description: 'The hashed password of the contact' + type: string + example: '*****' + confirmation-code: + description: 'The confirmation code used to authenticate the contacts email address' + type: string + example: 333-sdjkh34gbasd + token: + description: 'A uuid based token.' + type: string + example: 333-sdjkh34gbasd + is_primary: + description: 'Defines is this contact is the primary contact for the client' + type: boolean + example: true + confirmed: + description: 'Boolean value confirms the user has confirmed their account.' + type: boolean + example: true + is_locked: + description: 'Boolean value defines if the contact has been locked out.' + type: boolean + example: true + send_email: + description: 'Boolean value determines is this contact should receive emails' + type: boolean + example: true + failed_logins: + description: 'The number of failed logins the contact has had' + type: number + format: integer + example: '3' + email_verified_at: + description: 'The date which the contact confirmed their email' + type: number + format: integer + example: '134341234234' + last_login: + description: Timestamp + type: number + format: integer + example: '134341234234' + created_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + updated_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + deleted_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + type: object + ClientGatewayToken: + properties: + id: + description: 'The hashed id of the client gateway token' + type: string + example: Opnel5aKBz + company_id: + description: 'The hashed id of the company' + type: string + example: '2' + client_id: + description: 'The hashed_id of the client' + type: string + example: '2' + token: + description: 'The payment token' + type: string + example: '2' + routing_number: + description: 'THe bank account routing number' + type: string + example: '2' + company_gateway_id: + description: 'The hashed id of the company gateway' + type: string + example: '2' + is_default: + description: 'Flag determining if the token is the default payment method' + type: boolean + example: 'true' + type: object + Client: + properties: + id: + description: 'The hashed id of the client' + type: string + example: Opnel5aKBz + user_id: + description: 'The hashed id of the user' + type: string + example: '' + company_id: + description: 'The hashed id of the company' + type: string + example: '' + contacts: + type: array + items: + $ref: '#/components/schemas/ClientContact' + name: + description: 'The client name' + type: string + example: 'Jims housekeeping' + website: + description: 'The client website' + type: string + example: www.jims.com + private_notes: + description: 'Private notes on the client' + type: string + example: 'These are very private notes' + client_hash: + description: 'The client hash' + type: string + example: asdfkjhk342hjhbfdvmnfb1 + industry_id: + description: 'The industry id of the client' + type: number + example: '5' + size_id: + description: 'The size id of the client' + type: number + example: '2' + address1: + description: 'Address line 1' + type: string + example: '' + address2: + description: 'Address line 2' + type: string + example: '' + city: + description: City + type: string + example: 'Beverley Hills' + state: + description: State/Locality + type: string + example: Californnia + postal_code: + description: 'Zip / Postal code' + type: string + example: '90210' + phone: + description: 'The client phone number' + type: string + example: 555-3434-3434 + country_id: + description: 'The client country id' + type: number + format: integer + example: '1' + custom_value1: + description: 'A custom value' + type: string + example: 'Something custom' + custom_value2: + description: 'A custom value' + type: string + example: '2002-01-01' + custom_value3: + description: 'A custom value' + type: string + example: 'Something custom' + custom_value4: + description: 'A custom value' + type: string + example: 'Something custom' + vat_number: + description: 'The client VAT number' + type: string + example: VAT123 + id_number: + description: ' The client id number' + type: string + example: CLIENT_ID_NUMBER + number: + description: 'The client number - assigned by the system typically' + type: string + example: '' + shipping_address1: + description: 'The shipping address line 1' + type: string + example: '5 Wallaby Way' + shipping_address2: + description: 'The shipping address line 2' + type: string + example: 'Suite 5' + shipping_city: + description: 'The shipping city' + type: string + example: Perth + shipping_state: + description: 'The shipping state' + type: string + example: 'Western Australia' + shipping_postal_code: + description: 'The shipping postal code' + type: string + example: '6110' + shipping_country_id: + description: 'The shipping country id' + type: number + format: integer + example: '4' + is_deleted: + description: 'Boolean flagged determining if the client has been deleted' + type: boolean + example: true + balance: + description: 'The client balance' + type: number + format: float + example: '10.00' + paid_to_date: + description: 'The amount the client has paid to date.' + type: number + format: float + example: '10.00' + credit_balance: + description: 'An amount which is available to the client for future use.' + type: number + format: float + example: '10.00' + last_login: + description: Timestamp + type: number + format: integer + example: '134341234234' + created_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + updated_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + settings: + $ref: '#/components/schemas/CompanySettings' + type: object + CompanyGateway: + properties: + id: + description: 'The hashed id of the company gateway' + type: string + example: Opnel5aKBz + company_id: + description: 'The company hashed id' + type: string + example: '2' + gateway_key: + description: 'The gateway key (hash)' + type: string + example: '2' + accepted_credit_cards: + description: 'Bitmask representation of cards' + type: integer + example: '32' + require_billing_address: + description: 'Determines if the the billing address is required prior to payment.' + type: boolean + example: true + require_shipping_address: + description: 'Determines if the the billing address is required prior to payment.' + type: boolean + example: true + config: + description: 'The configuration map for the gateway' + type: string + example: dfadsfdsafsafd + update_details: + description: 'Determines if the client details should be updated.' + type: boolean + example: true + fees_and_limits: + description: 'A mapped collection of the fees and limits for the configured gateway' + type: array + items: + $ref: '#/components/schemas/FeesAndLimits' + type: object + CompanyLedger: + properties: + entity_id: + description: 'This field will reference one of the following entity hashed ID payment_id, invoice_id or credit_id' + type: string + example: AS3df3A + notes: + description: 'The notes which reference this entry of the ledger' + type: string + example: 'Credit note for invoice #3212' + balance: + description: 'The client balance' + type: number + format: float + example: '10.00' + adjustment: + description: 'The amount the client balance is adjusted by' + type: number + format: float + example: '10.00' + updated_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + created_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + type: object + Company: + properties: + id: + description: 'The company hash id' + type: string + example: WJxbojagwO + size_id: + description: 'The company size ID' + type: string + example: '1' + industry_id: + description: 'The company industry ID' + type: string + example: '1' + slack_webhook_url: + description: 'The slack webhook notification URL' + type: string + example: 'https://slack.com/sh328sj' + google_analytics_key: + description: 'The google analytics key' + type: string + example: '1' + portal_mode: + description: 'Determines the client facing urls ie: subdomain,domain,iframe' + type: string + example: subdomain + subdomain: + description: 'Specifies the first part of the company domain ie acme in acme.domain.com' + type: string + example: aceme + portal_domain: + description: 'The fully qualified domain for client facing URLS' + type: string + example: 'https://subdomain.invoicing.co' + enabled_tax_rates: + description: 'Number of taxes rates used per entity' + type: integer + example: '1' + fill_products: + description: 'Toggles filling a product description based on product key' + type: boolean + example: true + convert_products: + description: ___________ + type: boolean + example: true + update_products: + description: 'Toggles updating a product description which description changes' + type: boolean + example: true + show_product_details: + description: 'Toggles showing a product description which description changes' + type: boolean + example: true + custom_fields: + description: 'Custom fields map' + type: object + enable_product_cost: + description: 'Show/Hide the product cost field in the UI' + type: boolean + example: true + enable_product_quantity: + description: 'Show/hide the product quantity field (used in the UI to show the default quantity)' + type: boolean + example: true + default_quantity: + description: 'Enable/Disable whether to use a default quantity' + type: boolean + example: true + custom_surcharge_taxes1: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_taxes2: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_taxes3: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_taxes4: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + logo: + description: 'The company logo - binary' + type: object + example: logo.png + settings: + $ref: '#/components/schemas/CompanySettings' + type: object + CompanySettings: + properties: + timezone_id: + description: 'The timezone id' + type: string + example: '15' + date_format_id: + description: 'The date format id' + type: string + example: '15' + military_time: + description: 'Toggles 12/24 hour time' + type: boolean + example: true + language_id: + description: 'The language id' + type: string + example: '1' + show_currency_code: + description: 'Toggles whether the currency symbol or code is shown' + type: boolean + example: true + currency_id: + description: 'The default currency id' + type: string + example: true + payment_terms: + description: '-1 sets no payment term, 0 sets payment due immediately, positive integers indicates payment terms in days' + type: integer + example: '1' + company_gateway_ids: + description: 'A commad separate list of available gateways' + type: string + example: '1,2,3,4' + custom_value1: + description: 'A Custom Label' + type: string + example: 'Custom Label' + custom_value2: + description: 'A Custom Label' + type: string + example: 'Custom Label' + custom_value3: + description: 'A Custom Label' + type: string + example: 'Custom Label' + custom_value4: + description: 'A Custom Label' + type: string + example: 'Custom Label' + default_task_rate: + description: 'The default task rate' + type: number + format: float + example: '10.00' + send_reminders: + description: 'Toggles whether reminders are sent' + type: boolean + example: true + enable_client_portal_tasks: + description: 'Show/hide the tasks panel in the client portal' + type: boolean + example: true + email_style: + description: 'options include plain,light,dark,custom' + type: string + example: light + reply_to_email: + description: 'The reply to email address' + type: string + example: email@gmail.com + bcc_email: + description: 'A comma separate list of BCC emails' + type: string + example: 'email@gmail.com, contact@gmail.com' + pdf_email_attachment: + description: 'Toggles whether to attach PDF as attachment' + type: boolean + example: true + ubl_email_attachment: + description: 'Toggles whether to attach UBL as attachment' + type: boolean + example: true + email_style_custom: + description: 'The custom template' + type: string + example: '' + counter_number_applied: + description: 'enum when the invoice number counter is set, ie when_saved, when_sent, when_paid' + type: string + example: when_sent + quote_number_applied: + description: 'enum when the quote number counter is set, ie when_saved, when_sent' + type: string + example: when_sent + custom_message_dashboard: + description: 'A custom message which is displayed on the dashboard' + type: string + example: 'Please pay invoices immediately' + custom_message_unpaid_invoice: + description: 'A custom message which is displayed in the client portal when a client is viewing a unpaid invoice.' + type: string + example: 'Please pay invoices immediately' + custom_message_paid_invoice: + description: 'A custom message which is displayed in the client portal when a client is viewing a paid invoice.' + type: string + example: 'Thanks for paying this invoice!' + custom_message_unapproved_quote: + description: 'A custom message which is displayed in the client portal when a client is viewing a unapproved quote.' + type: string + example: 'Please approve quote' + lock_invoices: + description: 'Toggles whether invoices are locked once sent and cannot be modified further' + type: boolean + example: true + auto_archive_invoice: + description: 'Toggles whether a invoice is archived immediately following payment' + type: boolean + example: true + auto_archive_quote: + description: 'Toggles whether a quote is archived after being converted to a invoice' + type: boolean + example: true + auto_convert_quote: + description: 'Toggles whether a quote is converted to a invoice when approved' + type: boolean + example: true + inclusive_taxes: + description: 'Boolean flag determining whether inclusive or exclusive taxes are used' + type: boolean + example: true + translations: + description: 'JSON payload of customized translations' + type: object + example: '' + task_number_pattern: + description: 'Allows customisation of the task number pattern' + type: string + example: '{$year}-{$counter}' + task_number_counter: + description: 'The incrementing counter for tasks' + type: integer + example: '1' + reminder_send_time: + description: 'Time from UTC +0 when the email will be sent to the client' + type: integer + example: '32400' + expense_number_pattern: + description: 'Allows customisation of the expense number pattern' + type: string + example: '{$year}-{$counter}' + expense_number_counter: + description: 'The incrementing counter for expenses' + type: integer + example: '1' + vendor_number_pattern: + description: 'Allows customisation of the vendor number pattern' + type: string + example: '{$year}-{$counter}' + vendor_number_counter: + description: 'The incrementing counter for vendors' + type: integer + example: '1' + ticket_number_pattern: + description: 'Allows customisation of the ticket number pattern' + type: string + example: '{$year}-{$counter}' + ticket_number_counter: + description: 'The incrementing counter for tickets' + type: integer + example: '1' + payment_number_pattern: + description: 'Allows customisation of the payment number pattern' + type: string + example: '{$year}-{$counter}' + payment_number_counter: + description: 'The incrementing counter for payments' + type: integer + example: '1' + invoice_number_pattern: + description: 'Allows customisation of the invoice number pattern' + type: string + example: '{$year}-{$counter}' + invoice_number_counter: + description: 'The incrementing counter for invoices' + type: integer + example: '1' + quote_number_pattern: + description: 'Allows customisation of the quote number pattern' + type: string + example: '{$year}-{$counter}' + quote_number_counter: + description: 'The incrementing counter for quotes' + type: integer + example: '1' + client_number_pattern: + description: 'Allows customisation of the client number pattern' + type: string + example: '{$year}-{$counter}' + client_number_counter: + description: 'The incrementing counter for clients' + type: integer + example: '1' + credit_number_pattern: + description: 'Allows customisation of the credit number pattern' + type: string + example: '{$year}-{$counter}' + credit_number_counter: + description: 'The incrementing counter for credits' + type: integer + example: '1' + recurring_invoice_number_prefix: + description: 'This string is prepended to the recurring invoice number' + type: string + example: R + reset_counter_frequency_id: + description: 'CONSTANT which is used to apply the frequency which the counters are reset' + type: integer + example: '1' + reset_counter_date: + description: 'The explicit date which is used to reset counters' + type: string + example: '2019-01-01' + counter_padding: + description: 'Pads the counter with leading zeros' + type: integer + example: '1' + shared_invoice_quote_counter: + description: 'Flags whether to share the counter for invoices and quotes' + type: boolean + example: true + update_products: + description: 'Determines if client fields are updated from third party APIs' + type: boolean + example: true + convert_products: + description: '' + type: boolean + example: true + fill_products: + description: 'Automatically fill products based on product_key' + type: boolean + example: true + invoice_terms: + description: 'The default invoice terms' + type: string + example: 'Invoice Terms are...' + quote_terms: + description: 'The default quote terms' + type: string + example: 'Quote Terms are...' + invoice_taxes: + description: 'Taxes can be applied to the invoice' + type: number + example: '1' + invoice_design_id: + description: 'The default design id (invoice, quote etc)' + type: string + example: '1' + quote_design_id: + description: 'The default design id (invoice, quote etc)' + type: string + example: '1' + invoice_footer: + description: 'The default invoice footer' + type: string + example: '1' + invoice_labels: + description: 'JSON string of invoice labels' + type: string + example: '1' + tax_rate1: + description: 'The tax rate (float)' + type: number + example: '10' + tax_name1: + description: 'The tax name' + type: string + example: GST + tax_rate2: + description: 'The tax rate (float)' + type: number + example: '10' + tax_name2: + description: 'The tax name' + type: string + example: GST + tax_rate3: + description: 'The tax rate (float)' + type: number + example: '10' + tax_name3: + description: 'The tax name' + type: string + example: GST + payment_type_id: + description: 'The default payment type id' + type: string + example: '1' + custom_fields: + description: 'JSON string of custom fields' + type: string + example: '{}' + email_footer: + description: 'The default email footer' + type: string + example: 'A default email footer' + email_sending_method: + description: 'The email driver to use to send email, options include default, gmail' + type: string + example: default + gmail_sending_user_id: + description: 'The hashed_id of the user account to send email from' + type: string + example: F76sd34D + email_subject_invoice: + description: '' + type: string + example: 'Your Invoice Subject' + email_subject_quote: + description: '' + type: string + example: 'Your Quote Subject' + email_subject_payment: + description: '' + type: string + example: 'Your Payment Subject' + email_template_invoice: + description: 'The full template for invoice emails' + type: string + example: '' + email_template_quote: + description: 'The full template for quote emails' + type: string + example: '' + email_template_payment: + description: 'The full template for payment emails' + type: string + example: '' + email_subject_reminder1: + description: 'Email subject for Reminder' + type: string + example: '' + email_subject_reminder2: + description: 'Email subject for Reminder' + type: string + example: '' + email_subject_reminder3: + description: 'Email subject for Reminder' + type: string + example: '' + email_subject_reminder_endless: + description: 'Email subject for endless reminders' + type: string + example: '' + email_template_reminder1: + description: 'The full template for Reminder 1' + type: string + example: '' + email_template_reminder2: + description: 'The full template for Reminder 2' + type: string + example: '' + email_template_reminder3: + description: 'The full template for Reminder 3' + type: string + example: '' + email_template_reminder_endless: + description: 'The full template for enless reminders' + type: string + example: '' + enable_portal_password: + description: 'Toggles whether a password is required to log into the client portal' + type: boolean + example: true + show_accept_invoice_terms: + description: 'Toggles whether the terms dialogue is shown to the client' + type: boolean + example: true + show_accept_quote_terms: + description: 'Toggles whether the terms dialogue is shown to the client' + type: boolean + example: true + require_invoice_signature: + description: 'Toggles whether a invoice signature is required' + type: boolean + example: true + require_quote_signature: + description: 'Toggles whether a quote signature is required' + type: boolean + example: true + name: + description: 'The company name' + type: string + example: 'Acme Co' + company_logo: + description: 'The company logo file' + type: object + example: logo.png + website: + description: 'The company website URL' + type: string + example: www.acme.com + address1: + description: 'The company address line 1' + type: string + example: 'Suite 888' + address2: + description: 'The company address line 2' + type: string + example: '5 Jimbo Way' + city: + description: 'The company city' + type: string + example: Sydney + state: + description: 'The company state' + type: string + example: Florisa + postal_code: + description: 'The company zip/postal code' + type: string + example: '90210' + phone: + description: 'The company phone' + type: string + example: 555-213-3948 + email: + description: 'The company email' + type: string + example: joe@acme.co + country_id: + description: 'The country ID' + type: string + example: '1' + vat_number: + description: 'The company VAT/TAX ID number' + type: string + example: '32 120 377 720' + page_size: + description: 'The default page size' + type: string + example: A4 + font_size: + description: 'The font size' + type: number + example: '9' + primary_font: + description: 'The primary font' + type: string + example: roboto + secondary_font: + description: 'The secondary font' + type: string + example: roboto + hide_paid_to_date: + description: 'Flags whether to hide the paid to date field' + type: boolean + example: false + embed_documents: + description: 'Toggled whether to embed documents in the PDF' + type: boolean + example: false + all_pages_header: + description: 'The header for the PDF' + type: boolean + example: false + all_pages_footer: + description: 'The footer for the PDF' + type: boolean + example: false + document_email_attachment: + description: 'Toggles whether to attach documents in the email' + type: boolean + example: false + enable_client_portal_password: + description: 'Toggles password protection of the client portal' + type: boolean + example: false + enable_email_markup: + description: 'Toggles the use of markdown in emails' + type: boolean + example: false + enable_client_portal_dashboard: + description: 'Toggles whether the client dashboard is shown in the client portal' + type: boolean + example: false + enable_client_portal: + description: 'Toggles whether the entire client portal is displayed to the client, or only the context' + type: boolean + example: false + email_template_statement: + description: 'The body of the email for statements' + type: string + example: 'template matter' + email_subject_statement: + description: 'The subject of the email for statements' + type: string + example: 'subject matter' + signature_on_pdf: + description: 'Toggles whether the signature (if available) is displayed on the PDF' + type: boolean + example: false + quote_footer: + description: 'The default quote footer' + type: string + example: 'the quote footer' + email_subject_custom1: + description: 'Custom reminder template subject' + type: string + example: 'Custom Subject 1' + email_subject_custom2: + description: 'Custom reminder template subject' + type: string + example: 'Custom Subject 2' + email_subject_custom3: + description: 'Custom reminder template subject' + type: string + example: 'Custom Subject 3' + email_template_custom1: + description: 'Custom reminder template body' + type: string + example: '' + email_template_custom2: + description: 'Custom reminder template body' + type: string + example: '' + email_template_custom3: + description: 'Custom reminder template body' + type: string + example: '' + enable_reminder1: + description: 'Toggles whether this reminder is enabled' + type: boolean + example: false + enable_reminder2: + description: 'Toggles whether this reminder is enabled' + type: boolean + example: false + enable_reminder3: + description: 'Toggles whether this reminder is enabled' + type: boolean + example: false + num_days_reminder1: + description: 'The Reminder interval' + type: number + example: '9' + num_days_reminder2: + description: 'The Reminder interval' + type: number + example: '9' + num_days_reminder3: + description: 'The Reminder interval' + type: number + example: '9' + schedule_reminder1: + description: '(enum: after_invoice_date, before_due_date, after_due_date)' + type: string + example: after_invoice_date + schedule_reminder2: + description: '(enum: after_invoice_date, before_due_date, after_due_date)' + type: string + example: after_invoice_date + schedule_reminder3: + description: '(enum: after_invoice_date, before_due_date, after_due_date)' + type: string + example: after_invoice_date + late_fee_amount1: + description: 'The late fee amount for reminder 1' + type: number + example: 10 + late_fee_amount2: + description: 'The late fee amount for reminder 2' + type: number + example: 20 + late_fee_amount3: + description: 'The late fee amount for reminder 2' + type: number + example: 100 + endless_reminder_frequency_id: + description: 'The frequency id of the endless reminder' + type: string + example: '1' + client_online_payment_notification: + description: 'Determines if a client should receive the notification for a online payment' + type: boolean + example: false + client_manual_payment_notification: + description: 'Determines if a client should receive the notification for a manually entered payment' + type: boolean + example: false + type: object + CompanyToken: + properties: + name: + description: 'The token name' + type: string + example: 'Token Name' + token: + description: 'The token value' + type: string + example: AS3df3jUUH765fhfd9KJuidj3JShjA + is_system: + description: 'Determines whether the token is created by the system rather than a user' + type: boolean + example: 'true' + type: object + CompanyUser: + properties: + permissions: + description: 'The company user permissions' + type: string + example: '[create_invoice]' + settings: + description: 'Settings that are used for the frontend applications to store user preferences / metadata' + type: object + example: 'json object' + is_owner: + description: 'Determines whether the user owns this company' + type: boolean + example: true + is_admin: + description: 'Determines whether the user is the admin of this company' + type: boolean + example: true + is_locked: + description: 'Determines whether the users access to this company has been locked' + type: boolean + example: true + updated_at: + description: 'The last time the record was modified, format Unix Timestamp' + type: integer + example: '1231232312321' + deleted_at: + description: 'Timestamp when the user was archived, format Unix Timestamp' + type: integer + example: '12312312321' + account: + $ref: '#/components/schemas/Account' + company: + $ref: '#/components/schemas/Company' + user: + $ref: '#/components/schemas/User' + token: + $ref: '#/components/schemas/CompanyToken' + type: object + CreditPaymentable: + properties: + credit_id: + description: 'The credit hashed id' + type: string + example: Opnel5aKBz + amount: + description: 'The credit amount' + type: string + example: '2' + type: object + Credit: + properties: + id: + description: 'The credit hashed id' + type: string + example: Opnel5aKBz + user_id: + description: 'The user hashed id' + type: string + example: '' + assigned_user_id: + description: 'The assigned user hashed id' + type: string + example: '' + company_id: + description: 'The company hashed id' + type: string + example: '' + client_id: + description: 'The client hashed id' + type: string + example: '' + status_id: + description: 'The status field id infors of the current status of the credit' + type: string + example: '' + invoice_id: + description: 'The linked invoice this credit is applied to' + type: string + example: '' + number: + description: 'The credit number - is a unique alpha numeric number per credit per company' + type: string + example: QUOTE_101 + po_number: + description: 'The purchase order number this credit refers to' + type: string + example: '' + terms: + description: 'The credit terms field' + type: string + example: '' + public_notes: + description: 'The public notes field of the credit' + type: string + example: '' + private_notes: + description: 'The private notes field of the credit' + type: string + example: '' + footer: + description: 'The credit footer text' + type: string + example: '' + custom_value1: + description: 'A Custom value' + type: string + example: '' + custom_value2: + description: 'A Custom value' + type: string + example: '' + custom_value3: + description: 'A Custom value' + type: string + example: '' + custom_value4: + description: 'A Custom value' + type: string + example: '' + tax_name1: + description: 'The tax name' + type: string + example: '' + tax_name2: + description: 'The tax rate' + type: string + example: '' + tax_rate1: + description: 'The tax name' + type: number + format: float + example: '10.00' + tax_rate2: + description: 'The tax rate' + type: number + format: float + example: '10.00' + tax_name3: + description: 'The tax name' + type: string + example: '' + tax_rate3: + description: 'The tax rate' + type: number + format: float + example: '10.00' + total_taxes: + description: 'The total taxes for the credit' + type: number + format: float + example: '10.00' + line_items: + description: 'The line items array containing the line items of the credit' + type: object + example: '' + amount: + description: 'The total credit amount' + type: number + format: float + example: '10.00' + balance: + description: 'The credit balance' + type: number + format: float + example: '10.00' + paid_to_date: + description: _________ + type: number + format: float + example: '10.00' + discount: + description: _________ + type: number + format: float + example: '10.00' + partial: + description: _________ + type: number + format: float + example: '10.00' + is_amount_discount: + description: _________ + type: boolean + example: true + is_deleted: + description: _________ + type: boolean + example: true + uses_inclusive_taxes: + description: 'Defines the type of taxes used as either inclusive or exclusive' + type: boolean + example: true + date: + description: 'The Credit Date' + type: string + format: date + example: '1994-07-30' + last_sent_date: + description: 'The last date the credit was sent out' + type: string + format: date + example: '1994-07-30' + next_send_date: + description: 'The Next date for a reminder to be sent' + type: string + format: date + example: '1994-07-30' + partial_due_date: + description: _________ + type: string + format: date + example: '1994-07-30' + due_date: + description: _________ + type: string + format: date + example: '1994-07-30' + settings: + $ref: '#/components/schemas/CompanySettings' + last_viewed: + description: Timestamp + type: number + format: integer + example: '1434342123' + updated_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + archived_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + custom_surcharge1: + description: 'First Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge2: + description: 'Second Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge3: + description: 'Third Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge4: + description: 'Fourth Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge_tax1: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax2: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax3: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax4: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + type: object + Design: + properties: + id: + description: 'The design hashed id' + type: string + example: AS3df3A + name: + description: 'The design name' + type: string + example: Beauty + design: + description: 'The design HTML' + type: string + example: '' + is_custom: + description: 'Flag to determine if the design is a custom user design' + type: boolean + example: true + is_active: + description: 'Flag to determine if the design is available for use' + type: boolean + example: true + is_deleted: + description: 'Flag to determine if the design is deleted' + type: boolean + example: true + created_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + updated_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + deleted_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + type: object + Document: + properties: + id: + description: 'The document hashed id' + type: string + example: AS3df3A + user_id: + description: 'The user hashed id' + type: string + example: '' + assigned_user_id: + description: 'The assigned user hashed id' + type: string + example: '' + project_id: + description: 'The project associated with this document' + type: string + example: '' + vendor_id: + description: 'The vendor associated with this documents' + type: string + example: '' + name: + description: 'The document name' + type: string + example: Beauty + url: + description: 'The document url' + type: string + example: Beauty + preview: + description: 'The document preview url' + type: string + example: Beauty + type: + description: 'The document type' + type: string + example: Beauty + disk: + description: 'The document disk' + type: string + example: Beauty + hash: + description: 'The document hashed' + type: string + example: Beauty + is_deleted: + description: 'Flag to determine if the document is deleted' + type: boolean + example: true + is_default: + description: 'Flag to determine if the document is a default doc' + type: boolean + example: true + created_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + updated_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + deleted_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + type: object + Error: + properties: + message: + description: 'Something terrible went wrong' + type: string + example: 'Unexpected error' + code: + description: 'The HTTP error code, ie 5xx 4xx' + type: integer + example: '500' + type: object + ExpenseCategory: + properties: + id: + description: 'The expense hashed id' + type: string + example: Opnel5aKBz + name: + description: 'The expense category name' + type: string + example: Accounting + user_id: + description: 'The user hashed id' + type: string + example: XS987sD + is_deleted: + description: 'Flag determining whether the expense category has been deleted' + type: boolean + example: true + updated_at: + description: 'The updated at timestamp' + type: integer + example: '2' + created_at: + description: 'The created at timestamp' + type: integer + example: '2' + type: object + Expense: + properties: + id: + description: 'The expense hashed id' + type: string + example: Opnel5aKBz + user_id: + description: 'The user hashed id' + type: string + example: '' + assigned_user_id: + description: 'The assigned user hashed id' + type: string + example: '' + company_id: + description: 'The company hashed id' + type: string + example: '' + client_id: + description: 'The client hashed id' + type: string + example: '' + invoice_id: + description: 'The related invoice hashed id' + type: string + example: '' + bank_id: + description: 'The bank id related to this expense' + type: string + example: '' + invoice_currency_id: + description: 'The currency id of the related invoice' + type: string + example: '' + expense_currency_id: + description: 'The currency id of the expense' + type: string + example: '' + invoice_category_id: + description: 'The invoice category id' + type: string + example: '' + payment_type_id: + description: 'The payment type id' + type: string + example: '' + recurring_expense_id: + description: 'The related recurring expense this expense was created from' + type: string + example: '' + private_notes: + description: 'The private notes of the expense' + type: string + example: '' + public_notes: + description: 'The public notes of the expense' + type: string + example: '' + transaction_reference: + description: 'The transaction references of the expense' + type: string + example: '' + transcation_id: + description: 'The transaction id of the expense' + type: string + example: '' + custom_value1: + description: 'A custom value' + type: string + example: '' + custom_value2: + description: 'A custom value' + type: string + example: '' + custom_value3: + description: 'A custom value' + type: string + example: '' + custom_value4: + description: 'A custom value' + type: string + example: '' + tax_name1: + description: 'Tax name' + type: string + example: '' + tax_name2: + description: 'Tax name' + type: string + example: '' + tax_rate1: + description: 'Tax rate' + type: number + format: float + example: '10.00' + tax_rate2: + description: 'Tax rate' + type: number + format: float + example: '10.00' + tax_name3: + description: 'Tax name' + type: string + example: '' + tax_rate3: + description: 'Tax rate' + type: number + format: float + example: '10.00' + amount: + description: 'The total expense amont' + type: number + format: float + example: '10.00' + foreign_amount: + description: 'The total foreign amount of the expense' + type: number + format: float + example: '10.00' + exchange_rate: + description: 'The exchange rate at the time of the expense' + type: number + format: float + example: '0.80' + date: + description: 'The expense date formate Y-m-d' + type: string + example: '2022-12-01' + payment_date: + description: 'The date of payment for the expense, format Y-m-d' + type: string + example: '' + should_be_invoiced: + description: 'Flag whether the expense should be invoiced' + type: boolean + example: true + is_deleted: + description: 'Boolean determining whether the expense has been deleted' + type: boolean + example: true + invoice_documents: + description: 'Passing the expense documents over to the invoice' + type: boolean + example: true + updated_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + archived_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + type: object + FeesAndLimits: + properties: + min_limit: + description: 'The minimum amount accepted for this gateway' + type: string + example: '2' + max_limit: + description: 'The maximum amount accepted for this gateway' + type: string + example: '2' + fee_amount: + description: 'The gateway fee amount' + type: number + format: float + example: '2.0' + fee_percent: + description: 'The gateway fee percentage' + type: number + format: float + example: '2.0' + fee_tax_name1: + description: 'Fee tax name' + type: string + example: GST + fee_tax_name2: + description: 'Fee tax name' + type: string + example: VAT + fee_tax_name3: + description: 'Fee tax name' + type: string + example: 'CA Sales Tax' + fee_tax_rate1: + description: 'The tax rate' + type: number + format: float + example: '10.0' + fee_tax_rate2: + description: 'The tax rate' + type: number + format: float + example: '17.5' + fee_tax_rate3: + description: 'The tax rate' + type: number + format: float + example: '25.0' + fee_cap: + description: 'If set the fee amount will be no higher than this amount' + type: number + format: float + example: '2.0' + adjust_fee_percent: + description: 'Adjusts the fee to match the exact gateway fee.' + type: boolean + example: true + type: object + FillableInvoice: + properties: + assigned_user_id: + description: __________ + type: string + example: '' + client_id: + description: ________ + type: string + example: '' + number: + description: 'The invoice number - is a unique alpha numeric number per invoice per company' + type: string + example: INV_101 + po_number: + description: ________ + type: string + example: '' + terms: + description: ________ + type: string + example: '' + public_notes: + description: ________ + type: string + example: '' + private_notes: + description: ________ + type: string + example: '' + footer: + description: ________ + type: string + example: '' + custom_value1: + description: ________ + type: string + example: '' + custom_value2: + description: ________ + type: string + example: '' + custom_value3: + description: ________ + type: string + example: '' + custom_value4: + description: ________ + type: string + example: '' + tax_name1: + description: ________ + type: string + example: '' + tax_name2: + description: ________ + type: string + example: '' + tax_rate1: + description: _________ + type: number + example: '10.00' + tax_rate2: + description: _________ + type: number + example: '10.00' + tax_name3: + description: ________ + type: string + example: '' + tax_rate3: + description: _________ + type: number + example: '10.00' + line_items: + description: _________ + type: object + example: '' + discount: + description: _________ + type: number + example: '10.00' + partial: + description: _________ + type: number + example: '10.00' + is_amount_discount: + description: _________ + type: boolean + example: '1' + uses_inclusive_taxes: + description: 'Defines the type of taxes used as either inclusive or exclusive' + type: boolean + example: '1' + date: + description: 'The Invoice Date' + type: string + example: '1994-07-30' + partial_due_date: + description: _________ + type: string + example: '1994-07-30' + due_date: + description: _________ + type: string + example: '1994-07-30' + custom_surcharge1: + description: 'First Custom Surcharge' + type: number + example: '10.00' + custom_surcharge2: + description: 'Second Custom Surcharge' + type: number + example: '10.00' + custom_surcharge3: + description: 'Third Custom Surcharge' + type: number + example: '10.00' + custom_surcharge4: + description: 'Fourth Custom Surcharge' + type: number + example: '10.00' + type: object + GenericReportSchema: + properties: + date_range: + description: 'The string representation of the date range of data to be returned' + type: string + example: last7 + date_key: + description: 'The date column to search between.' + type: string + example: created_at + start_date: + description: 'The start date to search between' + type: string + example: '2000-10-31' + end_date: + description: 'The end date to search between' + type: string + example: '2' + report_keys: + type: array + items: + description: 'Array of Keys to export' + type: string + example: '[''name'',''date'']' + type: object + GroupSetting: + properties: + id: + description: 'The group setting hashed id' + type: string + example: Opnel5aKBz + user_id: + description: 'The user hashed id' + type: string + example: Opnel5aKBz + company_id: + description: 'The company hashed id' + type: string + example: Opnel5aKBz + name: + description: 'The name of the group' + type: string + example: 'A groupies group' + settings: + description: 'The settings object' + type: object + example: '' + type: object + InvoicePaymentable: + properties: + invoice_id: + description: ______ + type: string + example: Opnel5aKBz + amount: + description: ______ + type: string + example: '2' + type: object + Invoice: + properties: + id: + description: 'The invoice hashed id' + type: string + example: Opnel5aKBz + user_id: + description: 'The user hashed id' + type: string + example: Opnel5aKBz + assigned_user_id: + description: 'The assigned user hashed id' + type: string + example: Opnel5aKBz + company_id: + description: 'The company hashed id' + type: string + example: Opnel5aKBz + client_id: + description: 'The client hashed id' + type: string + example: Opnel5aKBz + status_id: + description: 'The invoice status variable' + type: string + example: '4' + number: + description: 'The invoice number - is a unique alpha numeric number per invoice per company' + type: string + example: INV_101 + po_number: + description: 'The purchase order associated with this invoice' + type: string + example: PO-1234 + terms: + description: 'The invoice terms' + type: string + example: 'These are invoice terms' + public_notes: + description: 'The public notes of the invoice' + type: string + example: 'These are some public notes' + private_notes: + description: 'The private notes of the invoice' + type: string + example: 'These are some private notes' + footer: + description: 'The invoice footer notes' + type: string + example: '' + custom_value1: + description: 'A custom field value' + type: string + example: '2022-10-01' + custom_value2: + description: 'A custom field value' + type: string + example: 'Something custom' + custom_value3: + description: 'A custom field value' + type: string + example: '' + custom_value4: + description: 'A custom field value' + type: string + example: '' + tax_name1: + description: 'The tax name' + type: string + example: '' + tax_name2: + description: 'The tax name' + type: string + example: '' + tax_rate1: + description: 'The tax rate' + type: number + format: float + example: '10.00' + tax_rate2: + description: 'The tax rate' + type: number + format: float + example: '10.00' + tax_name3: + description: 'The tax name' + type: string + example: '' + tax_rate3: + description: 'The tax rate' + type: number + format: float + example: '10.00' + total_taxes: + description: 'The total taxes for the invoice' + type: number + format: float + example: '10.00' + line_items: + description: 'An array of objects which define the line items of the invoice' + type: object + example: '' + amount: + description: 'The invoice amount' + type: number + format: float + example: '10.00' + balance: + description: 'The invoice balance' + type: number + format: float + example: '10.00' + paid_to_date: + description: 'The amount paid on the invoice to date' + type: number + format: float + example: '10.00' + discount: + description: 'The invoice discount, can be an amount or a percentage' + type: number + format: float + example: '10.00' + partial: + description: 'The deposit/partial amount' + type: number + format: float + example: '10.00' + is_amount_discount: + description: 'Flag determining if the discount is an amount or a percentage' + type: boolean + example: true + is_deleted: + description: 'Defines if the invoice has been deleted' + type: boolean + example: true + uses_inclusive_taxes: + description: 'Defines the type of taxes used as either inclusive or exclusive' + type: boolean + example: true + date: + description: 'The Invoice Date' + type: string + format: date + example: '1994-07-30' + last_sent_date: + description: 'The last date the invoice was sent out' + type: string + format: date + example: '1994-07-30' + next_send_date: + description: 'The Next date for a reminder to be sent' + type: string + format: date + example: '1994-07-30' + partial_due_date: + description: 'The due date for the deposit/partial amount' + type: string + format: date + example: '1994-07-30' + due_date: + description: 'The due date of the invoice' + type: string + format: date + example: '1994-07-30' + settings: + $ref: '#/components/schemas/CompanySettings' + last_viewed: + description: Timestamp + type: number + format: integer + example: '1434342123' + updated_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + archived_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + custom_surcharge1: + description: 'First Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge2: + description: 'Second Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge3: + description: 'Third Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge4: + description: 'Fourth Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge_tax1: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax2: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax3: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax4: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + type: object + Payment: + properties: + id: + description: 'The payment hashed id' + type: string + example: Opnel5aKBz + client_id: + description: 'The client hashed id' + type: string + example: Opnel5aKBz + invitation_id: + description: 'The invitation hashed id' + type: string + example: Opnel5aKBz + client_contact_id: + description: 'The client contact hashed id' + type: string + example: Opnel5aKBz + user_id: + description: 'The user hashed id' + type: string + example: Opnel5aKBz + type_id: + description: 'The Payment Type ID' + type: string + example: '1' + date: + description: 'The Payment date' + type: string + example: 1-1-2014 + transaction_reference: + description: 'The transaction reference as defined by the payment gateway' + type: string + example: xcsSxcs124asd + assigned_user_id: + description: 'The assigned user hashed id' + type: string + example: Opnel5aKBz + private_notes: + description: 'The private notes of the payment' + type: string + example: 'The payment was refunded due to error' + is_manual: + description: 'Flags whether the payment was made manually or processed via a gateway' + type: boolean + example: true + is_deleted: + description: 'Defines if the payment has been deleted' + type: boolean + example: true + amount: + description: 'The amount of this payment' + type: number + example: 10 + refunded: + description: 'The refunded amount of this payment' + type: number + example: 10 + updated_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + archived_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + company_gateway_id: + description: 'The company gateway id' + type: string + example: '3' + paymentables: + $ref: '#/components/schemas/Paymentable' + invoices: + description: '' + type: array + items: + $ref: '#/components/schemas/InvoicePaymentable' + credits: + description: '' + type: array + items: + $ref: '#/components/schemas/CreditPaymentable' + type: object + PaymentTerm: + properties: + num_days: + description: 'The payment term length in days' + type: integer + example: '1' + name: + description: 'The payment term length in string format' + type: string + example: 'NET 1' + created_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + updated_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + archived_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + type: object + Paymentable: + properties: + id: + description: 'The paymentable hashed id' + type: string + example: AS3df3A + invoice_id: + description: 'The invoice hashed id' + type: string + example: AS3df3A + credit_id: + description: 'The credit hashed id' + type: string + example: AS3df3A + refunded: + description: 'The amount that has been refunded for this payment' + type: number + format: float + example: '10.00' + amount: + description: 'The amount that has been applied to the payment' + type: number + format: float + example: '10.00' + updated_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + created_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + type: object + Product: + properties: + id: + description: 'The product hashed id' + type: string + example: Opnel5aKBz + type: object + Project: + properties: + id: + description: 'The project hashed id' + type: string + example: Opnel5aKBz + name: + description: 'The project name' + type: string + example: 'New Project' + type: object + PurchaseOrder: + properties: + id: + description: 'The purchase order hashed id' + type: string + example: Opnel5aKBz + type: object + Quote: + properties: + id: + description: 'The quote hashed id' + type: string + example: Opnel5aKBz + user_id: + description: 'The user hashed id' + type: string + example: '' + assigned_user_id: + description: 'The assigned user hashed id' + type: string + example: '' + company_id: + description: 'The company hashed id' + type: string + example: '' + client_id: + description: 'The client hashed id' + type: string + example: '' + status_id: + description: 'The status of the quote' + type: string + example: '' + number: + description: 'The quote number - is a unique alpha numeric number per quote per company' + type: string + example: QUOTE_101 + po_number: + description: 'The purchase order number associated with this quote' + type: string + example: PO-1234 + terms: + description: 'The quote terms' + type: string + example: 'These are some quote terms. Valid for 14 days.' + public_notes: + description: 'Public notes for the quote' + type: string + example: 'These are public notes which the client may see' + private_notes: + description: 'Private notes for the quote' + type: string + example: 'These are private notes, not to be disclosed to the client' + footer: + description: 'Footer text of quote' + type: string + example: 'The text goes in the footer of the quote' + custom_value1: + description: 'Custom value field' + type: string + example: 'A custom value' + custom_value2: + description: 'Custom value field' + type: string + example: 'A custom value' + custom_value3: + description: 'Custom value field' + type: string + example: 'A custom value' + custom_value4: + description: 'Custom value field' + type: string + example: 'A custom value' + tax_name1: + description: 'The tax name' + type: string + example: GST + tax_name2: + description: 'The tax name' + type: string + example: VAT + tax_rate1: + description: 'The tax rate' + type: number + format: float + example: '10.00' + tax_rate2: + description: 'The tax rate' + type: number + format: float + example: '10.00' + tax_name3: + description: 'The tax name' + type: string + example: '' + tax_rate3: + description: 'The tax rate' + type: number + format: float + example: '10.00' + total_taxes: + description: 'The total taxes for the quote' + type: number + format: float + example: '10.00' + line_items: + description: 'An array of line items of the quote' + type: object + example: '' + amount: + description: 'The total amount of the quote' + type: number + format: float + example: '10.00' + balance: + description: 'The balance due of the quote' + type: number + format: float + example: '10.00' + paid_to_date: + description: 'The amount that has been paid to date on the quote' + type: number + format: float + example: '10.00' + discount: + description: 'The quote discount' + type: number + format: float + example: '10.00' + partial: + description: 'The partial/deposit amount' + type: number + format: float + example: '10.00' + is_amount_discount: + description: 'Boolean flag determining if the quote is an amount or percentage' + type: boolean + example: true + is_deleted: + description: 'Boolean flag determining if the quote has been deleted' + type: boolean + example: true + uses_inclusive_taxes: + description: 'Defines the type of taxes used as either inclusive or exclusive' + type: boolean + example: true + date: + description: 'The Quote Date' + type: string + format: date + example: '1994-07-30' + last_sent_date: + description: 'The last date the quote was sent out' + type: string + format: date + example: '1994-07-30' + next_send_date: + description: 'The Next date for a reminder to be sent' + type: string + format: date + example: '1994-07-30' + partial_due_date: + description: 'The date when the partial/deposit is due' + type: string + format: date + example: '1994-07-30' + due_date: + description: 'The date the quote is valid until' + type: string + format: date + example: '1994-07-30' + settings: + $ref: '#/components/schemas/CompanySettings' + last_viewed: + description: Timestamp + type: number + format: integer + example: '1434342123' + updated_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + archived_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + custom_surcharge1: + description: 'First Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge2: + description: 'Second Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge3: + description: 'Third Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge4: + description: 'Fourth Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge_tax1: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax2: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax3: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax4: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + type: object + RecurringExpense: + properties: + id: + description: 'The hashed id of the recurring expense' + type: string + example: Opnel5aKBz + user_id: + description: 'The hashed id of the user who created the recurring expense' + type: string + example: Opnel5aKBz + assigned_user_id: + description: 'The hashed id of the user assigned to this recurring expense' + type: string + example: Opnel5aKBz + company_id: + description: 'The hashed id of the company' + type: string + example: Opnel5aKBz + client_id: + description: 'The hashed id of the client' + type: string + example: Opnel5aKBz + invoice_id: + description: 'The hashed id of the invoice' + type: string + example: Opnel5aKBz + bank_id: + description: 'The id of the bank associated with this recurring expense' + type: string + example: '22' + invoice_currency_id: + description: 'The currency id of the invoice associated with this recurring expense' + type: string + example: '1' + expense_currency_id: + description: 'The currency id of the expense associated with this recurring expense' + type: string + example: '1' + invoice_category_id: + description: 'The category id of the invoice' + type: string + example: '1' + payment_type_id: + description: 'The payment type id' + type: string + example: '1' + private_notes: + description: 'The recurring expense private notes' + type: string + example: 'Private and confidential' + public_notes: + description: 'The recurring expense public notes' + type: string + example: 'This is the best client in the world' + transaction_reference: + description: 'The recurring expense transaction reference' + type: string + example: EXP-1223-2333 + transcation_id: + description: 'The transaction id of the recurring expense' + type: string + example: '1233312312' + custom_value1: + description: 'Custom value field' + type: string + example: $1000 + custom_value2: + description: 'Custom value field' + type: string + example: '2022-10-10' + custom_value3: + description: 'Custom value field' + type: string + example: 'short text' + custom_value4: + description: 'Custom value field' + type: string + example: 'very long text' + tax_name1: + description: 'The tax name' + type: string + example: GST + tax_name2: + description: 'The tax name' + type: string + example: VAT + tax_rate1: + description: 'The tax rate' + type: number + format: float + example: '10.00' + tax_rate2: + description: 'The tax rate' + type: number + format: float + example: '10.00' + tax_name3: + description: 'The tax name' + type: string + example: '' + tax_rate3: + description: 'The tax rate' + type: number + format: float + example: '10.00' + amount: + description: 'The total amount of the recurring expense' + type: number + format: float + example: '10.00' + frequency_id: + description: 'The frequency this recurring expense fires' + type: number + format: int + example: '1' + remaining_cycles: + description: 'The number of remaining cycles for this recurring expense' + type: number + format: int + example: '1' + foreign_amount: + description: 'The foreign currency amount of the recurring expense' + type: number + format: float + example: '10.00' + exchange_rate: + description: 'The exchange rate for the expernse' + type: number + format: float + example: '0.80' + date: + description: 'The date of the expense' + type: string + example: '' + payment_date: + description: 'The date the expense was paid' + type: string + example: '' + should_be_invoiced: + description: 'Boolean flag determining if the expense should be invoiced' + type: boolean + example: true + is_deleted: + description: 'Boolean flag determining if the recurring expense is deleted' + type: boolean + example: true + last_sent_date: + description: 'The Date it was sent last' + type: string + format: date + example: '1994-07-30' + next_send_date: + description: 'The next send date' + type: string + format: date + example: '1994-07-30' + invoice_documents: + description: 'Boolean flag determining if the documents associated with this expense should be passed onto the invoice if it is converted to an invoice' + type: boolean + example: true + updated_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + archived_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + type: object + RecurringInvoice: + properties: + id: + description: 'The hashed id of the recurring invoice' + type: string + example: Opnel5aKBz + user_id: + description: 'The user hashed id' + type: string + example: Opnel5aKBz + assigned_user_id: + description: 'The assigned user hashed id' + type: string + example: Opnel5aKBz + company_id: + description: 'The company hashed id' + type: string + example: Opnel5aKBz + client_id: + description: 'The client hashed id' + type: string + example: Opnel5aKBz + status_id: + description: 'The invoice status variable' + type: string + example: '4' + frequency_id: + description: 'The recurring invoice frequency' + type: number + example: '4' + remaining_cycles: + description: 'The number of invoices left to be generated' + type: number + example: '4' + number: + description: 'The recurringinvoice number - is a unique alpha numeric number per invoice per company' + type: string + example: INV_101 + po_number: + description: 'The purchase order associated with this recurring invoice' + type: string + example: PO-1234 + terms: + description: 'The invoice terms' + type: string + example: 'These are invoice terms' + public_notes: + description: 'The public notes of the invoice' + type: string + example: 'These are some public notes' + private_notes: + description: 'The private notes of the invoice' + type: string + example: 'These are some private notes' + footer: + description: 'The invoice footer notes' + type: string + example: '' + custom_value1: + description: 'A custom field value' + type: string + example: '2022-10-01' + custom_value2: + description: 'A custom field value' + type: string + example: 'Something custom' + custom_value3: + description: 'A custom field value' + type: string + example: '' + custom_value4: + description: 'A custom field value' + type: string + example: '' + tax_name1: + description: 'The tax name' + type: string + example: '' + tax_name2: + description: 'The tax name' + type: string + example: '' + tax_rate1: + description: 'The tax rate' + type: number + format: float + example: '10.00' + tax_rate2: + description: 'The tax rate' + type: number + format: float + example: '10.00' + tax_name3: + description: 'The tax name' + type: string + example: '' + tax_rate3: + description: 'The tax rate' + type: number + format: float + example: '10.00' + total_taxes: + description: 'The total taxes for the invoice' + type: number + format: float + example: '10.00' + line_items: + description: 'An array of objects which define the line items of the invoice' + type: object + example: '' + amount: + description: 'The invoice amount' + type: number + format: float + example: '10.00' + balance: + description: 'The invoice balance' + type: number + format: float + example: '10.00' + paid_to_date: + description: 'The amount paid on the invoice to date' + type: number + format: float + example: '10.00' + discount: + description: 'The invoice discount, can be an amount or a percentage' + type: number + format: float + example: '10.00' + partial: + description: 'The deposit/partial amount' + type: number + format: float + example: '10.00' + is_amount_discount: + description: 'Flag determining if the discount is an amount or a percentage' + type: boolean + example: true + is_deleted: + description: 'Defines if the invoice has been deleted' + type: boolean + example: true + uses_inclusive_taxes: + description: 'Defines the type of taxes used as either inclusive or exclusive' + type: boolean + example: true + date: + description: 'The Invoice Date' + type: string + format: date + example: '1994-07-30' + last_sent_date: + description: 'The last date the invoice was sent out' + type: string + format: date + example: '1994-07-30' + next_send_date: + description: 'The Next date for a reminder to be sent' + type: string + format: date + example: '1994-07-30' + partial_due_date: + description: 'The due date for the deposit/partial amount' + type: string + format: date + example: '1994-07-30' + due_date: + description: 'The due date of the invoice' + type: string + format: date + example: '1994-07-30' + settings: + $ref: '#/components/schemas/CompanySettings' + last_viewed: + description: Timestamp + type: number + format: integer + example: '1434342123' + updated_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + archived_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + custom_surcharge1: + description: 'First Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge2: + description: 'Second Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge3: + description: 'Third Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge4: + description: 'Fourth Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge_tax1: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax2: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax3: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax4: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + type: object + RecurringQuote: + properties: + id: + description: 'The hashed id of the recurring quote' + type: string + example: Opnel5aKBz + user_id: + description: 'The user hashed id' + type: string + example: Opnel5aKBz + assigned_user_id: + description: 'The assigned user hashed id' + type: string + example: Opnel5aKBz + company_id: + description: 'The company hashed id' + type: string + example: Opnel5aKBz + client_id: + description: 'The client hashed id' + type: string + example: Opnel5aKBz + status_id: + description: 'The quote status variable' + type: string + example: '4' + frequency_id: + description: 'The recurring quote frequency' + type: number + example: '4' + remaining_cycles: + description: 'The number of quotes left to be generated' + type: number + example: '4' + number: + description: 'The recurringquote number - is a unique alpha numeric number per quote per company' + type: string + example: INV_101 + po_number: + description: 'The purchase order associated with this recurring quote' + type: string + example: PO-1234 + terms: + description: 'The quote terms' + type: string + example: 'These are quote terms' + public_notes: + description: 'The public notes of the quote' + type: string + example: 'These are some public notes' + private_notes: + description: 'The private notes of the quote' + type: string + example: 'These are some private notes' + footer: + description: 'The quote footer notes' + type: string + example: '' + custom_value1: + description: 'A custom field value' + type: string + example: '2022-10-01' + custom_value2: + description: 'A custom field value' + type: string + example: 'Something custom' + custom_value3: + description: 'A custom field value' + type: string + example: '' + custom_value4: + description: 'A custom field value' + type: string + example: '' + tax_name1: + description: 'The tax name' + type: string + example: '' + tax_name2: + description: 'The tax name' + type: string + example: '' + tax_rate1: + description: 'The tax rate' + type: number + format: float + example: '10.00' + tax_rate2: + description: 'The tax rate' + type: number + format: float + example: '10.00' + tax_name3: + description: 'The tax name' + type: string + example: '' + tax_rate3: + description: 'The tax rate' + type: number + format: float + example: '10.00' + total_taxes: + description: 'The total taxes for the quote' + type: number + format: float + example: '10.00' + line_items: + description: 'An array of objects which define the line items of the quote' + type: object + example: '' + amount: + description: 'The quote amount' + type: number + format: float + example: '10.00' + balance: + description: 'The quote balance' + type: number + format: float + example: '10.00' + paid_to_date: + description: 'The amount paid on the quote to date' + type: number + format: float + example: '10.00' + discount: + description: 'The quote discount, can be an amount or a percentage' + type: number + format: float + example: '10.00' + partial: + description: 'The deposit/partial amount' + type: number + format: float + example: '10.00' + is_amount_discount: + description: 'Flag determining if the discount is an amount or a percentage' + type: boolean + example: true + is_deleted: + description: 'Defines if the quote has been deleted' + type: boolean + example: true + uses_inclusive_taxes: + description: 'Defines the type of taxes used as either inclusive or exclusive' + type: boolean + example: true + date: + description: 'The quote Date' + type: string + format: date + example: '1994-07-30' + last_sent_date: + description: 'The last date the quote was sent out' + type: string + format: date + example: '1994-07-30' + next_send_date: + description: 'The Next date for a reminder to be sent' + type: string + format: date + example: '1994-07-30' + partial_due_date: + description: 'The due date for the deposit/partial amount' + type: string + format: date + example: '1994-07-30' + due_date: + description: 'The due date of the quote' + type: string + format: date + example: '1994-07-30' + settings: + $ref: '#/components/schemas/CompanySettings' + last_viewed: + description: Timestamp + type: number + format: integer + example: '1434342123' + updated_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + archived_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + custom_surcharge1: + description: 'First Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge2: + description: 'Second Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge3: + description: 'Third Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge4: + description: 'Fourth Custom Surcharge' + type: number + format: float + example: '10.00' + custom_surcharge_tax1: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax2: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax3: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + custom_surcharge_tax4: + description: 'Toggles charging taxes on custom surcharge amounts' + type: boolean + example: true + type: object + SystemLog: + properties: + id: + description: 'The account hashed id' + type: string + example: AS3df3A + company_id: + description: 'The company hashed id' + type: string + example: AS3df3A + user_id: + description: 'The user_id hashed id' + type: string + example: AS3df3A + client_id: + description: 'The client_id hashed id' + type: string + example: AS3df3A + event_id: + description: 'The Log Type ID' + type: integer + example: 1 + category_id: + description: 'The Category Type ID' + type: integer + example: 1 + type_id: + description: 'The Type Type ID' + type: integer + example: 1 + log: + description: 'The json object of the error' + type: object + example: '{''key'':''value''}' + updated_at: + description: Timestamp + type: string + example: '2' + created_at: + description: Timestamp + type: string + example: '2' + type: object + TaskSchedulerSchema: + properties: + paused: + description: 'The scheduler paused state' + type: boolean + example: 'false' + repeat_every: + description: 'Accepted values (DAY,WEEK,MONTH,3MONTHS,YEAR)' + type: string + example: DAY + start_from: + description: 'Timestamp when we should start the scheduler, default is today' + type: integer + example: '1652898504' + job: + description: 'Job, we can find list of available jobs in Scheduler model' + type: string + example: create_credit_report + date_range: + description: 'The string representation of the date range of data to be returned' + type: string + example: last7 + date_key: + description: 'The date column to search between.' + type: string + example: created_at + start_date: + description: 'The start date to search between' + type: string + example: '2022-10-31' + end_date: + description: 'The end date to search between' + type: string + example: '2022-10-31' + report_keys: + type: array + items: + description: 'Array of Keys to export' + type: string + example: '[''name'',''date'']' + type: object + UpdateTaskSchedulerSchema: + properties: + paused: + description: 'The scheduler paused state' + type: boolean + example: 'false' + repeat_every: + description: 'Accepted values (DAY,WEEK,MONTH,3MONTHS,YEAR)' + type: string + example: DAY + start_from: + description: 'Timestamp when we should start the scheduler, default is today' + type: integer + example: '1652898504' + job: + description: 'Job, we can find list of available jobs in Scheduler model' + type: string + example: create_credit_report + date_range: + description: 'The string representation of the date range of data to be returned' + type: string + example: last7 + date_key: + description: 'The date column to search between.' + type: string + example: created_at + start_date: + description: 'The start date to search between' + type: string + example: '2022-10-31' + end_date: + description: 'The end date to search between' + type: string + example: '2022-10-31' + type: object + UpdateJobForASchedulerSchema: + properties: + job: + description: 'Set action name, action names can be found in Scheduler Model' + type: string + example: create_client_report + type: object + Task: + properties: + id: + description: 'The hashed id of the task' + type: string + example: Opnel5aKBz + user_id: + description: 'The hashed id of the user who created the task' + type: string + example: Opnel5aKBz + assigned_user_id: + description: 'The assigned user of the task' + type: string + example: Opnel5aKBz + company_id: + description: 'The hashed id of the company' + type: string + example: Opnel5aKBz + client_id: + description: 'The hashed if of the client' + type: string + example: Opnel5aKBz + invoice_id: + description: 'The hashed id of the invoice associated with the task' + type: string + example: Opnel5aKBz + project_id: + description: 'The hashed id of the project associated with the task' + type: string + example: Opnel5aKBz + number: + description: 'The number of the task' + type: string + example: TASK-123 + time_log: + description: 'An array of unix time stamps defining the start and end times of the task' + type: string + example: '[[1,2],[3,4]]' + is_running: + description: 'Determines if the task is still running' + type: boolean + example: true + is_deleted: + description: 'Boolean flag determining if the task has been deleted' + type: boolean + example: true + task_status_id: + description: 'The hashed id of the task status' + type: string + example: Opnel5aKBz + description: + description: 'The task description' + type: string + example: 'A wonder task to work on' + duration: + description: 'The task duration' + type: integer + example: '' + task_status_order: + description: 'The order of the task' + type: integer + example: '4' + custom_value1: + description: 'A custom value' + type: string + example: '2022-10-10' + custom_value2: + description: 'A custom value' + type: string + example: $1100 + custom_value3: + description: 'A custom value' + type: string + example: 'I need help' + custom_value4: + description: 'A custom value' + type: string + example: INV-3343 + created_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + updated_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + archived_at: + description: Timestamp + type: number + format: integer + example: '1434342123' + type: object + TaskStatus: + properties: + name: + description: 'The task status name' + type: string + example: Backlog + created_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + is_deleted: + description: 'A boolean flag determining if the task status has been deleted' + type: boolean + example: true + updated_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + archived_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + type: object + TaxRate: + properties: + id: + description: 'Thie hashed id of the tax' + type: string + example: Opnel5aKBz + name: + description: 'The tax name' + type: string + example: GST + rate: + description: 'The tax rate' + type: number + example: '10' + is_deleted: + description: 'Boolean flag determining if the tax has been deleted' + type: boolean + example: true + type: object + Template: + properties: + html: + description: 'The template HTML' + type: string + example: '' + type: object + User: + properties: + id: + description: 'The hashed id of the user' + type: string + example: Opnel5aKBz + first_name: + description: 'The first name of the user' + type: string + example: Brad + last_name: + description: 'The last name of the user' + type: string + example: Pitt + email: + description: 'The users email address' + type: string + example: brad@pitt.com + phone: + description: 'The users phone number' + type: string + example: 555-1233-23232 + signature: + description: 'The users sign off signature' + type: string + example: 'Have a nice day!' + avatar: + description: 'The users avatar' + type: string + example: 'https://url.to.your/avatar.png' + accepted_terms_version: + description: 'The version of the invoice ninja terms that has been accepted by the user' + type: string + example: 1.0.1 + oauth_user_id: + description: 'The provider id of the oauth entity' + type: string + example: jkhasdf789as6f675sdf768sdfs + oauth_provider_id: + description: 'The oauth entity id' + type: string + example: google + type: object + AuthenticationError: + type: object + properties: + message: + description: 'These credentials do not match our records / Invalid Token' + type: string + example: 'These credentials do not match our records / Invalid Token' + ValidationError: + properties: + message: + description: 'The error message' + type: string + example: 'The given data was invalid.' + errors: + properties: + value: + type: array + items: + type: string + type: object + type: object + AuthorizationError: + properties: + message: + description: 'Insufficient permissions for this resource.' + type: string + example: 'Insufficient permissions for this resource.' + errors: + properties: + value: + type: array + items: + type: string + type: object + type: object + VendorContact: + properties: + id: + description: 'The hashed id of the vendor contact' + type: string + example: Opnel5aKBz + user_id: + description: 'The hashed id of the user id' + type: string + example: Opnel5aKBz + company_id: + description: 'The hashed id of the company' + type: string + example: Opnel5aKBz + vendor_id: + description: 'The hashed id of the vendor' + type: string + example: Opnel5aKBz + first_name: + description: 'The first name of the contact' + type: string + example: Harry + last_name: + description: 'The last name of the contact' + type: string + example: Windsor + phone: + description: 'The contacts phone number' + type: string + example: 555-123-1234 + custom_value1: + description: 'A custom value' + type: string + example: '2022-10-10' + custom_value2: + description: 'A custom value' + type: string + example: $1000 + custom_value3: + description: 'A custom value' + type: string + example: '' + custom_value4: + description: 'A custom value' + type: string + example: '' + email: + description: 'The contact email address' + type: string + example: harry@windsor.com + is_primary: + description: 'Boolean flag determining if the contact is the primary contact for the vendor' + type: boolean + example: true + created_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + updated_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + deleted_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + type: object + Vendor: + properties: + id: + description: 'The hashed id of the vendor' + type: string + example: Opnel5aKBz + user_id: + description: 'The hashed id of the user who created the vendor' + type: string + example: Opnel5aKBz + assigned_user_id: + description: 'The hashed id of the assigned user to this vendor' + type: string + example: Opnel5aKBz + company_id: + description: 'The hashed id of the company' + type: string + example: Opnel5aKBz + client_id: + description: 'The hashed id of the client' + type: string + example: Opnel5aKBz + contacts: + type: array + items: + $ref: '#/components/schemas/VendorContact' + name: + description: 'The vendor name' + type: string + example: 'Harry''s cafe de wheels' + website: + description: 'The website of the vendor' + type: string + example: www.harry.com + private_notes: + description: 'The private notes of the vendor' + type: string + example: 'Shhh, don''t tell the vendor' + industry_id: + description: 'The industry id of the vendor' + type: string + example: '1' + size_id: + description: ________ + type: string + example: '' + address1: + description: ________ + type: string + example: '' + address2: + description: ________ + type: string + example: '' + city: + description: ________ + type: string + example: '' + state: + description: ________ + type: string + example: '' + postal_code: + description: ________ + type: string + example: '' + phone: + description: 'The client phone number' + type: string + example: 555-3434-3434 + country_id: + description: ________ + type: string + example: '' + currency_id: + description: ________ + type: string + example: '4' + custom_value1: + description: ________ + type: string + example: '' + custom_value2: + description: ________ + type: string + example: '' + custom_value3: + description: ________ + type: string + example: '' + custom_value4: + description: ________ + type: string + example: '' + vat_number: + description: ________ + type: string + example: '' + id_number: + description: ________ + type: string + example: '' + number: + description: ________ + type: string + example: '' + is_deleted: + description: ________ + type: boolean + example: true + last_login: + description: Timestamp + type: number + format: integer + example: '134341234234' + created_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + updated_at: + description: Timestamp + type: number + format: integer + example: '134341234234' + settings: + $ref: '#/components/schemas/CompanySettings' + type: object + Webhook: + properties: + id: + description: 'The subscription hashed id' + type: string + example: AS3df3A + event_id: + description: 'The subscription event id' + type: string + example: AS3df3A + target_url: + description: 'The api endpoint' + type: string + example: AS3df3A + format: + description: 'JSON or UBL' + type: string + example: JSON + type: object \ No newline at end of file diff --git a/openapi/components/schemas/account.yaml b/openapi/components/schemas/account.yaml new file mode 100644 index 0000000000..1d81cf0208 --- /dev/null +++ b/openapi/components/schemas/account.yaml @@ -0,0 +1,7 @@ + Account: + properties: + id: + description: 'The account hashed id' + type: string + example: AS3df3A + type: object \ No newline at end of file diff --git a/openapi/paths/clients.yaml b/openapi/paths/clients.yaml new file mode 100644 index 0000000000..5249c95f18 --- /dev/null +++ b/openapi/paths/clients.yaml @@ -0,0 +1,783 @@ + /api/v1/clients: + get: + tags: + - clients + summary: 'List clients' + description: | + Lists clients. Fine grained filtering is also available using query parameters. + operationId: getClients + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + - + $ref: '#/components/parameters/index' + - + name: name + in: query + description: Filter by client name + required: false + schema: + type: string + example: bob + - + name: balance + in: query + description: Filter by client balance, format uses an operator and value separated by a colon. lt,lte, gt, gte, eq + required: false + schema: + type: string + example: lt:10 + - + name: between_balance + in: query + description: Filter between client balances, format uses two values separated by a colon + required: false + schema: + type: string + example: 10:100 + - + name: email + in: query + description: Filter by client email + required: false + schema: + type: string + example: bob@gmail.com + - + name: id_number + in: query + description: Filter by client id_number + required: false + schema: + type: string + example: a1039883 + - + name: number + in: query + description: Filter by client number + required: false + schema: + type: string + example: a1039883 + - + name: filter + in: query + description: Filters clients on columns - name, id_number, contact.first_name contact.last_name, contact.email, custom_value1-4 + required: false + schema: + type: string + example: a1039883 + - + name: sort + in: query + description: Returns the list sorted by column in ascending or descending order. + required: false + schema: + type: string + example: id|desc name|desc balance|asc + + responses: + 200: + description: 'A list of clients' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - clients + summary: 'Create client' + description: 'Adds an client to a company' + operationId: storeClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + responses: + 200: + description: 'Returns the saved client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '/api/v1/clients/{id}': + get: + tags: + - clients + summary: 'Show client' + description: 'Displays a client by id' + operationId: showClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + - + name: id + in: path + description: 'The Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + responses: + 200: + description: 'Returns the cl.ient object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + put: + tags: + - clients + summary: 'Update client' + description: 'Handles the updating of a client by id' + operationId: updateClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + - + name: id + in: path + description: 'The Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + responses: + 200: + description: 'Returns the client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + delete: + tags: + - clients + summary: 'Delete client' + description: 'Handles the deletion of a client by id' + operationId: deleteClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + - + name: id + in: path + description: 'The Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + responses: + 200: + description: 'Returns a HTTP status' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '/api/v1/clients/{id}/edit': + get: + tags: + - clients + summary: 'Edit Client' + description: 'Displays a client by id' + operationId: editClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/include' + - + name: id + in: path + description: 'The Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + responses: + 200: + description: 'Returns the client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /api/v1/clients/create: + get: + tags: + - clients + summary: 'Blank Client' + description: 'Returns a blank object with default values' + operationId: getClientsCreate + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + responses: + 200: + description: 'A blank client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /api/v1/clients/bulk: + post: + tags: + - clients + summary: 'Bulk actions' + description: '' + operationId: bulkClients + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/index' + requestBody: + description: 'User credentials' + required: true + content: + application/json: + schema: + type: array + items: + description: 'Array of hashed IDs to be bulk ''actioned' + type: integer + example: '[0,1,2,3]' + responses: + 200: + description: 'The Client User response' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '/api/v1/clients/{id}/upload': + put: + tags: + - clients + summary: 'Add client document' + description: 'Handles the uploading of a document to a client' + operationId: uploadClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + - + name: id + in: path + description: 'The Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + responses: + 200: + description: 'Returns the client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '/api/v1/clients/{id}/purge': + post: + tags: + - clients + summary: 'Purge client' + description: 'Handles purging a client' + operationId: purgeClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + - + name: id + in: path + description: 'The Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + responses: + 200: + description: 'Returns the client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '/api/v1/clients/{id}/{mergeable_client_hashed_id}/merge': + post: + tags: + - clients + summary: 'Merge client' + description: 'Handles merging 2 clients' + operationId: mergeClient + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/client_include' + - + name: id + in: path + description: 'The Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + - + name: mergeable_client_hashed_id + in: path + description: 'The Mergeable Client Hashed ID' + required: true + schema: + type: string + format: string + example: D2J234DFA + responses: + 200: + description: 'Returns the client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /api/v1/client_statement: + post: + tags: + - clients + summary: 'Client statement PDF' + description: 'Return a PDF of the client statement' + operationId: clientStatement + parameters: + - + $ref: '#/components/parameters/X-API-TOKEN' + - + $ref: '#/components/parameters/X-Requested-With' + - + $ref: '#/components/parameters/include' + requestBody: + description: 'Statment Options' + required: true + content: + application/json: + schema: + properties: + start_date: + description: 'The start date of the statement period - format Y-m-d' + type: string + end_date: + description: 'The start date of the statement period - format Y-m-d' + type: string + client_id: + description: 'The hashed ID of the client' + type: string + show_payments_table: + description: 'Flag which determines if the payments table is shown' + type: boolean + show_aging_table: + description: 'Flag which determines if the aging table is shown' + type: boolean + type: object + responses: + 200: + description: 'Returns the client object' + headers: + X-MINIMUM-CLIENT-VERSION: + $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' + X-RateLimit-Remaining: + $ref: '#/components/headers/X-RateLimit-Remaining' + X-RateLimit-Limit: + $ref: '#/components/headers/X-RateLimit-Limit' + content: + application/json: + schema: + $ref: '#/components/schemas/Client' + 401: + description: 'Authentication error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthenticationError' + 403: + description: 'Authorization error' + content: + application/json: + schema: + $ref: '#components/schemas/AuthorizationError' + 422: + description: 'Validation error' + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + default: + description: 'Unexpected Error' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' \ No newline at end of file diff --git a/openapi/paths/paths.yaml b/openapi/paths/paths.yaml index 8b52e1e5ac..dde3fb5d2f 100644 --- a/openapi/paths/paths.yaml +++ b/openapi/paths/paths.yaml @@ -1541,588 +1541,7 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' - /api/v1/clients: - get: - tags: - - clients - summary: 'List clients' - description: | - Lists clients. Fine grained filtering is also available using query parameters. - operationId: getClients - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/client_include' - - - $ref: '#/components/parameters/index' - - - name: name - in: query - description: Filter by client name - required: false - schema: - type: string - example: bob - - - name: balance - in: query - description: Filter by client balance, format uses an operator and value separated by a colon. lt,lte, gt, gte, eq - required: false - schema: - type: string - example: lt:10 - - - name: between_balance - in: query - description: Filter between client balances, format uses two values separated by a colon - required: false - schema: - type: string - example: 10:100 - - - name: email - in: query - description: Filter by client email - required: false - schema: - type: string - example: bob@gmail.com - - - name: id_number - in: query - description: Filter by client id_number - required: false - schema: - type: string - example: a1039883 - - - name: number - in: query - description: Filter by client number - required: false - schema: - type: string - example: a1039883 - - - name: filter - in: query - description: Filters clients on columns - name, id_number, contact.first_name contact.last_name, contact.email, custom_value1-4 - required: false - schema: - type: string - example: a1039883 - - - name: sort - in: query - description: Returns the list sorted by column in ascending or descending order. - required: false - schema: - type: string - example: id|desc name|desc balance|asc - responses: - 200: - description: 'A list of clients' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 403: - description: 'Authorization error' - content: - application/json: - schema: - $ref: '#components/schemas/AuthorizationError' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - post: - tags: - - clients - summary: 'Create client' - description: 'Adds an client to a company' - operationId: storeClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - responses: - 200: - description: 'Returns the saved client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '/api/v1/clients/{id}': - get: - tags: - - clients - summary: 'Show client' - description: 'Displays a client by id' - operationId: showClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - - - name: id - in: path - description: 'The Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - responses: - 200: - description: 'Returns the cl.ient object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - put: - tags: - - clients - summary: 'Update client' - description: 'Handles the updating of a client by id' - operationId: updateClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - - - name: id - in: path - description: 'The Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - responses: - 200: - description: 'Returns the client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - delete: - tags: - - clients - summary: 'Delete client' - description: 'Handles the deletion of a client by id' - operationId: deleteClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - - - name: id - in: path - description: 'The Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - responses: - 200: - description: 'Returns a HTTP status' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '/api/v1/clients/{id}/edit': - get: - tags: - - clients - summary: 'Edit Client' - description: 'Displays a client by id' - operationId: editClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - - - name: id - in: path - description: 'The Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - responses: - 200: - description: 'Returns the client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /api/v1/clients/create: - get: - tags: - - clients - summary: 'Blank Client' - description: 'Returns a blank object with default values' - operationId: getClientsCreate - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - responses: - 200: - description: 'A blank client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - /api/v1/clients/bulk: - post: - tags: - - clients - summary: 'Bulk actions' - description: '' - operationId: bulkClients - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/index' - requestBody: - description: 'User credentials' - required: true - content: - application/json: - schema: - type: array - items: - description: 'Array of hashed IDs to be bulk ''actioned' - type: integer - example: '[0,1,2,3]' - responses: - 200: - description: 'The Client User response' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '/api/v1/clients/{id}/upload': - put: - tags: - - clients - summary: 'Add client document' - description: 'Handles the uploading of a document to a client' - operationId: uploadClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - - - name: id - in: path - description: 'The Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - responses: - 200: - description: 'Returns the client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '/api/v1/clients/{id}/purge': - post: - tags: - - clients - summary: 'Purge client' - description: 'Handles purging a client' - operationId: purgeClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - - - name: id - in: path - description: 'The Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - responses: - 200: - description: 'Returns the client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '/api/v1/clients/{id}/{mergeable_client_hashed_id}/merge': - post: - tags: - - clients - summary: 'Merge client' - description: 'Handles merging 2 clients' - operationId: mergeClient - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - - - name: id - in: path - description: 'The Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - - - name: mergeable_client_hashed_id - in: path - description: 'The Mergeable Client Hashed ID' - required: true - schema: - type: string - format: string - example: D2J234DFA - responses: - 200: - description: 'Returns the client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' /api/v1/client_gateway_tokens: get: tags: @@ -2434,69 +1853,7 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' - /api/v1/client_statement: - post: - tags: - - clients - summary: 'Client statement PDF' - description: 'Return a PDF of the client statement' - operationId: clientStatement - parameters: - - - $ref: '#/components/parameters/X-API-TOKEN' - - - $ref: '#/components/parameters/X-Requested-With' - - - $ref: '#/components/parameters/include' - requestBody: - description: 'Statment Options' - required: true - content: - application/json: - schema: - properties: - start_date: - description: 'The start date of the statement period - format Y-m-d' - type: string - end_date: - description: 'The start date of the statement period - format Y-m-d' - type: string - client_id: - description: 'The hashed ID of the client' - type: string - show_payments_table: - description: 'Flag which determines if the payments table is shown' - type: boolean - show_aging_table: - description: 'Flag which determines if the aging table is shown' - type: boolean - type: object - responses: - 200: - description: 'Returns the client object' - headers: - X-MINIMUM-CLIENT-VERSION: - $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' - X-RateLimit-Remaining: - $ref: '#/components/headers/X-RateLimit-Remaining' - X-RateLimit-Limit: - $ref: '#/components/headers/X-RateLimit-Limit' - content: - application/json: - schema: - $ref: '#/components/schemas/Client' - 422: - description: 'Validation error' - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationError' - default: - description: 'Unexpected Error' - content: - application/json: - schema: - $ref: '#/components/schemas/Error' + /api/v1/companies: get: tags: