OpenAPI Specification
openapi: 3.0.3
info:
title: Oper Credits Agent Documents Webhooks API
version: ''
description: Your Webhooks tag description
tags:
- name: Webhooks
description: Your Webhooks tag description
paths:
/your-webhook-endpoint:
post:
tags:
- Webhooks
summary: Your endpoint implementation for handling Oper Connect's webhooks
description: This path represents the path to your API implementation of the end point that is configured in Oper Connect. It describes what Oper Connect will send to your endpoint, and what it expects in response.
requestBody:
description: Post information about the loan request
content:
application/json:
schema:
discriminator:
propertyName: payload_type
mapping:
loan_request: '#/components/schemas/LoanRequestEvent'
loan_request_data_connection: '#/components/schemas/LoanRequestDataConnectionEvent'
client_onboarding: '#/components/schemas/ClientOnboardingEvent'
realty_valuation: '#/components/schemas/RealtyValuationEvent'
loan_request_status: '#/components/schemas/LoanRequestStatusEvent'
insurance_simulation: '#/components/schemas/InsuranceSimulationEvent'
oneOf:
- $ref: '#/components/schemas/LoanRequestEvent'
- $ref: '#/components/schemas/LoanRequestDataConnectionEvent'
- $ref: '#/components/schemas/ClientOnboardingEvent'
- $ref: '#/components/schemas/RealtyValuationEvent'
- $ref: '#/components/schemas/LoanRequestStatusEvent'
- $ref: '#/components/schemas/InsuranceSimulationEvent'
required: true
responses:
'201':
description: created
'202':
description: Updated
'400':
description: Generic error
'422':
description: Invalid input
components:
schemas:
SourceType:
type: object
properties:
id:
type: integer
description: Unique identifier of the source type.
definition:
type: string
description: Description of the source type.
order:
type: integer
nullable: true
description: Optional order of the type.
required:
- id
- definition
Liability:
type: object
discriminator:
propertyName: liability_type
mapping:
rent: '#/components/schemas/RentalLiability'
alimony: '#/components/schemas/AlimonyLiability'
additional_liabilities: '#/components/schemas/OtherLiability'
general_credit_expense: '#/components/schemas/CreditLiability'
consumer_loan_immovable: '#/components/schemas/CreditLiability'
consumer_loan_movable: '#/components/schemas/CreditLiability'
mortgage_immovable: '#/components/schemas/CreditLiability'
mortgage_movable: '#/components/schemas/CreditLiability'
purchase_credit: '#/components/schemas/CreditLiability'
credit_expense: '#/components/schemas/CreditLiability'
credit_card: '#/components/schemas/CreditLiability'
credit_line: '#/components/schemas/CreditLiability'
leasing: '#/components/schemas/CreditLiability'
properties:
liability_type:
type:
- string
- 'null'
description: The type of liability.
oper_reference:
type:
- string
description: Oper reference
examples:
- 092117b8-8c7e-4fd8-827c-cbadc3b037b9
id:
type: integer
description: Oper Liability ID
examples:
- 1
- 123
amount:
type:
- number
- 'null'
format: valuta
description: The amount of the liability based upon the defined periodicity.
example: 1234.56
periodicity:
type:
- string
- 'null'
description: The periodicity to which the liability is being paid or calculated
enum:
- null
- yearly
- semestrial
- quarterly
- monthly
- one_shot
required:
- oper_reference
- id
- liability_type
- amount
- periodicity
DocumentDescription:
allOf:
- $ref: '#/components/schemas/DocumentDescriptionBase'
unevaluatedProperties: false
NewDataInsuranceSimulation:
type: object
properties:
loan_request:
$ref: '#/components/schemas/LoanRequestInsuranceSimulation'
insurance_simulation:
$ref: '#/components/schemas/InsuranceSimulation'
action:
type: string
description: Action that triggered the webhook
enum:
- updated
required:
- action
- loan_request
- insurance_simulation
additionalProperties: false
SourceComparison:
type: object
properties:
source_data_id:
type: integer
description: ID of the source data record.
source_data_field_id:
type: integer
description: ID of the source data field.
document_proof_object_id:
type:
- integer
- 'null'
description: ID of the document proof object.
ai_verification_id:
type:
- integer
- 'null'
description: ID of the AI verification.
source_value:
type: string
description: Value extracted from the source.
status:
type: string
description: Comparison status.
required:
- source_data_id
- source_data_field_id
- source_value
- status
APUser:
type:
- object
- 'null'
properties:
oper_reference:
type:
- string
description: Oper reference
examples:
- 092117b8-8c7e-4fd8-827c-cbadc3b037b9
first_name:
type:
- string
- 'null'
description: The first name (i.e. surname) of the advisor.
example: John
middle_name:
type:
- string
- 'null'
description: The middle name of the advisor.
example: Mary
last_name:
type:
- string
- 'null'
description: The last name (i.e. family name) of the advisor.
example: Doe
mother_maiden_name:
type:
- string
- 'null'
description: The mother's maiden name of the advisor.
example: Jane
birth_date:
type:
- string
- 'null'
format: date
description: The birth date of the advisor.
birth_city:
type:
- string
- 'null'
description: The city of birth of the advisor.
example: Brussels
language:
type:
- string
- 'null'
enum:
- null
- nl-BE
- fr-BE
- en-UK
- de-CH
- it-CH
description: The preferred language of the advisor, which is also the language in which the Oper platform appears to the advisor after log-in.
role:
type:
- string
- 'null'
description: The role of the advisor within its company.
enum:
- null
- decider
- account_manager
- broker_manager
- analyst
- broker
- upload
- senior_decider
- head_decider
- operations_manager
- client
external_reference:
type:
- string
- 'null'
example: 211698
description: External reference of the advisor.
lender_identifier:
type:
- string
- 'null'
example: '12345678'
description: The advisor's identifier at the lender (credit provider) associated with the loan request. Sourced from the advisor's per-lender bank ID configuration.
is_available:
type:
- boolean
- 'null'
example: true
description: Whether the user has marked themselves as available. Defaults to true.
emails:
type: array
items:
$ref: '#/components/schemas/Email'
phones:
type: array
items:
$ref: '#/components/schemas/PhoneNumber'
required:
- oper_reference
- first_name
- middle_name
- last_name
- mother_maiden_name
- birth_date
- birth_city
- emails
- language
- role
additionalProperties: false
ObjectComparison:
type: object
properties:
model_name:
type: string
description: Name of the compared model.
object_id:
type: integer
description: ID of the compared object.
fields:
type: array
items:
$ref: '#/components/schemas/FieldComparison'
required:
- model_name
- object_id
- fields
FinancialPlan:
type:
- object
- 'null'
properties:
cost:
$ref: '#/components/schemas/Cost'
investment:
$ref: '#/components/schemas/Investment'
financing:
$ref: '#/components/schemas/Financing'
required:
- cost
- investment
- financing
additionalProperties: false
Cost:
type:
- object
- 'null'
properties:
amount_incl_vat:
type:
- number
- 'null'
format: valuta
example: 10.0
amount_excl_vat:
type:
- number
- 'null'
format: valuta
example: 80.0
amount_vat:
type:
- number
- 'null'
format: valuta
example: 2.0
amount_aprc_costs_incl_vat:
type:
- number
- 'null'
format: valuta
description: All costs (incl. VAT) that are included in the APRC calculation.
example: 3.5
cost_items:
type: array
items:
$ref: '#/components/schemas/CostItem'
required:
- amount_incl_vat
- amount_excl_vat
- amount_vat
- amount_aprc_costs_incl_vat
- cost_items
additionalProperties: false
QualityAdjustment:
type: object
properties:
name:
type: string
description: The name of the quality adjustment applied, values depend on the tenant
interest_rate:
type: number
description: Interest rate related to the quality adjustment of the offer item
examples:
- -0.001
required:
- name
- interest_rate
Insurance:
type:
- object
- 'null'
properties:
oper_reference:
type:
- string
description: Oper reference
examples:
- 092117b8-8c7e-4fd8-827c-cbadc3b037b9
id:
type: integer
description: Oper Insurance ID
examples:
- 1
- 123
amount:
type:
- number
- 'null'
format: valuta
description: The insured amount.
example: 85000.0
periodicity:
type:
- string
- 'null'
description: The periodicity of the insurance payment
enum:
- null
- monthly
- yearly
- one_shot
- quarterly
- semestrial
premium:
type:
- number
- 'null'
format: valuta
description: The premium to pay for the insurance
example: 5200.0
policy_number:
type:
- string
- 'null'
description: The number of the contract at the insurer company for the insurance in question
example: 345345345
insurance_provider:
allOf:
- $ref: '#/components/schemas/Company'
- type: object
properties:
external_reference:
type:
- string
- 'null'
example: '1234456'
description: Partner Insurance Provider ID
required:
- oper_reference
- id
- insurance_provider
- amount
- periodicity
- premium
- policy_number
Property:
type:
- object
- 'null'
properties:
oper_reference:
type:
- string
description: Oper reference
examples:
- 092117b8-8c7e-4fd8-827c-cbadc3b037b9
id:
type: integer
description: Oper Property ID
examples:
- 1
- 123
acquisition_source:
type:
- string
- 'null'
description: How the property was acquired.
enum:
- null
- buy_out
- definitive_allocation
- gift
- heritage
- other
- purchase
property_type:
type:
- string
- 'null'
description: The type of building that the property represents.
enum:
- null
- terraced_house
- investment_property
- natural_reserve
- warehouse
- studio
- villa
- mixed_building
- apartment_complex
- agricultural_land
- house
- construction_land
- apartment
- chalet_no_domicile
- other
- chalet
is_main_first_residence:
type: boolean
description: If the property is a main first residence or not.
condition_of_property:
type:
- string
- 'null'
description: In which condition the property is.
enum:
- null
- renovated
- run_down
- to_be_demolished
- in_good_condition
- medium_condition
- like_new
- new_build
building_permit:
type: boolean
description: Whether a building permit has been obtained for the property.
building_year:
type:
- number
- 'null'
format: integer
description: The building year of the property.
land_register:
type:
- string
- 'null'
description: The reference of the property in the land register.
district_court:
type:
- string
- 'null'
description: Which district court the property belongs to.
plot_number:
type:
- string
- 'null'
description: Which plot number the property has.
property_number:
type:
- string
- 'null'
description: The property number.
cadastral_location:
type:
- string
- 'null'
description: The cadastral location of the property.
surface_area:
type:
- number
- 'null'
description: The surface area of the property in square meters.
number_of_rooms:
type:
- number
- 'null'
description: The number of rooms in the property.
housing_units:
type:
- number
- 'null'
description: The number of housing units in the property.
epc_before_renovation:
type:
- integer
- 'null'
description: The EPC-value of the property before renovation.
epc_after_renovation:
type:
- integer
- 'null'
description: The EPC-value of the property after renovation.
energy_rating_before_renovations:
type:
- string
- 'null'
description: The energy rating of the property before renovation.
enum:
- null
- a3
- a2
- a1
- a0
- b
- c
- d
energy_rating_after_renovations:
type:
- string
- 'null'
description: The energy rating of the property after renovation.
enum:
- null
- a3
- a2
- a1
- a0
- b
- c
- d
comfort_type:
type:
- string
- 'null'
description: The comfort type classification of the property.
enum:
- null
- comfortable
- semi_comfortable
- without_comfortable
- all_comfort
- double_comfort
- emergency_housing
energy_demand_before_renovations:
type:
- integer
- 'null'
description: The energy demand of the property before renovation.
minimum: 0
energy_demand_after_renovations:
type:
- integer
- 'null'
description: The energy demand of the property after renovation.
minimum: 0
epc_contract_number:
type:
- string
- 'null'
description: The number of the contract stating the EPC values.
epc_date:
type:
- string
- 'null'
format: date
description: The date on which the EPC has been defined.
epc_date_valid_until:
type:
- string
- 'null'
format: date
description: The date on which the EPC certificate expires.
epc_missing_reason:
type:
- string
- 'null'
description: The reason why an EPC certificate is missing from the loan request.
e_level:
type:
- number
- 'null'
format: integer
description: The E-level of the property.
has_energetic_renovation:
type: boolean
description: If any energetic renovation has taken place.
has_small_cadastral_income:
type: boolean
description: If the property has a small cadastral income.
has_lift:
type: boolean
description: If the property contains a lift.
cadastral_income:
type:
- number
- 'null'
format: valuta
description: Cadastral income of the property
price:
type:
- number
- 'null'
format: valuta
description: The actual price of the property.
price_building:
type:
- number
- 'null'
format: valuta
description: The price of building a new property. This datapoint is necessary only when building a new property from scratch.
price_land_purchase:
type:
- number
- 'null'
format: valuta
description: The price of the land to be bought. This datapoint is most often used when wanting to build a new property on land to buy.
fair_value:
type:
- number
- 'null'
format: valuta
description: The fair value of the property.
fair_value_after_renovation:
type:
- number
- 'null'
format: valuta
description: The fair value of the renovated property.
forced_sale_value_before_renovation:
type:
- number
- 'null'
format: valuta
description: The forced sale fair value of the property before renovation.
forced_sale_value_after_renovation:
type:
- number
- 'null'
format: valuta
description: The forced sale fair value of the property.
reference_value:
type:
- number
- 'null'
format: valuta
description: Reference value of the property.
is_reference_value_overridden:
type: boolean
description: True if the reference value was overridden by the user.
pro_fisco_value:
type:
- number
- 'null'
format: valuta
description: Pro fisco value of the property.
acquisition_type:
type:
- string
- 'null'
description: The way the property was acquired.
enum:
- null
- other
- Definitive allocation
- heritage
- buy out
- purchase
- gift
living_percentage:
type:
- number
- 'null'
format: percentage
description: The percentage of the property that is attributed to living, compared to the share of the property that is attributed to another purpose (such as commercial use).
architect_fees:
type:
- number
- 'null'
format: valuta
description: The amount of the architect fees for new build.
purchase_sale_type:
type:
- string
- 'null'
description: Type of the sale when purchasing realty.
enum:
- null
- private_sale
- public_auction
- vat_regime
realty_valuation_type:
type:
- string
- 'null'
description: Type of the realty valuation.
enum:
- desktop
- onsite
land_purchase_type:
type:
- string
- 'null'
description: Type of the land purchase.
enum:
- null
- registration
- under_vat_regime
estimation_expiration_date:
type:
- string
- 'null'
format: date
description: The expiration date of the valuation.
total_parcel_area:
type:
- number
- 'null'
format: decimal
description: The total surface of the parcel.
living_area:
type:
- number
- 'null'
format: decimal
description: The surface that serves as a living area.
commercial_area:
type:
- number
- 'null'
format: decimal
description: The surface that serves as a commercial area.
flood_risk:
type:
- string
- 'null'
description: The risk level of flooding.
enum:
- null
- low
- medium
- high
nearest_flood_zone:
type:
- number
- 'null'
format: decimal
description: The distance from parcel to the nearest flood zone, expressed in m.
mobi_score:
type:
- number
- 'null'
format: decimal
description: The Mobiscore indicates the environmental impact for trips from your home to the nearest point of interest, e.g. school, public transport...
minimum: 0
maximum: 10
multipleOf: 0.1
co2_emission_per_year:
type:
- number
- 'null'
format: decimal
description: The CO² emission of the property in kg.
address:
$ref: '#/components/schemas/Address'
fire_insurance:
$ref: '#/components/schemas/FireInsurance'
valuation:
$ref: '#/components/schemas/Valuation'
features:
type: array
description: Property features attached to the realty.
items:
type:
- string
enum:
- null
- lift
- basement
- balcony
- garage
- loggia
- attic
- terrace
- pool
usage_types:
type: array
description: What the property will be used for once inhabited.
items:
type:
- string
enum:
- null
- co_living_inclusion
- investment_property
- co_living
- other
- private_rent
- professional_rent
- second_stay
- living
- commercial
purposes:
type: array
description: The purpose of the property in the loan request.
items:
type:
- string
enum:
- null
- buy
- refinance
- collateral
- buy_out
- renovate
- build
- sell
participant_authorization:
type:
- string
- 'null'
description: The participant authorization status for the property.
community_property_involvement:
type:
- string
- 'null'
description: Whether community property is involved for the property.
enum:
- null
- 'yes'
- 'no'
- no_but_agreement_exists
renovations:
type: array
items:
$ref: '#/components/schemas/Renovation'
mortgage_ranks:
type: array
items:
$ref: '#/components/schemas/MortgageRank'
ownership_scheme:
type: array
items:
$ref: '#/components/schemas/Ownership'
required:
- oper_reference
- id
- purposes
- property_type
- usage_types
- is_main_first_residence
- condition_of_property
- building_year
- land_register
- district_court
- plot_number
- property_number
- cadastral_location
- surface_area
- number_of_rooms
- epc_before_renovation
- epc_after_renovation
- epc_contract_number
- epc_date
- e_level
- has_energetic_renovation
- has_small_cadastral_income
- has_lift
- price
- architect_fees
- purchase_sale_type
- land_purchase_type
- address
- renovations
- mortgage_ranks
- ownership_scheme
additionalProperties: false
OfferItem:
type: object
properties:
oper_reference:
type:
- string
description: Oper reference
examples:
- 092117b8-8c7e-4fd8-827c-cbadc3b037b9
external_reference_base_product:
type:
- string
description: External reference
end_payment:
type:
- number
- 'null'
format: valuta
description: Last monthly installment of the offer item.
example: 890.0
monthly_installment:
type:
- number
- 'null'
format: valuta
description: First monthly installment of the offer item.
example: 750.0
aprc:
type:
- number
- 'null'
format: percentage
description: APRC related to the offer item.
example: 0.0394
max_aprc:
type:
- number
- 'null'
format: percentage
description: The APRC based upon the max interest rate in case of a variable interest rate.
example: 0.049
base_rate:
type:
- number
- 'null'
format: percentage
description: Base interest rate related to the offer item, not taking into account any add-ons/quality adjustments.
example: 0.034
delta_adjustment:
type:
- number
- 'null'
format: percentage
description: Computes the manual correction (delta) between the final rate and the expected rate (base + quality + conditional adjustments)
example: 0.04
applied_add_ons_rate:
type:
- number
- 'null'
format: percentage
description: Sum of the interest rate of all add-ons of the offer item.
example: -0.005
adjusted_rate:
type:
- number
- 'null'
format: percentage
description: Sum of base rate and quality adjustments.
example: 0.036
final_rate:
type:
- number
- 'null'
format: percentage
description: Interest rate related to the offer item.
example: 0.036
amount:
type:
- number
- 'null'
format: valuta
description: Amount allocated to the offer item.
example: 456000.0
duration:
type:
- number
- 'null'
format: integer
description: Duration of the offer item. (In months)
example: 240
financed_items:
type: array
items:
oneOf:
- $ref: '#/components/schemas/PropertyFinancedItem'
- $ref: '#/components/schemas/CreditFinancedItem'
description: A list of items (realty/credit) that are going to be financed
tax_deductability:
type: boolean
description: Indicates whether the credit qualifies for tax deducibility.
example: true
waive_early_repayment_fee:
type: boolean
description: Indicates whether the early repayment fee is waived.
example: true
attestation_amount:
type:
- number
- 'null'
format: valuta
description: Registration amount that qualifies for tax deducibility.
deductable_amount:
type:
- number
- 'null'
format: valuta
description: Actual fiscal deductible amount of the credit.
fiscal_purpose_type:
type:
- string
- 'null'
description: The fiscal purpose of the credit.
enum:
- purchase_residential_property
- other_purpose
- home_construction
- inheritance_donation_rights
- conversion_of_og_into_residential
- loan_repayment
- home_renovation
- renovation
grace_period_applicable:
type: boolean
description: Indicates whether a grace period is applicable.
example: true
payout_at_deed:
type:
- number
- 'null'
format: valuta
description: Amount that has to be paid to the notary at deed date.
drawdown:
type:
- number
- 'null'
format: valuta
description: The amount of the credit that can be drawn down later in case of renovation or new construction.
variability:
type:
- string
- 'null'
description: Variability of the offer item.
enum:
- null
- 10-10-cap+2/-5
- 20-5-5
- 20-fix
- 10-5-5-cap3
- 16-5-5
- 20-5
- 10-5-5
- 13-1-1-cap3
- 10-3-3
- 20-5-5-cap3
- 5-5-5-cap3
- 20-3-3
- 15-3-3
- 13-5-5
- 6-1-1-cap3
- 20-1-1-cap3
- 3-3-3-cap2
- 5-5-5
- 1-1-1-cap4
- 5-5-5-cap2
- 5-5-5-cap5
- 10-5-5-cap5
- 10-5-5-cap+2/-5
- 3-3-3-cap5
- 15-5-5-cap+2/-5
- fix
- 1-1-1-cap3
- 1-1-1-acc
- 10-5-5-cap2
- 5-5-5-cap4
- 1-1-1
- 3-3-3
- 15-5-5-cap5
- 12-5-5-cap3
- 15-5-5-cap3
product:
type:
- string
- 'null'
description: Product name allocated to the offer item.
example: Variable Mortgage Credit
loan_type:
type:
- string
- 'null'
description: Loan type relating to the offer item.
enum:
- null
- mensuality
- bridge_loan
- crescendo
- balloon_credit
- balloon_credit_no_payment
-
# --- truncated at 32 KB (139 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/oper-credits/refs/heads/main/openapi/oper-credits-webhooks-api-openapi.yml