openapi: 3.2.0 info: title: PB Conveyancing Api 1.0 - PB Digital Conveyancing Quote API description: '### PB Conveyancing Api ### [PB Conveyancing Api Git Repository](https://github.com)' version: '1.0' servers: - url: https://api.purplebricks.co.uk/conveyancing-api security: - Bearer: [] tags: - name: ConveyancingQuote paths: /v1/conveyancingquote/quote/{quoteId}: get: tags: - ConveyancingQuote parameters: - name: quoteId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteModel' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error default: description: Error content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/conveyancingquote/quotes: get: tags: - ConveyancingQuote responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteModel' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteModel' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteModel' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error default: description: Error content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/conveyancingquote/quote: post: tags: - ConveyancingQuote requestBody: content: application/json: schema: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Request.CreateQuoteRequestModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Request.CreateQuoteRequestModel' application/*+json: schema: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Request.CreateQuoteRequestModel' responses: '201': description: Created content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteModel' '400': description: Bad Request content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' '500': description: Server Error components: schemas: Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.PropertyQuoteTypeModel: enum: - Purchase - Sale type: string Purplebricks.Conveyancing.Api.Contract.Models.Request.CreateQuoteContactRequestModel: type: object properties: contactType: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.ContactTypeModel' forename: type: - string - 'null' surname: type: - string - 'null' contactNumber: type: - string - 'null' emailAddress: type: - string - 'null' addressLine1: type: - string - 'null' addressLine2: type: - string - 'null' district: type: - string - 'null' town: type: - string - 'null' county: type: - string - 'null' postcode: type: - string - 'null' country: type: - string - 'null' additionalProperties: false Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuotePropertyModel: type: object properties: propertyQuoteType: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.PropertyQuoteTypeModel' tenureType: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.TenureTypeModel' price: type: number format: double positionFlags: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.PositionTypeModel' addressLine1: type: - string - 'null' addressLine2: type: - string - 'null' district: type: - string - 'null' town: type: - string - 'null' county: type: - string - 'null' postcode: type: - string - 'null' country: type: - string - 'null' additionalProperties: false Microsoft.AspNetCore.Mvc.ProblemDetails: type: object properties: type: type: - string - 'null' title: type: - string - 'null' status: type: - integer - 'null' format: int32 detail: type: - string - 'null' instance: type: - string - 'null' additionalProperties: {} Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.FeeTypeModel: enum: - Other - ConveyancingFee - ThirdPartyExpense - AdditionalFeesDisbursements type: string Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteFeeGroupModel: type: object properties: sequence: type: integer format: int32 feeType: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.FeeTypeModel' fees: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteFeeModel' totalAmount: type: number format: double additionalProperties: false Purplebricks.Conveyancing.Api.Contract.Models.Request.CreateQuoteRequestModel: type: object properties: quoteType: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.QuoteTypeModel' contacts: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Request.CreateQuoteContactRequestModel' properties: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Request.CreateQuotePropertyRequestModel' comments: type: - string - 'null' additionalProperties: false Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteFeeModel: type: object properties: propertyQuoteType: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.PropertyQuoteTypeModel' feeType: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.FeeTypeModel' description: type: - string - 'null' amount: type: number format: double additionalProperties: false Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.ContactTypeModel: enum: - Primary - Additional type: string Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.PositionTypeModel: enum: - FirstTimeBuyer - BuyingWithMortgage - OfferMade - NewBuild - SecondHomeOrInvestment - PropertyIsMortgaged type: string Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.QuoteTypeModel: enum: - Purchase - Sale - PurchaseAndSale type: string Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteModel: type: object properties: quoteId: type: integer format: int32 providerName: type: - string - 'null' providerReferenceId: type: - string - 'null' quoteType: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.QuoteTypeModel' quoteStatus: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.QuoteStatusTypeModel' properties: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuotePropertyModel' contacts: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteContactModel' comments: type: - string - 'null' fees: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteFeeModel' feeGroups: type: - object - 'null' additionalProperties: type: array items: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteFeeGroupModel' readOnly: true additionalProperties: false Purplebricks.Conveyancing.Api.Contract.Models.Response.ConveyancingQuoteContactModel: type: object properties: contactType: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.ContactTypeModel' userId: type: - integer - 'null' format: int32 forename: type: - string - 'null' surname: type: - string - 'null' contactNumber: type: - string - 'null' emailAddress: type: - string - 'null' addressLine1: type: - string - 'null' addressLine2: type: - string - 'null' district: type: - string - 'null' town: type: - string - 'null' county: type: - string - 'null' postcode: type: - string - 'null' country: type: - string - 'null' additionalProperties: false Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.TenureTypeModel: enum: - Freehold - Leasehold type: string Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.QuoteStatusTypeModel: enum: - Requested - Generated - Accepted - Declined type: string Purplebricks.Conveyancing.Api.Contract.Models.Request.CreateQuotePropertyRequestModel: type: object properties: propertyQuoteType: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.PropertyQuoteTypeModel' propertyId: type: - integer - 'null' format: int32 tenureType: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.TenureTypeModel' price: type: number format: double positionTypes: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Conveyancing.Api.Contract.Models.Common.Types.PositionTypeModel' addressLine1: type: - string - 'null' addressLine2: type: - string - 'null' district: type: - string - 'null' town: type: - string - 'null' county: type: - string - 'null' postcode: type: - string - 'null' country: type: - string - 'null' additionalProperties: false securitySchemes: Bearer: type: apiKey description: Authorization header using Bearer scheme name: Authorization in: header