openapi: 3.2.0 info: title: DigitalCommunity Regulation API description: To use this API, you need to have been first been issued a username and password by RICS. These need to be sent in a JSON User object in the body of a POST request to the /token endpoint in order to receive back a secure bearer token. This token must then be sent with every subsequent request to an information endpoint (in the request's authorization header). Bearer tokens have a limited lifetime and will need to be refreshed by your client periodically. The mechanism by which this refresh occurs is a matter for your client software to address. version: v1 security: - Bearer: [] tags: - name: Regulation paths: /api/Regulation/{schemeNumber}: get: tags: - Regulation parameters: - name: schemeNumber in: path required: true schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/RegulationScheme' '204': description: No Content '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /api/Regulation/Subscriptions: get: tags: - Regulation parameters: - name: regulationSchemeId in: query schema: type: string format: uuid responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/RegulationSubscriptions' '204': description: No Content '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /api/Regulation/PaymentInformation: get: tags: - Regulation parameters: - name: regulationSchemeId in: query schema: type: string format: uuid responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/PaymentInformation' '204': description: No Content '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' components: schemas: PiiInsurer: type: object properties: piiUnderwriterName: type: - string - 'null' piiUnderwriterId: type: string format: uuid policyNumber: type: - string - 'null' piiInsuranceId: type: string format: uuid regulatedSchemeId: type: string format: uuid schemeName: type: - string - 'null' additionalProperties: false QuoteStatus: enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 200000000 - 647390000 type: integer format: int32 RegulatoryType: enum: - 0 - 200000000 - 200000001 type: integer format: int32 MemberPiiAndAdrRoute: enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 type: integer format: int32 SchemeLicenceStatus: enum: - 0 - 1 - 2 - 200000000 - 200000001 - 200000002 - 200000003 - 200000004 - 200000005 - 200000006 - 200000007 - 200000008 - 200000009 - 200000010 - 200000011 - 200000012 - 200000013 - 200000014 - 200000015 type: integer format: int32 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: {} RegulationQuote: type: object properties: quoteId: type: string format: uuid quoteRef: type: - string - 'null' name: type: - string - 'null' description: type: - string - 'null' revisionNumber: type: integer format: int32 transactionCurrencyId: type: string format: uuid isoCurrencyCode: type: - string - 'null' currencyName: type: - string - 'null' currencySymbol: type: - string - 'null' totalAmount: type: number format: double taxAmount: type: number format: double discountAmount: type: number format: double priceListId: type: - string - 'null' format: uuid paymentReceived: type: boolean status: $ref: '#/components/schemas/QuoteStatus' quoteLines: type: - array - 'null' items: $ref: '#/components/schemas/RegulationQuoteLine' dateCreated: type: string format: date-time purchaseType: $ref: '#/components/schemas/PurchaseType' additionalProperties: false RedressProvider: type: object properties: id: type: string format: uuid regulatedSchemeId: type: string format: uuid regulatedSchemeName: type: - string - 'null' redressSchemeId: type: string format: uuid redressSchemeName: type: - string - 'null' countryId: type: string format: uuid countryName: type: - string - 'null' countryCode: type: - string - 'null' additionalProperties: false RegulationScheme: type: object properties: regulatedSchemeId: type: string format: uuid regulatedSchemeNumber: type: - string - 'null' parentRegulatedSchemeId: type: - string - 'null' format: uuid parentRegulatedSchemeName: type: - string - 'null' licencedContactId: type: - string - 'null' format: uuid licencedContactName: type: - string - 'null' licencedContactNumber: type: - string - 'null' submittedByContactId: type: - string - 'null' format: uuid submittedByContactNumber: type: - string - 'null' submittedByContact: type: - string - 'null' name: type: - string - 'null' regulatedEntityName: type: - string - 'null' regulatedSchemeTypeId: type: string format: uuid regulatedSchemeTypeName: type: - string - 'null' regulatedSchemeTypeCode: type: - string - 'null' schemeLicenceType: $ref: '#/components/schemas/SchemeLicenceType' schemeLicenceTypeName: type: - string - 'null' masterAccount: type: - string - 'null' format: uuid masterAccountName: type: - string - 'null' officeNumber: type: - string - 'null' firmNumber: type: - string - 'null' contactOfficer: type: - string - 'null' format: uuid personalAddressOkay: type: boolean preferredAddressOkay: type: boolean localGroupOkay: type: boolean isSellable: type: boolean contactOfficerName: type: - string - 'null' contactOfficerNumber: type: - string - 'null' schemeLicenceStatus: $ref: '#/components/schemas/SchemeLicenceStatus' schemeLicenceStatusName: type: - string - 'null' schemeLicenceStatusReason: $ref: '#/components/schemas/SchemeLicenceStatusReason' schemeLicenceStatusReasonName: type: - string - 'null' approvalConditions: type: - string - 'null' submissionDate: type: - string - 'null' format: date-time approvalDate: type: - string - 'null' format: date-time licenceEndDate: type: - string - 'null' format: date-time licenceEndReason: $ref: '#/components/schemas/LicenceEndReason' licenceEndReasonName: type: - string - 'null' inclusionReason: $ref: '#/components/schemas/InclusionReason' inclusionReasonName: type: - string - 'null' numDirectorPrincipals: type: - integer - 'null' format: int32 numMemberDirectorPrincipals: type: - integer - 'null' format: int32 regulatedOrganisationType: $ref: '#/components/schemas/RegulatedOrganisationType' regulatedOrganisationTypeName: type: - string - 'null' isSelfDeclaredAsVrsEligible: type: boolean vrsSponsorshipCode: type: - string - 'null' isMemberSignoffRequired: type: boolean signOffContactId: type: - string - 'null' format: uuid signOffContactName: type: - string - 'null' signOffContactNumber: type: - string - 'null' dateSignedOff: type: - string - 'null' format: date-time alternatePiiUnderwriters: type: - string - 'null' clientMoneyType: type: integer format: int32 clientMoneyTypeName: type: - string - 'null' gimaStatus: $ref: '#/components/schemas/Gima' gimaStatusName: type: - string - 'null' hasPii: type: - boolean - 'null' sponsorship: type: boolean statusChangeDate: type: - string - 'null' format: date-time startDate: type: - string - 'null' format: date-time renewalsDate: type: - string - 'null' format: date-time responsiblePrincipalId: type: - string - 'null' format: uuid responsiblePrincipalName: type: - string - 'null' responsiblePrincipalNumber: type: - string - 'null' isResponsiblePrincipalValid: type: boolean memberPiiAndAdrRoute: $ref: '#/components/schemas/MemberPiiAndAdrRoute' memberPiiAndAdrRouteName: type: - string - 'null' firmPiiAndAdrRoute: $ref: '#/components/schemas/FirmRegsRoute' firmPiiAndAdrRouteName: type: - string - 'null' regulationReturns: type: - array - 'null' items: $ref: '#/components/schemas/RegulationReturn' childSchemes: type: - array - 'null' items: $ref: '#/components/schemas/RegulationScheme' surveyingServices: type: - array - 'null' items: $ref: '#/components/schemas/SurveyingService' piiInsurers: type: - array - 'null' items: $ref: '#/components/schemas/PiiInsurer' noPiiExplanation: type: - string - 'null' redressProviders: type: - array - 'null' items: $ref: '#/components/schemas/RedressProvider' offices: type: - array - 'null' items: $ref: '#/components/schemas/Office' memberDirectorPrincipals: type: - array - 'null' items: $ref: '#/components/schemas/MemberDirectorPrincipal' createdOn: type: string format: date-time modifiedOn: type: - string - 'null' format: date-time countOfReturns: type: integer format: int32 countOfMemberDirectorPrincipals: type: integer format: int32 countOfSubscriptions: type: integer format: int32 additionalProperties: false SubscriptionOwnerStatus: enum: - 0 - 1 - 2 - 200000000 - 200000002 - 200000003 - 200000004 - 200000005 - 200000006 - 200000007 type: integer format: int32 RegulationQuoteLine: type: object properties: quoteLineId: type: string format: uuid catalogProductId: type: string format: uuid quantity: type: number format: double unitPrice: type: number format: double baseAmount: type: number format: double extendedAmount: type: number format: double discountAmount: type: number format: double productTypeCode: type: integer format: int32 productName: type: - string - 'null' productNumber: type: - string - 'null' sequenceNo: type: integer format: int32 isPriceOverridden: type: - boolean - 'null' subscriptionId: type: - string - 'null' format: uuid startDate: type: - string - 'null' format: date-time endDate: type: - string - 'null' format: date-time additionalProperties: false SubscriptionUser: type: object properties: subscriptionUserId: type: string format: uuid contactId: type: string format: uuid contactNo: type: - string - 'null' contactName: type: - string - 'null' preferredEmailAddress: type: - string - 'null' sponsorshipCodeId: type: - string - 'null' format: uuid subscriptionProductId: type: string format: uuid subscriptionId: type: string format: uuid status: $ref: '#/components/schemas/SubscriptionUserStatus' approvalStatus: $ref: '#/components/schemas/SubscriptionUserApprovalStatus' licenceKey: type: - string - 'null' endDate: type: - string - 'null' format: date-time vrsSponsorshipApplicationId: type: - string - 'null' format: uuid additionalProperties: false Address: type: object properties: ownerId: type: string format: uuid subsOnlineUpdate: type: boolean addressType: $ref: '#/components/schemas/AddressType' organisation: type: - string - 'null' line1: type: - string - 'null' line2: type: - string - 'null' line3: type: - string - 'null' city: type: - string - 'null' county: type: - string - 'null' state: type: - string - 'null' postcode: type: - string - 'null' isoCountryCode: type: - string - 'null' countryName: type: - string - 'null' countryId: type: string format: uuid longitude: type: number format: double latitude: type: number format: double telephone: type: - string - 'null' website: type: - string - 'null' emailAddress: type: - string - 'null' basedInChannelIslands: type: boolean additionalProperties: false SubscriptionPaymentMethod: enum: - 0 - 200000000 - 200000002 - 200000003 - 200000004 - 200000006 type: integer format: int32 PurchaseType: enum: - 0 - 200000000 - 200000001 type: integer format: int32 SuspensionReason: enum: - 0 - 200000000 - 200000001 - 200000002 type: integer format: int32 Office: type: object properties: accountId: type: string format: uuid firmNumber: type: - string - 'null' officeNumber: type: - string - 'null' publicationName: type: - string - 'null' registeredName: type: - string - 'null' tradingName: type: - string - 'null' primaryContact: type: - string - 'null' format: uuid primaryContactName: type: - string - 'null' address: $ref: '#/components/schemas/Address' isoCountryCode: type: - string - 'null' vatRegNumber: type: - string - 'null' isHeadOffice: type: boolean isRegulated: type: boolean hasActiveRegistration: type: boolean additionalProperties: false SubscriptionUserStatus: enum: - 0 - 1 - 2 type: integer format: int32 MemberDirectorPrincipal: type: object properties: contactId: type: - string - 'null' format: uuid connectionId: type: - string - 'null' format: uuid emailAddress: type: - string - 'null' emailAddress2: type: - string - 'null' emailAddress3: type: - string - 'null' contactNo: type: - string - 'null' fullName: type: - string - 'null' hasPreviousBadSchemeStatus: type: boolean notFoundInCrm: type: boolean isResponsiblePrincipal: type: boolean additionalProperties: false SchemeLicenceStatusReason: enum: - 0 - 200000000 - 200000001 - 200000002 - 200000003 - 200000004 - 200000005 - 200000006 - 200000007 - 200000008 - 200000009 - 200000010 - 200000011 - 200000012 - 200000013 - 200000014 - 200000015 - 200000016 type: integer format: int32 Subscription: type: object properties: subscriptionId: type: string format: uuid startDate: type: - string - 'null' format: date-time endDate: type: - string - 'null' format: date-time numberOfLicences: type: integer format: int32 poNumber: type: - string - 'null' createdDate: type: - string - 'null' format: date-time salesOrders: type: - array - 'null' items: type: string format: uuid quotes: type: - array - 'null' items: type: string format: uuid additionalProperties: false PaymentInformation: type: object properties: quotes: type: - array - 'null' items: $ref: '#/components/schemas/RegulationQuote' salesOrders: type: - array - 'null' items: $ref: '#/components/schemas/RegulationSalesOrder' countOfQuotes: type: integer format: int32 countOfSalesOrders: type: integer format: int32 countOfSchemeAnnualReturns: type: integer format: int32 additionalProperties: false InclusionReason: enum: - 0 - 200000000 - 200000001 type: integer format: int32 RegulationSalesOrder: type: object properties: orderId: type: string format: uuid orderRef: type: - string - 'null' status: $ref: '#/components/schemas/SalesOrderStatus' totalAmount: type: number format: double dateCreated: type: string format: date-time isoCurrencyCode: type: - string - 'null' currencySymbol: type: - string - 'null' quoteNumber: type: - string - 'null' additionalProperties: false ScoreResult: enum: - 0 - 1 - 2 type: integer format: int32 AddressType: enum: - 0 - 1 - 2 type: integer format: int32 EndDateChangeReason: enum: - 0 - 200000000 - 200000001 - 200000002 - 200000003 - 200000004 type: integer format: int32 SubscriptionUserApprovalStatus: enum: - 0 - 200000000 - 200000001 type: integer format: int32 CancellationReason: enum: - 0 - 200000000 - 200000001 - 200000002 - 200000003 - 200000004 - 200000005 type: integer format: int32 SponsorshipCode: type: object properties: sponsorshipCodeId: type: string format: uuid code: type: - string - 'null' status: $ref: '#/components/schemas/SponsorshipCodeStatus' startDate: type: string format: date-time endDate: type: string format: date-time totalAllowance: type: integer format: int32 quantityAvailable: type: integer format: int32 quantityUsed: type: integer format: int32 createdOn: type: string format: date-time modifiedOn: type: string format: date-time additionalProperties: false SalesOrderStatus: enum: - 0 - 1 - 2 - 3 - 4 - 100001 - 100002 - 100003 - 200000 - 200001 type: integer format: int32 SurveyingService: type: object properties: serviceId: type: string format: uuid code: type: - string - 'null' service: type: - string - 'null' isValuationService: type: boolean countryId: type: string format: uuid countryName: type: - string - 'null' countryCode: type: - string - 'null' additionalProperties: false RegulationSubscriptions: type: object properties: subscriptions: type: - array - 'null' items: $ref: '#/components/schemas/RegulationSubscription' countOfSubscriptions: type: integer format: int32 additionalProperties: false RegulationReturn: type: object properties: regulatoryReturnId: type: string format: uuid returnTypeId: type: string format: uuid returnTypeName: type: - string - 'null' name: type: - string - 'null' regulatoryType: $ref: '#/components/schemas/RegulatoryType' regulatoryTypeName: type: - string - 'null' regulatoryTypeCode: type: - string - 'null' regulatedMember: type: - string - 'null' format: uuid regulatedMemberName: type: - string - 'null' regulatedFirm: type: - string - 'null' format: uuid regulatedFirmName: type: - string - 'null' contactOfficer: type: - string - 'null' format: uuid contactOfficerName: type: - string - 'null' statusCode: $ref: '#/components/schemas/ReturnStatusCode' status: type: - string - 'null' submitterId: type: - string - 'null' format: uuid submitterName: type: - string - 'null' dateOfSubmission: type: - string - 'null' format: date-time returnDueDate: type: - string - 'null' format: date-time regulationCaseId: type: - string - 'null' format: uuid regulationCaseName: type: - string - 'null' surveyResponseId: type: - string - 'null' format: uuid surveyResponseName: type: - string - 'null' totalAnswersRequired: type: integer format: int32 totalAnswersProvided: type: integer format: int32 regulatedSchemeId: type: - string - 'null' format: uuid regulatedSchemeName: type: - string - 'null' responsiblePrincipal: type: string format: uuid responsiblePrincipalName: type: - string - 'null' result: $ref: '#/components/schemas/ScoreResult' score: type: integer format: int32 createdOn: type: string format: date-time modifiedOn: type: - string - 'null' format: date-time additionalProperties: false Gima: enum: - 0 - 200000000 - 200000001 - 200000002 - 200000003 type: integer format: int32 SchemeLicenceType: enum: - 0 - 200000000 - 200000001 type: integer format: int32 ReturnStatusCode: enum: - 0 - 200000000 - 200000001 - 200000002 - 200000003 - 200000004 - 200000005 - 200000006 - 200000007 - 200000008 - 200000009 - 200000010 - 200000011 - 200000012 - 200000013 type: integer format: int32 LicenceEndReason: enum: - 0 - 200000000 - 200000001 - 200000002 - 200000003 - 200000004 - 200000005 - 200000006 - 200000007 - 200000008 - 200000009 - 200000010 - 200000011 - 200000012 - 200000013 - 200000014 - 200000015 - 200000016 type: integer format: int32 RegulatedOrganisationType: enum: - 0 - 200000000 - 200000001 - 200000002 - 200000003 - 200000004 - 200000005 type: integer format: int32 FirmRegsRoute: enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 type: integer format: int32 SponsorshipCodeStatus: enum: - 0 - 1 - 2 - 200000000 - 200000001 type: integer format: int32 RegulationSubscription: type: object properties: ownerId: type: string format: uuid ownerName: type: - string - 'null' subscriptionNumber: type: - string - 'null' subscriptionProductId: type: string format: uuid subscriptionProductName: type: - string - 'null' contactId: type: string format: uuid contactName: type: - string - 'null' preferredEmailAddress: type: - string - 'null' name: type: - string - 'null' numberOfLicences: type: integer format: int32 startDate: type: - string - 'null' format: date-time endDate: type: - string - 'null' format: date-time isOnBehalfOfAnAccount: type: boolean reasonForEndDateChange: $ref: '#/components/schemas/EndDateChangeReason' reasonForEndDateChangeName: type: - string - 'null' reasonForSuspension: $ref: '#/components/schemas/SuspensionReason' reasonForSuspensionName: type: - string - 'null' reasonForCancellation: $ref: '#/components/schemas/CancellationReason' reasonForCancellationName: type: - string - 'null' status: $ref: '#/components/schemas/SubscriptionOwnerStatus' subscriptions: type: - array - 'null' items: $ref: '#/components/schemas/Subscription' subscriptionUsers: type: - array - 'null' items: $ref: '#/components/schemas/SubscriptionUser' sponsorshipCode: $ref: '#/components/schemas/SponsorshipCode' paymentMethod: $ref: '#/components/schemas/SubscriptionPaymentMethod' paymentMethodName: type: - string - 'null' renewalGuid: type: string format: uuid regulatedScheme: type: - string - 'null' format: uuid regulatedSchemeName: type: - string - 'null' portalSection: $ref: '#/components/schemas/PortalLocation' portalSectionName: type: - string - 'null' createdOn: type: - string - 'null' format: date-time modifiedOn: type: - string - 'null' format: date-time additionalProperties: false PortalLocation: enum: - 0 - 200000000 - 200000001 - 200000002 - 200000003 type: integer format: int32 securitySchemes: Bearer: type: apiKey description: Please enter into field the word 'Bearer' following by space and JWT name: Authorization in: header