openapi: 3.2.0 info: version: '2.0' title: Fixflo Brand API 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 security: - Bearer: [] tags: - name: Brand paths: /Brand/{BrandId}: parameters: - schema: type: string format: uuid name: BrandId in: path description: The brand id (guid) required: true 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: [] /Brands: parameters: [] 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 components: schemas: 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 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' 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' 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. ' 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). 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 ' 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 ' 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: Reactive GeneralEnquiry Planned Remedial' CloseReason: type: string x-stoplight: id: 51hwf48dec2k9 CloseReasonDescription: type: string x-stoplight: id: jbn4aq2c3xsq8 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 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 ' 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' 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 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 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 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). 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 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' Brand: title: Brand type: object properties: Id: type: string format: uuid description: Unique GUID of brand. Name: type: string description: Brand name securitySchemes: Bearer: type: http scheme: bearer description: '' x-internal: false