openapi: 3.2.0 info: version: '2.0' title: Fixflo Service Programme 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: Service Programme paths: /ServiceProgramme/{Id}: parameters: - schema: type: string name: Id in: path required: true 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 /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 /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 Programme 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 components: schemas: 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' 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. ' 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 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,\nInProgress = 2, \nAwaitingReview = 4,\nRemedialsRaised = 8,\nComplete = 16, \nCompletedRemedialsRaised = 32,\nAwaitingApproval = 64,\nInstructionRequested = 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 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 ' 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). 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 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' 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 Brand: title: Brand type: object properties: Id: type: string format: uuid description: Unique GUID of brand. Name: type: string description: Brand name 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 securitySchemes: Bearer: type: http scheme: bearer description: '' x-internal: false