openapi: 3.0.0 info: version: '2.0' title: Fixflo description: Fixflo api docs termsOfService: 'https://fixflostore.blob.core.windows.net/live-assets/SystemApplicationDeveloperAndAPILicenseAgreement.pdf' contact: email: support@fixflo.com name: Support license: url: 'https://fixflostore.blob.core.windows.net/live-assets/SystemApplicationDeveloperAndAPILicenseAgreement.pdf' name: Fixflo API licence agreement servers: - url: 'https://api-sandbox.fixflo.com/api/v2' description: live sandbox - url: 'https://plus.dev.fixflo.com/api/v2' description: dev tags: - name: Agent - name: Agency - name: Asset - name: Block - name: Cost code - name: Brand - name: Contractor - name: Estate - name: FaultTree - name: Issue - name: Issue draft - name: Landlord - name: Leaseholder - name: Property - name: Service programme definition - name: Team - name: Tenant - name: Warranty - name: Webhook - name: Contractor networks - name: Customer - name: Service Event - name: Service Programme - name: Service Agreement - name: CustomFieldConfiguration paths: /Agent: parameters: [] post: summary: Agent operationId: post-agent tags: - Agent description: |- Saves (create or update) agent record If the Id has a value and the agent entity exists the agent will be updated. If the ExternalagentRef value is set this value must be unique for the given agency. If the Id has a value = null or "" an attempt to create a new agent will be made. requestBody: content: application/json: schema: $ref: '#/components/schemas/AssignedAgent' application/xml: schema: $ref: '#/components/schemas/AssignedAgent' description: '' responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/AssignedAgent' get: summary: Agent operationId: get-agent tags: - Agent responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AssignedAgent' application/xml: schema: type: object properties: '': type: string parameters: - schema: type: string in: query name: EmailAddress description: Agent email address - schema: type: string in: query name: ExternalAgentRef description: External ref - schema: type: string in: query name: AgentId description: Fixflo agent id description: Gets agent record '/Agent/{Id}/Brand': parameters: - schema: type: string name: Id in: path required: true description: The Fixflo id of the agent to be updated post: summary: Agent / brand tags: - Agent operationId: post-Agent-Id-Brand responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/AssignedAgent' description: Update agent brand parameters: - schema: type: string in: query name: Id description: Id of agent required: true requestBody: content: application/json: schema: $ref: '#/components/schemas/Brand' description: | if this is set to null the agent will fall back to the default behaviour /Agents: get: summary: Agents tags: - Agent responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/AssignedAgent' examples: {} '201': description: Created operationId: get-Agents description: Find agents by keyword parameters: - schema: type: string in: query name: keyword description: keywords to search - schema: type: integer in: query name: pg description: page to return x-internal: false /Block: get: summary: Block tags: - Block responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Block' operationId: get-Block parameters: - schema: type: number in: query name: Id description: The block id - schema: type: string in: query name: ExternalBlockRef description: External block reference description: Get block by id or external reference post: summary: Block tags: - Block operationId: post-Block responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Block' requestBody: content: application/json: schema: $ref: '#/components/schemas/Block' application/xml: schema: $ref: '#/components/schemas/Block' description: '' parameters: [] description: Saves a block parameters: [] /Blocks: get: summary: Blocks tags: - Block responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/Block' operationId: get-blocks description: Find blocks parameters: - schema: type: string in: query name: UpdatedSince description: Updated since - schema: type: string in: query name: keyword description: Keyword - schema: type: integer in: query name: pg description: page x-internal: false parameters: [] '/Block/{Id}/Tags': parameters: - schema: type: string name: Id in: path required: true description: Id of Block get: summary: Block / tags tags: - Block responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Tag' application/xml: schema: $ref: '#/components/schemas/Tag' operationId: get-Block-Id-Tags description: Returns tags associated with given property id post: summary: Block / tags tags: - Block operationId: post-block-Id-Tags responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Tag' description: Will replace all tags at the given block with the new given tags requestBody: content: application/json: schema: type: array items: type: string '/Block/{Id}/Brand': parameters: - schema: type: string name: Id in: path required: true get: summary: Block / brand tags: - Block responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Brand' operationId: get-Block-id-Brand description: gets the current brand by id x-stoplight: id: y6vp2kyxgzxo8 post: summary: Block / brand operationId: post-Block-id-Brand responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Brand' requestBody: content: application/json: schema: $ref: '#/components/schemas/Brand' examples: {} description: sets a brand on the current block tags: - Block x-stoplight: id: rn646ghb7nite /CostCode: get: summary: Cost code description: Get cost code tags: - Cost code responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CostCode' operationId: get-costcode parameters: - schema: type: string in: query name: CostCode - schema: type: string in: query name: BlockId - schema: type: string in: query name: ExternalBlockRef parameters: [] post: description: Create/update cost code tags: - Cost code operationId: post-CostCode responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/CostCode' requestBody: content: application/json: schema: $ref: '#/components/schemas/CostCode' summary: Cost code /CostCodes: get: summary: Cost codes description: Finds cost codes tags: - Cost code responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/CostCode' operationId: get-costcodes parameters: - schema: type: number in: query name: BlockId description: block Id - schema: type: string in: query name: ExternalBlockRef description: external block ref - schema: type: boolean in: query name: isDeleted description: is deleted - schema: type: integer in: query name: pg description: pg - schema: type: string in: query name: Keyword description: keyword - schema: type: number in: query name: EstateId description: estate id - schema: type: string in: query name: ExternalEstateRef description: external estate ref parameters: [] '/Brand/{BrandId}': get: summary: Brand tags: - Brand responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Brand' operationId: get-brand description: Gets brand by id parameters: [] parameters: - schema: type: string format: uuid name: BrandId in: path description: The brand id (guid) required: true /Brands: get: summary: Brands description: Returns list of brands tags: - Brand responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - x-stoplight: id: q5spckbkmed9w properties: Items: type: array x-stoplight: id: 3svdfocmsue55 items: $ref: '#/components/schemas/Issue' type: object examples: {} operationId: get-brands parameters: - schema: type: integer in: query name: pg description: page number to return - schema: type: integer in: query name: pgsz description: page size to return parameters: [] '/Contractor/{id}': get: summary: Contractor description: Gets contractor tags: - Contractor responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Contractor' operationId: get-contractor requestBody: content: application/json: schema: $ref: '#/components/schemas/Contractor' description: '' parameters: - schema: type: string in: query name: EmailAddress - schema: type: string in: query name: ExternalRef x-stoplight: id: jqwhlysfjxgmj parameters: - schema: type: string name: id in: path required: true /Contractor: parameters: [] post: summary: Contractor tags: - Contractor operationId: post-Contractor responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Contractor' description: |- Creates or updates a contractor. If the Id of the contractor object is null or empty an attempt to create a new record will be attempted. If the Id of the contractor object is not null or empty it must match an exiting contractor. requestBody: content: application/json: schema: $ref: '#/components/schemas/Contractor' x-stoplight: id: ijxek19eh99pr '/Contractor/{Id}/Brand': parameters: - schema: type: string name: Id in: path required: true post: summary: Contractor brand tags: - Contractor operationId: post-Contractor-Id-Brand responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Envelope' requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Brand' description: 'This endpoint sets the contractor brand. ' /Contractors: get: summary: Contractors description: Find contractors tags: - Contractor responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/Contractor' operationId: get-contractors parameters: - schema: type: string in: query name: UpdatedSince description: Filters on items that have been updated since this date time. (UTC date/time) - schema: type: string in: query name: Keyword description: Keyword to search with - schema: type: integer in: query name: Pg description: Page number to return parameters: [] /Contractor/Services: get: summary: Contractor / services tags: - Contractor responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/ContractorService' operationId: get-contractor-services description: Get the list of contractor services. There are no paramters for this request parameters: [] '/Estate/{id}': get: summary: Estate tags: - Estate responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Estate' operationId: get-estate parameters: - schema: type: string in: query name: ExternalEstateRef description: Gets an estate by id or external reference (your ref) parameters: - schema: type: string name: id in: path required: true /Estate: post: summary: Estate tags: - Estate operationId: post-estate responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Estate' examples: example-1: value: HttpStatusCode: 0 HttpStatusCodeDesc: string Errors: - string Messages: - string Entity: id: 0 Name: string ExternalEstateRef: string AssignedAgent: Id: 0 ExternalRef: string EmailAddress: string DisplayName: string ContactNo: string IsDeleted: true Brand: Id: 38a5a5bb-dc30-49a2-b175-1de0d1488c43 Name: string UpdateDate: '2019-08-24T14:15:22Z' IsDeleted: true UpdateDate: '2019-08-24T14:15:22Z' description: Create or update an estate requestBody: content: application/json: schema: $ref: '#/components/schemas/Estate' description: '' /Estates: get: summary: Estates tags: - Estate responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/Estate' operationId: get-estates parameters: - schema: type: string in: query name: Keyword description: Keyword to search with - schema: type: string format: date-time in: query name: UpdatedSince description: Filters on items that have been updated since this date time. (UTC date/time) - schema: type: integer in: query name: Pg description: pg description: Find estates by keyword or other parameters parameters: [] '/FaultTree/Walk/{id}': get: summary: Fault tree walk tags: - FaultTree responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FaultTreeBranch' operationId: get-faulttree-walk description: Fault tree branches or leaves parameters: - schema: type: integer name: id in: path required: true '/Issue/{Id}': get: summary: Issue description: Get issue details tags: - Issue operationId: get-Issue responses: '200': description: OK parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/Issue' parameters: - schema: type: string name: Id in: path required: true /Issue/: post: summary: Issue tags: - Issue operationId: post-Issue responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Issue' requestBody: content: application/json: schema: $ref: '#/components/schemas/Issue' description: | Currently this endpoint is only used for updating the AssignedAgent on an issue. Use null to unassign the issue. if the user cannot be found an error will be returned. GET https://[custom domain].fixflo.com/api/v2/Issue parameters: [] '/Issue/{Id}/ExternalRef': post: summary: Issue / externalref tags: - Issue operationId: post-Issue-externalref responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Issue' requestBody: content: application/json: schema: type: string description: | This endpoint is used to POST an external ref to an Issue associated with given Issue Id. External Ref must be unique per agency. Will overwrite current value if one exists. parameters: - schema: type: string name: Id in: path required: true description: Id associated with required Issue /Issues: get: summary: Issues tags: - Issue responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array x-stoplight: id: 6z38z7awmy6ua items: type: string operationId: get-issues description: "Find pages of issues. Optionally date periods may be selected. The issues are returned in created date/time order. For use cases see (downloading and importing issues)[#Downloading-and-importing-issues]\r\n\r\nThe GET url for each issue is returned rather than the whole issue object" parameters: - schema: type: string in: query name: CreatedSince description: Filters issues that have been created since the specified date time.(UTC date/time) - schema: type: string in: query name: CreatedBefore description: Filters issues that have been created before the specified date time.(UTC date/time) - schema: type: string in: query name: Status description: Filters on the issue status. Click here to see accepted values. If using the nuget package this is an enum. - schema: type: string in: query name: HasExternalPropertyRef description: Filters issues that are tied to properties that have an external reference - schema: type: string format: date-time in: query name: ClosedSince description: Filters issues that have been closed since the specified date time.(UTC date/time) - schema: type: string format: date-time in: query name: ClosedBefore description: Filters issues that have been closed before the specified date time.(UTC date/time) - schema: type: string format: date-time in: query name: JobCreatedSince description: Filters issues that have had a job created since the specified date time.(UTC date/time) - schema: type: string format: date-time in: query name: JobCreatedBefore description: Filters issues that have had a job created before the specified date time.(UTC date/time) - schema: type: string format: date-time in: query name: UpdatedSince description: Filters issues that have had a status change since the specified date time.(UTC date/time) - schema: type: string format: date-time in: query name: UpdatedBefore description: Filters issues that have had a status change before the specified date time.(UTC date/time) - schema: type: integer in: query name: page description: The page number to return parameters: [] '/Issue/{Id}/Report': parameters: - schema: type: string name: Id in: path required: true description: Issue id get: summary: Issue / report tags: - Issue responses: '200': description: OK headers: {} operationId: get-issue-id-report description: Downloads issue report as PDF document. Please see note on downloading binary data. /Issues/JobAwarded: get: summary: Issue / job awarded tags: - Issue responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: type: string operationId: get-issues-jobawarded description: Endpoint for listing issues with a status of JobAwarded. parameters: - schema: type: string in: query name: Page description: Page parameters: [] /IssueDraft/Commit: post: summary: Commits an IssueDraft description: 'Converts an IssueDraft object to a live, newly reported issue' tags: - Issue draft operationId: post-IssueDraft-Commit responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/IssueDraft' requestBody: content: application/json: schema: $ref: '#/components/schemas/IssueDraft' /Issues/JobCompleted: get: summary: Issue / job completed tags: - Issue responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: type: string operationId: get-issues-jobcompleted description: | Endpoint for listing issues with a status of JobCompleted. parameters: - schema: type: string in: query name: Page description: Page parameters: [] /Issues/Closed: get: summary: Issues / closed tags: - Issue responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: type: string operationId: get-issues-closed description: Endpoint for listing issues with a status of Closed. parameters: [] /IssueDraft: get: summary: Issue draft description: Get issue draft tags: - Issue draft responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/IssueDraft' operationId: get-issuedraft parameters: - schema: type: string in: query name: Id description: Unique id of IssueDraft. Guid post: summary: Issue draft description: Create/update issue draft tags: - Issue draft operationId: post-IssueDraft responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/IssueDraft' requestBody: content: application/json: schema: $ref: '#/components/schemas/IssueDraft' parameters: [] '/IssueDraft/{id}/IssueDraftMedia': get: summary: Issue draft / issue draft media description: Get issue draft mnedia tags: - Issue draft responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/IssueDraftMedia' operationId: get-issuedraftmedia parameters: - schema: type: integer in: query name: pg description: page parameters: - schema: type: string name: id in: path required: true /IssueDraft/Delete: post: summary: Issue draft description: Deletes an IssueDraft object tags: - Issue draft operationId: post-IssueDraft-Delete responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/IssueDraft' requestBody: content: application/json: schema: $ref: '#/components/schemas/IssueDraft' /IssueDraftMedia: parameters: [] get: summary: Issue draft media description: Gets an IssueDraftMedia object tags: - Issue draft responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/IssueDraftMedia' operationId: get-issuedraftmedia-Id post: summary: Issue draft media description: |- Posts an IssueDraftMedia object. If the id in the body of the request is left empty a new IsseDraftMedia will be created. If a valid id is supplied in the body of the request the API will attempt to update the IssueDraftMedia to which the id belongs. tags: - Issue draft operationId: post-IssueDraftMedia-Id responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/IssueDraftMedia' requestBody: content: application/json: schema: $ref: '#/components/schemas/IssueDraftMedia' '/IssueDraft/{Id}/Assets': parameters: - schema: type: string name: Id in: path required: true description: Unique id of the IssueDraft. Guid. get: summary: Issue draft assets description: Gets a page of assets associated with an issue Draft tags: - Issue draft responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: items: $ref: '#/components/schemas/IssueDraftAsset' operationId: get-issuedraft-asset-Id x-internal: false parameters: - schema: type: string in: query name: pg description: Page post: summary: Issue draft assets description: Adds an asset to an IssueDraft tags: - Issue draft operationId: post-issuedraft-asset-Id responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/IssueDraftAsset' required: - Entity requestBody: content: application/json: schema: $ref: '#/components/schemas/IssueDraftAsset' x-internal: false '/IssueDraftMedia/{Id}/Download': parameters: - schema: type: string name: Id in: path required: true get: summary: Issue draft media tags: - Issue draft responses: '200': description: OK operationId: get-issuedraftmedia-Id-download description: binary data of content type defined by IssueDraftMedia.ContentType '/Job/{id}': parameters: - schema: type: string name: id in: path required: true description: Job id get: summary: Job description: Gets a Job object responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Job' operationId: get-job-id /Landlord: get: summary: Landlord description: Gets a landlord object tags: - Landlord responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Landlord' operationId: get-landlord parameters: [] post: summary: Landlord description: Create/update landlord tags: - Landlord operationId: post-Landlord responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Landlord' requestBody: content: application/json: schema: $ref: '#/components/schemas/Landlord' '/Landlord/{id}/Brand': parameters: - schema: type: string name: id in: path required: true get: summary: Landlord / brand description: Gets the brand related to the landlord tags: - Landlord operationId: get-landlord-id-brand responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Brand' post: summary: Landlord / brand description: Updates the brand relating to the landlord tags: - Landlord operationId: landlord-brand-post responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Brand' requestBody: content: application/json: schema: $ref: '#/components/schemas/Brand' /Landlords: get: summary: Landlords description: Finds the relevant landlords tags: - Landlord responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/Landlord' operationId: get-landlords parameters: - schema: type: string in: query name: Keyword - schema: type: string format: date-time in: query name: UpdatedSince description: string representing a date/time - schema: type: integer in: query name: pg parameters: [] /LandlordProperty: get: summary: Landlord property description: Gets a specific landlord property. The LandlordPropertyId OR LandlordId and PropertyId must be supplied tags: - Landlord responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/LandlordProperty' operationId: get-landlordproperty parameters: - schema: type: integer in: query name: LandlordPropertyId - schema: type: integer in: query name: LandlordId - schema: type: integer in: query name: PropertyId parameters: [] post: summary: Landlord property operationId: post-LandlordProperty responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' requestBody: content: application/json: schema: $ref: '#/components/schemas/LandlordProperty' tags: - Landlord description: Adds a LandlordProperty object. Meaning the explicit relationship bewtween the landlord and the property is added /LandlordPropertyJoin: get: summary: Landlord property external description: Gets a specific landlord property. The LandlordPropertyId or ExternalPropertyRef and ExtrernalLandlordref or LandlordId and PropertyId must be supplied tags: - Landlord responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/LandlordPropertyJoin' operationId: get-landlordpropertyJoin parameters: - schema: type: integer in: query name: LandlordPropertyId - schema: type: string in: query name: ExtrernalLandlordref - schema: type: integer in: query name: LandlordId - schema: type: string in: query name: ExternalPropertyRef - schema: type: integer in: query name: PropertyId parameters: [] post: summary: Landlord property external operationId: post-LandlordPropertyJoin responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/LandlordPropertyJoin' requestBody: content: application/json: schema: $ref: '#/components/schemas/LandlordPropertyJoin' tags: - Landlord description: Adds a LandlordProperty object. Meaning the explicit relationship bewtween the landlord and the property is added using external refs '/Landlord/{LandlordId}/LandlordProperties': parameters: - schema: type: string name: LandlordId in: path required: true description: LandlordId get: summary: Landlord / landlord properties description: Lists all LandlordProperties for a given landlord tags: - Landlord responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/LandlordProperty' operationId: get-landlord-LandlordId-landlordproperties /LandlordProperty/Delete: parameters: [] post: summary: Landlord property / delete description: Deletes a LandlordProperty object. Meaning the explicit relationship bewtween the landlord and the property is removed tags: - Landlord operationId: post-LandlordProperty-Delete responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/LandlordProperty' requestBody: content: application/json: schema: $ref: '#/components/schemas/LandlordProperty' /LandlordPropertyJoin/Delete: parameters: [] post: summary: Landlord property external/ delete description: Deletes a LandlordProperty object. Meaning the explicit relationship bewtween the landlord and the property is removed tags: - Landlord operationId: post-LandlordPropertyJoin-Delete responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/LandlordPropertyJoin' requestBody: content: application/json: schema: $ref: '#/components/schemas/LandlordPropertyJoin' /LeaseholderPropertyJoin/Delete: parameters: [] post: summary: Leaseholder property external/ delete description: Deletes a LeaseholderProperty object. Meaning the explicit relationship bewtween the leaseholder and the property is removed tags: - Leaseholder operationId: post-LeaseholderPropertyJoin-Delete responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/LeaseholderPropertyJoin' requestBody: content: application/json: schema: $ref: '#/components/schemas/LeaseholderPropertyJoin' /LeaseholderPropertyJoin: get: summary: Leaseholder property external description: Gets a specific leaseholder property. The LeaseholderPropertyId or ExternalPropertyRef and ExtrernalLeaseholderRef or LeaseholderId and PropertyId must be supplied tags: - Leaseholder responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/LeaseholderPropertyJoin' operationId: get-LeaseholderpropertyJoin parameters: - schema: type: integer in: query name: LeaseholderPropertyId - schema: type: string in: query name: ExtrernalLeaseholderref - schema: type: integer in: query name: LeaseholderId - schema: type: string in: query name: ExternalPropertyRef - schema: type: integer in: query name: PropertyId parameters: [] post: summary: Leaseholder property external operationId: post-LeaseholderPropertyJoin responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/LeaseholderPropertyJoin' requestBody: content: application/json: schema: $ref: '#/components/schemas/LeaseholderPropertyJoin' tags: - Leaseholder description: Adds a LeaseholderProperty object. Meaning the explicit relationship bewtween the leaseholder and the property is added using external refs /LeaseholderPropertyJoin/Search: get: summary: Leaseholder property search description: 'Gets a list of leaseholders for a specified property. ' tags: - Leaseholder responses: '200': description: OK content: application/json: schema: type: object x-examples: Example 1: PreviousURL: null NextURL: null Items: - Id: 593 ExternalLeaseholderRef: 001-001-001B ExternalPropertyRef: 001-001-001 IsOccupier: false TotalPages: 1 TotalItems: 1 properties: PreviousURL: nullable: true NextURL: nullable: true Items: type: array items: type: object properties: Id: type: integer ExternalLeaseholderRef: type: string ExternalPropertyRef: type: string IsOccupier: type: boolean TotalPages: type: integer TotalItems: type: integer '': type: string '404': description: No leaseholder properties found using the given Property Id operationId: get-leaseholderpropertyjoin-search parameters: - schema: type: integer in: query name: PropertyId parameters: [] '/Leaseholder/{id}/Brand': parameters: - schema: type: string name: id in: path required: true get: summary: Leaseholder / brand description: Gets the brand applied to the leasholder tags: - Leaseholder responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Brand' operationId: get-leaseholder-brand post: summary: Leaseholder / brand description: Updates the brand applied to the leaseholder tags: - Leaseholder operationId: post-Leaseholder-id-Brand responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Brand' requestBody: content: application/json: schema: $ref: '#/components/schemas/Brand' /Leaseholder: parameters: [] get: summary: Leaseholder tags: - Leaseholder responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Leaseholder' operationId: get-leaseholder parameters: - schema: type: string in: query name: LeaseholderId description: Leaseholder id - schema: type: string in: query name: EmailAddress description: Leaseholder email address - schema: type: string in: query name: ExternalLeaseholderRef description: Leaseholder external ref description: Get leaseholder post: description: Get leaseholder summary: Leaseholder / save tags: - Leaseholder operationId: post-Leaseholder responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Leaseholder' requestBody: content: application/json: schema: $ref: '#/components/schemas/Leaseholder' /Leaseholders: parameters: [] get: description: Get leaseholders summary: Leaseholders tags: - Leaseholder responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/Leaseholder' operationId: get-leaseholders parameters: - schema: type: string in: query name: Keyword - schema: type: string format: date-time in: query name: updatedSince - schema: type: integer in: query name: pg /LeaseholderProperty: get: summary: Leaseholder property tags: - Leaseholder responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/LeaseholderProperty' operationId: get-leaseholderproperty parameters: - schema: type: string in: query name: LeaseholderPropertyId - schema: type: string in: query name: LeaseholderId - schema: type: string in: query name: PropertyId description: Either a LeaseholderPropertyId OR a LeaseholderId and PropertyId must be supplied. '/Leaseholder/{LeaseholderId}/LeaseholderProperties': parameters: - schema: type: string name: LeaseholderId in: path required: true description: Leaseholder id get: description: Get leaseholders properties summary: Leaseholder / leaseholder properties tags: - Leaseholder responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/LeaseholderProperty' operationId: get-leaseholder-leaseholderproperties parameters: - schema: type: integer in: query name: pg /LeaseholderProperty/Delete: post: summary: Leaseholder property / delete description: Deletes a LeaseholderProperty relationship tags: - Leaseholder responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Leaseholder' operationId: get-leaseholderproperty-delete requestBody: content: application/json: schema: $ref: '#/components/schemas/LeaseholderProperty' parameters: [] '/Property/{Id}/Addresses': parameters: - schema: type: string name: Id in: path required: true get: description: Get property addresses summary: Property / addresses tags: - Property responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/PropertyAddress' operationId: get-property-id-addresses parameters: - schema: type: integer in: query name: pg /Property: get: summary: Property tags: - Property responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Property' operationId: get-property parameters: - schema: type: string in: query name: Id description: Unique Fixflo id of property - schema: type: string in: query name: ExternalPropertyRef description: External property ref description: Either Id or ExternalPropertyRef must be supplied. (A property is synonymous with a unit) parameters: [] post: summary: Property / save tags: - Property operationId: post-property responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Property' description: |- Update or create a property. If the PropertyId has a value > 0 and the property entity exists the property will be updated. If the ExternalPropertyRef value is set this value must be unique for the given agency. If the PropertyId has a value = 0 an attempt to create a new property will be made. If the property address already exists a new property will NOT be created and the existing property with the matching address will be returned. This endpoint does not update the address of an existing property. If you wish to update the address on a property please use [UpdatePropertyAddress](#endpoints-update-property-address requestBody: content: application/json: schema: $ref: '#/components/schemas/Property' '/Property/{Id}/Issues': parameters: - schema: type: string name: Id in: path required: true description: Property id get: summary: Property / issues tags: - Property responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/IssueSummary' operationId: get-property-Id-issues description: Get property issues parameters: - schema: type: integer in: query name: pg description: The page number to return - schema: type: string in: query name: TenantId description: Used to filter the issues to only those raised by the tenant matching the provided Id - schema: type: string in: query name: TenantEmail description: Used to filter the issues to only those raised by the tenant matching the provided email /Property/Issues: parameters: [] get: summary: Property / issues responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/IssueSummary' operationId: get-property-Issues?externalPropertyRef=-ExternalPropertyRef description: Get issues at a property by external property ref parameters: - schema: type: string in: query name: ExternalPropertyRef required: true - schema: type: integer in: query name: TenantId description: Used to filter the issues to only those raised by the tenant matching the provided Id - schema: type: string in: query name: TenantEmail description: Used to filter the issues to only those raised by the tenant matching the provided email - schema: type: string in: query name: pg description: The page number to return tags: - Property '/Property/{Id}/Tags': parameters: - schema: type: string name: Id in: path required: true description: Id of the Property get: summary: Property / tags tags: - Property responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Tag' operationId: get-Property-Id-Tags description: Returns tags associated with given property id post: summary: Property / tags tags: - Property operationId: post-property-Id-Tags responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Tag' description: Will replace all tags at the given property with the new given tags requestBody: content: application/json: schema: type: array items: type: string '/Property/{Id}/Notes': parameters: - schema: type: string name: Id in: path required: true get: summary: Property / notes tags: - Property responses: '200': description: OK content: application/json: schema: type: object x-examples: Example 1: NoteContent: Sample Notes HtmlBtnId: btn-entitynote-Property-82875 EntityNoteGuid: 0fda9566-f810-42df-be87-68df735511a1 EntityId: '82875' AgencyId: AG84322 EntityNoteType: 5 HasEntityNote: true properties: NoteContent: type: string HtmlBtnId: type: string EntityNoteGuid: type: string EntityId: type: string AgencyId: type: string EntityNoteType: type: integer HasEntityNote: type: boolean examples: example-1: value: NoteContent: string HtmlBtnId: string EntityNoteGuid: string EntityId: string AgencyId: string EntityNoteType: 0 HasEntityNote: true '404': description: Property not found content: application/json: schema: type: string operationId: get-Property-Id-Notes description: Returns notes associated with given property id post: summary: Property / notes tags: - Property operationId: post-property-Id-Notes responses: '200': description: OK content: application/json: schema: type: object x-examples: Example 1: NoteContent: Sample notes HtmlBtnId: btn-entitynote-Property-82875 EntityNoteGuid: 5fd4196a-b0ba-4825-b9fd-977055b9b2c5 EntityId: '82875' AgencyId: AG84322 EntityNoteType: 5 HasEntityNote: true properties: NoteContent: type: string HtmlBtnId: type: string EntityNoteGuid: type: string EntityId: type: string AgencyId: type: string EntityNoteType: type: integer HasEntityNote: type: boolean '404': description: Property not found content: application/json: schema: type: string '409': description: Property already has notes so will not be overwritten content: application/json: schema: type: string description: Will add notes to the property associated with given property id requestBody: content: application/json: schema: type: string description: Notes to be added delete: summary: Property / notes operationId: delete-Property-PropertyId-Notes responses: '200': description: OK '404': description: Property not found content: application/json: schema: type: string description: Will delete notes associated with given property id tags: - Property '/Property/{Id}/Tenants': parameters: - schema: type: string name: Id in: path required: true get: summary: Property / tenants tags: - Property responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/Tenant' operationId: get-property-id-tenants description: Get property tenants '/Property/{PropertyId}/LandlordProperties': parameters: - schema: type: string name: PropertyId in: path required: true get: summary: Property / landlord properties tags: - Property responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/LandlordProperty' operationId: get-property-propertyId-landlordproperties description: Get landlords properties parameters: - schema: type: integer in: query name: pg '/PropertyAddress/{Id}': parameters: - schema: type: string name: Id in: path required: true get: summary: Property address tags: - Property responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PropertyAddress' operationId: get-propertyaddress-Id description: Get property address /PropertyAddress/Merge: post: summary: Property address / merge tags: - Property operationId: post-propertyaddress-merge responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/PropertyAddress' description: Merge a property address into a property. In other words an existing property address is added to an existing property. parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/PropertyAddress' /PropertyAddress/Split: post: summary: Property address / split tags: - Property operationId: post-propertyaddress-split responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/PropertyAddress' application/xml: schema: type: object properties: {} description: | Splits out an existing property address from a property. requestBody: content: application/json: schema: $ref: '#/components/schemas/PropertyAddress' description: PropertyAddress propreties however only PropertyAddressId is used /PropertyAddress/Search: parameters: [] get: summary: Property address / search tags: - Property responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/PropertyAddress' operationId: get-propertyaddress-search description: Search property addresses parameters: - schema: type: string in: query name: Keyword - schema: type: string in: query name: ExternalPropertyRef - schema: type: string in: query name: KeyReference description: Key reference - schema: type: string in: query name: HasExternalPropertyRef - schema: type: string format: date-time in: query name: UpdatedSince description: "\tFilters on items that have been updated since this date time. (UTC date/time)" /Property/UpdateAddress: post: summary: Property / update address tags: - Property operationId: post-Property-UpdateAddress responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Property' description: |- Updates the primary address of a property. This call takes the Id or ExternalPropertyRef of an existing property and sets the primary address of the property to the new data. The previous address will be maintained as an alt address. As a process this call creates a new property with the new address, merges the new property to the existing property then sets the new address to be the primary address. requestBody: content: application/json: schema: $ref: '#/components/schemas/Property' /ServiceProgrammeDef: get: summary: Service programme definition tags: - Service programme definition responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ServiceProgrammeDef' operationId: get-serviceprogrammedef parameters: - schema: type: string in: query name: Id description: Get service programme definition post: summary: Service programme definition tags: - Service programme definition operationId: post-serviceprogrammedef responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/ServiceProgrammeDef' description: 'If Id is not set the record will be added, the record corresponding to the Id will be updated. If Id is set and a record cannot be found a 404 error will be returned.' requestBody: content: application/json: schema: $ref: '#/components/schemas/ServiceProgrammeDef' /ServiceProgrammeDefs: parameters: [] get: summary: Service programme definition tags: - Service programme definition responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/ServiceProgrammeDef' operationId: get-serviceprogrammedefs?pg=-pg-&keyword=-keyword-&IsDisabled=-isDisabled parameters: - schema: type: integer in: query name: pg - schema: type: string in: query name: keyword - schema: type: boolean in: query name: isDisabled description: Get service programme definitions '/ServiceProgramme/{Id}': get: summary: Service programme by Id tags: - Service Programme responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ServiceProgramme' operationId: get-serviceprogramme parameters: - schema: type: string in: query name: Id description: Get service programme parameters: - schema: type: string name: Id in: path required: true /ServiceProgrammes: parameters: [] get: summary: Service programmes by Agency tags: - Service Programme responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/ServiceProgramme' operationId: get-serviceprogrammes parameters: - schema: type: integer in: query name: propertyId - schema: type: integer in: query name: blockId - schema: type: string in: query name: serviceProgrammeDefId - schema: type: boolean in: query name: isStatutory - schema: type: integer in: query name: pg - schema: type: string in: query name: externalPropertyRef - schema: type: integer in: query name: complianceState - schema: type: string in: query name: externalBlockRef description: Get agency service programmes x-internal: false '/Property/{propertyId}/ServiceProgrammes': parameters: - schema: type: string name: propertyId in: path required: true get: summary: Service programmes by Property tags: - Service Programme responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/ServiceProgramme' operationId: get-serviceprogrammes-by-property parameters: - schema: type: string in: query name: serviceProgrammeDefId - schema: type: boolean in: query name: isStatutory - schema: type: integer in: query name: pg - schema: type: integer in: query name: complianceState description: Get property service programmes x-internal: false x-stoplight: id: jlom6mtaai4s6 '/ServiceEvent/{id}': parameters: - schema: type: string name: id in: path required: true description: The id of the Service Event get: summary: Service event by Id tags: - Service Event responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ServiceEvent' operationId: get-ServiceEvent parameters: [] description: Get service event x-internal: false /ServiceEvents: get: summary: Service events by Agency tags: - Service Event responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: $ref: '#/components/schemas/ServiceEvent' operationId: get-ServiceEvents description: Get agency service events parameters: - schema: type: string in: query name: pg description: The page number to return - schema: type: integer in: query name: propertyId description: Filters service events by the property Id of the property associated with them - schema: type: string in: query name: externalPropertyRef description: Filters service events by the external property ref of the property associated with them - schema: type: integer in: query name: blockId description: Filters service events by the block Id of the block associated with them - schema: type: string in: query name: externalBlockRef description: Filters service events by the external block ref of the block associated with them - schema: type: string in: query name: serviceProgrammeDefId description: Filters service events by their associated service programme def - schema: type: string in: query name: serviceProgrammeId description: Filters service events by their associated service programme - schema: type: string in: query name: dueDateSince description: Filters service events that are due after the specified date time. (UTC date/time) - schema: type: string in: query name: dueDateBefore description: Filters service events that are due before the specified date time. (UTC date/time) - schema: type: string in: query name: instructionDateSince description: Filters service events that are due for instruction after the specified date time. (UTC date/time) - schema: type: string in: query name: instructionDateBefore description: Filters service events that are due for instruction before the specified date time. (UTC date/time) - schema: type: string in: query name: updateDateSince description: Filters service events that have been updated since the specified date time. (UTC date/time) - schema: type: string in: query name: updateDateBefore description: Filters service events that have been updated before the specified date time. (UTC date/time) - schema: type: string in: query name: completedDateSince description: Filters service events that have been completed since the specified date time. (UTC date/time) - schema: type: string in: query name: completedDateBefore description: Filters service events that have been completed before the specified date time. (UTC date/time) x-internal: false '/ServiceEvent/{id}/Medias': parameters: - schema: type: string name: id in: path required: true description: The id of the Service Event get: summary: Service event media responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: items: $ref: '#/components/schemas/Media' operationId: get-ServiceEvent-Media parameters: - schema: type: string in: query name: pg description: The page number to return description: Get all Media associated with a Service Event x-internal: false tags: - Service Event /Team: get: summary: Team tags: - Team responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Team' operationId: get-team description: Get team parameters: - schema: type: string in: query name: Id parameters: [] post: summary: Team tags: - Team operationId: post-team responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Team' description: Save team requestBody: content: application/json: schema: $ref: '#/components/schemas/Team' /Teams: parameters: [] get: description: Get teams summary: Teams tags: - Team responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/Team' operationId: get-teams?pg=-pg parameters: - schema: type: integer in: query name: pg /Tenant: get: summary: Tenant tags: - Tenant responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Tenant' operationId: get-tenant description: Get tenant parameters: - schema: type: string in: query name: Id description: Tenant id - schema: type: string in: query name: EmailAddress description: Email address - schema: type: string in: query name: ExternalRef description: External reference parameters: [] post: description: Save tenant summary: Tenant tags: - Tenant operationId: post-Tenant responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Tenant' requestBody: content: application/json: schema: $ref: '#/components/schemas/Tenant' '/Tenant/{id}/Brand': parameters: - schema: type: string name: id in: path required: true post: summary: Tenant / brand description: Updates the tenants brand tags: - Tenant responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Brand' operationId: post-tenant-id-brand requestBody: content: application/json: schema: $ref: '#/components/schemas/Brand' /Tenants: parameters: [] get: summary: Tenants tags: - Tenant responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/Tenant' operationId: get-tenants parameters: - schema: type: string in: query name: Keyword - schema: type: integer in: query name: pg - schema: type: string format: date-time in: query name: UpdatedSince description: Get tenants /Warranty/Add: post: summary: Warranty / add tags: - Warranty responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Warranty' operationId: post-warranty-add description: Creates a new warranty requestBody: content: application/json: schema: $ref: '#/components/schemas/Warranty' /Warranty/Save: post: description: Save warranty summary: Warranty / save tags: - Warranty responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Warranty' operationId: post-warranty-save requestBody: content: application/json: schema: $ref: '#/components/schemas/Warranty' parameters: [] '/Warranty/{id}/Delete': parameters: - schema: type: string name: id in: path required: true post: summary: Warranty / delete tags: - Warranty responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Warranty' operationId: post-warranty-id-delete description: Deletes a warranty /Webhooks: get: summary: Webhooks tags: - Webhook responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/Webhook' examples: {} application/xml: schema: type: object properties: {} multipart/form-data: schema: type: object properties: {} operationId: get-webhooks description: Returns a list of webhooks which are set up for your agency parameters: [] /Webhook/Activity: get: summary: Webhooks tags: - Webhook responses: '200': description: OK content: application/json: schema: type: array items: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/WebhookDeliveryItem' examples: example-1: value: - PreviousURL: string NextURL: string TotalItems: 0 TotalPages: 0 Items: - id: string WebHookUrl: string SendTime: '2019-08-24T14:15:22Z' Failed: string FailureMessage: string ResponseStatus: string RequestBody: string ResponseBody: string operationId: get-webhook-activity description: Returns a paged list (20 per page) of activity from a specific webhook listed in reverse time order parameters: - schema: type: string in: query name: Id description: The webhook id - schema: type: boolean in: query name: FailedOnly description: set as true if you want only failed attempts to return - schema: type: integer in: query name: pg parameters: [] /Webhook/Subscribe: post: summary: Webhook / subscribe tags: - Webhook responses: '200': description: OK content: application/json: schema: type: object properties: id: type: string operationId: get-webhook-subscribe description: Create a new webhook for the agency requestBody: content: application/json: schema: type: object properties: TargetUrl: type: string description: the full url of the webhook including querystring format: uri Event: type: string description: null for all events enum: - Property changed - Property added - Property deactivated - Issue state change - Issue add - Job invoice updated - Issue closed Events: type: array description: empty for all events items: type: string enum: - Property changed - Property added - Property deactivated - Issue state change - Issue add - Job invoice updated - Issue closed Secret: type: string minLength: 16 maxLength: 64 RemoveBody: type: boolean HttpMethod: type: string description: 'POST, PATCH, PUT' enum: - POST - PUT - PUSH EntityType: type: string description: Property or Issue enum: - Issue - Property application/xml: schema: type: object properties: {} description: '' /Webhook/Unsubscribe: delete: summary: Webhook / unsubscribe tags: - Webhook responses: '200': description: OK content: application/json: schema: type: object properties: {} operationId: get-webhook-unsubscribe parameters: - schema: type: string in: query name: id description: Unsubscribe webhook '/Issue/{issueid}/jobjobber': parameters: - schema: type: string name: issueid in: path required: true post: summary: Jobber operationId: post-Issue-issueid-jobjobber responses: '200': description: OK headers: {} requestBody: content: application/json: schema: $ref: '#/components/schemas/AddJobberDetails' examples: example-1: value: Jobber: id: string ExternalReference: string JobExternalReference: string description: '' description: Add contractor to a job tags: - Contractor networks '/Issue/{issueid}/jobcompletiondetails': parameters: - schema: type: string name: issueid in: path required: true get: summary: Completion details operationId: get-Issue-issueid-jobcompletiondetails responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/JobCompletionDetails' description: Get completion details tags: - Contractor networks post: summary: Completion details operationId: post-Issue-issueid-jobcompletiondetails responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/JobCompletionDetails' description: Save job completion details tags: - Contractor networks requestBody: content: application/json: schema: $ref: '#/components/schemas/JobCompletionDetails' description: '' '/issue/{issueid}/completiondoc': parameters: - schema: type: string name: issueid in: path required: true post: summary: Completion document / Add operationId: post-job-completion-document responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Media' requestBody: content: application/json: schema: $ref: '#/components/schemas/Media' application/xml: schema: $ref: '#/components/schemas/Media' description: Add job completion document tags: - Contractor networks '/issue/{issueid}/completiondoc/{mediaid}': parameters: - schema: type: string name: issueid in: path required: true - schema: type: string format: uuid name: mediaid in: path required: true get: summary: Completion document operationId: get-job-completion-document responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Media' description: Job completion document tags: - Contractor networks post: tags: - Contractor networks summary: Completion document / Save description: Save job completion document operationId: post-issue-issueid-completiondoc-mediaid responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object x-stoplight: id: h1csibf3ppydg properties: Entity: $ref: '#/components/schemas/Media' requestBody: content: application/json: schema: $ref: '#/components/schemas/Media' '/issue/{issueid}/completiondoc/{mediaid}/delete': parameters: - schema: type: string name: issueid in: path required: true - schema: type: string format: uuid name: mediaid in: path required: true delete: summary: Completion document operationId: delete-job-completion-document responses: '200': description: OK description: Job completion document tags: - Contractor networks '/issue/{issueid}/completiondocs': parameters: - schema: type: string name: issueid in: path required: true get: summary: Completion documents operationId: get-job-completion-documents responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/Media' headers: {} description: Job completion documents tags: - Contractor networks '/Issue/{issueId}/completioncertificatedoc': parameters: - schema: type: string name: issueId in: path required: true post: summary: Completion certificate document operationId: post-Issue-issueId-completioncertificatedoc responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Media' description: Add job completion certificate document requestBody: content: application/json: schema: $ref: '#/components/schemas/Media' tags: - Contractor networks '/Issue/{issueId}/completioncertificatedoc/{mediaId}': parameters: - schema: type: string name: issueId in: path required: true - schema: type: string name: mediaId in: path required: true get: summary: Completion certificate document tags: - Contractor networks responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Media' operationId: get-Issue-issueId-completioncertificatedocument-mediaId description: 'Get completion certificate documents attached to a certain Issue, by ID' '/Issue/{issueId}/completioncertificatedoc/{mediaId}/delete': parameters: - schema: type: string name: issueId in: path required: true - schema: type: string name: mediaId in: path required: true delete: summary: Completion certificate document operationId: delete-Issue-issueId-completioncertificatedoc-mediaId-delete responses: '200': description: OK description: Deletes certificate document attached to an issue by specific media id tags: - Contractor networks '/issue/{issueid}/invoicedetails': parameters: - schema: type: string name: issueid in: path required: true get: summary: Invoice details operationId: get-invoice-details responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/InvoiceDetails' description: Job Invoice Details tags: - Contractor networks post: description: Invoice details summary: Invoice details operationId: post-issue-issueid-invoicedetails tags: - Contractor networks responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/InvoiceDetails' requestBody: content: application/json: schema: $ref: '#/components/schemas/InvoiceDetails' x-internal: false '/issue/{issueid}/submitinvoice': parameters: - schema: type: string name: issueid in: path required: true post: summary: Invoice / submit operationId: submit-invoice tags: - Contractor networks responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/SubmitInvoice' examples: {} requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmitInvoice' examples: example-1: value: InvoiceNumber: string TotalNet: 0 TotalTax: 0 Total: 0 description: Invoice '/Issue/{issueId}/quotes': parameters: - schema: type: string name: issueId in: path required: true get: summary: Issue / quotes tags: - Issue - Contractor networks responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/Quote' operationId: get-Issue-issueId-quotes x-internal: false description: Gets all quotes attached to an Issue on an Agency '/Issue/{Id}/Tags': parameters: - schema: type: string name: Id in: path required: true description: Id of Issue get: summary: Issue / tags tags: - Issue responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TagsAdded' application/xml: schema: $ref: '#/components/schemas/TagsAdded' operationId: get-Issue-Id-Tags description: Returns tags associated with given issue id x-stoplight: id: 7r3e31p2hqfq9 '/Issue/{issueId}/quote': parameters: - schema: type: string name: issueId in: path required: true post: summary: Quote operationId: post-Issue-issueId-Quote responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Quote' description: Adds a quote to the current Agency's attached Issue requestBody: content: application/json: schema: $ref: '#/components/schemas/Quote' description: '' tags: - Contractor networks '/Issue/{issueId}/quote/{quoteId}': parameters: - schema: type: string name: issueId in: path required: true - schema: type: string name: quoteId in: path required: true post: summary: Amend quote operationId: post-Issue-issueId-amendquote-quoteId responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Quote' description: Amends a quote on an attached Issue using the quote's ID requestBody: content: application/json: schema: $ref: '#/components/schemas/LineItem' x-internal: false tags: - Contractor networks '/Issue/{issueId}/declinetoquote': parameters: - schema: type: string name: issueId in: path required: true post: summary: Decline to quote operationId: post-Issue-issueId-declinetoquote responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: boolean properties: {} description: Declines to quote on current issue attached to agency tags: - Contractor networks '/Issue/{issueId}/declinejob': parameters: - schema: type: string name: issueId in: path required: true post: summary: Decline job operationId: post-Issue-issueId-declineJob responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: boolean properties: {} description: Declines job based on current Issue requestBody: content: application/json: schema: $ref: '#/components/schemas/JobDeclineReasonMessage' description: '' tags: - Contractor networks '/Issue/{issueId}/appointment': parameters: - schema: type: string name: issueId in: path required: true post: summary: Appointment operationId: post-Issue-issueId-appointment responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Appointment' description: Set an appointment for the current job accepted on an issue requestBody: content: application/json: schema: $ref: '#/components/schemas/Appointment' tags: - Contractor networks '/Issue/{issueId}/appointment/{appointmentId}/cancel': parameters: - schema: type: string name: issueId in: path required: true - schema: type: string name: appointmentId in: path description: Id of the appointment you wish to cancel required: true put: summary: Cancel Appointment operationId: put-Issue-issueId-appointment responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Appointment' description: Cancel a specified appointment for the current job accepted on an issue requestBody: content: {} tags: - Contractor networks x-stoplight: id: 3khpjsf7pzfgg '/Issue/{issueId}/createfurtherworks': parameters: - schema: type: string name: issueId in: path required: true post: summary: Create Further Works operationId: post-Issue-issueId-createfurtherworks responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Issue' description: Create a duplicate linked issue of type 'Further Works' requestBody: content: application/json: schema: type: object properties: furtherNotes: type: string isEmergency: type: boolean application/xml: schema: type: object properties: {} tags: - Contractor networks '/Issue/{issueId}/quotefurtherworks': parameters: - schema: type: string name: issueId in: path required: true post: summary: Quote for Further Works operationId: post-Issue-issueId-quotefurtherworks responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Issue' description: Create a duplicate linked issue of type 'Further Works' with a quote attached requestBody: content: application/json: schema: $ref: '#/components/schemas/QuoteFurtherWorks' tags: - Contractor networks x-stoplight: id: woiiwvckzhycl '/Issue/{issueId}/quoteinstead': parameters: - schema: type: string name: issueId in: path required: true post: summary: Quote instead operationId: post-Issue-issueId-quoteinstead responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Quote' description: Decline a job instruction and instead send a quote for the work requestBody: content: application/json: schema: $ref: '#/components/schemas/Quote' tags: - Contractor networks x-stoplight: id: 6pzrl2am3vbnt '/Issue/{issueId}/contractornetworkcomment': parameters: - schema: type: string name: issueId in: path required: true post: summary: Contractor Network Comment operationId: post-Issue-issueId-contractornetworkcomment responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: boolean description: Add a comment to a further works issue that was raised by your agency requestBody: content: application/json: schema: type: object properties: message: type: string application/xml: schema: type: object properties: {} tags: - Contractor networks /Agencies: get: summary: Agencies description: Get list of agencies. The agency endpoints are only available on request to support. tags: - Agency responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: type: string operationId: get-Agencies parameters: - schema: type: integer in: query name: page description: The page number to return '/Agency/{id}': get: summary: Agency tags: - Agency responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Agency' operationId: get-Agency description: Get an agency parameters: - schema: type: string name: id in: path required: true /Agency: post: summary: Agency / add operationId: post-Agency responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Entity: $ref: '#/components/schemas/Agency' description: Add an agency requestBody: content: application/json: schema: $ref: '#/components/schemas/Agency' tags: - Agency '/Agency/{id}/SetupIntegrationTemplates': get: summary: Setup Agency Integration Templates operationId: SetupAgencyIntegrationTemplates responses: '204': description: No Content description: Setup Integration templates for existing Agency with given Id tags: - Agency parameters: - schema: type: string name: id in: path required: true description: Agency Id /Customers: get: summary: Customers tags: - Contractor networks responses: '200': description: OK content: application/json: schema: allOf: - properties: Items: type: array items: $ref: '#/components/schemas/Customer' type: object operationId: get-Customer-Customers parameters: - schema: type: integer in: query name: pg description: page description: Gets a list of users associated with an agency. parameters: [] '/Customer/{Id}': parameters: - schema: type: string name: Id in: path required: true get: summary: Customer tags: - Contractor networks responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Customer' operationId: get-Customer-Id description: Gets a user attached to an agency by the attached agency ID /Assets: get: summary: Search assets responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Assets: type: array items: $ref: '#/components/schemas/Asset(Read)' operationId: get-Assets parameters: - schema: type: string in: query name: AssetId description: The Fixflo unique identifier for the asset - schema: type: string in: query name: AssetRef description: The reference on the tag or label of the asset - schema: type: string in: query name: ExternalAssetRef description: The reference of the asset in an external system - schema: type: string in: query name: Name description: The name of the asset - schema: type: string in: query name: ExternalBlockRef description: The reference for the block of the asset in an external system - schema: type: string in: query name: ExternalPropertyRef description: The reference for the property of the asset in an external system - schema: type: string format: date-time in: query name: UpdatedBefore allowEmptyValue: true description: Used to only return assets updated before this date - schema: type: string format: date-time in: query name: UpdatedSince allowEmptyValue: true description: Used to only return assets updated after this date x-internal: false description: Search for assets using the criteria provided in the query string. tags: - Asset /Property/Search: get: description: Search for properties summary: Property / search tags: - Property responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object properties: Items: type: array items: $ref: '#/components/schemas/Property' operationId: get-Property-Search parameters: - schema: type: string in: query name: Keyword - schema: type: string in: query name: ExternalPropertyRef - schema: type: boolean in: query name: HasExternalPropertyRef - schema: type: string in: query name: KeyReference - schema: type: string in: query name: IncludeAlternates - schema: type: string in: query name: IsDeleted - schema: type: integer in: query name: pg description: page number - schema: type: integer in: query name: pgsz description: page size - schema: type: integer in: query name: BlockId parameters: [] /Asset: parameters: [] post: summary: Create asset operationId: post-Asset responses: '201': description: Created content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Asset: $ref: '#/components/schemas/Asset(Read)' '400': description: Bad Request content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Asset: $ref: '#/components/schemas/Asset(Read)' requestBody: content: application/json: schema: $ref: '#/components/schemas/Asset(Read)' description: Endpoint used for creating a new asset x-internal: false tags: - Asset '/Asset/{id}': parameters: - schema: type: string name: id in: path required: true get: summary: Get asset by id responses: '200': description: OK content: application/json: schema: allOf: - properties: Asset: $ref: '#/components/schemas/Asset(Read)' type: object operationId: get-Asset-id x-internal: false parameters: - schema: type: string in: query name: id description: The Fixflo asset id description: Retrieve an asset by Id tags: - Asset put: summary: Update asset operationId: put-Asset-id responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: Asset: $ref: '#/components/schemas/Asset(Read)' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Envelope' requestBody: content: application/json: schema: $ref: '#/components/schemas/Asset(Write)' x-internal: false description: Update an existing asset tags: - Asset /Agency/Settings: get: summary: Get Agency Settings tags: - Agency responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AgencySettings' operationId: get-Agency-Settings x-internal: false /ServiceEvent/CreateRemedial: post: summary: Raise Remedial tags: - Contractor networks responses: '200': description: 'Issue {issueId} Created' operationId: post-ServiceEvent-CreateRemedial requestBody: content: application/json: schema: type: object properties: parentIssueId: type: string x-stoplight: id: 59oks94uui7ac details: type: string x-stoplight: id: exvu6nch1k6tl media: type: array x-stoplight: id: b5j91te08qpx2 items: $ref: '#/components/schemas/Media' description: Create a duplicate linked issue of type 'Remedial' '/Tenant/{Id}/Properties': parameters: - schema: type: string name: Id in: path required: true get: summary: '' operationId: get-Tenant-Id-Properties responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object x-stoplight: id: 4uaqg21mi5sa0 properties: '': type: array x-stoplight: id: 5wx5pxdbp0t40 items: $ref: '#/components/schemas/TenantProperty' x-stoplight: id: 013ytctgmye3f requestBody: content: {} x-internal: false tags: - Tenant '/Tenant/{Id}/Property/{PropertyId}': parameters: - schema: type: string name: Id in: path required: true - schema: type: string name: PropertyId in: path required: true delete: summary: '' operationId: delete-Tenant-Id-Property-PropertId responses: '200': description: OK x-stoplight: id: pvbmj0fm6739x x-internal: false tags: - Tenant get: summary: '' operationId: get-Tenant-Id-Property-PropertyId responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Property' application/xml: schema: $ref: '#/components/schemas/TenantProperty' x-stoplight: id: b6qjc4q6az6e7 requestBody: content: {} description: '' x-internal: false tags: - Tenant '/Tenant/{Id}/Property': parameters: - schema: type: string name: Id in: path required: true post: summary: Post Tenant Id Property operationId: post-Tenant-Id-Property responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - $ref: '#/components/schemas/TenantProperty' x-stoplight: id: l2v938c03vkz3 requestBody: content: application/json: schema: $ref: '#/components/schemas/TenantProperty' x-internal: false tags: - Tenant description: Post property parameters: - schema: type: string in: query name: tenantId '/Tenant/{Id}/Anonymise': parameters: - schema: type: string name: Id in: path description: tenant id required: true post: summary: Post Tenant Id Anonymise operationId: post-Tenant-Id-Anonymise responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' requestBody: content: application/json: schema: type: object properties: tenantId: type: string x-examples: Example 1: tenantId: string x-internal: false tags: - Tenant description: Deletes tenant parameters: - schema: type: string in: query name: tenantId x-stoplight: id: 1n2uib9cqxz2k /Medias/PropertyCertificate: get: summary: Media Search tags: - Media responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: object x-stoplight: id: nz1f5jo5vqls0 properties: Items: type: array x-stoplight: id: 0pc8ymfvfuwt7 items: $ref: '#/components/schemas/Media' operationId: get-Medias x-stoplight: id: hdl5znfkeuot0 requestBody: content: {} parameters: - schema: type: string in: query name: PropertyId - schema: type: string in: query name: ExternalPropertyRef - schema: type: string in: query name: BlockId - schema: type: string in: query name: ExternalBlockRef - schema: type: string in: query name: ServiceProgrammeDefId - schema: type: string in: query name: Created.To - schema: type: string in: query name: Created.From parameters: [] '/Media/PropertyCertificate/{Id}': get: summary: Your GET endpoint tags: - Media responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Media' operationId: get-Media x-stoplight: id: efqlokc2daq0j parameters: - schema: type: string name: Id in: path required: true post: summary: '' operationId: post-Media-PropertyCertificate-Id responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - $ref: '#/components/schemas/Media' x-stoplight: id: n9dpl1eww29uu requestBody: content: application/json: schema: $ref: '#/components/schemas/Media' description: |- This can be used to update: DocumentExpiryDate DocumentStartDate ShortDescription tags: - Media '/Media/{Id}/Download': parameters: - schema: type: string name: Id in: path required: true get: summary: Media download tags: - Media responses: '200': description: OK operationId: get-Media-Id-Download x-stoplight: id: lkfc230m8ttm6 description: This will allow you to download the file as a stream '/Property/{propertyId}/ServiceProgramme/{serviceProgrammeId}/ServiceEvent': parameters: - schema: type: string name: propertyId in: path required: true - schema: type: string name: serviceProgrammeId in: path required: true post: summary: 'Create Service Event ' tags: - Service Event - Service Programme - Property responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ServiceEvent' operationId: post-Property-propertyId-ServiceProgramme-serviceProgrammeId-ServiceEvent x-stoplight: id: s5ocd5sy0d2ru requestBody: content: application/json: schema: $ref: '#/components/schemas/ServiceEvent' parameters: - schema: type: string in: query name: serviceProgrammeId '/Property/{propertyId}/ServiceProgramme/{serviceProgrammeId}/ServiceEvents': parameters: - schema: type: string name: propertyId in: path required: true - schema: type: string name: serviceProgrammeId in: path required: true get: summary: Get Service Events by service programme id tags: - Service Event responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PrevNextPager' operationId: get-Property-propertyId-ServiceProgramme-serviceProgrammeId-ServiceEvents x-stoplight: id: qg7j4r4u44o0e '/Property/{propertyId}/ServiceProgramme/{serviceProgrammeId}/ServiceEvent/{serviceEventId}': parameters: - schema: type: string name: propertyId in: path required: true description: The Fixflo id of the property - schema: type: string name: serviceProgrammeId in: path required: true description: The Fixflo id of the service programme - schema: type: string name: serviceEventId in: path required: true description: The Fixflo id of the service event get: summary: Get Service Event By Property and Service Programme description: 'Gets a single service event by property, service programme and service event id.' tags: - Service Event responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ServiceEvent' operationId: get-Property-propertyId-ServiceProgramme-serviceProgrammeId-ServiceEvent-serviceEventId x-stoplight: id: ytapfznmv7vic post: summary: Update Service Event description: 'Updates the service event identified by property, service programme and service event id.' tags: - Service Event responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ServiceEvent' operationId: post-Property-propertyId-ServiceProgramme-serviceProgrammeId-ServiceEvent-serviceEventId x-stoplight: id: irivcypc9ckao requestBody: content: application/json: schema: $ref: '#/components/schemas/ServiceEvent' options: summary: Your OPTIONS endpoint description: CORS preflight support for this endpoint. tags: - Service Event responses: '200': description: OK operationId: options-Property-propertyId-ServiceProgramme-serviceProgrammeId-ServiceEvent-serviceEventId x-stoplight: id: wogh6ae2g0yn4 '/Issue/{Id}/Comments': parameters: - schema: type: string name: Id in: path required: true get: summary: Issue comments tags: - Contractor networks responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/PrevNextPager' - type: array x-stoplight: id: jw63mjtr92ckj items: $ref: '#/components/schemas/Comment' operationId: get-Issue-Id-Comments x-stoplight: id: 0ap4unnzbwmxu parameters: - schema: type: string in: query name: Id description: IssueId required: true - schema: type: integer default: 1 in: query name: pg description: page number - schema: type: integer default: 10 in: query name: pgsz description: page size description: 'It is recommended that the webhook is used to receive new comments rather than polling this endpoint on a regular basis. ' '/Issue/{issueId}/Comment': parameters: - schema: type: string name: issueId in: path required: true post: summary: Issue comment tags: - Contractor networks responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Envelope' - type: object $ref: '#/components/schemas/Comment' operationId: post-Issue-Id-Comment requestBody: content: application/json: schema: allOf: - type: object $ref: '#/components/schemas/Comment' x-stoplight: id: jumz19f9w6lvh /Issues/Merge: post: summary: Merge Issues responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/IssueMergeResponse' operationId: Merge x-stoplight: id: 2f8v7bo0gq0nj requestBody: content: application/json: schema: $ref: '#/components/schemas/IssueMergeRequest' description: This request will close the primary and related issues and create a new "merged issue" that links to all of htem tags: - Issue '/Property/{propertyId}/ServiceProgramme/{serviceProgramme}/ServiceEvent/Complete': parameters: - schema: type: string name: propertyId in: path required: true - schema: type: string name: serviceProgramme in: path required: true post: summary: Complete Service Event tags: - Service Event responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ServiceEventComplete' operationId: post-Property-propertyId-ServiceProgramme-serviceProgramme-ServiceEvent-Complete x-stoplight: id: maox05hgvxegw components: schemas: AdditionalDetail: title: AdditionalDetail type: object description: 'Some issue faults request additional detail. For example, if there is problem with an appliance the make and model of the appliance will be asked for. These additional questions and responses are returned as list of AdditionalDetail objects' properties: Label: type: string description: The question/prompt offered to the reporting user Value: type: string description: The answer AgencySettings: title: AgencySettings x-stoplight: id: c0780e23b7d69 type: object properties: AgencyName: type: string x-stoplight: id: e5hu8qnab7j3x description: The name of the agency WorkflowType: type: string description: |- None/Basic means properties are not managed in Fixflo. Only the agent and team data is stored. Issues can be reported but not progressed through the workflow. Full means properties are managed in Fixflo. All property and people data is stored in Fixflo, and issues can be progressed to Landlords/leaseholders and contractors accordingly with full Fixflo workflow functionality. x-stoplight: id: v14stuq6mb3ag enum: - Basic - Full AddJobberDetails: title: AddJobberDetails type: object description: Used by contractor networks only to add a jobber (contractor) to their assigned job properties: Jobber: $ref: '#/components/schemas/Jobber' JobExternalReference: type: string description: | The contractor network external reference for the job Address: title: Address type: object properties: AddressLine1: type: string AddressLine2: type: string Town: type: string County: type: string PostCode: type: string Country: type: string description: If set this should be a two letter ISO code. If the information supplied does not match an ISO code it will default to blank AssignedAgent: title: AssignedAgent type: object properties: Id: type: integer format: int64 ExternalRef: type: string EmailAddress: type: string DisplayName: type: string ContactNo: type: string IsDeleted: type: boolean Brand: $ref: '#/components/schemas/Brand' UpdateDate: type: string format: date-time description: Updated date/time (UTC). Block: type: object properties: Id: type: integer ExternalBlockReference: type: string Name: type: string Address: $ref: '#/components/schemas/Address' IsStandAlone: type: boolean KeyReference: type: string ManagementStartDate: type: string format: date-time description: Management end date. ManagementEndDate: type: string format: date-time description: Management end date. EstateId: type: integer ExternalEstateRef: type: string LandlordId: type: string ExternalLandlordRef: type: string PropertyManager: $ref: '#/components/schemas/AssignedAgent' AssignedAgent: $ref: '#/components/schemas/AssignedAgent' IsDeleted: type: boolean Created: type: string format: date-time description: Created date/time (UTC). UpdateDate: type: string format: date-time description: Updated date/time (UTC). Warranties: type: array description: List of warranties which apply to the block items: $ref: '#/components/schemas/Warranty' Brand: title: Brand type: object properties: Id: type: string format: uuid description: Unique GUID of brand. Name: type: string description: Brand name Contractor: title: Contractor type: object properties: Id: type: string description: Unique id of contractor ExternalRef: type: string description: | This field is designed to be used to reference the contractor in other systems. If set this value must be unique for contractors CompanyName: type: string description: | Optional company name. Title: type: string description: | Title of contractor (eg Mr, Mrs, etc) FirstName: type: string Surname: type: string DisplayName: type: string description: | This value is used for addressing the contractor. For example Dear [DisplayName] EmailAddress: type: string description: | EmailAddress is also used as a login. This value must be unique for contractors. ContactNumber: type: string ContactNumberAlt: type: string IsDeleted: type: boolean Address: $ref: '#/components/schemas/Address' InvoiceDetails: $ref: '#/components/schemas/InvoiceDetails' Services: type: array items: $ref: '#/components/schemas/ContractorService' Certifications: type: array items: $ref: '#/components/schemas/ContractorCertification' Brand: $ref: '#/components/schemas/Brand' UpdateDate: format: date-time type: string description: Updated date/time (UTC). ContractorCertification: title: ContractorCertification type: object description: '' properties: id: type: number description: 'This is a legacy field, 0 will be returned in all cases' Name: type: string description: 'This is the name of the required certificate. Certificate names are set up on a per agency basis; a contractor may have 0 to many certificates, but must not have more than one certificate of the same name' Expiry: format: date-time title: DateTime type: string description: When the contractor's certification will expire ContractorService: title: ContractorService type: object properties: id: type: integer description: Unique id of service. When updating a contractor to have new services this is the only field that is required Name: type: string description: | This is the standard name of the service. This is what is shown within the Fixflo system NameAndSynonyms: type: array description: 'This is a list of other terms the service may be referred as, to help with mapping.' items: type: string CostCode: title: CostCode type: object properties: BlockId: type: number description: | Unique id of the block the cost code is assigned to ExternalBlockRef: type: string description: | External reference for the block the cost code is assigned to IsDeleted: type: boolean CostCode: type: string description: | the value that will be sent in the costcode field on the issue when this is attached to the issue in fixflo Description: type: string description: | Human readable description of the cost code EstateId: type: integer ExternalEstateRef: type: string Envelope: title: Envelope type: object description: This object is used to carry/return responses following post operations. properties: HttpStatusCode: type: integer HttpStatusCodeDesc: type: string Errors: type: array items: type: string Messages: type: array items: type: string Estate: title: Estate type: object properties: id: type: integer description: | Unique Id of the Estate Name: type: string ExternalEstateRef: type: string description: | This field is designed to be used as the reference of the estate in the other (your) system. If set, this value must be unique for estates. AssignedAgent: $ref: '#/components/schemas/AssignedAgent' IsDeleted: type: boolean description: | Read/writable - archives the estate UpdateDate: format: date-time type: string description: Updated date/time (UTC). FaultTree: title: FaultTree type: object properties: FaultId: type: integer description: | Unique Id of the Fault FaultTreeParent0: type: integer description: | Id of the 1st parent of the Fault (can be null) FaultTreeParent1: type: integer description: | Id of the 2nd parent of the Fault (can be null) InvoiceDetails: title: InvoiceDetails type: object description: This object is for use by contractor networks for submitting invoice details properties: InvoiceDate: format: date-time type: string description: The invoice date is expressed as a date. DueDate: format: date-time type: string description: The due date is expressed as a date. InvoiceNumber: type: string LineItems: type: array items: $ref: '#/components/schemas/LineItem' Issue: title: Issue type: object properties: Id: type: string maxLength: 20 description: | Unique Id of issue TenantId: type: string description: | Unique tenant id (internal, Fixflo) ExternalRefTenancyAgreement: type: string description: | This optional value is entered by the tenant on issue submission. This value represents the tenancy agreement number as stored by a system external for Fixflo. It may be useful in matching new issue reports with existing tenancies Title: type: string description: | Title of issue (do not confuse with tenant title). This title may be edited in Fixflo plus FaultTitle: type: string description: | Title of fault. This is text title of the fault. This is initially derived from the fault category. Fixflo plus users may edit this value FaultCategory: type: string description: | This is the canonical description of the fault. It is readonly. The value is derived from the selected fault (icons) and sub categories AdditionalDetails: type: array description: | Some issue faults request additional detail. For example, if there is problem with an appliance the make and model of the appliance will be asked for. These additional questions and responses are returned in the field AdditionalDetails as a AdditionalDetail [] items: $ref: '#/components/schemas/AdditionalDetail' FaultNotes: type: string description: | User input fault notes FaultPriority: type: string description: | Fault priority, integer range 0 to 5 where 0 - Emergency, 1 - Urgent (high), 2 - Urgent (high), 3 - Non-urgent (high), 4 - Non-urgent (med), 5 - Non-urgent (low) Salutation: type: string description: | Tenant title (Mr, Mrs, Ms, etc) Firstname: type: string Surname: type: string EmailAddress: type: string description: | Tenant email address Address: $ref: '#/components/schemas/Address' Media: $ref: '#/components/schemas/Media' TenantNotes: type: string description: | Further input notes StatusChanged: type: string format: date-time description: StatusChanged date/time (UTC). Read-only. Status: type: string description: | Issue status. Values are: Reported, QuotesRequested, QuotesAwaitingReview, QuotesReviewed, JobAwarded, AwaitingJobCompletion, JobCompleted, Closed. Available as an enum in the nuget-package Created: type: string format: date-time description: Created date/time (UTC). TenantPresenceRequested: type: string description: | Has the tenant requested to be present TenantAcceptComplete: type: string description: | Have the issue submission terms and conditions been accepted TermsAccepted: type: string CallbackId: type: string description: | see Plugin Example for description and use case Property: type: string description: | The Property to which the issue relates. Please note in some scenarios this field will return a null value - these should be handled appropriately Block: $ref: '#/components/schemas/Block' Job: $ref: '#/components/schemas/Job' FaultTree: $ref: '#/components/schemas/FaultTree' WorksAuthorisationLimit: type: number description: | If a contractor is instructed, without having previously supplied a quote, this is maximum allowed cost of works. This value may be overridden manually on a per issue basis but by default will be derived from the agency, landlord or block as appropriate BlockName: type: string description: | The block name supplied when the issue is reported AssignedAgent: $ref: '#/components/schemas/AssignedAgent' Quotes: type: array description: Lists of quotes items: $ref: '#/components/schemas/Quote' AttendenceDate: format: date-time type: string description: This is expressed as a local date. QuoteEndTime: format: date-time type: string description: This is expressed as a local date. IsPlannedMaintenance: type: boolean ServiceEventId: type: string CostCode: type: string description: | An optional cost code to tie up with accounting. IsCommunal: description: | Signifies whether the issue is tied to a communal area in a block or a private area in a property/unit type: boolean IsEmergency: description: | Signifies whether the issue has been raised as an emergency type: boolean IssueType: type: string x-stoplight: id: to723ogafcxot description: "The Type of the Issue, will be one of:\r\nReactive\r\nGeneralEnquiry\r\nPlanned\r\nRemedial" CloseReason: type: string x-stoplight: id: 51hwf48dec2k9 CloseReasonDescription: type: string x-stoplight: id: jbn4aq2c3xsq8 IssueDraft: title: IssueDraft type: object description: |- This DTO provides support for the creation and update of draft issues. A use case might be where a 3rd party system creates new issues on behalf of an agency. In such a case, a new IssueDraft object is created, documents (such as pictures) are added then the IssueDraft is committed to a live issue. If a combination of Address, PropertyId and ExternalPropertyRef is used they must refer to the same property, otherwise the create/update will fail with an error. properties: id: type: string format: uuid description: Unique GUID of IssueDraft. Updated: format: date-time type: string description: Updated date/time (UTC). IssueTitle: type: string description: | Title of the issue. If not specified this will default to an appropriate value based on the Fault id and.or the fault notes. FaultId: type: string description: | This is a the unique id of the type of fault. If left as zero this will default to the fault "Planned maintenance (Other)". Other supported fault ids are listed [here](13741f28addb7-fault-ids) FaultPriority: type: integer description: | Overrides the default issue priority for the given fault ID. Integer from 0 (emergency) to 5 (Non-urgent). FaultNotes: type: string description: | A description of the fault. This is required. IssueDraftMedia: type: object description: | DEPRECATED - This field is still returned but never populated. Please use the endpoint here to get IssueDraftMedia Title: type: string description: | The tenant/occupiers title. Typically, Mr, Mrs, Ms etc FirstName: type: string description: | The tenant/occupiers first name Surname: type: string description: | The tenant/occupiers surname (aka family name) EmailAddress: type: string description: | The email address of the occupier ContactNumber: type: string description: | The contact phone number of the occupier ContactNumberAlt: type: string description: | Alternate contact phone number of the occupier Address: $ref: '#/components/schemas/Address' PropertyId: type: integer description: | PropertyId of the reporting property, if known. Can be used instead of the address to identify the location of the issue (This value will always be 0 on GET requests) BlockId: type: integer description: | BlockId of the reporting block, if known. PresenceRequired: description: | Whether the occupier has indicated that they wish to be present when works are carried out type: boolean VulnerableOccupier: type: boolean description: | Whether the occupier considers at least one of the occupiers to be vulnerable ExternalPropertyRef: type: string description: | External Reference of the reporting property, if known. Can be used instead of the address to identify the location of the issue (This value will always be null on GET requests) ExternalBlockRef: type: integer description: | External Reference of the reporting block, if known. IssueLocationType: type: string enum: - Private - Communal description: |- The location type of the issue, whether it is happing in a private or communal space. Coming in release 148. required: - FaultId IssueDraftMedia: title: IssueDraftMedia type: object description: | This DTO is used in conjunction with Fixflo.WebApi.V2.DTO.IssueDraftMedia to support the uploading of media (documents and images) properties: id: type: string format: uuid description: Unique GUID of IssueDraftMedia. IssueDraftId: type: string format: uuid description: Unique GUID of IssueDraft. Url: type: string description: | The url of the object for download. This value is readonly "ContentType\t": type: string description: |- The content and mime type of the document eg. example image/png. On POST, if the content type is left blank the content type will be derived from the ShortDesc field. For example where: * ContentType = null and a ShortDesc = "picture1.png" a content type of image/png will be derived * ContentType = "image/png" and a ShortDesc= "picture1" a content type of image/png will be derived * ContentType = "" and a ShortDesc = "picture1" will result in an error * ContentType = "xxxxx" and a ShortDesc = "picture1" will result in an error as the content type is not recognised. ShortDesc: type: string description: | A short description of the document (eg file name) EncodedByteData: type: string description: | Used for POST only. This data represents the binary document encoded to base-64 IssueDraftAsset: title: IssueDraftAsset type: object description: Represents a pending link between a Fixflo asset and an issue. When the issuedraft is published any issueDraftAssets will be converted to IssueAssets and linked to the raised issue. x-internal: false properties: Id: type: string description: The Id of the IssueDraftAsset entry AssetId: type: string description: The Id of the Asset that will be associated with the issue when published ExternalReference: type: string description: The external refence of the Asset that will be associated with the issue when published x-examples: example-1: Id: string AssetId: string ExternalReference: string x-extension-1: null IssueSummary: title: IssueSummary type: object description: This DTO (data transfer object) provides summary information of issues. properties: id: type: string description: | Unique Id of issue IssueId: type: string description: | Exists for backward compatibility. Expect this field to deprecated in v3 StatusId: description: | Integer value of the issue status type: number Status: type: string description: | String value of the issue status StatusChanged: type: string format: date-time description: StatusChanged date/time (UTC). Created: type: string format: date-time description: Created date/time (UTC). IssueTitle: type: string description: | The title of the issue Address: $ref: '#/components/schemas/Address' Job: title: Job type: object properties: id: type: string IssueId: type: string TenantNotes: type: string JobberNotes: type: string StartDate: type: string format: date-time description: The start date is expressed as a local date. ExternalRefJob: type: string description: | This field is used to provide a reference to a works order number in another system. In other words, this field should contain a the job purchase order number (aka works order reference) PriceAgencyPayableGross: type: number description: | This is the gross amount the agency is required to pay the contractor for completion of works PriceAgencyPayableNet: type: number description: | This is the amount, net of sales taxes, the agency is required to pay the contractor for completion of works PriceAgencyPayableTax: type: number description: | Should equal PriceAgencyPayableGross - PriceAgencyPayableNet PriceAgencyReceivableGross: type: number description: | This is the amount the agency should receive from the landlord for completion of works. It will typically be the same as PriceAgencyPayableGross but might include a management charge PriceAgencyReceivableNet: type: number description: | This is the amount, net of sales taxes, the agency should receive from the landlord for completion of works PriceAgencyReceivableTax: type: number description: Should equal PriceAgencyReceivableGross - PriceAgencyReceivableTax JobInvoiceNumber: type: string description: This the invoice number as supplied by the contractor. If an invoice is uploaded by the contractor it will default to the file name if the field is blank. QuotedPriceAgencyPayableGross: type: number description: | If a job resulted from the contractor submitting a quote, this is the gross amount the agency agreed to pay the contractor for completion of works QuotedPriceAgencyPayableNet: type: number description: | If a job resulted from the contractor submitting a quote, this is the amount, net of sales taxes, the agency agreed to pay to pay the contractor for completion of works QuotedPriceAgencyPayableTax: type: number description: | Should equal QuotedPriceAgencyPayableGross - QuotedPriceAgencyPayableNet QuotedPriceAgencyReceivableGross: type: number description: | If a job resulted from the contractor submitting a quote, this is the gross amount the landlord agreed to pay the agency for completion of works QuotedPriceAgencyReceivableNet: type: number description: | If a job resulted from the contractor submitting a quote, this is the amount, net of sales taxes, the landlord agreed to pay the agency for completion of works QuotedPriceAgencyReceivableTax: type: number description: | Should equal QuotedPriceAgencyReceivableGross - QuotedPriceAgencyReceivableNet AppointmentDescription: type: string description: | One of: Any, At, Before, After, Between AppointmentRange: type: string CreatedDate: format: date-time type: string description: Created date/time (UTC). JobCompleted: type: string format: date-time description: Job completed date. JobDuration: type: string description: | A description of how long the job took TenantAcceptedStartDate: type: boolean JobberAgreedWithTenantStartDate: type: boolean LandlordApproval: $ref: '#/components/schemas/JobQuoteApproval' InsurerApproval: $ref: '#/components/schemas/JobQuoteApproval' Contractor: $ref: '#/components/schemas/Contractor' Jobber: title: Jobber type: object description: | This is an object in use only for contractor networks for assigning a jobber to a job properties: id: type: string description: | Fixflo reference for the network contractor ExternalReference: type: string description: | The external reference for the network contractor JobCompletionDetails: title: JobCompletionDetails type: object description: This is an object in use only for contractor networks for completing jobs properties: PurchaseOrderNumber: type: string JobCompletionDate: format: date-time type: string description: 'Completion date, expressed as local date.' JobDuration: type: string FeedbackToAgent: type: string Landlord: title: Landlord type: object description: |+ properties: id: type: string description: Unique id of landlord ExternalRef: type: string description: | This field is designed to be used to reference the landlord in other system. If set this value must be unique for landlords CompanyName: type: string description: | Optional company name Title: type: string description: | Title of landlord (eg Mr, Mrs etc) FirstName: type: string Surname: type: string EmailAddress: type: string description: | EmailAddress is also used as a login if for the landlord. This value must be unique ContactNumber: type: string ContactNumberAlt: type: string DisplayName: type: string WorksAuthorisationLimit: type: string "EmailCC\t": type: string IsDeleted: type: boolean UpdateDate: type: string format: date-time description: Updated date/time (UTC). Brand: $ref: '#/components/schemas/Brand' AssignedAgent: $ref: '#/components/schemas/AssignedAgent' "Address\t": $ref: '#/components/schemas/Address' LandlordProperty: title: LandlordProperty type: object properties: Id: type: integer description: | Unique id of landlord property record LandlordId: type: string description: | The LandlordId of the property PropertyId: type: integer description: | The PropertyId of the property DateFrom: format: date-time type: string description: IGNORED DateTo: format: date-time type: string description: IGNORED IsPrimaryLandlord: type: boolean description: IGNORED Address: $ref: '#/components/schemas/Address' LandlordPropertyJoin: title: LandlordPropertyJoin type: object properties: Id: type: integer description: | Unique id of landlord property record ExternalLandlordRef: type: string description: | The external landlord ref of the property ExternalPropertyRef: type: string description: | The external property ref of the property IsPrimaryLandlord: type: boolean LeaseholderPropertyJoin: title: LeaseholderPropertyJoin type: object properties: Id: type: integer description: | Unique id of leaseholder property record ExternalLandlordRef: type: string description: | The external leaseholder ref of the property ExternalPropertyRef: type: integer description: | The external property ref of the property Leaseholder: title: Leaseholder type: object x-examples: {} properties: Id: type: string description: | Unique id of leaseholder ExternalLeaseholderReference: type: string description: | This field is designed to be used to reference the leaseholder in other system. If set this value must be unique for leaseholders CompanyName: type: string description: | Optional company name Title: type: string description: | Title of leaseholder (eg Mr, Mrs etc) FirstName: type: string Surname: type: string EmailAddress: type: string description: | EmailAddress is also used as a login if for the leaseholder. This value must be unique ContactNumber: type: string ContactNumberAlt: type: string DisplayName: type: string EmailCC: type: string IsDeleted: type: boolean UpdateDate: format: date-time type: string description: Updated date/time (UTC). Brand: $ref: '#/components/schemas/Brand' Address: $ref: '#/components/schemas/Address' LeaseholderProperty: title: LeaseholderProperty type: object properties: Id: type: string description: | Id of LeaseholderProperty record LeaseholderId: type: string description: | Id of the leaseholder PropertyId: type: string description: | Id of the PropertyId DateFrom: format: date-time type: string description: IGNORED DateTo: format: date-time type: string description: IGNORED Address: $ref: '#/components/schemas/Address' BlockId: type: integer description: | Id of the block for the property. ExternalBlockRef: type: string description: | External Reference of the block. NB. if both of the block fields are set then they must refer to the same block, otherwise an error will be returned. UpdateDate: format: date-time type: string description: Updated date/time (UTC). IsOccupier: type: boolean description: | whether the leaseholder resides at this property. A leaseholder can only reside at one property, with the latest one set taking precedence LineItem: title: LineItem type: object description: | This is an object in use only for contractor networks for providing invoice details properties: LineType: type: integer description: '0 = labour, 1 = materials, 2 = other. This is reflected in an enum in the nuget package' enum: - 0 - 1 - 2 Description: type: string Quantity: type: number UnitPrice: type: number Net: type: number Tax: type: number Total: type: number Media: title: Media type: object description: 'Please see note on [downloading binary data](docs/Downloading-binary-data.md).' properties: Id: type: string format: uuid description: Unique GUID of Media. readOnly: true URL: type: string readOnly: true ContentType: type: string description: |- The content and mime type of the document eg. example image/png. On POST, if the content type is left blank the content type will be derived from the ShortDesc field. For example where: * ContentType = null and a ShortDesc = "picture1.png" a content type of image/png will be derived * ContentType = "image/png" and a ShortDesc= "picture1" a content type of image/png will be derived * ContentType = "" and a ShortDesc = "picture1" will result in an error * ContentType = "xxxxx" and a ShortDesc = "picture1" will result in an error as the content type is not recognised. MediaType: type: string readOnly: true MediaTypeDescription: type: string ShortDescription: type: string description: | For POST this is required and should be the filename with extension e.g. "file.pdf" AddedByUserTypeId: type: string description: | Id of the user that uploaded the file readOnly: true EncodedByteData: type: string description: | Used for POST only. This data represents the binary document encoded to base-64 ServiceProgrammeDef: $ref: '#/components/schemas/ServiceProgrammeDef' x-stoplight: id: r3wrv8s4lrh41 readOnly: true DocumentStartDate: type: string x-stoplight: id: 62jrrkrk0brff format: date-time readOnly: true DocumentExpiryDate: type: string x-stoplight: id: tmdafqhw3cn9l format: date-time readOnly: true PrevNextPager: type: object properties: TotalItems: type: integer x-stoplight: id: qbm018n4fbivf description: The total number of items TotalPages: type: integer x-stoplight: id: 8d0f4tjvn3d91 description: "The total number of pages\r\n" Items: x-stoplight: id: x8n82kadpvt9w type: array items: x-stoplight: id: yp4jiel1kmn2j type: object NextURL: type: string x-stoplight: id: tcm929q75tirz description: The URL of the next page of results PreviousURL: type: string x-stoplight: id: 3hruq0fcrc5sz description: "The URL of the previous page of results\r\n" Property: title: Property type: object properties: id: type: number description: | Unique id of property BlockId: type: number description: | Unique id of the block that the property is in. Can be 0 signifying no block. ExternalPropertyRef: type: string description: | The ExternalPropertyRef is used for referencing the property in systems external to Fixflo. If set, this field value MUST be unique for the relevant agency. PropertyAddressId: type: string description: | The property address id of the canonical address of this property Address: $ref: '#/components/schemas/Address' UpdateDate: format: date-time type: string description: | Updated date/time (UTC) KeyReference: type: string description: | A free-text field referencing the physical keys of the related property IsNotManaged: type: boolean IsDeleted: type: boolean description: | Read/writable - archives the property ArchiveStatus: type: string enum: - Active - Deactivated - Offboarding readOnly: true AssignedAgent: $ref: '#/components/schemas/AssignedAgent' AssignedTeam: $ref: '#/components/schemas/Team' PropertyManager: $ref: '#/components/schemas/AssignedAgent' Warranties: type: array items: $ref: '#/components/schemas/Warranty' Tag: title: Tag type: object properties: Name: type: string x-examples: example-1: Name: Tag1 TagsAdded: title: TagsAdded type: object properties: Tags: $ref: '#/components/schemas/TagAdded' TagAdded: title: TagAdded type: object properties: Name: type: string Added: type: string x-examples: example-1: Name: Tag1 Added: 2025-01-30-0333 PropertyAddress: title: PropertyAddress type: object description: | This object is used to hold propery address information. It contains both address and property data. properties: id: description: | Unique Id of the property address type: integer PropertyId: description: | Related Id of the property type: integer ExternalPropertyRef: type: string description: | Optional, unique customer supplied property reference KeyReference: type: string description: | A free-text field referencing the physical keys of the related property Address: $ref: '#/components/schemas/Address' Quote: title: Quote type: object properties: id: type: string Status: type: string Contractor: $ref: '#/components/schemas/Contractor' PriceAgencyPayableGross: type: string PriceAgencyPayableNet: type: string PriceAgencyPayableTax: type: string PriceAgencyReceivableGross: type: string PriceAgencyReceivableNet: type: string PriceAgencyReceivableTax: type: string SubmittedDate: format: date-time type: string description: | can be null ExpiryDate: format: date-time type: string description: | can be null Media: type: array description: | List of media (pictures or other documents) attached to the quote. Please see note on downloading binary data. items: $ref: '#/components/schemas/Media' LineItems: x-stoplight: id: n47jfx2i4s81g type: array items: $ref: '#/components/schemas/LineItem' JobQuoteApproval: title: JobQuoteApproval x-stoplight: id: 95aa6169dc73e type: object properties: ApprovalNameTyped: type: string Approved: type: boolean ApprovedDate: format: date-time type: string QuoteAmount: type: number RequestedDate: format: date-time type: string QuoteId: type: string PriceAgencyReceivableGross: type: number PriceAgencyReceivableNet: type: number PriceAgencyReceivableTax: type: number ServiceProgrammeDef: title: ServiceProgrammeDef type: object properties: id: type: string readOnly: true EventType: type: string readOnly: true Class: type: string readOnly: true Category: type: string readOnly: true Description: type: string readOnly: true IsStatutory: type: boolean readOnly: true CostCode: type: string readOnly: true InstructionNotes: type: string readOnly: true InstructionDateOffsetPeriod: type: integer description: | 0 = days, 1 = weeks, 2 = months enum: - 0 - 1 - 2 readOnly: true InstructionDateOffsetType: type: integer readOnly: true ServiceFrequency: type: integer readOnly: true ServiceFrequencyType: type: integer readOnly: true description: | 0 = months, 1 = years, 2 = weeks enum: - 0 - 1 - 2 IsDisabled: type: boolean readOnly: true IsPropertyDefinition: type: boolean readOnly: true description: | not used for posts. ServiceProgramme: title: ServiceProgramme type: object properties: Id: type: string BlockId: type: integer ExternalBlockRef: type: string PropertyAddressId: type: integer PropertyId: type: integer ExternalPropertyRef: type: string ServiceProgrammeDef: $ref: '#/components/schemas/ServiceProgrammeDef' UpdateDate: type: string ProgrammeName: type: string ServiceFrequency: type: integer ServiceFrequencyType: type: integer enum: - 0 - 1 - 2 description: '0 = Months, 1 = Years, 2 = Weeks ' IsCompliant: type: boolean IsStatutory: type: boolean MostRecentServiceEvent: $ref: '#/components/schemas/ServiceEvent' MostRecentCompliantServiceEvent: $ref: '#/components/schemas/ServiceEvent' ServiceEventComplete: title: ServiceEventComplete type: object properties: CertificateStartDate: type: string format: date-time certificateExpiryDate: type: string format: date-time ServiceEvent: title: ServiceEvent type: object properties: Id: type: string Reference: type: string BlockId: type: integer ExternalBlockRef: type: string PropertyAddressId: type: integer PropertyId: type: integer ExternalPropertyRef: type: string ServiceProgrammeDef: $ref: '#/components/schemas/ServiceProgrammeDef' ServiceProgrammeId: type: string UpdateDate: type: string format: date-time Status: type: integer enum: - 1 - 2 - 4 - 8 - 16 - 32 - 64 - 128 description: |- Pending = 1, InProgress = 2, AwaitingReview = 4, RemedialsRaised = 8, Complete = 16, CompletedRemedialsRaised = 32, AwaitingApproval = 64, InstructionRequested = 128 InstructionDateOffsetPeriod: type: integer InstructionDateOffsetType: type: integer enum: - 0 - 1 - 2 description: '0 = Days, 1 = Weeks, 2 = Months' DueDate: type: string format: date-time InstructionDate: type: string format: date-time InstructionNotes: type: string RequiresReview: type: boolean Contractor: $ref: '#/components/schemas/Contractor' AssignedAgent: $ref: '#/components/schemas/AssignedAgent' Reviewer: $ref: '#/components/schemas/AssignedAgent' Reviewed: type: string format: date-time Completed: type: string format: date-time SubmitInvoice: title: SubmitInvoice type: object properties: InvoiceNumber: type: string TotalNet: type: number TotalTax: type: number Total: type: number Team: title: Team type: object properties: id: type: string Name: type: string IsDeleted: type: boolean Tenant: title: Tenant type: object properties: id: type: string ExternalRef: type: string description: | This field is designed to be used to reference the tenant in other system. If set this value must be unique for tenants ExternalPropertyRef: type: string description: | This field is designed to be used to reference the tenants property using the external property ref Title: type: string description: | Title of the tenant (eg Mr, Mrs, etc) FirstName: type: string Surname: type: string CompanyName: type: string Address: $ref: '#/components/schemas/Address' EmailAddress: type: string description: | EmailAddress is also used as a login. This value must be unique for tenants. ContactNumber: type: string ContactNumberAlt: type: string DisplayName: type: string IsDeleted: type: boolean Brand: $ref: '#/components/schemas/Brand' UpdateDate: format: date-time type: string description: | Updated date/time (UTC) Warranty: title: Warranty type: object properties: id: type: string StartDate: format: date-time type: string description: | The warranty start date EndDate: format: date-time type: string description: | The warranty end date ExternalContractorRef: type: string description: | The external reference for the contractor assigned to the warranty AssignedContractorCaption: type: string description: | A name caption for the contractor assigned to the warranty PropertyExternalRef: type: string description: | The external reference for the property which the warranty applies to BlockExternalRef: type: string description: | The external reference for the block which the warranty applies to Webhook: title: Webhook type: object properties: id: type: string description: | Unique id of webhook Url: type: string description: | The url of the webhook WebhookDeliveryItem: title: WebhookDeliveryItem type: object properties: id: type: string description: | Unique id of webhook WebHookUrl: type: string description: | The url of the webhook SendTime: format: date-time type: string description: | the time the webhook was sent Failed: type: string description: | did the webhook send fail FailureMessage: type: string description: | a message which describes the reason for failure ResponseStatus: type: string description: | the http response status received from the webhook end point RequestBody: type: string description: | the content of the request body ResponseBody: type: string description: | the content of the response body FaultTreeBranch: title: FaultTreeBranch type: object properties: Fault: $ref: '#/components/schemas/FaultTreeNode' Children: type: array items: $ref: '#/components/schemas/FaultTreeNode' x-internal: false x-examples: example-1: Fault: FaultId: 0 FaultTitle: string ParentFaultId: 0 FaultLevelTypeId: string Depth: 0 Image: string Warning: string Children: - FaultId: 0 FaultTitle: string ParentFaultId: 0 FaultLevelTypeId: string Depth: 0 Image: string Warning: string FaultTreeNode: description: Fault tree branch or leaf type: object x-examples: {} title: '' x-internal: false properties: FaultId: type: integer FaultTitle: type: string ParentFaultId: type: integer FaultLevelTypeId: type: string Depth: type: integer Image: type: string description: | Path to image Warning: type: string description: Fault warning seen in pop up messaage required: - FaultId - FaultTitle - ParentFaultId - FaultLevelTypeId - Depth JobDeclineReasonMessage: title: JobDeclineReasonMessage type: object properties: DeclineMessage: type: string Appointment: title: Appointment type: object properties: id: type: string AppointmentDate: type: string format: date-time AppointmentTimeRangeType: type: string TimeRangeStart: type: string format: date-time TimeRangeEnd: type: string format: date-time AgreedWithTenant: type: boolean CancelledDate: type: string x-stoplight: id: f4n6skyq3i657 format: date-time Agency: title: Agency type: object properties: id: type: string description: Unique Id of agency. AgencyName: type: string description: Friendly name of agency. Must be unique CustomDomain: type: string description: "\tCustom domain that will be used by the agency to access Fixflo. This value must be unique and must end with the relevant domain name eg. .fixflo.com, .test.fixflo.com" EmailAddress: type: string description: This is the central email address that will be used to send issue reports to. For create operations a user agent with this email address will also be created Password: type: string description: This value will be null for all GET operations IsDeleted: type: boolean description: Whether the agency is deleted or not. Agencies which are marked as deleted are subject to purging (ie having the data removed) at any time Created: type: string format: date-time description: Created date/time (UTC) FeatureType: format: date-time type: integer description: "\t0 - Fixflo (default), 1 - Fixflo Plus" IssueTreeRoot: format: date-time type: integer description: "\t0 - Property management (default), 1 - Block management" SiteBaseUrl: format: date-time type: string description: Base url for an agency. This property is read-only always. DefaultTimeZoneId: format: date-time type: string description: "g\tDefault time zone id for agency. All date/time data is stored as UTC and all date/time data is presented with the API as UTC. However, date/time data is presented to end-users in local time, converted from UTC using the default timezone. " Locale: format: date-time type: string description: "\tThe agency locale. The agency locale determines the presentation of data in respect of currency symbols, date/time formats, decimal formats and so forth." Customer: title: Customer type: object description: '' properties: id: type: string AgencyName: type: string CentralEmailAddress: type: string PhoneNumber: type: string Asset(Read): title: Asset x-stoplight: id: 6fd4kadtd41zf type: object x-internal: false properties: Id: type: string description: The Fixflo id for the asset readOnly: true AssetRef: type: string description: | This should be the reference on the tag or label of the asset and must be unique if set ExternalAssetRef: type: string description: | This should be the reference of the asset in an external system - it can be the same as the asset reference and must be unique if set Name: type: string ExternalPropertyRef: type: string description: 'The reference for the property containing the asset in an external system, cannot be changed once set. Must be set unless ExternalBlockRefProvided provided.' ExternalBlockRef: type: string description: 'The reference for the block containing the asset in an external system, cannot be changed once set. Must be set unless the ExternalPropertyRef is provided.' Updated: type: string format: date-time description: | Last time asset was updated nullable: true readOnly: true Description: type: string Location: type: string description: The location of the asset within the block or property. Subcontracted: type: boolean description: Whether the asset has been subcontracted nullable: true Manufacturer: type: string description: The Manufacturer of the asset Model number: type: string description: The model number of the asset Serial number: type: string description: The serial number of the asset Quantity: type: string description: The quantity of assets InstallationDate: type: string format: date-time description: The date of installation for the asset nullable: true InstallationCost: type: number format: float description: The cost of installation for the asset Warranty: $ref: '#/components/schemas/Warranty(Asset)' required: - Name - ExternalPropertyRef - ExternalBlockRef - Description Asset(Write): title: Asset x-stoplight: id: m6crcrt6kkr0i type: object x-internal: false properties: Id: type: string readOnly: true AssetRef: type: string description: | This should be the reference on the tag or label of the asset and must be unique if set ExternalAssetRef: type: string description: | This should be the reference of the asset in an external system - it can be the same as the asset reference and must be unique if set Name: type: string Updated: type: string format: date-time description: | Last time asset was updated nullable: true readOnly: true Description: type: string Location: type: string description: The location of the asset within the block or property. Subcontracted: type: boolean description: Whether the asset has been subcontracted nullable: true Manufacturer: type: string description: The manufacturer of the asset Model number: type: string description: The model number of the asset Serial number: type: string description: The serial number of the asset Quantity: type: string description: The quantity of assets InstallationDate: type: string format: date-time description: The date of installation for the asset nullable: true InstallationCost: type: number format: float description: The cost of installation for the asset Warranty: $ref: '#/components/schemas/Warranty(Asset)' Warranty(Asset): title: Warranty type: object x-stoplight: id: 3258d0e2956b2 x-internal: false properties: id: type: string readOnly: true StartDate: format: date-time type: string description: | The warranty start date EndDate: format: date-time type: string description: | The warranty end date ExternalContractorRef: type: string description: | The external reference for the contractor assigned to the warranty AssignedContractorCaption: type: string description: | A name caption for the contractor assigned to the warranty readOnly: true TenantProperty: title: TenantProperty x-stoplight: id: 53cqgaqd1nqg1 type: object x-internal: false properties: Id: type: string x-stoplight: id: cl21qbvn4ywvu readOnly: true PropertyId: type: string x-stoplight: id: uehjrsycydknu PropertyExternalRef: type: string x-stoplight: id: yyv415xazwak7 LinkType: x-stoplight: id: uixk0g7wn5tyk enum: - Tenant - TenantCorrespondence Comment: title: Comment x-stoplight: id: u4mszzmo2qoo3 type: object description: This is used for contractor networks to send and receive comments via the API properties: id: type: integer x-stoplight: id: d1d4todovzk0k readOnly: true commentFromEntityType: x-stoplight: id: 0rb0obg2o4392 enum: - agent - tenant - contractorNetwork readOnly: true commentToEntityType: type: array x-stoplight: id: hmy42gxpmqsab items: x-stoplight: id: fxb9soxku2bji enum: - agent - tenant - contractorNetwork message: type: string x-stoplight: id: u9zd1s4x7nl8o media: type: array x-stoplight: id: oti1ylqnugiov items: $ref: '#/components/schemas/Media' commentSent: type: string x-stoplight: id: pjpfbr6kec6qw format: date-time CustomConfigurationSelectOption: title: CustomConfigurationSelectOption x-stoplight: id: imyh8okzu7kmi type: object properties: Key: type: string x-stoplight: id: sjdtveivlakzv Value: type: string x-stoplight: id: pyn707sdr7n7m QuoteApproval: title: QuoteApproval x-stoplight: id: brxl273a73b0m type: object x-internal: false properties: Id: type: string x-stoplight: id: uueynb0paxc2x format: uuid readOnly: true QuoteApprovalRequestId: type: string x-stoplight: id: i753treqks979 format: uuid readOnly: true ApprovalUserId: type: string x-stoplight: id: f41dg7bayd5sy readOnly: true ApprovalUserExternalReference: type: string x-stoplight: id: 7fp573p8mef0a readOnly: true RejectReason: type: string x-stoplight: id: oyg6qt0bg8wuy readOnly: true Status: type: string x-stoplight: id: poyvthmg66zzh pattern: 'string string string Asked, Approved, Rejected, CancelledByIssueClosure, CancelledManually, Expired' readOnly: true QuoteApprovalRequest: title: QuoteApprovalRequest x-stoplight: id: 2z92cp9056cxs type: object x-internal: false properties: id: type: string x-stoplight: id: 1y0xs8lgrmw9b format: uuid readOnly: true QuoteId: type: string x-stoplight: id: fazka9a0djq8y readOnly: true Status: type: string x-stoplight: id: wxb8xah1zq1ls pattern: 'Approved, Rejected, Cancelled, AwaitingResponse' QuoteApprovals: type: array x-stoplight: id: el7k8i7tpy4sw items: $ref: '#/components/schemas/QuoteApproval' QuoteApprovalFeedback: title: QuoteApprovalFeedback x-stoplight: id: vv6tnb8m6uun9 type: object properties: Approve: type: boolean x-stoplight: id: jcdiyzb74pva4 writeOnly: true Reason: type: string x-stoplight: id: 6dt95glzpj3c3 writeOnly: true x-internal: false QuoteFurtherWorks: title: QuoteFurtherWorks x-stoplight: id: 7f1po1xkvavbx type: object properties: IssueId: type: string x-stoplight: id: n707tk8vc2zo8 NetworkContractorId: type: integer x-stoplight: id: 1yq8hfmzt9g3a NetworkContractorExternalRef: type: string x-stoplight: id: m6796ax2ikjuo LeadTime: type: string x-stoplight: id: e3jzq9yu9tfp5 EstimatedDuration: type: string x-stoplight: id: bjdth1d1u8cko ExpiryDate: type: string x-stoplight: id: 4id5cop45c61d format: date-time Media: type: array x-stoplight: id: dsutto5tv3qn8 items: $ref: '#/components/schemas/Media' QuoteDetail: type: string x-stoplight: id: 0x63c2kqmdh8v LineItems: type: array x-stoplight: id: b8i6qamdkpskq items: $ref: '#/components/schemas/LineItem' IsUrgent: type: boolean x-stoplight: id: 3s0mvxc6y21mi IssueMergeRequest: title: IssueMergeRequest x-stoplight: id: phq9dvhns1g0v type: object required: - PrimaryIssueId - IssueTitle - IssuesIdsToMerge properties: PrimaryIssueId: type: string x-stoplight: id: h3zzvzfhb26b0 IssueTitle: type: string x-stoplight: id: gx5ayrokb166q IssuesIdsToMerge: type: array x-stoplight: id: xmp7cs5vknfeq items: x-stoplight: id: yxut41xkk8mc8 type: string x-examples: Example 1: PrimaryIssueId: IS12345 IssueTitle: My merged issue IssuesIdsToMerge: - IS11111 - IS22222 IssueMergeResponse: title: IssueMergeResponse x-stoplight: id: kh5879i1wno64 type: object x-examples: Example 2: MergedIssueId: IS123456 Success: false InvalidIssues: - IssueId: IS123456 Reason: You cannot merge an issue into itself. properties: MergedIssueId: type: string x-stoplight: id: 6b9mxfp4epw70 Success: type: boolean x-stoplight: id: 3ryhs450h7y8y InvalidIssues: type: array x-stoplight: id: zl5qxrphbtzj1 items: x-stoplight: id: ibo7gyvp8hsrh type: object properties: IssueId: type: string x-stoplight: id: i2mw8y87mfi9z Reason: type: string x-stoplight: id: 4loikfbvgslpg securitySchemes: Bearer: type: http scheme: bearer description: '' responses: {} security: - Bearer: [] x-internal: false