openapi: 3.0.0 info: version: 4.1.0 title: Common Mortgage API (Public) description: | This specification defines a common mortgage API for mortgages as used in Switzerland. The API is supposed to be used by requesting parties who want to get, extend, or transfer mortgages from and to financial institutions. This specification uses schema definitions from the Common Data Model v1.2.2. termsOfService: Tbd contact: email: info@common-api.ch license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html servers: - url: https://mortgage.common-api.ch externalDocs: description: Find out more about SFTI API specifications. url: https://www.common-api.ch tags: - name: Existing Mortgages description: Operations related with existing mortgages. - name: Full Mortgage Cases description: Operations related to full mortgage cases including the application details. - name: Mortgage Application description: Operations needed to place an application (dossier) for a new mortgage. - name: Mortgage Financing Request description: Operations for handling financing requests for a specific accepted application (dossier). - name: Mortgage Offers description: Operations for handling the binding offers an FI provides. - name: Mortgage Order description: Operations for placing a binding order for a chosen offer. - name: Mortgage Products and Conditions description: Operations for synchronizing general mortgage product information from an FI. - name: Mortgage Prolongation description: Operations for handling the common special case of prolonging an existing mortgage. security: - ApiKeyAuth: [] - OAuth2: - read - write paths: /mortgage-cases: get: tags: - Full Mortgage Cases summary: Return the list of all mortgage cases for the authenticated context description: List of mortgage cases for the authenticated context including the corresponding properties, sorted by caseId. operationId: listMortgageCases parameters: - $ref: '#/components/parameters/cursor' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' X-Next-Cursor: $ref: '#/components/headers/X-Next-Cursor' description: Paginated list of all mortgage cases with all related information sorted by caseId. content: application/json: schema: type: object required: - caseList properties: caseList: type: array items: $ref: '#/components/schemas/MortgageCase' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgage-cases/{caseId}: get: tags: - Full Mortgage Cases summary: Return a specific existing mortgage case description: A specific existing mortgage case including the corresponding properties. operationId: getMortgageCase parameters: - $ref: '#/components/parameters/case_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: Mortgage case details with the corresponding properties. content: application/json: schema: type: object properties: Case: $ref: '#/components/schemas/MortgageCase' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages: get: tags: - Existing Mortgages summary: Return the list of all mortgages for the authenticated context description: List of mortgages for the authenticated context including the corresponding properties and related mortgages, sorted by mortgageId. operationId: listMortgages parameters: - $ref: '#/components/parameters/expiring' - $ref: '#/components/parameters/cursor' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' X-Next-Cursor: $ref: '#/components/headers/X-Next-Cursor' description: Paginated list of all mortgages with all related information sorted by mortgageId. content: application/json: schema: type: object required: - mortgageList properties: mortgageList: type: array items: $ref: '#/components/schemas/Mortgage' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/{mortgageId}: get: tags: - Existing Mortgages summary: Return a specific existing mortgage description: A specific existing mortgage including the corresponding properties and related mortgages. operationId: getMortgage parameters: - $ref: '#/components/parameters/mortgage_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: Mortgage details with the corresponding properties and related mortgages. content: application/json: schema: type: object properties: Mortgage: $ref: '#/components/schemas/Mortgage' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/products: get: tags: - Mortgage Products and Conditions summary: Get a list of all mortgage products description: Get a complete overview of all available mortgage products sorted by productId. operationId: listProducts parameters: - $ref: '#/components/parameters/interest_rate_type' - $ref: '#/components/parameters/duration' - $ref: '#/components/parameters/cursor' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' X-Next-Cursor: $ref: '#/components/headers/X-Next-Cursor' description: Paginated list of all mortgage products with all related information sorted by productId. content: application/json: schema: type: object required: - productList properties: productList: type: array items: $ref: '#/components/schemas/Product' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/products/{productId}/conditions: get: tags: - Mortgage Products and Conditions summary: Get the general conditions for the specified mortgage product description: The standard financial conditions for the product. operationId: listProductConditions parameters: - $ref: '#/components/parameters/product_id' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/interest' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' X-Next-Cursor: $ref: '#/components/headers/X-Next-Cursor' description: List of conditions related to a specific mortgage product. content: application/json: schema: type: object properties: conditionList: type: array items: $ref: '#/components/schemas/Condition' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/applications: post: tags: - Mortgage Application summary: Place a new mortgage application (serves as dossier) description: | Place a new application including all necessary information about the property and applicant's financial situation. **Note that in the case where the FI needs additional information on the property, the error response 400 must contain the minimum required JSON object (PropertyObject) as detail**. operationId: createApplication parameters: - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' requestBody: description: Static details (requesting party, property object) of the application to be added as a dossier. required: true content: application/json: schema: $ref: '#/components/schemas/Application' responses: '201': $ref: '#/components/responses/standard201' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/applications/required-information: get: tags: - Mortgage Application summary: Get the required property information for the specific FI needed for valuation description: Show the subset of property details required by the FI for valuation. operationId: getApplicationRequiredInformation parameters: - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: $ref: '#/components/schemas/PropertyObject' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/applications/{applicationId}: get: tags: - Mortgage Application summary: Get the details of a specific placed application description: Get the details of a specific placed application. operationId: getApplication parameters: - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: type: object properties: application: $ref: '#/components/schemas/Application' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' put: tags: - Mortgage Application summary: Update the application's details description: | Update the application's details. Note that changing the application's details should not be possible after the application has been accepted by the FI. operationId: updateApplication parameters: - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' requestBody: description: Details of the order to be added. required: true content: application/json: schema: $ref: '#/components/schemas/Application' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: type: object properties: status: type: string example: we need an example '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' delete: tags: - Mortgage Application summary: Cancel the application and removing it description: The request to delete a previously shared application. operationId: deleteApplication parameters: - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: type: object properties: reason: description: The reason for rejecting an application. type: string example: We need an example '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/applications/{applicationId}/swissrets: get: tags: - Mortgage Application summary: Get property details in SwissRETS format description: Get the real estate property's details in SwissRETS format XML according to https://swissrets.ch/. operationId: getApplicationInSwissrets parameters: - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/xml: schema: type: string '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' post: tags: - Mortgage Application summary: Add property details in the SwissRETS standard description: | This endpoint allows to upload the real estate property's details as an XML file in the SwissRETS format according to https://swissrets.ch/. operationId: addApplicationInSwissrets parameters: - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' requestBody: description: Details of the real estate property to be added. required: true content: application/xml: schema: type: string responses: '201': $ref: '#/components/responses/standard201' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' put: tags: - Mortgage Application summary: Update the real estate property's details description: This endpoint allows to upload a modified XML file in the SwissRETS format changing the already existing information. operationId: updateApplicationInSwissrets parameters: - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' requestBody: description: Details of the real estate property to be added. required: true content: application/xml: schema: type: string responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: type: object properties: status: type: string example: we need an example '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/applications/{applicationId}/documents: get: tags: - Mortgage Application summary: Get a list of submitted documents for a specifically placed application description: All documents that have been shared against the Application ID can be retrieved here. operationId: getApplicationDocuments parameters: - $ref: '#/components/parameters/cursor' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' X-Next-Cursor: $ref: '#/components/headers/X-Next-Cursor' description: OK. content: application/json: schema: $ref: '#/components/schemas/DocumentUpload' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' post: tags: - Mortgage Application summary: Add documents for the specific application description: Documents can be assigned to a specific application ID. operationId: addApplicationDocument parameters: - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' requestBody: description: Details of the document to be added. required: true content: multipart/form-data: schema: type: object required: - documentType - fileContent - name - type - size properties: documentType: $ref: '#/components/schemas/DocumentType' fileContent: type: string format: binary description: The file content. name: type: string description: The name of the file without file type extension. maxLength: 128 example: my-property-flyer type: type: string description: The file type. maxLength: 64 example: application/pdf size: type: integer format: int64 description: The file size in bytes. example: 21543 applicantId: type: string format: uuid description: UUID v4 of the applicant (existing applicant within the current application). example: 576f8de3-6b30-4882-a7af-da2132a456cf responses: '201': $ref: '#/components/responses/standard201' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/applications/{applicationId}/documents/{documentId}: delete: tags: - Mortgage Application summary: Delete a formerly uploaded document description: | Deletes a specific document attached to a specific application. Note that deleting documents should not be possible after the application has been accepted by the FI. operationId: deleteApplicationDocument parameters: - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/document_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: type: object properties: status: type: string example: we need an example '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/applications/{applicationId}/status: get: tags: - Mortgage Application summary: Get the current status of the application description: Get the current status of the application (rejected with reason, accepted, pending with reason). operationId: getApplicationStatus parameters: - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: type: object properties: status: type: string enum: - accepted - rejected - pending example: pending detail: type: string example: Waiting for details description: Additional information that can be shared with the status. '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/applications/{applicationId}/financing-requests: post: tags: - Mortgage Financing Request summary: Place a new financing-request for a specific accepted application (dossier) description: Place a new financing request including all necessary information. operationId: addApplicationFinancingRequest parameters: - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' requestBody: description: Specific financing request fo the given application (dossier). required: true content: application/json: schema: $ref: '#/components/schemas/FinancingRequest' responses: '201': $ref: '#/components/responses/standard201' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/applications/{applicationId}/financing-requests/{financingRequestId}/required-information: get: tags: - Mortgage Financing Request summary: List all required documents / information for processing specific Financial request at FI description: All required documents for a specific FinancingRequestId can be retrieved herewith. operationId: listApplicationFinancingRequestRequiredInformation parameters: - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/financing_request_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: type: object properties: financingRequestId: type: string format: uuid example: 550e8400-e29b-41d4-a716-446655440000 documents: type: array items: $ref: '#/components/schemas/DocumentType' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/applications/{applicationId}/financing-requests/{financingRequestId}: get: tags: - Mortgage Financing Request summary: Get the details of a financing request description: Get a specific financing request based on the financingRequestId. operationId: getApplicationFinancingRequest parameters: - $ref: '#/components/parameters/cursor' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/financing_request_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' X-Next-Cursor: $ref: '#/components/headers/X-Next-Cursor' description: OK. content: application/json: schema: type: object required: - offerList properties: offerList: type: array items: $ref: '#/components/schemas/FinancingRequest' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/applications/{applicationId}/financing-requests/{financingRequestId}/offers: get: tags: - Mortgage Offers summary: List all binding offers for a given financing request description: Lists the offers for a transferred application and the corresponding financing request. operationId: listApplicationFinancingRequestOffers parameters: - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/financing_request_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: type: object properties: offerList: type: array items: $ref: '#/components/schemas/Offer' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/applications/{applicationId}/financing-requests/{financingRequestId}/offers/{offerId}: get: tags: - Mortgage Offers summary: Get the details of a specific offer description: Get the details of a specific offer for a specific placed application. operationId: getApplicationFinancingRequestOffer parameters: - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/financing_request_id' - $ref: '#/components/parameters/offer_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: type: object properties: offer: $ref: '#/components/schemas/Offer' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/offers/{offerId}/document: get: tags: - Mortgage Offers summary: Get document for the given offer description: Get document for the offer, this can be used by TPP to display offer content. operationId: getOfferDocument parameters: - $ref: '#/components/parameters/offer_id' - $ref: '#/components/parameters/language' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: type: object properties: document: $ref: '#/components/schemas/Document' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/applications/{applicationId}/financing-requests/{financingRequestId}/offers/{offerId}/required-information: get: tags: - Mortgage Offers summary: List all required documents / information for processing specific offer at FI description: Lists the required documents for the previously submitted case. Thus, the TPP knows which documents are needed for the later check. operationId: listApplicationFinancingRequestOfferRequiredInformation parameters: - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/financing_request_id' - $ref: '#/components/parameters/offer_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: type: object properties: offerId: type: string format: uuid example: 550e8400-e29b-41d4-a716-446655440000 documents: type: array items: $ref: '#/components/schemas/DocumentType' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/orders: post: tags: - Mortgage Order summary: Place a new order description: | Place a new order referencing a specific offerId and either an existing mortgage id (prolongation) or an application id (new mortgage) including all relevant information. operationId: addOrder parameters: - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' requestBody: description: Details of the order to be added. required: true content: application/json: schema: $ref: '#/components/schemas/Order' responses: '201': $ref: '#/components/responses/standard201' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/orders/{orderId}: get: tags: - Mortgage Order summary: Get the details of a specific placed order description: Get the details of a specific placed order. operationId: getOrder parameters: - $ref: '#/components/parameters/order_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: type: object properties: offer: $ref: '#/components/schemas/Order' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/orders/{orderId}/status: get: tags: - Mortgage Order summary: Get the current status of the order description: | Returns the current status of the order. An order can be in accepted rejected or pending status. In addition, further details regarding the status can be transferred. operationId: getOrderStatus parameters: - $ref: '#/components/parameters/order_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: type: object properties: status: type: string enum: - accepted - rejected - pending example: pending detail: type: string example: Waiting for details '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/orders/{orderId}/document: get: tags: - Mortgage Order summary: Get document for the given order description: Get document for given order, this can be used by TPP to display offer content. operationId: getOrderDocument parameters: - $ref: '#/components/parameters/order_id' - $ref: '#/components/parameters/language' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: OK. content: application/json: schema: type: object properties: document: $ref: '#/components/schemas/Document' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/{mortgageId}/offers: get: tags: - Mortgage Prolongation summary: Get all active offers for a specific tranche description: Get offer framework for the to be extended mortgage. operationId: listOffers parameters: - $ref: '#/components/parameters/cursor' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/mortgage_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' X-Next-Cursor: $ref: '#/components/headers/X-Next-Cursor' description: Paginated list of all offers for a specific expiring mortgage. content: application/json: schema: type: object required: - offerList properties: offerList: type: array items: $ref: '#/components/schemas/Offer' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' /mortgages/{mortgageId}/offers/{offerId}: get: tags: - Mortgage Prolongation summary: Get a specific offer for a specific tranche description: Get a specific offer for the to be extended mortgage. operationId: getOffer parameters: - $ref: '#/components/parameters/mortgage_id' - $ref: '#/components/parameters/offer_id' - $ref: '#/components/parameters/client_id' - $ref: '#/components/parameters/correlation' - $ref: '#/components/parameters/agent' responses: '200': headers: X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: Specific offer for a specific expiring mortgage. content: application/json: schema: type: object properties: offer: $ref: '#/components/schemas/Offer' '400': $ref: '#/components/responses/standard400' '401': $ref: '#/components/responses/standard401' '403': $ref: '#/components/responses/standard403' '404': $ref: '#/components/responses/standard404' '405': $ref: '#/components/responses/standard405' '500': $ref: '#/components/responses/standard500' '501': $ref: '#/components/responses/standard501' '503': $ref: '#/components/responses/standard503' components: schemas: Amortizations: description: Information about the amortization on mortgage or on tranche level. type: object properties: amortizationAccountNr: type: string description: The account number from which the amortization is paid. example: IE12BOFI90000112345678 amortizationAmount: $ref: '#/components/schemas/Amount' description: The amount of the periodic amortization. example: 27400 amortizationPeriodicity: type: string enum: - yearly - quarterly - monthly description: The periodicity the amortization is paid. example: quarterly amortizationStart: description: Start date of amortization. type: string format: date example: '2018-04-13' amortizationType: type: string enum: - direct - indirect description: The type of amortization. example: direct Amount: description: amount with currency. type: object required: - content - currency properties: content: description: amount given with fractional digits, the separator is a dot. type: string pattern: ^-?\d{1,14}(?:\.\d{1,3})?$ example: '235.45' currency: title: Currency description: ISO 4217 code. type: string pattern: ^[A-Z]{3}$ example: CHF AmountRange: description: Min and max amount with currency. type: object required: - currency - maxContent - minContent properties: currency: title: Currency description: ISO 4217 code. type: string pattern: ^[A-Z]{3}$ example: CHF maxContent: description: max amount given with fractional digits, the separator is a dot. type: string pattern: ^-?\d{1,14}(?:\.\d{1,3})?$ example: '5000000' minContent: description: min amount given with fractional digits, the separator is a dot. type: string pattern: ^-?\d{1,14}(?:\.\d{1,3})?$ example: '1000000' Applicant: description: Applicant information needed by the FI for creating a binding offer. type: object required: - applicantDetail - applicantId - applicantType properties: applicantDetail: description: personal information regarding the applicant. type: object properties: name: type: string maxLength: 70 description: Name of the applicant. example: Max surName: type: string maxLength: 70 description: Surname of the applicant. example: Muster address: $ref: '#/components/schemas/StructuredAddress' birthDate: description: Date format. type: string format: date example: '2018-04-13' maritalStatus: type: string example: married description: Martial status of the applicant. enum: - unmarried - married - divorced - widowed - registered-partnership - legally-separated - partnership-dissolved PropertyOwner: type: string example: 'yes' enum: - 'yes' - 'no' description: Is the applicant owner of the financed property? Yes/No. jobSituation: type: string example: employed description: Job situation of the applicant. enum: - employed - selfEmployed - unemployed - retired nationality: description: 2-Letter ISO 3166-2 Country Code. type: string pattern: ^[A-Z]{2}$ example: CH USPerson: type: boolean description: Is the applicant a US person. example: false email: type: string description: Email of the applicant. example: max.muster@domain.ch phone: type: string description: Phone number of the applicant. example: '+41443343456' solvencyRating: description: Solvency rating of the applicant e.g. CRIF. type: object required: - ratingValue - ratingSourceType properties: ratingValue: type: integer description: Solvency rating value. example: 420 ratingSourceType: type: string description: Provider of the solvency rating. example: crif enum: - crif ratingDate: description: Date of the solvency rating. type: string format: date example: '2018-04-13' applicantLanguage: type: string example: fr description: Preferred contact language of the applicant. enum: - de - fr - it - en gender: type: string enum: - male - female - other example: female description: Gender of the applicant. applicantId: type: string format: uuid description: UUID v4 of the applicant (to be defined by TPP). example: 576f8de3-6b30-4882-a7af-da2132a456cf applicantType: description: type of applicant. type: string example: individual enum: - individual - legal_entity fiApplicantId: type: string description: | ApplicantId of the applicant party defined by the financial institute, only applicable if known at the moment of the application. example: asd23f financialSituation: type: object description: the overall financial situation of a debtor. properties: income: type: array items: type: object required: - incomeType - amount properties: incomeType: $ref: '#/components/schemas/IncomeType' amount: $ref: '#/components/schemas/Amount' remark: type: string example: We need an example for such a remark incomeProvider: description: Income provider for each income or cost position can be transferred. type: string example: Employer AG liabilities: type: array items: type: object required: - liabilityType - amount properties: liabilityType: type: string example: mortgage description: Liability type. enum: - leasing - alimony - mortgage - loan - consumer_loan - other amount: $ref: '#/components/schemas/Amount' remark: type: string example: We need an example for such a remark liabilityProvider: description: Name of the liability provider or creditor. type: string example: Leasing Firm AG assets: type: array items: $ref: '#/components/schemas/Asset' residentialSituation: type: string enum: - home_owner - renter example: renter additionalProperties: type: array items: type: object required: - valueAdditionalProperty - propertyTypeAdditionalProperty properties: nameAdditionalProperty: type: string maxLength: 70 description: Name of the additional property. example: Orchard Villa, Holderstrasse 10 valueAdditionalProperty: $ref: '#/components/schemas/Amount' description: Value of the additional property. mortgageAmountAdditionalProperty: $ref: '#/components/schemas/Amount' propertyTypeAdditionalProperty: $ref: '#/components/schemas/PropertyType' usageTypeAdditionalProperty: $ref: '#/components/schemas/UsageType' Application: description: All static application information needed by the FI to create binding offers. type: object required: - mortgageType - propertyInformation - requestingParty properties: mortgageType: type: string description: Type of business. example: buy enum: - buy - replacement - construction_financing propertyInformation: $ref: '#/components/schemas/PropertyObject' requestingParty: $ref: '#/components/schemas/Party' applicationId: $ref: '#/components/schemas/ApplicationId' channelType: type: string enum: - advisor - direct description: The type of the channel the application was generated. example: advisor replacedTranches: description: Tranche to be replaced. type: array items: type: object properties: replacedTrancheAmount: $ref: '#/components/schemas/Amount' description: The amount of the replaced tranche. replacedTrancheExpiry: description: The expiry date of the replaced tranche. type: string format: date example: '2022-05-03' replacedTrancheIssuer: type: string description: The institute who has issued the replaced tranche. example: Credit Suisse replacementType: type: string description: 'NOT required when mortgage type is BUY, Values: entire, partial.' example: entire enum: - entire - partial tppAdvisorDetail: description: Personal information if the advisor of the TPP. type: object properties: name: type: string maxLength: 70 description: Name of the TPP advisor. example: Max surName: type: string maxLength: 70 description: Surname of the TPP advisor. example: Muster nameTpp: type: string maxLength: 70 description: Firm of the TPP advisor. example: Muster Finanz AG email: type: string description: Email of the TPP advisor. example: max.muster@domain.ch language: type: string example: fr description: Preferred contact language of the TPP advisor. enum: - de - fr - it - en phone: type: string description: phone of the TPP advisor. example: '+41443343456' address: $ref: '#/components/schemas/StructuredAddress' tppApplicationId: type: string description: The application alphanumeric identifier defined by TPP. pattern: ^[a-zA-Z0-9]{6,10}$ example: asd23f ApplicationId: title: Application id description: The application identifier (UUID v4) defined by FI. type: string format: uuid example: 4bf92636-14a0-4511-98e2-acfde576e644 Asset: description: 'Asset information: Array of all assets the applicant possesses, incl. the assets which will be used for the financial request.' type: object required: - amount - assetType properties: amount: $ref: '#/components/schemas/Amount' description: | The amount of the asset e.g. market value of fungible investment, existing retirement asset in pension fund, surrender value in life insurance assetType: $ref: '#/components/schemas/AssetType' assetProvider: $ref: '#/components/schemas/AssetProvider' insuranceSum: $ref: '#/components/schemas/Amount' description: The amount of the sum insured in life insurance. remark: type: string description: remark remark. example: We need an example for such a remark AssetProvider: description: | Asset provider for each asset, additional information must be transferred. E.g. in case the applicant owns an additional security of type insurance, insurance company name is provided type: object required: - name properties: name: type: string example: Credit Suisse description: Name of the asset provider. AssetType: description: Common set of asset types. type: string enum: - cash - gift - reservation_deposit - advancement_of_inheritance - third_pillar - third_pillar_3a - third_pillar_3b - pension_fund - third_party_loan - third_pillar_fund - third_pillar_fund_3b - third_pillar_fund_3a - fungible_investments - other - vested_benefit - life_insurance_3a - life_insurance_3b - unpledged_building_plot example: cash AssetUsageType: description: Common set of asset usage types. type: string enum: - pledged - withdraw example: pledged CaseId: title: Case id description: Uuid v4 of the mortgage case. type: string format: uuid example: 4bf92636-14a0-4511-98e2-acfde576e644 CommonErrorResponse: title: Common Error Response description: ... type: object properties: detail: description: .. type: array items: type: string example: List of detailed problem description with respect to the current request description: .. instance: type: string example: path/to/corresponding/resource description: .. title: type: string example: This is the general problem description description: .. type: $ref: '#/components/schemas/CommonErrorType' CommonErrorType: title: Common Error Type description: Error Types for commonErrorResponse. type: string enum: - /problems/INVALID_PAYLOAD - /problems/MALFORMED_PAYLOAD - /problems/INVALID_TOKEN - /problems/EXPIRED_TOKEN - /problems/INSUFFICIENT_PRIVILEGES - /problems/NO_ACCESS_TO_RESOURCE - /problems/RESOURCE_DOES_NOT_EXIST - /problems/RESOURCE_NOT_READY - /problems/RESOURCE_TOO_LARGE - /problems/WRONG_METHOD - /problems/OPERATION_NOT_ALLOWED - /problems/TECHNICAL_ERROR - /problems/NOT_IMPLEMENTED - /problems/SERVICE_UNAVAILABLE example: /problems/TECHNICAL_ERROR CommonResourceCreatedResponse: title: Resource created response description: Uuid v4 of the created resource. type: object required: - id properties: id: title: Shared id description: Uuid v4 of the created resource. type: string format: uuid example: 4bf92636-14a0-4511-98e2-acfde576e644 Condition: description: All details regarding the conditions for a specific mortgage product the FI offers. type: object required: - amortization - amountRange - conditionId - duration - interest - maturityDate - productIdRef properties: amortization: description: the amount of repayment. type: integer example: 1000 amountRange: $ref: '#/components/schemas/AmountRange' conditionId: description: ID of condition. type: string format: uuid example: ef737eb0-c0a7-4f44-bdeb-32ba9bd99327 duration: type: integer description: The duration in years. minimum: 0 maximum: 25 example: 5 interest: $ref: '#/components/schemas/Interest' maturityDate: description: Date format. type: string format: date example: '2018-04-13' productIdRef: type: string description: Reference to product ID. format: uuid example: 0b34cd1b-32a5-4bb7-bcc5-bf81f8f8aaf1 amortizations: $ref: '#/components/schemas/Amortizations' Document: description: Document containing information for given document type for given order. type: object required: - name properties: name: type: string example: MortgageOffer_WaimerANON_587b23d1-12a8-475a-968b-abee245e3393 description: Name of the document. content: type: string description: base64 Encoded Content. example: JVBERi0xLjQKJeLjz9MKMzEgMCBvYmoKPDwvQnl0ZVJhbmdl contentType: type: string description: Content type. example: application/octet-stream createDate: description: Date format. type: string format: date example: '2018-04-13' modifyDate: description: Date format. type: string format: date example: '2018-04-13' parentId: type: string format: uuid example: 2752ce81-5bf0-4991-89ac-87d6e7fd0c47 description: Id for parent object of given document. DocumentId: title: Document id description: Unique ID (uuid v4) of the document. type: string format: uuid example: 4bf92636-14a0-4511-98e2-acfde576e644 DocumentType: description: All supported document types. For the enum value tax_statement. Tax statement is required. type: string enum: - cash - gift - reservation_deposit - advancement_of_inheritance - third_pillar - pension_fund - third_party_loan - third_pillar_fund - fungible_investments - vested_benefit - life_insurance_3a - life_insurance_3b - tax_statement - lending_of_third_party_property - employment - self_employment - additional_income - pension_fund_income - ahv_income - fixed_expenses - dividend - publicly_notarized_purchase_contract - draft_purchase_contract - land_register_extract - official_estimation - building_insurance_certificate - professional_estimation - real_estate_documentation - situation_cadastral_plan - floor_plan - property_pictures_outside - property_pictures_inside - proof_of_interest - easements_contracts - owner_association - contract_for_the_establishment - mortgage_note - mortgage_note_erection - salary_certificate_month - salary_certificate_year - consent_form - debt_information - divorce_copy - building_plan - survey_copy - cubical_calculation - other example: tax_statement DocumentUpload: description: Document to upload with metadata. type: object required: - documentList properties: documentList: type: array items: type: object properties: filename: type: string example: customer_id.pdf filetype: type: string example: pdf documentId: type: string format: uuid example: 7f648f12-fd45-4930-6543-456hf5671c37 description: Document ID in uuid v4 format. filesize: type: integer example: 1024 description: The file size in bytes. uploaddate: description: Date format. type: string format: date example: '2018-04-13' statusInfo: description: Document status info. type: object required: - status properties: status: type: string example: pending enum: - accepted - rejected - pending default: pending description: Get the current status of the application. statusReason: type: string example: Additional information that can be shared with the status. description: The reason, of current status. Financing: description: Complete financing details of an application. type: object required: - amount properties: amount: $ref: '#/components/schemas/Amount' amortizations: $ref: '#/components/schemas/Amortizations' applicationIdRef: type: string format: uuid description: Uuid of the financing's corresponding application. example: 6e61ff5d-3ffd-4254-a77d-73cc25d35e92 financingId: type: string format: uuid description: Uuid of the financing. example: 6e61ff5d-3ffd-4254-a77d-73cc25d35e92 increaseAmount: $ref: '#/components/schemas/Amount' increasePurpose: type: string description: The purpose of the increase. example: renovation of the kitchen offerDate: description: Date format. type: string format: date example: '2018-04-13' publicCertDate: description: Date format. type: string format: date example: '2018-04-13' tranches: description: mortgage tranches. type: array items: $ref: '#/components/schemas/FinancingTranche' usedAssets: type: array description: used assets. items: $ref: '#/components/schemas/UsedAsset' FinancingRequest: description: Based on the application, several financing requests can be sent to the FI. type: object required: - amount - applicationId properties: amount: $ref: '#/components/schemas/Amount' applicationId: $ref: '#/components/schemas/ApplicationId' financingRequestId: $ref: '#/components/schemas/FinancingRequestId' increaseAmount: $ref: '#/components/schemas/Amount' increasePurpose: type: string description: The purpose of the increase. example: renovation of the kitchen publicCertDate: description: Date format. type: string format: date example: '2018-04-13' requestOfferType: description: Ding dong die Hex ist tot. type: string example: binding enum: - binding - indicative tranches: description: a mortgage amount is distributed in one or more tranches. type: array items: type: object properties: trancheId: type: string format: uuid description: Uuid of the tranche. example: 51b017e1-5e59-4b58-a0a0-c638c87db463 productId: $ref: '#/components/schemas/ProductId' productVariation: $ref: '#/components/schemas/ProductVariation' payOutDate: description: Date format. type: string format: date example: '2018-04-13' amount: $ref: '#/components/schemas/Amount' usedAssets: description: Assets being used for the financing request. type: array items: $ref: '#/components/schemas/UsedAsset' FinancingRequestId: title: Financing request id description: Uuid v4 of the financing request defined by FI. type: string format: uuid example: 4bf92636-14a0-4511-98e2-acfde576e644 FinancingTranche: description: Tranche of a financing. type: object required: - amount - interest - interestRateType - payoutDate properties: amount: $ref: '#/components/schemas/Amount' interest: $ref: '#/components/schemas/Interest' interestRateType: type: string description: type of interest rate. example: libor enum: - variable - libor - saron - fixed payoutDate: description: Date format. type: string format: date example: '2018-04-13' amortizations: $ref: '#/components/schemas/Amortizations' duration: type: integer description: duratin of the mortgage in years. example: 2 minimum: 1 maximum: 20 maturityDate: description: Date format. type: string format: date example: '2018-04-13' productIdRef: type: string format: uuid description: Uuid of the product. example: 6e61ff5d-3ffd-4254-a77d-73cc25d35e92 saronperiod: type: string description: The saron period. example: 3m enum: - 1m - 3m - 6m - 12m IncomeType: description: Common set of income types. For the enum value self_employment and dividend the 3 years avg is relevant. type: string enum: - employment_gross - employment_net - self_employment - self_employment_year-1 - self_employment_year-2 - self_employment_year-3 - bonus_year-1 - bonus_year-2 - bonus_year-3 - additional_income - child_allowance - asset_consumption_before_retirement - pension_fund_income - ahv_income - further_income_after_retirement - asset_consumption_after_retirement - fixed_expenses - dividend - leasing_payment - consumer_loan_payment - child_allowance_payment - rental_costs - costs_for_additional_properties example: employment_gross Interest: description: The current rate and optionally the referred base. type: object required: - currentRate properties: currentRate: type: number format: double description: | Interest rate in decimals. 2.45% would be sent as 0.0245. For flexible interest mortgage this would show the margin above interest. minimum: 0 maximum: 1 example: 0.5 base: type: number format: double description: Base rate upon margin is applied (e.g. for SARON). minimum: 0 maximum: 1 example: 0.5 Link: description: Object containing a link to an external resource and its description. type: object required: - url properties: url: description: The URL pointing to the resource. type: string format: uri minLength: 2 example: http://www.example.com/property.png description: description: A description of the resource. type: string example: The image shows the aerial view of the property name: description: The name of the resource. type: string example: Property image Mortgage: description: All relevant information regarding a specific mortgage. type: object required: - amountAtExpiry - durationType - interestBasis - interestRate - interestRateType - mortgageId - product - prolongable - propertyObjects - validFrom - validTo properties: amountAtExpiry: $ref: '#/components/schemas/Amount' durationType: type: integer description: The duration in years. minimum: 0 maximum: 25 example: 5 interestBasis: type: string description: we need a description. example: We need an example interestRate: type: string description: interest rate to be paid by debtor. example: '1.4' interestRateType: type: string description: type of interest rate. example: libor enum: - variable - libor - saron - fixed mortgageId: $ref: '#/components/schemas/MortgageId' description: Uuid v4 of the specific mortgage. product: $ref: '#/components/schemas/Product' prolongable: description: tells if a mortgage is prolongable or not. type: boolean example: false propertyObjects: type: array description: .. items: $ref: '#/components/schemas/PropertyObject' validFrom: description: Date format. type: string format: date example: '2018-04-13' validTo: description: Date format. type: string format: date example: '2018-04-13' amountToday: $ref: '#/components/schemas/Amount' offerDate: description: | The date when the offer is made by the FI. Optional field for use cases where no MortgageOffer object is used and therefore the offer date needs to be directly in Mortgage object. type: string format: date example: '2018-04-05' relatedMortgages: type: array description: .. items: $ref: '#/components/schemas/Mortgage' MortgageCase: description: A complete mortgage case including the application details. type: object required: - application - caseId - financing properties: application: $ref: '#/components/schemas/Application' caseId: $ref: '#/components/schemas/CaseId' financing: $ref: '#/components/schemas/Financing' remark: type: string example: All documents verified at TPP description: Remark/comment which can be added by TPP. MortgageId: title: Mortgage id description: Uuid v4 of the mortgage. type: string format: uuid example: 4bf92636-14a0-4511-98e2-acfde576e644 Offer: description: All relevant details describing the FI's offer for a mortgage product. type: object required: - financingRequestId - offerId - offerItems - totalAmount - validTo properties: financingRequestId: $ref: '#/components/schemas/FinancingRequestId' offerId: $ref: '#/components/schemas/OfferId' offerItems: description: .. type: array items: $ref: '#/components/schemas/OfferItem' totalAmount: $ref: '#/components/schemas/Amount' validTo: description: Date format. type: string format: date example: '2018-04-13' offerType: type: string description: type of offer (binding or indicative). example: binding enum: - binding - indicative OfferId: title: Offer id description: Uuid v4 of the specific order. type: string format: uuid example: 4bf92636-14a0-4511-98e2-acfde576e644 OfferItem: description: All relevant details of a specific item being part of an FI's offer for a mortgage product. type: object required: - offerItemId - product - trancheId properties: offerItemId: type: string format: uuid example: d452083f-8316-410d-a609-d49463687329 description: Uuid v4 of the specific offer item. product: $ref: '#/components/schemas/Product' trancheId: type: string format: uuid description: Uuid of the tranche. example: 51b017e1-5e59-4b58-a0a0-c638c87db463 conditions: description: .. type: array items: $ref: '#/components/schemas/Condition' Order: description: All information needed to choose a specific offer and place a binding order. type: object required: - offerId properties: offerId: $ref: '#/components/schemas/OfferId' description: uuid of offer. applicationId: $ref: '#/components/schemas/ApplicationId' description: ID of application. mortgageId: $ref: '#/components/schemas/MortgageId' description: uuid of mortgage. orderId: $ref: '#/components/schemas/OrderId' description: Uuid v4 of the order defined by FI. remark: type: string example: All documents verified at TPP description: Remark/comment which can be added by TPP. OrderId: title: Order id description: Uuid v4 of the order defined by FI. type: string format: uuid example: 4bf92636-14a0-4511-98e2-acfde576e644 Party: description: Links together the persons building the applicant party. type: object required: - personList properties: personList: description: .. type: array items: $ref: '#/components/schemas/Applicant' fiPrimaryApplicantId: type: string description: | ApplicantId for primary applicant of the applicant party defined by the financial institute, only applicable in case of multiple applicants and if known at the moment of the application. example: asd23f primaryApplicantId: title: Shared id description: ApplicantId for primary applicant of the applicant party. In case of multiple applicants this field is mandatory. type: string format: uuid example: 4bf92636-14a0-4511-98e2-acfde576e644 Product: description: All details regarding an FI's mortgage product. type: object required: - interestRateType - names - productId properties: interestRateType: type: string description: type of interest rate. example: libor enum: - variable - libor - saron - fixed names: type: array description: name of mortgage product. items: type: object properties: description: type: string description: Product name description. example: Fixed rate mortgage language: type: string description: Language of product name. example: fr enum: - de - fr - it - en productId: $ref: '#/components/schemas/ProductId' productVariations: type: array description: .. items: $ref: '#/components/schemas/ProductVariation' ProductId: title: Product id description: Uuid of the product. type: string format: uuid example: 4bf92636-14a0-4511-98e2-acfde576e644 ProductVariation: description: Product variation details. type: object properties: duration: type: integer description: The duration in years. minimum: 0 maximum: 25 example: 5 rate: type: number format: double description: The interest rate. minimum: 0 maximum: 1 example: 0.5 saronperiod: type: string description: The saron period. example: 3m enum: - 1m - 3m - 6m - 12m PropertyIdentifier: description: Property identification (register of real estate). type: object properties: EGID: type: string example: '191092250' description: Identifier of the property. EGRID: type: string example: CH480928387782 description: Identifier of land a property is built on. EWID: type: string example: '42' description: Identifier of the apartment. PropertyObject: description: | The representation of a real estate object, real estate register id (propertyIdentifier) is optional until otherwise required by law. type: object required: - address - propertyObjectId properties: address: $ref: '#/components/schemas/StructuredAddress' propertyObjectId: type: string description: The property object identifier defined by TPP. example: 9343dd26-4b54-4808-8978-538f8e869d0e buildingRight: type: object description: if a property is in building right, the buyer owner buy the property, not the ground the property is built on. properties: hasBuildingRight: type: boolean description: If the property is built in a building right true, else false. example: false buildingRightExpiry: description: Date when the building right expires. type: string format: date example: '2018-04-13' buildingRightRent: $ref: '#/components/schemas/Amount' description: Yearly payment for the building right. buildingRightCompensation: $ref: '#/components/schemas/Amount' description: Payment received at the building right expiry. buildingStandardBathroom: type: string enum: - premium - highlevel - basic - lowlevel description: Building standard of the sanitary installations. example: basic buildingStandardFloorCoverings: type: string enum: - premium - highlevel - basic - lowlevel description: Building standard of the floor coverings. example: basic buildingStandardKitchen: type: string enum: - premium - highlevel - basic - lowlevel description: Building standard of the kitchen. example: basic ceilingHight: type: string enum: - especially_high - middle - especially_low description: The ceiling hight in the rooms. example: middle classOfProperty: type: string enum: - main_residence - main_residence_with_use_restriction - second_residence - second_residence_with_use_restriction - rented_property - rented_property_with_use_restriction - other description: The class of property (Main residence, second residence, rented). example: main_residence collateralValue: $ref: '#/components/schemas/Amount' description: Value of the property as base for the securization applying the lowest value principle (Belehnungsbasis) estimation: type: object description: the estimation of the value of a property. properties: estimationId: type: string description: | ID of the property estimation to connect the done estimation in the core banking system with the estimation of the tpp in the external estimation tool. example: asd23f estimationSourceType: type: string example: iazi enum: - iazi - wup marketValue: $ref: '#/components/schemas/Amount' description: Estimated Market value of the property. statisticalPriceRangeMax: $ref: '#/components/schemas/Amount' description: Estimated statistical price range maximum. statisticalPriceRangeMin: $ref: '#/components/schemas/Amount' description: Estimated statistical price range minimum. yearlyRentalIncome: $ref: '#/components/schemas/Amount' description: Estimated rental income per year estimationDate: description: Date format. type: string format: date example: '2018-04-13' floorPlan: type: string enum: - efficient - average - inefficient description: The efficiency of the floor plan. example: average heatEmission: description: Type of the heat emission. type: array items: type: string enum: - floor - radiator - stove - other example: floor heatProduction: description: the way heat is generated within the building. type: array items: type: string enum: - oil - gas - biogas - wood - electric - geothermal_probe - heat_pump_water_water - heat_pump_air_water - district - district_fossil - solar_panel - solar_thermal_collector - block_type_thermal_power_station - block_type_thermal_power_station_bio description: Type of the heat production. example: gas investmentCost: $ref: '#/components/schemas/Amount' description: Total amount needed to pay object price and planned renovation (Total Anlagekosten) limitForLandEncumbrances: $ref: '#/components/schemas/Amount' description: The limit for land encumbrance according to Bundesgericht über das bäuerliche Bodenrecht, SR 211.412.11 (Belastungsgrenze BGBB) matrimonialPropertyScheme: type: string example: separateEstate enum: - jointEstate - separateEstate - contributionToJointlyAcquiredProperty description: Information how the property is owned. name: type: string description: User-defined property name. example: My Nice Property objectPrice: $ref: '#/components/schemas/Amount' description: Price paid to buy the property outsideConstructionZone: type: boolean description: If the property is outside of the construction zone. example: false propertyBuildingInformation: type: object description: The property building information. properties: livingSpace: type: object properties: livingSpaceInSqm: type: integer description: The area of the living space in quatermeter. example: 120 measurementStandard: type: string enum: - nla - gfa description: The measurement standard used to determine the living space (nla or gfa). example: nla roofFloorExpandable: type: boolean description: If the roof floor is expandable true, else false. example: false volumeIncludingGarageInhouse: type: integer description: The volume of the house including the inhouse garage (relevant for WuP). example: 1500 volumeIncludingAllGarages: type: integer description: The volume of the house including all inhouse and external garages and garage boxes (relevant for IAZI). example: 1620 landArea: type: integer description: The surface area of the land. example: 2000 environmentStandard: type: string enum: - high-level - basic - low-level description: The rating type. example: basic otherFeatures: type: array items: type: string enum: - barrier-free_living - automated_building_control - ventilation_system_without_minergie - indoor_pool - outdoor_pool - whirlpool_sauna - heated_conservatory - unheated_conservatory - security_system - chimney - passenger_elevator - freight_elevator description: Additional features and services. example: outdoor_pool houseType: type: string enum: - detached_house - semidetached_house - row_house - row_corner_house - terrace_house description: The type of the house. example: detached_house normType: type: string enum: - building_insurance - sia116 - sia416 - other description: The norm type. example: building_insurance propertyConstructionInformation: type: object description: The property construction information. properties: constructionYear: type: integer description: construction year. example: 1990 renovation: type: boolean description: If the property is renovated true, else false. example: false renovationYear: type: integer description: renovation year. example: 1990 default: 0 propertyRenovations: type: array items: type: object properties: refurbishmentComponentType: type: string enum: - total - interior_fittings_kitchen - interior_fittings_bathroom_sanitary - interior_fittings_floor_cover - interior_fittings_remaining - building_envelope_pitched_roof - building_envelope_flat_roof - building_services_heat_production - building_services_heat_emission - buildings_services_electrical_ventilation_elevator - work_on_surroundings - supporting_structure - building_envelope_windows - building_envelope_facade_balcony - interior_fittings - building_envelope - building_services description: | Type of Property Component which has been renovated. Please use consistently either the detailed Component types (e.g. interior_fittings_floor_cover) or the simple Component Types (e.g. interior_fittings). example: interior_fittings_floor_cover yearOfRenovation: type: integer description: renovation year. example: 2015 default: 0 renovationCost: $ref: '#/components/schemas/Amount' description: cost of renovation minergieStandardType: type: string enum: - none - minergie - minergie-p - minergie-eco - minergie-p-eco - minergie-a - minergie-a-eco description: The minergie standard. example: minergie-p BECCStandardType: type: string enum: - none - A - B - C - D - E - F - G description: Energy certificate from Cantons. example: B luxusFlag: type: string enum: - '0' - '0.5' - '1.0' description: | Used for object value calculation (e.g. IAZI) and indicates whether an object is luxury or not: - '0' = No - '0.5' = Partially - '1' = Yes Proposed Mapping of WuP-Values: - 1.0-4.0 => 0 (No) - 4.1-4.5 => 0.5 (Partially) - 4.6-5.0 => 1.0 (Yes) example: '0' constructionQualityType: $ref: '#/components/schemas/PropertyObjectRatingType' stateBuildingType: $ref: '#/components/schemas/PropertyObjectRatingType' propertyElements: type: object description: The property detail information such as rooms count, parking places. properties: numberOfRooms: type: number format: double description: The number of the rooms. example: 4.5 numberOfRoomsInGrannyFlat: type: number format: double description: The number of the rooms in the granny flat. example: 2.5 roomCountType: type: string enum: - kitchen_not_counted - kitchen_half_room - kitchen_full_room description: Reflects the type of the room count type. E.g. if the kitchen counts as full room. example: kitchen_full_room numberOfFamilyBathrooms: type: integer description: 'Separate shower and bathtub in the bathroom (optional: toilet).' example: 2 numberOfBathWC: type: integer description: Bath or shower, sink, toilet. example: 2 numberOfGuestWC: type: integer description: Separate, single toilet with wash basin. example: 2 numberOfExternalParking: type: integer description: The number of external parking spaces. example: 2 numberOfSeparateGarages: type: integer description: | The number of separated garages (covered parking spaces), which are located on the same property but are not included in the building volume of the house (separate building insurance policy). example: 2 numberOfExternalSeparateGarages: type: integer description: The number of separated garages (covered parking spaces). example: 2 numberOfAttachedGarages: type: integer description: | The number of garages which are attached to the house and which are included in the building volume of the house (don't have a separate building insurance policy). example: 2 numberOfUndergroundCarParks: type: integer description: The number of underground parking places. example: 2 propertyFlatInformation: type: object description: The property flat information. properties: numberOfFlats: type: integer description: The number of flats in the building. example: 10 numberOfFloors: type: integer description: The number of floors in the building. example: 4 stateApartmentType: $ref: '#/components/schemas/PropertyObjectRatingType' floor: type: integer description: The floor of the flat. example: 2 balconyOrTerraceArea: type: integer description: The area of the balcony or terrace in quatermeter. example: 20 livingSpace: type: object properties: livingSpaceInSqm: type: integer description: The area of the living space in quatermeter. example: 120 measurementStandard: type: string enum: - nla - gfa description: The measurement standard used to determine the living space (nla or gfa). example: nla multistorey: type: boolean description: If the flat is multistorey true, else false. example: false otherFeatures: type: array items: type: string enum: - coowned_garden_terrace_room - coowned_indoor_pool - coowned_outdoor_pool - whirlpool_sauna - heated_conservatory - unheated_conservatory - security_system - chimney - elevator_in_stairwell - elevator_into_apartment - barrier-free_living - automated_building_control - ventilation_system_without_minergie description: Additional features and services. example: coowned_outdoor_pool quote: type: integer description: The quote of the flat property against the whole building property. example: 120 apartmentType: type: string enum: - garden_flat - floor_flat - roof_flat - attic description: The type of the apartment (floor, garden level, storey). example: floor_flat buildingType: type: string enum: - multiple_family_house - terrace_house description: The type of the building (multiple_family_house, terrace_house). example: multiple_family_house locationInTheBuildingRating: $ref: '#/components/schemas/PropertyObjectRatingType' propertyIdentifier: $ref: '#/components/schemas/PropertyIdentifier' propertyLinks: description: A list of links to external resources related to the property. type: array items: $ref: '#/components/schemas/Link' propertyType: $ref: '#/components/schemas/PropertyType' publicNotarization: description: Date of public notarization. type: string format: date example: '2018-04-13' remarks: type: string description: Remark regarding the estimation. example: We need an example for such a remark renovationAmount: $ref: '#/components/schemas/Amount' description: Amount needed to pay the planned renovation (Renovationsbetrag) transferOfOwnershipDate: description: When the property will be fully transferred to the new owner. type: string format: date example: '2018-04-13' usageType: $ref: '#/components/schemas/UsageType' valueRelevantServitudes: type: boolean description: If the property has servitudes true, else false. example: false PropertyObjectRatingType: description: The rating type. type: string enum: - bad - bad-medium - medium - medium-good - good - good-verygood - verygood example: good PropertyType: description: The type of property. type: string enum: - single_family_house - condominium - vacation_house - vacation_condominium - agricultural_farm - 2or3_family_house - multi_family_house - residential_building_plot - building_plot_other - mixed_property - commercial_condominium - office_building - industrial_building - special_object example: single_family_house StructuredAddress: title: Structured Address description: structured address. type: object required: - country - postCode - streetName - townName properties: country: type: string maxLength: 2 example: CH description: a political area, surrounded by borders, very often a natural border such as a river or a mountain. postCode: type: string maxLength: 16 description: zip code. example: CH-2501 streetName: type: string maxLength: 70 example: Rue de la gare description: Name of street. townName: type: string maxLength: 35 example: Biel description: you guessed it, the name of the town. buildingNumber: type: string maxLength: 16 example: 24A description: number of building. UsageType: description: 'The type of usage of the property: self, let.' type: string enum: - self - let example: self UsedAsset: description: | Asset used by an applicant: Array of all assets which will be used for the financial request. At least, all of these used assets must also be recorded in the array of assets in the financial situation of one applicant. type: object required: - amount - applicantId - assetType properties: amount: $ref: '#/components/schemas/Amount' applicantId: type: string format: uuid description: UUID v4 of the applicant (existing applicant within the current application). example: 576f8de3-6b30-4882-a7af-da2132a456cf assetType: $ref: '#/components/schemas/AssetType' assetProvider: $ref: '#/components/schemas/AssetProvider' insuranceSum: $ref: '#/components/schemas/Amount' description: The amount of the sum insured in life insurance. usageType: $ref: '#/components/schemas/AssetUsageType' responses: standard201: description: created. content: application/json: schema: $ref: '#/components/schemas/CommonResourceCreatedResponse' headers: location: schema: type: string format: uri description: | In the location header of the response you will find the URI of the newly created resource. With a GET call to this address you can retrieve a representation of the new product. X-Correlation-ID: schema: type: string description: Reflects the ID (set by the caller) from the request. standard400: headers: Content-Type: $ref: '#/components/headers/Content-Type' Content-Language: $ref: '#/components/headers/Content-Language' X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: | Bad Request - The server cannot or will not process the request due to something that is perceived to be a client error as malformed request syntax. content: application/problem+json: schema: $ref: '#/components/schemas/CommonErrorResponse' standard401: headers: Content-Type: $ref: '#/components/headers/Content-Type' Content-Language: $ref: '#/components/headers/Content-Language' X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: Unauthorized - The request has not been applied because it lacks valid authentication credentials for the target resource. content: application/problem+json: schema: $ref: '#/components/schemas/CommonErrorResponse' standard403: headers: Content-Type: $ref: '#/components/headers/Content-Type' Content-Language: $ref: '#/components/headers/Content-Language' X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: Forbidden - The server understood the request but refuses to authorize it. content: application/problem+json: schema: $ref: '#/components/schemas/CommonErrorResponse' standard404: headers: Content-Type: $ref: '#/components/headers/Content-Type' Content-Language: $ref: '#/components/headers/Content-Language' X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: | Not Found - The origin server did not find a current representation for the target resource or is not willing to disclose that one exists. content: application/problem+json: schema: $ref: '#/components/schemas/CommonErrorResponse' standard405: headers: Content-Type: $ref: '#/components/headers/Content-Type' Content-Language: $ref: '#/components/headers/Content-Language' X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: | Method Not Allowed - The method received in the request-line is known by the origin server but not supported by the target resource. content: application/problem+json: schema: $ref: '#/components/schemas/CommonErrorResponse' standard500: headers: Content-Type: $ref: '#/components/headers/Content-Type' Content-Language: $ref: '#/components/headers/Content-Language' X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: Internal Server Error - The server encountered an unexpected condition that prevented it from fulfilling the request. content: application/problem+json: schema: $ref: '#/components/schemas/CommonErrorResponse' standard501: headers: Content-Type: $ref: '#/components/headers/Content-Type' Content-Language: $ref: '#/components/headers/Content-Language' X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: Not Implemented - The server does not support the functionality required to fulfill the request. content: application/problem+json: schema: $ref: '#/components/schemas/CommonErrorResponse' standard503: headers: Content-Type: $ref: '#/components/headers/Content-Type' Content-Language: $ref: '#/components/headers/Content-Language' X-Correlation-ID: $ref: '#/components/headers/X-Correlation-ID' description: Service Unavailable - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance. content: application/problem+json: schema: $ref: '#/components/schemas/CommonErrorResponse' parameters: agent: in: header name: User-Agent description: Name and version of the of the Client software. required: true schema: type: string application_id: in: path name: applicationId description: Uuid v4 of the application request. required: true schema: $ref: '#/components/schemas/ApplicationId' case_id: in: path name: caseId description: Uuid v4 of a specific existing mortgage case. required: true schema: $ref: '#/components/schemas/CaseId' client_id: in: header name: X-CorAPI-Client-ID description: ID of the client forwarded to the provider. required: true schema: type: string correlation: in: header name: X-Correlation-ID description: Unique ID (defined by the caller) which will be reflected back in the response. required: true schema: type: string cursor: in: query name: cursor description: Optional parameter for pagination. An opaque string value used for pagination. required: false schema: type: string example: cursorIDxyz document_id: in: path name: documentId description: Unique ID (uuid v4) of the document. required: true schema: $ref: '#/components/schemas/DocumentId' duration: in: query name: duration description: The type of duration (for filtering). schema: type: integer minimum: 1 maximum: 20 example: 10 expiring: in: query name: expiring description: Whether or not the mortgage is qualified for being prolonged, i.e., expiring soon or already expired (for filtering). schema: type: boolean example: true financing_request_id: in: path name: financingRequestId description: Uuid v4 of the financing request. required: true schema: $ref: '#/components/schemas/FinancingRequestId' interest: in: query name: interest description: The interest (for filtering). schema: type: string interest_rate_type: in: query name: interest_rate_type description: The type of the interest rates (for filtering). schema: type: string example: saron enum: - variable - libor - saron - fixed language: in: query name: language description: Language of Document content. required: true schema: type: string enum: - de - fr - it - en example: fr limit: in: query name: limit description: Optional parameter for pagination. Maximum number of entries to be returned. required: false schema: type: integer format: int32 example: 25 minimum: 1 mortgage_id: in: path name: mortgageId description: Uuid v4 of a specific existing mortgage. required: true schema: $ref: '#/components/schemas/MortgageId' offer_id: in: path name: offerId description: Uuid v4 of the offer. required: true schema: $ref: '#/components/schemas/OfferId' order_id: in: path name: orderId description: Uuid v4 of an order. required: true schema: $ref: '#/components/schemas/OrderId' product_id: in: path name: productId description: A product's uuid v4. required: true schema: $ref: '#/components/schemas/ProductId' headers: Content-Language: description: Response language - always en. schema: type: string Content-Type: description: application/problem+json; charset=utf-8 according to RFC7807. schema: type: string X-Correlation-ID: description: Client defined ID from request to correlates HTTP requests between a client and server. schema: type: string example: f058ebd6-02f7-4d3f-942e-904344e8cde5 X-Next-Cursor: description: An opaque string value, or an empty string if there are no more results. schema: type: string example: cursorIDxyz securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-Key OAuth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://example.com/oauth/authorize tokenUrl: https://example.com/oauth/token scopes: read: Grants read access write: Grants write access