Oper Simulators API
The Simulators API from Oper — 15 operation(s) for simulators.
The Simulators API from Oper — 15 operation(s) for simulators.
openapi: 3.0.3
info:
title: Oper Agent Documents Simulators API
version: ''
tags:
- name: Simulators
paths:
/api/simulators/calculate/:
post:
operationId: api_simulators_calculate_create
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AdvisorMortgageSimulator'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AdvisorMortgageSimulator'
multipart/form-data:
schema:
$ref: '#/components/schemas/AdvisorMortgageSimulator'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdvisorMortgageSimulator'
description: ''
security:
- jwtAuth: []
tags:
- Simulators
/api/simulators/default-products/:
post:
description: "The DynamicProductLiteViewSet provides a way to fetch the list of available products by providing loan request data\n as input since no actual LR will exist at the time of calling this in Advisor Simulator v2.\nIt is used to select products to add to an offer as product items.\n\nThe list is a multiplication of the active ProductVersions with a start date of at least today and\nthe allowed variabilities configured for the product.\nAs an example:\n2 Products (A & B) with each one version\nProduct A has 2 allowed variabilities (fix and 5-5-5)\nProduct B has 1 allowed variabilities (fix)\nThe view will return 3 results\nIf product A has 2 versions that have a start date of at least today, the view will return 5 results.\n\nNext to the product details, the view runs the acceptance rules and provides the result in the errors attribute.\n\nDeveloper notes:\nThe logic used in this view and its related code assumes that there is no offer or product items\nto base calculations on.\n\nYou can define the duration you want to calculate the products for by setting the query params min_duration\nand max_duration to an equal value. Otherwise, those values are only used to filter and the default duration\non the product version is used in the calculations.,\n\nInputs will be sent in the body of the POST request:\n{\n \"loan_amount\": decimal,\n \"cash_own_funds\": decimal,\n \"bridge_loan_amount\": decimal,\n \"realty_price\": decimal,\n \"building_costs\": decimal,\n \"price_of_land\": decimal,\n \"total_renovation_costs\": decimal,\n \"cost_vat\": decimal,\n \"additional_financing_needs\": decimal,\n \"region\": {\n \"id\": int,\n \"definition\": \"str\"\n },\n \"is_main_first_residence\": boolean,\n \"venal_value_after\": decimal,\n \"loan_purposes\": [\n {\n \"id\": int,\n \"definition\": \"str\"\n }\n ]\n}\n\nAs inputs we will take known data from the simulator and construct LoanRequest and Realty objects, which will then\nbe used to initialize DataHandlers in Serializer context. Then the serializer will proceed with rate calculations.\nThis serializer won't be running acceptance criteria and will not have the results in the data."
operationId: api_simulators_default_products_create
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DynamicProductLite'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/DynamicProductLite'
multipart/form-data:
schema:
$ref: '#/components/schemas/DynamicProductLite'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/DynamicProductLite'
description: ''
security:
- jwtAuth: []
tags:
- Simulators
/api/simulators/discounts/:
get:
operationId: api_simulators_discounts_list
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/BaseProductDiscountsSimulator'
type: array
description: ''
security:
- jwtAuth: []
tags:
- Simulators
post:
operationId: api_simulators_discounts_create
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BaseProductDiscountsSimulator'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/BaseProductDiscountsSimulator'
multipart/form-data:
schema:
$ref: '#/components/schemas/BaseProductDiscountsSimulator'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BaseProductDiscountsSimulator'
description: ''
security:
- jwtAuth: []
tags:
- Simulators
/api/simulators/mortgage/advisor/client-upload-document-types/:
get:
description: Informative document types
operationId: api_simulators_mortgage_advisor_client_upload_document_types_list
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/DocumentType'
type: array
description: ''
security:
- jwtAuth: []
tags:
- Simulators
/api/simulators/mortgage/advisor/client-upload-document-types/{id}/:
get:
description: Informative document types
operationId: api_simulators_mortgage_advisor_client_upload_document_types_retrieve
parameters:
- description: A unique integer value identifying this Document Type.
in: path
name: id
required: true
schema:
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentType'
description: ''
security:
- jwtAuth: []
tags:
- Simulators
/api/simulators/mortgage/advisor/convert/:
post:
description: Convert a simulation to Loan Request
operationId: api_simulators_mortgage_advisor_convert_create
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConvertSimulationToLoanRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ConvertSimulationToLoanRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/ConvertSimulationToLoanRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/ConvertLoanRequestSummary'
description: ''
security:
- jwtAuth: []
tags:
- Simulators
/api/simulators/mortgage/advisor/products/:
post:
description: "The DynamicProductLiteViewSet provides a way to fetch the list of available products by providing loan request data\n as input since no actual LR will exist at the time of calling this in Advisor Simulator v2.\nIt is used to select products to add to an offer as product items.\n\nThe list is a multiplication of the active ProductVersions with a start date of at least today and\nthe allowed variabilities configured for the product.\nAs an example:\n2 Products (A & B) with each one version\nProduct A has 2 allowed variabilities (fix and 5-5-5)\nProduct B has 1 allowed variabilities (fix)\nThe view will return 3 results\nIf product A has 2 versions that have a start date of at least today, the view will return 5 results.\n\nNext to the product details, the view runs the acceptance rules and provides the result in the errors attribute.\n\nDeveloper notes:\nThe logic used in this view and its related code assumes that there is no offer or product items\nto base calculations on.\n\nYou can define the duration you want to calculate the products for by setting the query params min_duration\nand max_duration to an equal value. Otherwise, those values are only used to filter and the default duration\non the product version is used in the calculations.,\n\nInputs will be sent in the body of the POST request:\n{\n \"loan_amount\": decimal,\n \"cash_own_funds\": decimal,\n \"bridge_loan_amount\": decimal,\n \"realty_price\": decimal,\n \"building_costs\": decimal,\n \"price_of_land\": decimal,\n \"total_renovation_costs\": decimal,\n \"cost_vat\": decimal,\n \"additional_financing_needs\": decimal,\n \"region\": {\n \"id\": int,\n \"definition\": \"str\"\n },\n \"is_main_first_residence\": boolean,\n \"venal_value_after\": decimal,\n \"loan_purposes\": [\n {\n \"id\": int,\n \"definition\": \"str\"\n }\n ]\n}\n\nAs inputs we will take known data from the simulator and construct LoanRequest and Realty objects, which will then\nbe used to initialize DataHandlers in Serializer context. Then the serializer will proceed with rate calculations.\nThis serializer won't be running acceptance criteria and will not have the results in the data."
operationId: api_simulators_mortgage_advisor_products_create
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DynamicProductLite'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/DynamicProductLite'
multipart/form-data:
schema:
$ref: '#/components/schemas/DynamicProductLite'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/DynamicProductLite'
description: ''
security:
- jwtAuth: []
tags:
- Simulators
/api/simulators/mortgage/advisor/simulations/:
get:
description: A ViewSet mixin that parametrizes DRF methods over roles
operationId: api_simulators_mortgage_advisor_simulations_list
parameters:
- in: query
name: analyst
schema:
type: integer
- in: query
name: loan_request
schema:
type: integer
- in: query
name: obsolete
schema:
type: boolean
- description: Which field to use when ordering the results.
in: query
name: ordering
required: false
schema:
type: string
- description: A page number within the paginated result set.
in: query
name: page
required: false
schema:
type: integer
- description: Number of results to return per page.
in: query
name: page_size
required: false
schema:
type: integer
- description: A search term.
in: query
name: search
required: false
schema:
type: string
- in: query
name: source
schema:
type: string
- in: query
name: status
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedReducedMortgageSimulationResultList'
description: ''
tags:
- Simulators
post:
description: A ViewSet mixin that parametrizes DRF methods over roles
operationId: api_simulators_mortgage_advisor_simulations_create
responses:
'201':
description: No response body
tags:
- Simulators
/api/simulators/mortgage/advisor/simulations/clean-up/:
post:
description: A ViewSet mixin that parametrizes DRF methods over roles
operationId: api_simulators_mortgage_advisor_simulations_clean_up_create
responses:
'200':
description: No response body
tags:
- Simulators
/api/simulators/mortgage/advisor/simulations/{id}/:
delete:
description: A ViewSet mixin that parametrizes DRF methods over roles
operationId: api_simulators_mortgage_advisor_simulations_destroy
parameters:
- description: A unique integer value identifying this Mortgage Simulation.
in: path
name: id
required: true
schema:
type: integer
responses:
'204':
description: No response body
tags:
- Simulators
get:
description: A ViewSet mixin that parametrizes DRF methods over roles
operationId: api_simulators_mortgage_advisor_simulations_retrieve
parameters:
- description: A unique integer value identifying this Mortgage Simulation.
in: path
name: id
required: true
schema:
type: integer
responses:
'200':
description: No response body
tags:
- Simulators
patch:
description: A ViewSet mixin that parametrizes DRF methods over roles
operationId: api_simulators_mortgage_advisor_simulations_partial_update
parameters:
- description: A unique integer value identifying this Mortgage Simulation.
in: path
name: id
required: true
schema:
type: integer
responses:
'200':
description: No response body
tags:
- Simulators
put:
description: A ViewSet mixin that parametrizes DRF methods over roles
operationId: api_simulators_mortgage_advisor_simulations_update
parameters:
- description: A unique integer value identifying this Mortgage Simulation.
in: path
name: id
required: true
schema:
type: integer
responses:
'200':
description: No response body
tags:
- Simulators
/api/simulators/mortgage/advisor/simulations/{id}/remove/:
delete:
description: A ViewSet mixin that parametrizes DRF methods over roles
operationId: api_simulators_mortgage_advisor_simulations_remove_destroy
parameters:
- description: A unique integer value identifying this Mortgage Simulation.
in: path
name: id
required: true
schema:
type: integer
responses:
'204':
description: No response body
tags:
- Simulators
/api/simulators/mortgage/advisor/simulations/{id}/sync-simulations/:
post:
description: A ViewSet mixin that parametrizes DRF methods over roles
operationId: api_simulators_mortgage_advisor_simulations_sync_simulations_create
parameters:
- description: A unique integer value identifying this Mortgage Simulation.
in: path
name: id
required: true
schema:
type: integer
responses:
'200':
description: No response body
tags:
- Simulators
/api/simulators/mortgage/client/:
post:
operationId: api_simulators_mortgage_client_create
responses:
'200':
description: No response body
security:
- jwtAuth: []
- {}
tags:
- Simulators
/api/simulators/offer/:
post:
operationId: api_simulators_offer_create
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateSimulatorOffer'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UpdateSimulatorOffer'
multipart/form-data:
schema:
$ref: '#/components/schemas/UpdateSimulatorOffer'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateSimulatorOffer'
description: ''
security:
- jwtAuth: []
tags:
- Simulators
/api/simulators/offers/:
post:
operationId: api_simulators_offers_create
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GenerateSimulatorOffers'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/GenerateSimulatorOffers'
multipart/form-data:
schema:
$ref: '#/components/schemas/GenerateSimulatorOffers'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GenerateSimulatorOffers'
description: ''
security:
- jwtAuth: []
tags:
- Simulators
components:
schemas:
Explanation:
properties:
explanation:
type: string
language:
$ref: '#/components/schemas/Language'
required:
- explanation
- language
type: object
MortgageSimulatorMonthlyPaymentEstimation:
properties:
duration:
minimum: 0
nullable: true
type: integer
item:
allOf:
- $ref: '#/components/schemas/MortgageSimulatorMonthlyPaymentEstimationFinancialPlanLoanAmountItem'
nullable: true
monthly_installment:
format: double
minimum: 0
nullable: true
type: number
rate:
format: double
minimum: 0
nullable: true
type: number
type: object
NestedBaseRate:
properties:
id:
readOnly: true
type: integer
percentage:
readOnly: true
type: string
rate:
format: double
type: number
variability:
$ref: '#/components/schemas/Variability'
required:
- id
- percentage
- rate
- variability
type: object
LandPurchaseType:
description: Can be managed at /resources/land-purchase-type
properties:
definition:
type: string
id:
type: integer
order:
readOnly: true
type: integer
required:
- definition
- id
- order
type: object
Phone:
properties:
country_code:
$ref: '#/components/schemas/PhoneCountryCode'
id:
readOnly: true
type: integer
value:
maxLength: 32
type: string
required:
- country_code
- id
- value
type: object
ReducedClientProfileWithContactInformation:
description: "Baseclass for Reduced serializers.\n\nWill validate whether the objects exists, and returns the instance in to_internal_value\nSubclasses must implement Meta with at least the model and field attributes\n\nRaises\n------\n Validations errors if the object doesn't exist\n OperBadConfigurationException if the model isn't set"
properties:
emails:
items:
$ref: '#/components/schemas/Profile2Email'
readOnly: true
type: array
first_name:
readOnly: true
type: string
id:
type: integer
last_name:
readOnly: true
type: string
phone_numbers:
items:
$ref: '#/components/schemas/Profile2Phone'
readOnly: true
type: array
required:
- emails
- first_name
- id
- last_name
- phone_numbers
type: object
RealtyPurpose:
description: Can be managed at /resources/realty-purpose
properties:
definition:
type: string
id:
type: integer
order:
readOnly: true
type: integer
required:
- definition
- id
- order
type: object
PhoneCountryCode:
description: Can be managed at /resources/phone-country-code
properties:
country:
readOnly: true
type: string
definition:
type: string
id:
type: integer
order:
readOnly: true
type: integer
required:
- country
- definition
- id
- order
type: object
MortgageSimulationStatus:
description: Can be managed at /resources/mortgage-simulation-status
properties:
definition:
type: string
id:
type: integer
order:
readOnly: true
type: integer
required:
- definition
- id
- order
type: object
Periodicity:
description: Can be managed at /resources/periodicity
properties:
definition:
type: string
id:
type: integer
order:
readOnly: true
type: integer
required:
- definition
- id
- order
type: object
DiscountSimulator:
properties:
discounts:
items:
$ref: '#/components/schemas/Discount2ndLevel'
type: array
ignore_childs:
default: false
type: boolean
is_corrected:
default: false
type: boolean
is_outdated:
default: false
type: boolean
is_selected:
default: false
type: boolean
is_valid:
default: true
type: boolean
max_discounts_allowed:
type: integer
name:
type: string
required:
- discounts
- name
type: object
MortgageSimulatorRenovationCost:
properties:
amount:
format: double
minimum: 0
type: number
id:
nullable: true
type: integer
is_green_renovations:
nullable: true
type: boolean
type:
$ref: '#/components/schemas/RenovationType'
required:
- amount
- type
type: object
LiabilityType:
description: Can be managed at /resources/liability-type
properties:
category:
readOnly: true
type: string
color:
readOnly: true
type: string
definition:
type: string
id:
type: integer
is_mandatory:
type: boolean
is_mandatory_in_simulation:
type: boolean
order:
readOnly: true
type: integer
required:
- category
- color
- definition
- id
- order
type: object
AdvisorMortgageSimulatorConvertOffer:
properties:
items:
items:
$ref: '#/components/schemas/AdvisorMortgageSimulatorConvertProductItem'
type: array
required:
- items
type: object
AdvisorMortgageSimulatorConvertProductItem:
properties:
acceptance_rules:
items:
additionalProperties: {}
type: object
readOnly: true
type: array
amortization:
format: double
type: number
amortization_mensuality:
format: double
readOnly: true
type: number
amount:
format: double
type: number
aprc:
format: double
readOnly: true
type: number
bandwidth_config:
additionalProperties: {}
nullable: true
readOnly: true
type: object
base_rate:
format: double
type: number
cost_file:
format: double
readOnly: true
type: number
costs:
items:
$ref: '#/components/schemas/ProductItemCost'
readOnly: true
type: array
discounts:
items:
$ref: '#/components/schemas/DiscountSimulator'
type: array
discounts_rate:
format: double
readOnly: true
type: number
duration:
minimum: 0
type: integer
end_amount:
format: double
readOnly: true
type: number
id:
type: integer
interest_rate:
default: 0.0
format: double
type: number
interest_rate_overridden:
default: false
type: boolean
internal_reference:
readOnly: true
type: string
is_amount_overridden:
default: false
type: boolean
max_amortization:
format: double
readOnly: true
type: number
max_amortization_period:
readOnly: true
type: integer
max_duration:
format: double
readOnly: true
type: number
min_duration:
format: double
readOnly: true
type: number
pricing_sheet:
allOf:
- $ref: '#/components/schemas/PricingSheet'
nullable: true
principal_delta:
format: double
readOnly: true
type: number
product:
$ref: '#/components/schemas/ReducedProductVersion'
product_version_id:
type: integer
quality_adjustments:
readOnly: true
scoring_rate:
format: double
type: number
severity:
$ref: '#/components/schemas/SeverityType'
success:
readOnly: true
type: boolean
total_amount_to_reimburse:
format: double
nullable: true
type: number
total_costs:
format: double
readOnly: true
type: number
total_interest:
format: double
readOnly: true
type: number
total_interest_mensuality:
format: double
readOnly: true
type: number
total_payback_amount:
format: double
readOnly: true
type: number
variability:
$ref: '#/components/schemas/Variability'
required:
- acceptance_rules
- amortization
- amortization_mensuality
- amount
- aprc
- bandwidth_config
- cost_file
- costs
- discounts_rate
- duration
- end_amount
- id
- internal_reference
- max_amortization
- max_amortization_period
- max_duration
- min_duration
- principal_delta
- product
- product_version_id
- quality_adjustments
- severity
- success
- total_costs
- total_interest
- total_interest_mensuality
- total_payback_amount
- variability
type: object
AnnualizationMethod:
description: Can be managed at /resources/annualization-method
properties:
definition:
type: string
id:
type: integer
order:
readOnly: true
type: integer
required:
- definition
- id
- order
type: object
MortgageSimulatorCollateral:
properties:
collateral_amount:
format: double
nullable: true
type: number
collateral_purpose:
allOf:
- $ref: '#/components/schemas/RealtyPurpose'
nullable: true
credit_provider:
allOf:
- $ref: '#/components/schemas/ReducedCreditProvider'
nullable: true
has_existing_loan:
default: false
type: boolean
mortgage_inscription_start_date:
format: date
nullable: true
type: string
mortgage_security_type:
allOf:
- $ref: '#/components/schemas/MortgageSecurityType'
nullable: true
original_loan_amount:
format: double
nullable: true
type: number
realty_type:
allOf:
- $ref: '#/components/schemas/RealtyType'
nullable: true
realty_usage_type:
allOf:
- $ref: '#/components/schemas/RealtyUsageType'
nullable: true
type: object
Profile2Address:
properties:
address_type:
allOf:
- $ref: '#/components/schemas/ContactType'
nullable: true
box:
type: string
building:
type: string
city:
type: string
country:
$ref: '#/components/schemas/Country'
floor:
type: string
heading:
exclusiveMaximum: true
exclusiveMinimum: true
format: double
maximum: 100000
minimum: -100000
nullable: true
type: number
house_number:
type: string
latitude:
exclusiveMaximum: true
exclusiveMinimum: true
format: double
maximum: 100000
minimum: -100000
nullable: true
type: number
longitude:
exclusiveMaximum: true
exclusiveMinimum: true
format: double
maximum: 100000
minimum: -100000
nullable: true
type: number
pitch:
exclusiveMaximum: true
exclusiveMinimum: true
format: double
maximum: 100000
minimum: -100000
nullable: true
type: number
staircase:
type: string
street:
type: string
street_type:
allOf:
- $ref: '#/components/schemas/StreetType'
nullable: true
zip_code:
type: string
zoom:
exclusiveMaximum: true
exclusiveMinimum: true
format: double
maximum: 100000
minimum: -100000
nullable: true
type: number
required:
- city
- country
- street
- zip_code
type: object
MortgageSimulatorProductsSearchFilters:
properties:
credit_provider:
minimum: 1
nullable: true
type: integer
loan_type:
maxLength: 128
nullable: true
type: string
max_duration:
maximum: 320
minimum: 1
nullable: true
type: integer
min_duration:
maximum: 320
minimum: 1
nullable: true
type: integer
product_type:
maxLength: 128
nullable: true
type: string
variability:
maxLength: 128
nullable: true
type: string
type: object
MortgageSimulatorRelatedRealties:
properties:
address:
allOf:
- $ref: '#/components/schemas/NonRequiredAddress'
nullable: true
epc_before_renovations:
minimum: 0
nullable: true
type: integer
is_collateral:
nullable: true
type: boolean
realty_type:
allOf:
- $ref: '#/components/schemas/RealtyType'
nullable: true
value_of_the_realty:
format: double
nullable: true
type: number
type: object
StreetType:
description: Can be managed at /resources/street-type
properties:
definition:
type: string
id:
type: integer
order:
readOnly: true
type: integer
required:
- definition
- id
- order
type: object
Country:
description: Can be managed at /resources/country
properties:
definition:
type: string
id:
type: integer
order:
readOnly: true
type: integer
required:
- definition
- id
- order
type: object
RealtyType:
description: Can be managed at /resources/realty-type
properties:
definition:
type: string
id:
type: integer
order:
readOnly: true
type: integer
required:
- definition
- id
- order
type: object
ParameterType:
description: Can be managed at /resources/parameter-type
properties:
definition:
type: string
id:
type: integer
order:
readOnly: true
type: int
# --- truncated at 32 KB (115 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/oper/refs/heads/main/openapi/oper-simulators-api-openapi.yml