From 523d3804db00c9dfc3c5bf3a44bdb99eb49cf632 Mon Sep 17 00:00:00 2001 From: Quentin Heng Date: Fri, 15 May 2026 13:57:05 +1200 Subject: [PATCH] chore!: remove XPM --- .spectral.yaml | 7 - manifest.json | 4 - xero-practicemanager-v3-1.yaml | 7386 -------------------------------- 3 files changed, 7397 deletions(-) delete mode 100644 xero-practicemanager-v3-1.yaml diff --git a/.spectral.yaml b/.spectral.yaml index 82bfb5f7c..7203e7d96 100644 --- a/.spectral.yaml +++ b/.spectral.yaml @@ -160,10 +160,3 @@ rules: path-params: off # Disable path parameter validation to address mapping key issues owasp:api8:2023-define-cors-origin: off # Disable CORS origin header requirement oas3-operation-security-defined: error # Ensure all scopes are listed in schema - -overrides: - - files: - - "xero-practicemanager-v3-1.yaml#/paths/~1v3.1~1client.api~1paged-list/get/parameters/3" - - "xero-practicemanager-v3-1.yaml#/paths/~1v3.1~1client.api~1contacts/get/parameters/3" - rules: - owasp:api2:2023-no-credentials-in-url: off # pageToken is a pagination token, not a credential diff --git a/manifest.json b/manifest.json index 4341509b9..b5034a216 100644 --- a/manifest.json +++ b/manifest.json @@ -39,10 +39,6 @@ "path": "/xero-payroll-uk.yaml", "canPreview": true }, - "practiceManagerV31": { - "path": "/xero-practicemanager-v3-1.yaml", - "canPreview": true - }, "projects": { "path": "/xero-projects.yaml", "canPreview": true diff --git a/xero-practicemanager-v3-1.yaml b/xero-practicemanager-v3-1.yaml deleted file mode 100644 index 227869f9a..000000000 --- a/xero-practicemanager-v3-1.yaml +++ /dev/null @@ -1,7386 +0,0 @@ -openapi: 3.0.0 -info: - title: XPM Public API - description: Xero Practice Manager Public API v3.1 - termsOfService: https://developer.xero.com/xero-developer-platform-terms-conditions/ - contact: - name: Xero Platform Team - url: https://developer.xero.com - email: api@xero.com - version: 13.0.0 -servers: - - url: https://api.xero.com/practicemanager/ - description: Xero Practice Manager API -paths: - /v3.1/category.api/list: - get: - tags: - - CategoryV31 - summary: Return a list of all categories - operationId: CategoryV31_List - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CategoryResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/client.api/list: - get: - tags: - - ClientV31 - summary: Return a list of all clients - operationId: ClientV31_List - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: detailed - in: query - description: If true, returns detailed client information including notes, groups, and relationships. - schema: - type: boolean - - name: modifiedSince - in: query - description: 'Return clients modified since this date. Format: yyyy-MM-ddTHH:mm:ss.' - schema: - type: string - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.client - - practicemanager.client.read - /v3.1/client.api/paged-list: - get: - tags: - - ClientV31 - summary: Return a paginated subset of non-archived and non-deleted clients. - operationId: ClientV31_PagedList - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: pageSize - in: query - schema: - type: integer - format: int32 - default: 50 - x-position: 1 - - name: pageToken - in: query - schema: - type: string - nullable: true - x-position: 2 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientPagedListResponseDto' - "400": - description: The request was invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "403": - description: Access to the resource is forbidden. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.client - - practicemanager.client.read - /v3.1/client.api/search: - get: - tags: - - ClientV31 - summary: Return a list of all clients matching search query - operationId: ClientV31_Search - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: query - in: query - description: Search term to find clients by name or other fields. - schema: - type: string - - name: detailed - in: query - description: If true, returns detailed client information including notes, groups, and relationships. - schema: - type: boolean - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.client - - practicemanager.client.read - /v3.1/client.api/get/{identifier}: - get: - tags: - - ClientV31 - summary: Detailed information for a specific client - operationId: ClientV31_GetByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.client - - practicemanager.client.read - /v3.1/client.api/add: - post: - tags: - - ClientV31 - summary: Create a new client and add new contacts to it - operationId: ClientV31_Add - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientAddRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/client.api/update: - put: - tags: - - ClientV31 - summary: Update a client's details - operationId: ClientV31_Update - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientUpdateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientResponseDto' - "409": - description: A conflict occurred with the current state of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/client.api/contacts: - get: - tags: - - ClientV31 - summary: Return a paginated subset of non-deleted contacts. - operationId: ClientV31_Contacts - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: pageSize - in: query - schema: - type: integer - format: int32 - default: 50 - x-position: 1 - - name: pageToken - in: query - schema: - type: string - nullable: true - x-position: 2 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientContactsResponseDto' - "400": - description: The request was invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "403": - description: Access to the resource is forbidden. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "404": - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.client - - practicemanager.client.read - /v3.1/client.api/contact: - post: - tags: - - ClientV31 - summary: Create a new contact and add it to a client - operationId: ClientV31_ContactPost - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ContactRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientContactResponseDto' - "409": - description: A conflict occurred with the current state of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/client.api/contact/{identifier}: - get: - tags: - - ClientV31 - summary: Detailed information for a specific contact - operationId: ClientV31_ContactGet - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - - name: clientUuid - in: query - schema: - type: string - nullable: true - x-position: 2 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientContactResponseDto' - "409": - description: A conflict occurred with the current state of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.client - - practicemanager.client.read - put: - tags: - - ClientV31 - summary: Update a contact - operationId: ClientV31_ContactPut - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - - name: clientUuid - in: query - schema: - type: string - nullable: true - x-position: 2 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ContactRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientContactResponseDto' - "409": - description: A conflict occurred with the current state of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - delete: - tags: - - ClientV31 - summary: Delete a contact - operationId: ClientV31_ContactDelete - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - - name: clientUuid - in: query - schema: - type: string - nullable: true - x-position: 2 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientContactDeleteResponseDto' - "409": - description: A conflict occurred with the current state of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/client.api/client/{identifier}/contacts: - post: - tags: - - ClientV31 - summary: Add contacts to a client. Up to 10 contacts can be added to a client per request. - operationId: ClientV31_ClientContact - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - nullable: true - x-position: 1 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientAddContactsRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientAddContactsResponseDto' - "400": - description: The request was invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "409": - description: A conflict occurred with the current state of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "404": - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/client.api/archive: - put: - tags: - - ClientV31 - summary: Archive a client - operationId: ClientV31_Archive - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientArchiveRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientResponseDto' - "409": - description: A conflict occurred with the current state of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/client.api/delete: - post: - tags: - - ClientV31 - summary: Delete a client - operationId: ClientV31_Delete - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientDeleteRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/StatusResponseDto' - "409": - description: A conflict occurred with the current state of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/client.api/document: - post: - tags: - - ClientV31 - summary: Add a document to a client - operationId: ClientV31_Document - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientDocumentRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/UuidResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/client.api/documents/{identifier}: - get: - tags: - - ClientV31 - summary: Return a list of documents for a client - operationId: ClientV31_Documents - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientDocumentsResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.client - - practicemanager.client.read - /v3.1/client.api/addrelationship: - post: - tags: - - ClientV31 - summary: Add a relationship between clients - operationId: ClientV31_AddRelationship - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientRelationshipAddRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientRelationshipResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/client.api/updaterelationship: - put: - tags: - - ClientV31 - summary: Update the relationship details between clients - operationId: ClientV31_UpdateRelationship - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientRelationshipUpdateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientRelationshipResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/client.api/deleterelationship: - post: - tags: - - ClientV31 - summary: Delete the relationship between clients - operationId: ClientV31_DeleteRelationship - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientRelationshipDeleteRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientRelationshipResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/clientgroup.api/get/{identifier}: - get: - tags: - - ClientGroupV31 - summary: Detailed information for a specific client group - operationId: ClientGroupV31_GetByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientGroupResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.client - - practicemanager.client.read - /v3.1/clientgroup.api/list: - get: - tags: - - ClientGroupV31 - summary: Return a list of all client groups - operationId: ClientGroupV31_List - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientGroupListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.client - - practicemanager.client.read - /v3.1/clientgroup.api/add: - post: - tags: - - ClientGroupV31 - summary: Add a client group - operationId: ClientGroupV31_Add - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientGroupAddRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientGroupResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/clientgroup.api/members: - put: - tags: - - ClientGroupV31 - summary: Manage the members of a client group - operationId: ClientGroupV31_Members - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientGroupMembersRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ClientGroupResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/clientgroup.api/delete: - post: - tags: - - ClientGroupV31 - summary: Delete a client group - operationId: ClientGroupV31_Delete - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientGroupDeleteRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseBaseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/cost.api/get/{identifier}: - get: - tags: - - CostV31 - summary: Detailed information for a specific cost - operationId: CostV31_GetByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CostResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/cost.api/delete: - post: - tags: - - CostV31 - summary: Delete a cost - operationId: CostV31_Delete - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CostDeleteRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseBaseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - /v3.1/cost.api/deleteall: - post: - tags: - - CostV31 - summary: Delete all costs - operationId: CostV31_DeleteAll - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CostDeleteAllRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseBaseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - /v3.1/cost.api/add: - post: - tags: - - CostV31 - summary: Add a cost - operationId: CostV31_Add - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CostAddRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CostResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - /v3.1/cost.api/update: - put: - tags: - - CostV31 - summary: Update a cost - operationId: CostV31_Update - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CostUpdateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CostResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - /v3.1/cost.api/list: - get: - tags: - - CostV31 - summary: Return a list of all costs - operationId: CostV31_List - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: page - in: query - required: true - description: Page number (1-based) for paginated results. - schema: - type: integer - format: int32 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CostListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/client.api/get/{identifier}/customfield: - get: - tags: - - CustomFieldV31 - summary: Retrieve custom field data for a specific client - operationId: CustomFieldV31_GetClientByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CustomFieldValueListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.client - - practicemanager.client.read - /v3.1/client.api/update/{identifier}/customfield: - put: - tags: - - CustomFieldV31 - summary: Update custom field data for a specific client - operationId: CustomFieldV31_UpdateClientByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomFieldValuesUpdateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/StatusResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/client.api/contact/{identifier}/customfield: - get: - tags: - - CustomFieldV31 - summary: Retrieve custom field data for a specific contact - operationId: CustomFieldV31_GetContactByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CustomFieldValueListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.client - - practicemanager.client.read - put: - tags: - - CustomFieldV31 - summary: Update custom field data for a specific contact - operationId: CustomFieldV31_UpdateContactByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomFieldValuesUpdateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/StatusResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.client - /v3.1/job.api/get/{jobNumber}/customfield: - get: - tags: - - CustomFieldV31 - summary: Retrieve custom field data for a specific job - operationId: CustomFieldV31_GetJob - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: jobNumber - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CustomFieldValueListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.job - - practicemanager.job.read - /v3.1/job.api/update/{jobNumber}/customfield: - put: - tags: - - CustomFieldV31 - summary: Update custom field data for a specific job - operationId: CustomFieldV31_UpdateJob - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: jobNumber - in: path - required: true - schema: - type: string - x-position: 1 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomFieldValuesUpdateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/StatusResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/time.api/get/{identifier}/customfield: - get: - tags: - - CustomFieldV31 - summary: Retrieve custom field data for a specific time entry - operationId: CustomFieldV31_GetTimeByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CustomFieldValueListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.time - - practicemanager.time.read - /v3.1/time.api/update/{identifier}/customfield: - put: - tags: - - CustomFieldV31 - summary: Update custom field data for a specific time entry - operationId: CustomFieldV31_UpdateTimeByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomFieldValuesUpdateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/StatusResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.time - /v3.1/job.api/task/{identifier}/customfield: - get: - tags: - - CustomFieldV31 - summary: Retrieve custom field data for a specific job task - operationId: CustomFieldV31_GetJobTaskByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CustomFieldValueListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.job - - practicemanager.job.read - put: - tags: - - CustomFieldV31 - summary: Update custom field data for a specific job task - operationId: CustomFieldV31_UpdateJobTaskByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomFieldValuesUpdateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/StatusResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/cost/{identifier}/customfield: - get: - tags: - - CustomFieldV31 - summary: Retrieve custom field data for a specific job cost - operationId: CustomFieldV31_GetJobCostByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CustomFieldValueListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.job - - practicemanager.job.read - put: - tags: - - CustomFieldV31 - summary: Update custom field data for a specific job cost - operationId: CustomFieldV31_UpdateJobCostByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomFieldValuesUpdateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/StatusResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/customfield.api/definition: - get: - tags: - - CustomFieldV31 - summary: Return a list of all the custom fields - operationId: CustomFieldV31_Definition - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CustomFieldDefinitionListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/customfield.api/get/{identifier}: - get: - tags: - - CustomFieldV31 - summary: Detailed information for a specific custom field - operationId: CustomFieldV31_GetByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CustomFieldDefinitionResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/customfield.api/add: - post: - tags: - - CustomFieldV31 - summary: Add a new custom field - operationId: CustomFieldV31_Add - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/AddCustomFieldDefinitionRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/UuidResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - /v3.1/customfield.api/update: - put: - tags: - - CustomFieldV31 - summary: Update data for a specific custom field - operationId: CustomFieldV31_Update - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateCustomFieldDefinitionRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/UuidResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - /v3.1/customfield.api/delete: - post: - tags: - - CustomFieldV31 - summary: Delete a custom field - operationId: CustomFieldV31_Delete - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteCustomFieldDefinitionRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/StatusResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - /v3.1/invoice.api/current: - get: - tags: - - InvoiceV31 - summary: Return a list of current invoices - operationId: InvoiceV31_Current - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: detailed - in: query - description: If true, returns detailed invoice information including jobs, tasks, and costs. - schema: - type: boolean - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/InvoiceListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/invoice.api/draft: - get: - tags: - - InvoiceV31 - summary: Return a list of draft invoices - operationId: InvoiceV31_Draft - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: detailed - in: query - description: If true, returns detailed invoice information including jobs, tasks, and costs. - schema: - type: boolean - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/InvoiceListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/invoice.api/list: - get: - tags: - - InvoiceV31 - summary: Return a list of current and archived invoices - operationId: InvoiceV31_List - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: from - in: query - required: true - description: 'Start date for the date range filter. Format: yyyyMMdd.' - schema: - type: string - - name: to - in: query - required: true - description: 'End date for the date range filter. Format: yyyyMMdd.' - schema: - type: string - - name: detailed - in: query - description: If true, returns detailed invoice information including jobs, tasks, and costs. - schema: - type: boolean - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/InvoiceListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/invoice.api/job/{jobNumber}: - get: - tags: - - InvoiceV31 - summary: Returns a list of invoices for a specific job - operationId: InvoiceV31_Job - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: jobNumber - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/InvoiceListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/invoice.api/get/{invoiceNumber}: - get: - tags: - - InvoiceV31 - summary: Detailed information for a specific invoice - operationId: InvoiceV31_Get - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: invoiceNumber - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/InvoiceResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/invoice.api/payments/{invoiceNumber}: - get: - tags: - - InvoiceV31 - summary: Return a list of payments for an invoice - operationId: InvoiceV31_Payments - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: invoiceNumber - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/InvoicePaymentsResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/job.api/current: - get: - tags: - - JobV31 - summary: Returns a list of current jobs - operationId: JobV31_Current - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: detailed - in: query - description: If true, returns detailed job information including tasks, milestones, and notes. - schema: - type: boolean - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.job - - practicemanager.job.read - /v3.1/job.api/list: - get: - tags: - - JobV31 - summary: Return a list of all jobs - operationId: JobV31_List - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: from - in: query - required: true - description: 'Start date for the date range filter. Format: yyyyMMdd.' - schema: - type: string - - name: to - in: query - required: true - description: 'End date for the date range filter. Format: yyyyMMdd.' - schema: - type: string - - name: detailed - in: query - description: If true, returns detailed job information including tasks, milestones, and notes. - schema: - type: boolean - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.job - - practicemanager.job.read - /v3.1/job.api/client/{identifier}: - get: - tags: - - JobV31 - summary: Return a list of all jobs assigned for a specific client - operationId: JobV31_ClientByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - - name: detailed - in: query - description: If true, returns detailed job information including tasks, milestones, and notes. - schema: - type: boolean - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.job - - practicemanager.job.read - /v3.1/job.api/get/{jobNumber}: - get: - tags: - - JobV31 - summary: Detailed information for a specific job - operationId: JobV31_Get - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: jobNumber - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.job - - practicemanager.job.read - /v3.1/job.api/state: - put: - tags: - - JobV31 - summary: Update the state of a specific job - operationId: JobV31_State - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JobStateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/add: - post: - tags: - - JobV31 - summary: Add a job - operationId: JobV31_Add - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JobAddRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/update: - put: - tags: - - JobV31 - summary: Update a job - operationId: JobV31_Update - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JobUpdateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/reordertasks: - put: - tags: - - JobV31 - summary: Reorder the tasks on a job - operationId: JobV31_ReOrderTasks - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JobReOrderTasksRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/note: - post: - tags: - - JobV31 - summary: Add a note to a job - operationId: JobV31_Note - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JobNoteRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/document: - post: - tags: - - JobV31 - summary: Add a document to a job - operationId: JobV31_Document - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JobDocumentRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/tasks: - get: - tags: - - JobV31 - summary: Return a list of jobs and their tasks matching the specified criteria - operationId: JobV31_Tasks - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: complete - in: query - description: 'Filter tasks by completion status. Values: ''true'' or ''false''.' - schema: - type: string - - name: due - in: query - description: 'Filter tasks due on or before this date. Format: yyyyMMdd.' - schema: - type: string - - name: start - in: query - description: 'Filter tasks starting on or after this date. Format: yyyyMMdd.' - schema: - type: string - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.job - - practicemanager.job.read - /v3.1/job.api/assign: - put: - tags: - - JobV31 - summary: Assign staff to a job - operationId: JobV31_Assign - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JobAssignRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/delete: - post: - tags: - - JobV31 - summary: Delete a job - operationId: JobV31_Delete - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JobDeleteRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/task: - post: - tags: - - JobV31 - summary: Add a task to a job - operationId: JobV31_TaskAdd - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JobTaskAddRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/UuidResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - put: - tags: - - JobV31 - summary: Update a task on a job - operationId: JobV31_TaskUpdate - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JobTaskUpdateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/UuidResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/costs/{jobNumber}: - get: - tags: - - JobV31 - summary: Return a list of costs for a job - operationId: JobV31_Costs - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: jobNumber - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobCostListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.job - - practicemanager.job.read - /v3.1/job.api/cost: - post: - tags: - - JobV31 - summary: Add a cost to a job - operationId: JobV31_CostAdd - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JobCostAddRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/UuidResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - put: - tags: - - JobV31 - summary: Update a cost on a job - operationId: JobV31_CostUpdate - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JobCostUpdateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/UuidResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/applytemplate: - post: - tags: - - JobV31 - summary: Apply an additional template to a job - operationId: JobV31_ApplyTemplate - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JobApplyTemplateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/documents/{id}: - get: - tags: - - JobV31 - summary: Return a list of documents for a job - operationId: JobV31_Documents - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: id - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobDocumentsResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.job - - practicemanager.job.read - /v3.1/job.api/task/{identifier}/complete: - put: - tags: - - JobV31 - summary: Complete a task on a job - operationId: JobV31_CompleteTask - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/task/{identifier}/reopen: - put: - tags: - - JobV31 - summary: Re-open a task on a job - operationId: JobV31_ReOpenTask - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/createquote/{jobNumber}: - post: - tags: - - JobV31 - summary: Create a quote based on the job - operationId: JobV31_CreateQuote - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: jobNumber - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CreateQuoteResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/createestimate/{jobNumber}: - post: - tags: - - JobV31 - summary: Create an estimate based on the job - operationId: JobV31_CreateEstimate - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: jobNumber - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/CreateEstimateResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.job - /v3.1/job.api/staff/{identifier}: - get: - tags: - - Job2V31 - summary: Return a list of all current jobs assigned to a staff member - operationId: Job2V31_StaffByIdentifier - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/Job2ResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager.job - - practicemanager.job.read - /v3.1/jobstate.api/list: - get: - tags: - - JobStateV31 - summary: Return a list of all job states - operationId: JobStateV31_List - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/JobStateListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.job - - practicemanager.job.read - /v3.1/quote.api/current: - get: - tags: - - QuoteV31 - summary: Return a list of current quotes - operationId: QuoteV31_Current - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: detailed - in: query - schema: - type: boolean - default: false - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/QuoteListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/quote.api/draft: - get: - tags: - - QuoteV31 - summary: Return a list of draft quotes - operationId: QuoteV31_Draft - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: detailed - in: query - schema: - type: boolean - default: false - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/QuoteListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/quote.api/list: - get: - tags: - - QuoteV31 - summary: Return a list of current and archived quotes - operationId: QuoteV31_List - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: from - in: query - required: true - description: 'Start date for the date range filter. Format: yyyyMMdd.' - schema: - type: string - - name: to - in: query - required: true - description: 'End date for the date range filter. Format: yyyyMMdd.' - schema: - type: string - - name: detailed - in: query - description: If true, returns detailed quote information including tasks, costs, and options. - schema: - type: boolean - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/QuoteListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/quote.api/get/{quoteNumber}: - get: - tags: - - QuoteV31 - summary: Detailed information for a specific quote - operationId: QuoteV31_Get - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: quoteNumber - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/QuoteResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/staff.api/list: - get: - tags: - - StaffV31 - summary: Return a list of all staff members - operationId: StaffV31_List - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/StaffListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.staff - - practicemanager.staff.read - /v3.1/staff.api/get/{identifier}: - get: - tags: - - StaffV31 - summary: Details for a specific staff member - operationId: StaffV31_GetByUuid - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/StaffResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.staff - - practicemanager.staff.read - /v3.1/staff.api/add: - post: - tags: - - StaffV31 - summary: Add a staff member - operationId: StaffV31_Add - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StaffAddRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/StaffResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.staff - /v3.1/staff.api/update: - put: - tags: - - StaffV31 - summary: Update a staff member's details - operationId: StaffV31_Update - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StaffUpdateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/StaffResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.staff - /v3.1/staff.api/delete: - post: - tags: - - StaffV31 - summary: Delete a staff member - operationId: StaffV31_Delete - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StaffIdentifierRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseBaseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.staff - /v3.1/staff.api/enable: - post: - tags: - - StaffV31 - summary: Enable a staff member so they can log into Practice Manager - operationId: StaffV31_Enable - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StaffIdentifierRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseBaseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.staff - /v3.1/staff.api/disable: - post: - tags: - - StaffV31 - summary: Disable a staff member so they can no longer log into Practice Manager - operationId: StaffV31_Disable - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StaffIdentifierRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseBaseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.staff - /v3.1/staff.api/forgottenpassword: - post: - tags: - - StaffV31 - summary: Reset a staff member's password - operationId: StaffV31_ForgottenPassword - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StaffIdentifierRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseBaseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.staff - /v3.1/task.api/list: - get: - tags: - - TaskV31 - summary: Return a list of all tasks - operationId: TaskV31_List - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/TaskListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/task.api/get/{identifier}: - get: - tags: - - TaskV31 - summary: Details for a specific task - operationId: TaskV31_Get - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/TaskResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/template.api/list: - get: - tags: - - TemplateV31 - summary: Return a list of all templates - operationId: TemplateV31_List - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/TemplateResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - /v3.1/time.api/job/{jobNumber}: - get: - tags: - - TimeV31 - summary: Returns a list of time sheet entries for a specific job - operationId: TimeV31_Job - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: jobNumber - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/TimeListResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.time - - practicemanager.time.read - /v3.1/time.api/list: - get: - tags: - - TimeV31 - summary: Return a list of time sheet entries - operationId: TimeV31_List - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: from - in: query - required: true - description: 'Start date for the date range filter. Format: yyyyMMdd.' - schema: - type: string - - name: to - in: query - required: true - description: 'End date for the date range filter. Format: yyyyMMdd.' - schema: - type: string - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/TimeListResponseDto' - "400": - description: The request was invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.time - - practicemanager.time.read - /v3.1/time.api/staff/{identifier}: - get: - tags: - - TimeV31 - summary: Return a list of time sheet entries for a specific staff member - operationId: TimeV31_Staff - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - - name: from - in: query - required: true - description: 'Start date for the date range filter. Format: yyyyMMdd.' - schema: - type: string - - name: to - in: query - required: true - description: 'End date for the date range filter. Format: yyyyMMdd.' - schema: - type: string - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/TimeListResponseDto' - "400": - description: The request was invalid. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.time - - practicemanager.time.read - /v3.1/time.api/get/{identifier}: - get: - tags: - - TimeV31 - summary: Detailed information for a specific time entry - operationId: TimeV31_Get - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/TimeResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.read - - practicemanager.time - - practicemanager.time.read - /v3.1/time.api/add: - post: - tags: - - TimeV31 - summary: Add a time sheet entry to a job - operationId: TimeV31_Add - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TimeAddRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/TimeResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.time - /v3.1/time.api/update: - put: - tags: - - TimeV31 - summary: Update a time sheet entry on a job - operationId: TimeV31_Update - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TimeUpdateRequestDto' - required: true - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/TimeResponseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.time - /v3.1/time.api/delete/{identifier}: - delete: - tags: - - TimeV31 - summary: Delete a specific time sheet entry - operationId: TimeV31_Delete - parameters: - - name: Xero-Features - in: header - description: Comma-separated feature flags. Include 'practice-strict-content-type' to enable strict Accept/Content-Type negotiation. - schema: - type: string - - name: fields - in: query - description: Comma-separated list of fields to include in the response. When omitted, all fields are returned. - schema: - type: string - - name: identifier - in: path - required: true - schema: - type: string - x-position: 1 - responses: - "200": - description: The request was successful. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseBaseDto' - "500": - description: An unexpected error occurred. - content: - application/json: - schema: - $ref: '#/components/schemas/ResponseErrorDto' - security: - - OAuth2: - - practicemanager - - practicemanager.time -components: - schemas: - CategoryResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - categories: - type: array - nullable: true - items: - $ref: '#/components/schemas/NamedEntityDto' - NamedEntityDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - ResponseBaseDto: - type: object - additionalProperties: false - properties: - status: - type: string - nullable: true - ResponseErrorDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - errorDescription: - type: string - nullable: true - ClientListResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - clients: - type: array - nullable: true - items: - $ref: '#/components/schemas/ClientDetailedDto' - ClientDetailedDto: - allOf: - - $ref: '#/components/schemas/ClientDto' - - type: object - additionalProperties: false - properties: - notes: - type: array - nullable: true - items: - $ref: '#/components/schemas/ClientNoteDto' - groups: - type: array - nullable: true - items: - $ref: '#/components/schemas/NamedEntityDto' - relationships: - type: array - nullable: true - items: - $ref: '#/components/schemas/ClientRelationshipDto' - ClientNoteDto: - type: object - additionalProperties: false - properties: - title: - type: string - nullable: true - text: - type: string - nullable: true - folder: - type: string - nullable: true - date: - type: string - nullable: true - createdBy: - type: string - nullable: true - tags: - type: string - nullable: true - ClientRelationshipDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - type: - type: string - nullable: true - relatedClient: - nullable: true - oneOf: - - $ref: '#/components/schemas/NamedEntityDto' - numberOfShares: - type: integer - format: int32 - nullable: true - percentage: - type: number - format: decimal - nullable: true - startDate: - type: string - nullable: true - endDate: - type: string - nullable: true - ClientDto: - allOf: - - $ref: '#/components/schemas/ClientBaseDto' - - type: object - additionalProperties: false - properties: - contacts: - type: array - nullable: true - items: - $ref: '#/components/schemas/ClientContactDto' - ClientContactDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - salutation: - type: string - nullable: true - addressee: - type: string - nullable: true - mobile: - type: string - nullable: true - email: - type: string - nullable: true - phone: - type: string - nullable: true - isDeleted: - type: string - nullable: true - isPrimary: - type: string - nullable: true - position: - type: string - nullable: true - ClientBaseDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - title: - type: string - nullable: true - gender: - type: string - nullable: true - firstName: - type: string - nullable: true - middleName: - type: string - nullable: true - lastName: - type: string - nullable: true - otherName: - type: string - nullable: true - email: - type: string - nullable: true - dateOfBirth: - type: string - nullable: true - dateOfDeath: - type: string - nullable: true - placeOfBirthCity: - type: string - nullable: true - placeOfBirthCountryCode: - type: string - nullable: true - address: - type: string - nullable: true - city: - type: string - nullable: true - region: - type: string - nullable: true - postCode: - type: string - nullable: true - country: - type: string - nullable: true - postalAddress: - type: string - nullable: true - postalCity: - type: string - nullable: true - postalRegion: - type: string - nullable: true - postalPostCode: - type: string - nullable: true - postalCountry: - type: string - nullable: true - phone: - type: string - nullable: true - fax: - type: string - nullable: true - website: - type: string - nullable: true - referralSource: - type: string - nullable: true - exportCode: - type: string - nullable: true - industry: - type: string - nullable: true - isProspect: - type: string - nullable: true - isArchived: - type: string - nullable: true - isDeleted: - type: string - nullable: true - accountManager: - nullable: true - oneOf: - - $ref: '#/components/schemas/NamedEntityDto' - jobManager: - nullable: true - oneOf: - - $ref: '#/components/schemas/NamedEntityDto' - type: - nullable: true - oneOf: - - $ref: '#/components/schemas/ClientTypeDto' - billingClient: - nullable: true - oneOf: - - $ref: '#/components/schemas/NamedEntityDto' - taxNumber: - type: string - nullable: true - companyNumber: - type: string - nullable: true - businessNumber: - type: string - nullable: true - businessStructure: - type: string - nullable: true - balanceMonth: - type: integer - format: int32 - nullable: true - prepareGst: - type: string - nullable: true - gstRegistered: - type: string - nullable: true - gstPeriod: - type: string - nullable: true - gstBasis: - type: string - nullable: true - provisionalTaxBasis: - type: string - nullable: true - provisionalTaxRatio: - type: number - format: decimal - nullable: true - signedTaxAuthority: - type: string - nullable: true - taxAgent: - type: string - nullable: true - agencyStatus: - type: string - nullable: true - returnType: - type: string - nullable: true - prepareActivityStatement: - type: string - nullable: true - prepareTaxReturn: - type: string - nullable: true - branchNumber: - type: string - nullable: true - bankBsb: - type: string - nullable: true - bankAccountName: - type: string - nullable: true - bankAccountNumber: - type: string - nullable: true - bankName: - type: string - nullable: true - activeAtoClient: - type: string - nullable: true - clientCode: - type: string - nullable: true - autoBasOptInCriteria: - nullable: true - oneOf: - - $ref: '#/components/schemas/AutoBasOptInCriteriaDto' - webUrl: - type: string - nullable: true - ClientTypeDto: - type: object - additionalProperties: false - properties: - name: - type: string - nullable: true - costMarkup: - type: number - format: decimal - nullable: true - paymentTerm: - type: string - nullable: true - paymentDay: - type: integer - format: int32 - nullable: true - AutoBasOptInCriteriaDto: - type: object - additionalProperties: false - properties: - annually: - type: string - nullable: true - monthly: - type: string - nullable: true - quarterly: - type: string - nullable: true - opt-out: - type: string - nullable: true - ClientPagedListResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - clients: - type: array - nullable: true - items: - $ref: '#/components/schemas/ClientBaseDto' - pagination: - nullable: true - oneOf: - - $ref: '#/components/schemas/PaginationDto' - PaginationDto: - type: object - additionalProperties: false - properties: - links: - nullable: true - oneOf: - - $ref: '#/components/schemas/PaginationLinksDto' - PaginationLinksDto: - type: object - additionalProperties: false - properties: - first: - type: string - nullable: true - next: - type: string - nullable: true - ClientResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - client: - nullable: true - oneOf: - - $ref: '#/components/schemas/ClientDetailedDto' - ClientAddRequestDto: - type: object - additionalProperties: false - properties: - name: - type: string - nullable: true - firstName: - type: string - nullable: true - lastName: - type: string - nullable: true - otherName: - type: string - nullable: true - middleName: - type: string - nullable: true - title: - type: string - nullable: true - gender: - type: string - nullable: true - email: - type: string - nullable: true - dateOfBirth: - type: string - nullable: true - dateOfDeath: - type: string - nullable: true - placeOfBirthCity: - type: string - nullable: true - placeOfBirthCountryCode: - type: string - nullable: true - address: - type: string - nullable: true - city: - type: string - nullable: true - region: - type: string - nullable: true - postCode: - type: string - nullable: true - country: - type: string - nullable: true - postalAddress: - type: string - nullable: true - postalCity: - type: string - nullable: true - postalRegion: - type: string - nullable: true - postalPostCode: - type: string - nullable: true - postalCountry: - type: string - nullable: true - phone: - type: string - nullable: true - fax: - type: string - nullable: true - webSite: - type: string - nullable: true - referralSource: - type: string - nullable: true - exportCode: - type: string - nullable: true - isProspect: - type: string - nullable: true - billingClientUuid: - type: string - nullable: true - accountManagerUuid: - type: string - nullable: true - jobManagerUuid: - type: string - nullable: true - taxNumber: - type: string - nullable: true - companyNumber: - type: string - nullable: true - businessNumber: - type: string - nullable: true - branchNumber: - type: string - nullable: true - businessStructure: - type: string - nullable: true - balanceMonth: - type: string - nullable: true - gstRegistered: - type: string - nullable: true - prepareGst: - type: string - nullable: true - gstPeriod: - type: integer - format: int32 - nullable: true - gstBasis: - type: string - nullable: true - provisionalTaxBasis: - type: string - nullable: true - provisionalTaxRatio: - type: number - format: decimal - nullable: true - signedTaxAuthority: - type: string - nullable: true - taxAgent: - type: string - nullable: true - agencyStatus: - type: string - nullable: true - prepareActivityStatement: - type: string - nullable: true - prepareTaxReturn: - type: string - nullable: true - autoBasOptInCriteria: - nullable: true - oneOf: - - $ref: '#/components/schemas/AutoBasOptInCriteriaDto' - returnType: - type: string - nullable: true - activeAtoClient: - type: string - nullable: true - clientCode: - type: string - nullable: true - contacts: - type: array - nullable: true - items: - $ref: '#/components/schemas/ContactInsertItemDto' - ContactInsertItemDto: - type: object - additionalProperties: false - properties: - name: - type: string - nullable: true - phone: - type: string - nullable: true - mobile: - type: string - nullable: true - email: - type: string - nullable: true - position: - type: string - nullable: true - salutation: - type: string - nullable: true - addressee: - type: string - nullable: true - isPrimary: - type: string - nullable: true - ClientUpdateRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - firstName: - type: string - nullable: true - lastName: - type: string - nullable: true - otherName: - type: string - nullable: true - middleName: - type: string - nullable: true - title: - type: string - nullable: true - gender: - type: string - nullable: true - email: - type: string - nullable: true - dateOfBirth: - type: string - nullable: true - dateOfDeath: - type: string - nullable: true - placeOfBirthCity: - type: string - nullable: true - placeOfBirthCountryCode: - type: string - nullable: true - address: - type: string - nullable: true - city: - type: string - nullable: true - region: - type: string - nullable: true - postCode: - type: string - nullable: true - country: - type: string - nullable: true - postalAddress: - type: string - nullable: true - postalCity: - type: string - nullable: true - postalRegion: - type: string - nullable: true - postalPostCode: - type: string - nullable: true - postalCountry: - type: string - nullable: true - phone: - type: string - nullable: true - fax: - type: string - nullable: true - webSite: - type: string - nullable: true - referralSource: - type: string - nullable: true - exportCode: - type: string - nullable: true - isProspect: - type: string - nullable: true - billingClientUuid: - type: string - nullable: true - accountManagerUuid: - type: string - nullable: true - jobManagerUuid: - type: string - nullable: true - taxNumber: - type: string - nullable: true - companyNumber: - type: string - nullable: true - businessNumber: - type: string - nullable: true - branchNumber: - type: string - nullable: true - businessStructure: - type: string - nullable: true - balanceMonth: - type: string - nullable: true - gstRegistered: - type: string - nullable: true - prepareGst: - type: string - nullable: true - gstPeriod: - type: integer - format: int32 - nullable: true - gstBasis: - type: string - nullable: true - provisionalTaxBasis: - type: string - nullable: true - provisionalTaxRatio: - type: number - format: decimal - nullable: true - signedTaxAuthority: - type: string - nullable: true - taxAgent: - type: string - nullable: true - agencyStatus: - type: string - nullable: true - prepareActivityStatement: - type: string - nullable: true - prepareTaxReturn: - type: string - nullable: true - autoBasOptInCriteria: - nullable: true - oneOf: - - $ref: '#/components/schemas/AutoBasOptInCriteriaDto' - returnType: - type: string - nullable: true - activeAtoClient: - type: string - nullable: true - clientCode: - type: string - nullable: true - ClientContactsResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - contacts: - type: array - nullable: true - items: - $ref: '#/components/schemas/ClientContactDto' - pagination: - nullable: true - oneOf: - - $ref: '#/components/schemas/PaginationDto' - ClientContactResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - contact: - nullable: true - oneOf: - - $ref: '#/components/schemas/ClientContactDto' - ContactRequestDto: - type: object - additionalProperties: false - properties: - name: - type: string - nullable: true - mobile: - type: string - nullable: true - email: - type: string - nullable: true - phone: - type: string - nullable: true - salutation: - type: string - nullable: true - addressee: - type: string - nullable: true - position: - type: string - nullable: true - isPrimary: - type: string - nullable: true - client: - nullable: true - oneOf: - - $ref: '#/components/schemas/ContactRequestClientDto' - ContactRequestClientDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - ClientContactDeleteResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - contact: - nullable: true - oneOf: - - $ref: '#/components/schemas/ClientContactDeleteDto' - ClientContactDeleteDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - salutation: - type: string - nullable: true - addressee: - type: string - nullable: true - mobile: - type: string - nullable: true - email: - type: string - nullable: true - phone: - type: string - nullable: true - isDeleted: - type: string - nullable: true - ClientAddContactsResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - client: - nullable: true - oneOf: - - $ref: '#/components/schemas/ClientAddContactsClientDto' - ClientAddContactsClientDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - contacts: - type: array - nullable: true - items: - $ref: '#/components/schemas/ClientAddContactsContactDto' - ClientAddContactsContactDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - position: - type: string - nullable: true - isPrimary: - type: string - nullable: true - ClientAddContactsRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - contacts: - type: array - nullable: true - items: - $ref: '#/components/schemas/ContactLinkItemDto' - ContactLinkItemDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - position: - type: string - nullable: true - isPrimary: - type: string - nullable: true - ClientArchiveRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - StatusResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - ClientDeleteRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - UuidResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - ClientDocumentRequestDto: - type: object - additionalProperties: false - properties: - clientUuid: - type: string - nullable: true - title: - type: string - nullable: true - text: - type: string - nullable: true - folder: - type: string - nullable: true - fileName: - type: string - nullable: true - content: - type: string - nullable: true - ClientDocumentsResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - documents: - type: array - nullable: true - items: - $ref: '#/components/schemas/ClientDocumentDto' - ClientDocumentDto: - type: object - additionalProperties: false - properties: - title: - type: string - nullable: true - text: - type: string - nullable: true - folder: - type: string - nullable: true - date: - type: string - nullable: true - createdBy: - type: string - nullable: true - fileName: - type: string - nullable: true - url: - type: string - nullable: true - ClientRelationshipResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - clientRelationship: - nullable: true - oneOf: - - $ref: '#/components/schemas/ClientRelationshipDetailDto' - ClientRelationshipDetailDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - client: - nullable: true - oneOf: - - $ref: '#/components/schemas/NamedEntityDto' - relatedClient: - nullable: true - oneOf: - - $ref: '#/components/schemas/NamedEntityDto' - relationshipType: - nullable: true - oneOf: - - $ref: '#/components/schemas/ClientRelationshipTypeDto' - numberOfShares: - type: integer - format: int32 - nullable: true - percentage: - type: number - format: decimal - nullable: true - startDate: - type: string - nullable: true - endDate: - type: string - nullable: true - ClientRelationshipTypeDto: - type: object - additionalProperties: false - properties: - name: - type: string - nullable: true - ClientRelationshipAddRequestDto: - type: object - additionalProperties: false - properties: - clientUuid: - type: string - nullable: true - relatedClientUuid: - type: string - nullable: true - type: - type: string - nullable: true - numberOfShares: - type: integer - format: int32 - nullable: true - percentage: - type: number - format: decimal - nullable: true - startDate: - type: string - nullable: true - endDate: - type: string - nullable: true - ClientRelationshipUpdateRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - numberOfShares: - type: integer - format: int32 - nullable: true - percentage: - type: number - format: decimal - nullable: true - startDate: - type: string - nullable: true - endDate: - type: string - nullable: true - ClientRelationshipDeleteRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - ClientGroupResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - group: - nullable: true - oneOf: - - $ref: '#/components/schemas/ClientGroupDetailDto' - ClientGroupDetailDto: - allOf: - - $ref: '#/components/schemas/ClientGroupDto' - - type: object - additionalProperties: false - properties: - clients: - type: array - nullable: true - items: - $ref: '#/components/schemas/NamedEntityDto' - ClientGroupDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - webUrl: - type: string - nullable: true - taxable: - type: string - nullable: true - ClientGroupListResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - groups: - type: array - nullable: true - items: - $ref: '#/components/schemas/ClientGroupDto' - ClientGroupAddRequestDto: - type: object - additionalProperties: false - properties: - clientUuid: - type: string - nullable: true - name: - type: string - nullable: true - taxable: - type: string - nullable: true - ClientGroupMembersRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - add: - type: array - nullable: true - items: - $ref: '#/components/schemas/ClientGroupMemberActionDto' - remove: - type: array - nullable: true - items: - $ref: '#/components/schemas/ClientGroupMemberActionDto' - ClientGroupMemberActionDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - ClientGroupDeleteRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - CostResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - cost: - nullable: true - oneOf: - - $ref: '#/components/schemas/CostDto' - CostDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - description: - type: string - nullable: true - code: - type: string - nullable: true - note: - type: string - nullable: true - unitCost: - type: number - format: decimal - nullable: true - unitPrice: - type: number - format: decimal - nullable: true - incomeAccount: - type: string - nullable: true - costOfSaleAccount: - type: string - nullable: true - supplier: - nullable: true - oneOf: - - $ref: '#/components/schemas/NamedEntityDto' - CostDeleteRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - CostDeleteAllRequestDto: - type: object - additionalProperties: false - CostAddRequestDto: - type: object - additionalProperties: false - properties: - description: - type: string - nullable: true - code: - type: string - nullable: true - note: - type: string - nullable: true - unitCost: - type: number - format: decimal - nullable: true - unitPrice: - type: number - format: decimal - nullable: true - supplierUuid: - type: string - nullable: true - CostUpdateRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - description: - type: string - nullable: true - code: - type: string - nullable: true - note: - type: string - nullable: true - unitCost: - type: number - format: decimal - nullable: true - unitPrice: - type: number - format: decimal - nullable: true - supplierUuid: - type: string - nullable: true - CostListResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - records: - type: integer - format: int32 - nullable: true - costs: - type: array - nullable: true - items: - $ref: '#/components/schemas/CostDto' - CustomFieldValueListResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - customFields: - type: array - nullable: true - items: - $ref: '#/components/schemas/CustomFieldValueDto' - CustomFieldValueDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - text: - type: string - nullable: true - date: - type: string - nullable: true - number: - type: number - format: decimal - nullable: true - decimal: - type: number - format: decimal - nullable: true - boolean: - type: boolean - nullable: true - CustomFieldValuesUpdateRequestDto: - type: object - additionalProperties: false - properties: - customFields: - type: array - nullable: true - items: - $ref: '#/components/schemas/CustomFieldValueRequestDto' - CustomFieldValueRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - text: - type: string - nullable: true - date: - type: string - nullable: true - number: - type: integer - format: int32 - nullable: true - decimal: - type: number - format: decimal - nullable: true - boolean: - type: boolean - nullable: true - CustomFieldDefinitionListResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - customFieldDefinitions: - type: array - nullable: true - items: - $ref: '#/components/schemas/CustomFieldDefinitionDto' - CustomFieldDefinitionDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - linkUrl: - type: string - nullable: true - options: - type: string - nullable: true - useClient: - type: boolean - nullable: true - useContact: - type: boolean - nullable: true - useJob: - type: boolean - nullable: true - useLead: - type: boolean - nullable: true - useSupplier: - type: boolean - nullable: true - useJobTask: - type: boolean - nullable: true - useJobCost: - type: boolean - nullable: true - useJobTime: - type: boolean - nullable: true - type: - type: string - nullable: true - valueElement: - type: string - nullable: true - CustomFieldDefinitionResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - customFieldDefinition: - nullable: true - oneOf: - - $ref: '#/components/schemas/CustomFieldDefinitionDto' - AddCustomFieldDefinitionRequestDto: - type: object - additionalProperties: false - properties: - name: - type: string - nullable: true - linkUrl: - type: string - nullable: true - options: - type: array - nullable: true - items: - type: string - useClient: - type: boolean - nullable: true - useContact: - type: boolean - nullable: true - useJob: - type: boolean - nullable: true - useLead: - type: boolean - nullable: true - useSupplier: - type: boolean - nullable: true - useJobTask: - type: boolean - nullable: true - useJobCost: - type: boolean - nullable: true - useJobTime: - type: boolean - nullable: true - type: - type: string - nullable: true - UpdateCustomFieldDefinitionRequestDto: - allOf: - - $ref: '#/components/schemas/AddCustomFieldDefinitionRequestDto' - - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - DeleteCustomFieldDefinitionRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - InvoiceListResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - invoices: - type: array - nullable: true - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/InvoiceDto' - InvoiceDto: - type: object - additionalProperties: false - properties: - id: - type: string - nullable: true - uuid: - type: string - nullable: true - type: - type: string - nullable: true - jobText: - type: string - nullable: true - description: - type: string - nullable: true - date: - type: string - nullable: true - dueDate: - type: string - nullable: true - amount: - type: number - format: decimal - nullable: true - amountTax: - type: number - format: decimal - nullable: true - amountIncludingTax: - type: number - format: decimal - nullable: true - amountPaid: - type: number - format: decimal - nullable: true - amountOutstanding: - type: number - format: decimal - nullable: true - status: - type: string - nullable: true - client: - nullable: true - oneOf: - - $ref: '#/components/schemas/InvoicePartyDto' - contact: - nullable: true - oneOf: - - $ref: '#/components/schemas/InvoicePartyDto' - jobs: - type: array - nullable: true - items: - $ref: '#/components/schemas/InvoiceJobDto' - tasks: - type: array - nullable: true - items: - $ref: '#/components/schemas/InvoiceTaskDto' - costs: - type: array - nullable: true - items: - $ref: '#/components/schemas/InvoiceCostDto' - InvoicePartyDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - InvoiceJobDto: - type: object - additionalProperties: false - properties: - id: - type: string - nullable: true - name: - type: string - nullable: true - description: - type: string - nullable: true - clientOrderNumber: - type: string - nullable: true - tasks: - type: array - nullable: true - items: - $ref: '#/components/schemas/InvoiceTaskDto' - costs: - type: array - nullable: true - items: - $ref: '#/components/schemas/InvoiceCostDto' - InvoiceTaskDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - description: - type: string - nullable: true - minutes: - type: integer - format: int32 - nullable: true - billableRate: - type: number - format: decimal - nullable: true - billable: - type: string - nullable: true - amount: - type: number - format: decimal - nullable: true - amountTax: - type: number - format: decimal - nullable: true - amountIncludingTax: - type: number - format: decimal - nullable: true - InvoiceCostDto: - type: object - additionalProperties: false - properties: - description: - type: string - nullable: true - note: - type: string - nullable: true - code: - type: string - nullable: true - billable: - type: string - nullable: true - quantity: - type: number - format: decimal - nullable: true - unitCost: - type: number - format: decimal - nullable: true - unitPrice: - type: number - format: decimal - nullable: true - amount: - type: number - format: decimal - nullable: true - amountTax: - type: number - format: decimal - nullable: true - amountIncludingTax: - type: number - format: decimal - nullable: true - InvoiceResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - invoice: - nullable: true - oneOf: - - $ref: '#/components/schemas/InvoiceDto' - InvoicePaymentsResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - payments: - type: array - nullable: true - items: - nullable: true - oneOf: - - $ref: '#/components/schemas/InvoicePaymentDto' - InvoicePaymentDto: - type: object - additionalProperties: false - properties: - amount: - type: number - format: decimal - nullable: true - date: - type: string - nullable: true - reference: - type: string - nullable: true - JobListResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - jobs: - type: array - nullable: true - items: - $ref: '#/components/schemas/JobDto' - JobDto: - type: object - additionalProperties: false - properties: - id: - type: string - nullable: true - uuid: - type: string - nullable: true - name: - type: string - nullable: true - description: - type: string - nullable: true - client: - nullable: true - oneOf: - - $ref: '#/components/schemas/JobPartyDto' - clientOrderNumber: - type: string - nullable: true - budget: - type: number - format: decimal - nullable: true - state: - type: string - nullable: true - type: - type: string - nullable: true - startDate: - type: string - nullable: true - dueDate: - type: string - nullable: true - completedDate: - type: string - nullable: true - contact: - nullable: true - oneOf: - - $ref: '#/components/schemas/JobPartyDto' - internalId: - type: string - nullable: true - manager: - nullable: true - oneOf: - - $ref: '#/components/schemas/JobPartyDto' - partner: - nullable: true - oneOf: - - $ref: '#/components/schemas/JobPartyDto' - assigned: - type: array - nullable: true - items: - $ref: '#/components/schemas/JobStaffDto' - tasks: - type: array - nullable: true - items: - $ref: '#/components/schemas/JobTaskDto' - milestones: - type: array - nullable: true - items: - $ref: '#/components/schemas/JobMilestoneDto' - notes: - type: array - nullable: true - items: - $ref: '#/components/schemas/JobNoteDto' - webUrl: - type: string - nullable: true - JobPartyDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - JobStaffDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - allocatedMinutes: - type: integer - format: int32 - nullable: true - JobTaskDto: - allOf: - - $ref: '#/components/schemas/SimpleEntityDto' - - type: object - additionalProperties: false - properties: - taskUuid: - type: string - nullable: true - taskId: - type: string - nullable: true - estimatedMinutes: - type: integer - format: int32 - nullable: true - actualMinutes: - type: integer - format: int32 - nullable: true - completed: - type: boolean - nullable: true - billable: - type: boolean - nullable: true - folder: - type: string - nullable: true - startDate: - type: string - nullable: true - dueDate: - type: string - nullable: true - assigned: - type: array - nullable: true - items: - $ref: '#/components/schemas/JobStaffDto' - SimpleEntityDto: - allOf: - - $ref: '#/components/schemas/NamedEntityDto' - - type: object - additionalProperties: false - properties: - description: - type: string - nullable: true - JobMilestoneDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - date: - type: string - nullable: true - description: - type: string - nullable: true - completed: - type: boolean - nullable: true - folder: - type: string - nullable: true - JobNoteDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - title: - type: string - nullable: true - text: - type: string - nullable: true - folder: - type: string - nullable: true - date: - type: string - nullable: true - createdBy: - type: string - nullable: true - comments: - type: array - nullable: true - items: - $ref: '#/components/schemas/JobNoteCommentDto' - JobNoteCommentDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - text: - type: string - nullable: true - date: - type: string - nullable: true - createdBy: - type: string - nullable: true - JobResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - job: - nullable: true - oneOf: - - $ref: '#/components/schemas/JobDto' - JobStateRequestDto: - type: object - additionalProperties: false - properties: - id: - type: string - nullable: true - state: - type: string - nullable: true - JobAddRequestDto: - type: object - additionalProperties: false - properties: - id: - type: string - nullable: true - name: - type: string - nullable: true - description: - type: string - nullable: true - clientUuid: - type: string - nullable: true - contactUuid: - type: string - nullable: true - startDate: - type: string - nullable: true - dueDate: - type: string - nullable: true - categoryUuid: - type: string - nullable: true - budget: - type: number - format: decimal - nullable: true - clientNumber: - type: string - nullable: true - templateUuid: - type: string - nullable: true - JobUpdateRequestDto: - type: object - additionalProperties: false - properties: - id: - type: string - nullable: true - name: - type: string - nullable: true - description: - type: string - nullable: true - startDate: - type: string - nullable: true - dueDate: - type: string - nullable: true - categoryUuid: - type: string - nullable: true - budget: - type: number - format: decimal - nullable: true - clientNumber: - type: string - nullable: true - JobReOrderTasksRequestDto: - type: object - additionalProperties: false - properties: - id: - type: string - nullable: true - tasks: - type: array - nullable: true - items: - $ref: '#/components/schemas/JobTaskReorderItemDto' - JobTaskReorderItemDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - JobNoteRequestDto: - type: object - additionalProperties: false - properties: - job: - type: string - nullable: true - title: - type: string - nullable: true - text: - type: string - nullable: true - folder: - type: string - nullable: true - public: - type: boolean - nullable: true - JobDocumentRequestDto: - type: object - additionalProperties: false - properties: - job: - type: string - nullable: true - title: - type: string - nullable: true - text: - type: string - nullable: true - folder: - type: string - nullable: true - public: - type: boolean - nullable: true - fileName: - type: string - nullable: true - content: - type: string - nullable: true - JobAssignRequestDto: - type: object - additionalProperties: false - properties: - id: - type: string - nullable: true - add-manager: - nullable: true - oneOf: - - $ref: '#/components/schemas/JobAssignStaffOperationDto' - remove-manager: - nullable: true - oneOf: - - $ref: '#/components/schemas/JobAssignEmptyOperationDto' - add-partner: - nullable: true - oneOf: - - $ref: '#/components/schemas/JobAssignStaffOperationDto' - remove-partner: - nullable: true - oneOf: - - $ref: '#/components/schemas/JobAssignEmptyOperationDto' - add: - type: array - nullable: true - items: - $ref: '#/components/schemas/JobAssignStaffTaskOperationDto' - remove: - type: array - nullable: true - items: - $ref: '#/components/schemas/JobAssignStaffTaskOperationDto' - JobAssignStaffOperationDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - JobAssignEmptyOperationDto: - type: object - additionalProperties: false - JobAssignStaffTaskOperationDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - task-uuid: - type: string - nullable: true - JobDeleteRequestDto: - type: object - additionalProperties: false - properties: - id: - type: string - nullable: true - JobTaskAddRequestDto: - type: object - additionalProperties: false - properties: - job: - type: string - nullable: true - taskUuid: - type: string - nullable: true - label: - type: string - nullable: true - description: - type: string - nullable: true - estimatedMinutes: - type: integer - format: int32 - nullable: true - startDate: - type: string - nullable: true - dueDate: - type: string - nullable: true - JobTaskUpdateRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - label: - type: string - nullable: true - description: - type: string - nullable: true - estimatedMinutes: - type: integer - format: int32 - nullable: true - startDate: - type: string - nullable: true - dueDate: - type: string - nullable: true - JobCostListResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - costs: - type: array - nullable: true - items: - $ref: '#/components/schemas/JobCostDto' - JobCostDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - description: - type: string - nullable: true - quantity: - type: number - format: decimal - nullable: true - unitCost: - type: number - format: decimal - nullable: true - unitPrice: - type: number - format: decimal - nullable: true - date: - type: string - nullable: true - code: - type: string - nullable: true - note: - type: string - nullable: true - billable: - type: boolean - nullable: true - supplier: - nullable: true - oneOf: - - $ref: '#/components/schemas/JobCostSupplierDto' - JobCostSupplierDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - JobCostAddRequestDto: - type: object - additionalProperties: false - properties: - job: - type: string - nullable: true - description: - type: string - nullable: true - code: - type: string - nullable: true - note: - type: string - nullable: true - date: - type: string - nullable: true - quantity: - type: number - format: decimal - nullable: true - unitCost: - type: number - format: decimal - nullable: true - unitPrice: - type: number - format: decimal - nullable: true - billable: - type: boolean - nullable: true - supplierUuid: - type: string - nullable: true - JobCostUpdateRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - description: - type: string - nullable: true - code: - type: string - nullable: true - note: - type: string - nullable: true - date: - type: string - nullable: true - quantity: - type: number - format: decimal - nullable: true - unitCost: - type: number - format: decimal - nullable: true - unitPrice: - type: number - format: decimal - nullable: true - billable: - type: boolean - nullable: true - supplierUuid: - type: string - nullable: true - JobApplyTemplateRequestDto: - type: object - additionalProperties: false - properties: - id: - type: string - nullable: true - templateUuid: - type: string - nullable: true - taskMode: - type: string - nullable: true - JobDocumentsResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - documents: - type: array - nullable: true - items: - $ref: '#/components/schemas/JobDocumentDto' - JobDocumentDto: - type: object - additionalProperties: false - properties: - title: - type: string - nullable: true - text: - type: string - nullable: true - folder: - type: string - nullable: true - date: - type: string - nullable: true - createdBy: - type: string - nullable: true - fileName: - type: string - nullable: true - url: - type: string - nullable: true - CreateQuoteResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - id: - type: string - nullable: true - CreateEstimateResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - id: - type: string - nullable: true - Job2ResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - jobs: - type: array - nullable: true - items: - $ref: '#/components/schemas/Job2Dto' - Job2Dto: - allOf: - - $ref: '#/components/schemas/SimpleEntityDto' - - type: object - additionalProperties: false - properties: - id: - type: string - nullable: true - client: - nullable: true - oneOf: - - $ref: '#/components/schemas/NamedEntityDto' - clientOrderNumber: - type: string - nullable: true - budget: - type: number - format: decimal - nullable: true - state: - type: string - nullable: true - type: - type: string - nullable: true - startDate: - type: string - nullable: true - dueDate: - type: string - nullable: true - completedDate: - type: string - nullable: true - contact: - nullable: true - oneOf: - - $ref: '#/components/schemas/NamedEntityDto' - manager: - nullable: true - oneOf: - - $ref: '#/components/schemas/NamedEntityDto' - assigned: - type: array - nullable: true - items: - $ref: '#/components/schemas/NamedEntityDto' - tasks: - type: array - nullable: true - items: - $ref: '#/components/schemas/JobTaskDto' - JobStateListResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - jobStates: - type: array - nullable: true - items: - $ref: '#/components/schemas/NamedEntityDto' - QuoteListResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - quotes: - type: array - nullable: true - items: - $ref: '#/components/schemas/QuoteDto' - QuoteDto: - type: object - additionalProperties: false - properties: - name: - type: string - nullable: true - description: - type: string - nullable: true - id: - type: string - nullable: true - type: - type: string - nullable: true - state: - type: string - nullable: true - budget: - type: number - format: decimal - nullable: true - optionExplanation: - type: string - nullable: true - date: - type: string - nullable: true - validDate: - type: string - nullable: true - estimatedCost: - type: number - format: decimal - nullable: true - estimatedCostTax: - type: number - format: decimal - nullable: true - estimatedCostIncludingTax: - type: number - format: decimal - nullable: true - amount: - type: number - format: decimal - nullable: true - amountTax: - type: number - format: decimal - nullable: true - amountIncludingTax: - type: number - format: decimal - nullable: true - client: - nullable: true - oneOf: - - $ref: '#/components/schemas/QuotePartyDto' - contact: - nullable: true - oneOf: - - $ref: '#/components/schemas/QuotePartyDto' - tasks: - type: array - nullable: true - items: - $ref: '#/components/schemas/QuoteTaskDto' - costs: - type: array - nullable: true - items: - $ref: '#/components/schemas/QuoteCostDto' - options: - type: array - nullable: true - items: - $ref: '#/components/schemas/QuoteOptionDto' - QuotePartyDto: - allOf: - - $ref: '#/components/schemas/NamedEntityDto' - - type: object - additionalProperties: false - QuoteTaskDto: - type: object - additionalProperties: false - properties: - name: - type: string - nullable: true - description: - type: string - nullable: true - estimatedMinutes: - type: integer - format: int32 - nullable: true - billableRate: - type: number - format: decimal - nullable: true - billable: - type: string - nullable: true - amount: - type: number - format: decimal - nullable: true - amountTax: - type: number - format: decimal - nullable: true - amountIncludingTax: - type: number - format: decimal - nullable: true - QuoteCostDto: - type: object - additionalProperties: false - properties: - description: - type: string - nullable: true - note: - type: string - nullable: true - code: - type: string - nullable: true - billable: - type: string - nullable: true - quantity: - type: number - format: decimal - nullable: true - unitCost: - type: number - format: decimal - nullable: true - unitPrice: - type: number - format: decimal - nullable: true - amount: - type: number - format: decimal - nullable: true - amountTax: - type: number - format: decimal - nullable: true - amountIncludingTax: - type: number - format: decimal - nullable: true - QuoteOptionDto: - type: object - additionalProperties: false - properties: - description: - type: string - nullable: true - note: - type: string - nullable: true - code: - type: string - nullable: true - quantity: - type: number - format: decimal - nullable: true - unitCost: - type: number - format: decimal - nullable: true - unitPrice: - type: number - format: decimal - nullable: true - amount: - type: number - format: decimal - nullable: true - amountTax: - type: number - format: decimal - nullable: true - amountIncludingTax: - type: number - format: decimal - nullable: true - QuoteResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - quote: - nullable: true - oneOf: - - $ref: '#/components/schemas/QuoteDto' - StaffListResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - staffList: - type: array - nullable: true - items: - $ref: '#/components/schemas/StaffDto' - StaffDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - name: - type: string - nullable: true - email: - type: string - nullable: true - phone: - type: string - nullable: true - mobile: - type: string - nullable: true - address: - type: string - nullable: true - payrollCode: - type: string - nullable: true - webUrl: - type: string - nullable: true - StaffResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - staff: - nullable: true - oneOf: - - $ref: '#/components/schemas/StaffDto' - StaffAddRequestDto: - type: object - additionalProperties: false - properties: - name: - type: string - nullable: true - payrollCode: - type: string - nullable: true - address: - type: string - nullable: true - phone: - type: string - nullable: true - mobile: - type: string - nullable: true - email: - type: string - nullable: true - StaffUpdateRequestDto: - allOf: - - $ref: '#/components/schemas/StaffAddRequestDto' - - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - StaffIdentifierRequestDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - TaskListResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - taskList: - type: array - nullable: true - items: - $ref: '#/components/schemas/TaskDto' - TaskDto: - allOf: - - $ref: '#/components/schemas/SimpleEntityDto' - - type: object - additionalProperties: false - TaskResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - task: - nullable: true - oneOf: - - $ref: '#/components/schemas/TaskDto' - TemplateResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - templates: - type: array - nullable: true - items: - $ref: '#/components/schemas/TemplateDto' - TemplateDto: - allOf: - - $ref: '#/components/schemas/NamedEntityDto' - - type: object - additionalProperties: false - TimeListResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - times: - type: array - nullable: true - items: - $ref: '#/components/schemas/TimeDto' - TimeDto: - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - job: - nullable: true - oneOf: - - $ref: '#/components/schemas/JobReferenceDto' - task: - nullable: true - oneOf: - - $ref: '#/components/schemas/NamedEntityDto' - staff: - nullable: true - oneOf: - - $ref: '#/components/schemas/NamedEntityDto' - date: - type: string - nullable: true - minutes: - type: integer - format: int32 - nullable: true - note: - type: string - nullable: true - billable: - type: boolean - nullable: true - start: - type: string - nullable: true - end: - type: string - nullable: true - invoiceTaskUuid: - type: string - nullable: true - webUrl: - type: string - nullable: true - JobReferenceDto: - type: object - additionalProperties: false - properties: - id: - type: string - nullable: true - name: - type: string - nullable: true - TimeResponseDto: - allOf: - - $ref: '#/components/schemas/ResponseBaseDto' - - type: object - additionalProperties: false - properties: - time: - nullable: true - oneOf: - - $ref: '#/components/schemas/TimeDto' - TimeAddRequestDto: - type: object - additionalProperties: false - properties: - job: - type: string - nullable: true - staffUuid: - type: string - nullable: true - taskUuid: - type: string - nullable: true - date: - type: string - nullable: true - minutes: - type: string - nullable: true - start: - type: string - nullable: true - end: - type: string - nullable: true - note: - type: string - nullable: true - TimeUpdateRequestDto: - allOf: - - $ref: '#/components/schemas/TimeAddRequestDto' - - type: object - additionalProperties: false - properties: - uuid: - type: string - nullable: true - securitySchemes: - OAuth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: https://login.xero.com/identity/connect/authorize - tokenUrl: https://identity.xero.com/connect/token - scopes: - openid: Your application intends to use the user's identity - profile: First name, last name, full name and Xero user id - email: Email address - practicemanager: View and manage your Practice Manager data - practicemanager.read: View your Practice Manager data - practicemanager.client: View and manage your Practice Manager client data - practicemanager.client.read: View your Practice Manager client data - practicemanager.job: View and manage your Practice Manager job data - practicemanager.job.read: View your Practice Manager job data - practicemanager.staff: View and manage your Practice Manager staff data - practicemanager.staff.read: View your Practice Manager staff data - practicemanager.time: View and manage your Practice Manager time data - practicemanager.time.read: View your Practice Manager time data