Oper Webhooks API

Your Webhooks tag description

OpenAPI Specification

oper-webhooks-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Oper 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:
    ClientOnboardingEvent:
      allOf:
      - $ref: '#/components/schemas/Event'
      - type: object
        properties:
          new_data:
            $ref: '#/components/schemas/ClientOnboardingNewData'
        required:
        - new_data
    CreditLiability:
      allOf:
      - $ref: '#/components/schemas/Liability'
      - type: object
        properties:
          liability_type:
            type:
            - string
            description: The type of liability of the client
            enum:
            - general_credit_expense
            - consumer_loan_immovable
            - consumer_loan_movable
            - mortgage_immovable
            - mortgage_movable
            - purchase_credit
            - credit_expense
            - credit_card
            - credit_line
            - leasing
          initial_amount:
            type:
            - number
            - 'null'
            format: valuta
            description: The initial amount of the liability to this day
            example: 1234.56
          interest_rate:
            type:
            - number
            - 'null'
            format: percentage
            description: The interest rate on the repayment as indicated at the start of the credit
            example: 0.03
          balance:
            type:
            - number
            - 'null'
            format: valuta
            description: The currently outstanding amount of the liability
            example: 1234.56
          takeover:
            type:
            - string
            - 'null'
            description: If the loan will be taken over in the current loan request credit amount or not. Repay means that the current credit liability will be repaid before the start of the current credit.
            enum:
            - null
            - 'yes'
            - 'no'
            - repay
            - unknown
          handling_costs:
            type:
            - number
            - 'null'
            format: valuta
            description: The amount of costs relating to the administrative processing of the liability at the liability provider's side
            example: 1234.56
          early_repayment_fee:
            type:
            - number
            - 'null'
            format: valuta
            description: The fee that needs to be paid if the credit is repaid earlier than expected in the initial contract
            example: 1234.56
          credit_provider:
            type:
            - string
            - 'null'
            description: The company providing the liability to the borrower
            example: LendingCorp Belgium
          regularity:
            type:
            - string
            - 'null'
            description: The regularity of the liability
            enum:
            - null
            - regularized
            - regular
            - open_notification
            - zeroed_out
          contract_number:
            type:
            - string
            - 'null'
            description: The number of the contract as defined on the contract itself
            example: 12345678
          end_date:
            type:
            - string
            - 'null'
            format: date
            description: The date on which the last payment of the liability should be issued.
            example: '2020-12-02'
          start_date:
            type:
            - string
            - 'null'
            format: date
            description: The date on which the first payment of the liability was issued.
            example: '2020-12-02'
          irregularity_start_date:
            type:
            - string
            - 'null'
            format: date
            description: If the liability is being paid irregularly, this field describes when this first occured.
            example: '2020-12-02'
          duration:
            type: integer
            description: Existing credit's duration
            examples:
            - 1
            - 123
          monthly_amount:
            type:
            - number
            - 'null'
            format: valuta
            description: The monthly amortization of the liability
            example: 1234.56
          fiscal_attestation_amount:
            type:
            - number
            - 'null'
            format: valuta
            description: Fiscal attestation amount
            example: 1234.56
          fiscal_attestation_factor:
            type:
            - number
            - 'null'
            format: percentage
            description: Fiscal attestation factor
            example: 0.04
          immovable_amount:
            type:
            - number
            - 'null'
            format: valuta
            description: Portion of the credit liability secured by immovable property
            example: 1234.56
          regularization_date:
            type:
            - string
            - 'null'
            format: date
            description: Date when credit liability was regularized
            example: '2020-12-02'
          client_ids:
            type: array
            items:
              type:
              - integer
              - 'null'
              description: The Oper IDs of the clients paying out the credit liability, which relates to the field id in the Client schema.
          related_realties:
            type: array
            items:
              type:
              - integer
              - 'null'
              description: The Oper IDs of the realties related to the credit liability, which relates to the field id in the Realty schema.
          original_purpose:
            type:
            - string
            - 'null'
            description: The sub purpose of the loan.
            enum:
            - null
            - buyOut
            - heritageTaxes
            - newBuild
            - notaryFees
            - propertyDownPayment
            - purchase
            - purchaseOfGarage
            - purchaseOfLand
            - refinance
            - renovation
          loan_repayment_account:
            type:
            - string
            - 'null'
            description: The IBAN bank account used to repay this specific credit liability. When present, takes precedence over the loan-request-level loan_repayment_account.
            example: HU93 1160 0006 0000 0000 1234 5678
        required:
        - initial_amount
        - interest_rate
        - balance
        - takeover
        - handling_costs
        - early_repayment_fee
        - credit_provider
        - regularity
        - contract_number
        - end_date
        - start_date
        - irregularity_start_date
        - client_ids
        - related_realties
        - duration
        - monthly_amount
        - original_purpose
      unevaluatedProperties: false
    FireInsurance:
      allOf:
      - $ref: '#/components/schemas/Insurance'
      - type: object
        properties:
          has_apartment_complex_policy:
            type: boolean
            description: True if the fire insurance applies to an appartment complex.
          insurance_provider:
            allOf:
            - $ref: '#/components/schemas/Company'
            - type: object
              properties:
                external_reference:
                  type:
                  - string
                  - 'null'
                  example: '1234456'
                  description: Provider of insurance
        required:
        - has_apartment_complex_policy
      unevaluatedProperties: false
    Offer:
      type:
      - object
      - 'null'
      properties:
        oper_reference:
          type:
          - string
          description: Oper reference
          examples:
          - 092117b8-8c7e-4fd8-827c-cbadc3b037b9
        id:
          type: integer
          description: Oper Offer ID
          examples:
          - 1
          - 123
        lender:
          type:
          - string
          - 'null'
          description: Lender name relating to the offer item.
          enum:
          - null
          - credimo
          - record_credits
          - creafin
          - elantis
          - krefima
          - key_trade
          - triodos
          - axa
          - dvv
          - ckv
          - onesto
          - allianz
          - vdk
          - hypo_start
          - eb_lease
          - demetris
          - vlaams_sociaal_woonkrediet
        offer_items:
          type: array
          items:
            $ref: '#/components/schemas/OfferItem'
        cost_file:
          type:
          - number
          - 'null'
          format: valuta
          description: File costs amount of the loan request.
          example: 750.0
      required:
      - oper_reference
      - id
      - lender
      - offer_items
      - cost_file
      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
    Guarantee:
      type:
      - object
      - 'null'
      properties:
        guarantee_id:
          type: number
          description: The unique identifier of the guarantee.
          example: 123456
        total_guarantee_amount:
          type:
          - number
          - 'null'
          format: valuta
          description: The total amount of the guarantees in collateral for the given loan request.
          example: 600.0
        guarantee_type:
          type: string
          enum:
          - inscription
          - mandate
          - promise
        guarantee_items:
          type: array
          items:
            $ref: '#/components/schemas/GuaranteeItem'
      required:
      - guarantee_id
      - total_guarantee_amount
      - guarantee_items
      additionalProperties: false
    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
    FinancedItem:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier for the financed item
          example: 1
        financed_item_type:
          type: string
          description: The type of financed item
          enum:
          - realty
          - credit
      required:
      - id
      - financed_item_type
      discriminator:
        propertyName: financed_item_type
        mapping:
          realty: '#/components/schemas/PropertyFinancedItem'
          credit: '#/components/schemas/CreditFinancedItem'
    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
          - progressive_amortization
        commission_amount:
          type:
          - number
          - 'null'
          format: valuta
          description: Commission amount of the offer item.
          example: 750.0
        contract_number:
          type:
          - string
          - 'null'
          description: The number of the contract as defined on the contract itself
          example: 12345678
        cost_file:
          type:
          - number
          - 'null'
          format: valuta
          description: File costs amount of the offer item.
          example: 750.0
        liability_insurance_add_on_date:
          type:
          - string
          - 'null'
          format: date
          description: Date of the liability insurance add-on.
          example: '2024-12-01'
        liability_insurance_ids:
          type: array
          items:
            type:
            - number
            - 'null'
            description: The unique identifier of the liability insurance.
            example: 123456
        loan_purpose:
          type:
          - string
          - 'null'
          enum:
          - null
          - purchase
          - refinance
          - new_build
          - buy_out
          - renovation
        loan_sub_purposes:
          type: array
          items:
            type:
            - string
            - 'null'
            description: The sub purpose of the loan.
            enum:
            - null
            - buyOut
            - heritageTaxes
            - newBuild
            - notaryFees
            - propertyDownPayment
            - purchase
            - purchaseOfGarage
            - purchaseOfLand
            - refinance
            - renovation
        applied_add_ons:
          type: array
          items:
            $ref: '#/components/schemas/Discount'
        quality_adjustments:
          type: array
          items:
            $ref: '#/components/schemas/QualityAdjustment'
        grace_period:
          type:
          - number
          - 'null'
          description: The number of months of grace period.
          example: 20
        due_day:
          type:
          - integer
          - 'null'
          description: Due day of the loan.
          example: 15
        is_interest_paid_in_grace_period:
          type:
          - boolean
          description: Indicates whether interest was paid in grace period.
          example: false
        first_principal_repayment_date:
          type:
          - string
          format: date
          description: Date of the first principal repayment.
          example: '2024-12-01'
        pricing_sheet_valid_from_date:
          type:
          - string
          - 'null'
          format: date
          description: The valid from date of the pricing sheet associated with the product item.
          example: '2025-01-01'
        pricing_sheet_version:
          type:
          - string
          - 'null'
          description: The version of the pricing sheet associated with the product item.
          example: v2.1
      required:
      - oper_reference
      - end_payment
      - monthly_installments
      - aprc
      - base_rate
      - quality_adjustments
      - adjusted_rate
      - applied_add_ons_rate
      - final_rate
      - amount
      - duration
      - variability
      - product
      - loan_type
      - applied_add_ons
      - cost_file
      - grace_period
      - due_day
      - is_interest_paid_in_grace_period
      - first_principal_repayment_date
      additionalProperties: false
    Financing:
      type:
      - object
      - 'null'
      properties:
        amount:
          type:
          - number
          - 'null'
          description: The total amount to finance. This can consist of multiple elements, whereunder the own funds and loans.
          example: 800.0
        amount_own_funds:
          type:
          - number
          - 'null'
          description: The total amount of own funds needed to finance the current loan request
          example: 200.0
        amount_loans:
          type:
          - number
          - 'null'
          description: The total amount of the loans needed to finance the current loan request
          example: 200.0
      required:
      - amount
      - amount_own_funds
      - amount_loans
      additionalProperties: false
    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
    RegulatoryReporting:
      type: object
      properties:
        buy_to_let:
          type: boolean
          description: Should be true if any of the realties with property purpose that is not collateral or sell has a usage type of investmentProperty, privateRent, or professionalRent.
        owner_occupied:
          type: boolean
          description: Should be true if buy_to_let is false, and vice versa.
        first_time_buyer:
          type: boolean
          description: Should be true if all the clients with role = borrower have first_time_buyer = true.
        mortgage_guarantee:
          type: boolean
          description: True if there is a property with a mortgage guarantee type promise or inscription.
        loan_amount:
          type: number
          format: decimal
          description: The total loan amount including bridge loans.
        value:
          type: number
          format: decimal
          description: The sum of reference value of all the realties provided as collateral minus the sum of the amounts of existing mortgage ranks linked to these realties.
        loan_to_value:
          type: number
          format: decimal
          description: Calculated as loan_amount / value.
        debt_service:
          type: number
          format: decimal
          description: The total amount that the borrower pays monthly for existing and new credit (including interest and principal). Calculated as the sum of (A) amortization of all active product items in the offer and (B) monthly_amount of each credit_liability object with take_over = no linked to borrowers.
        total_income:
          type: number
          format: decimal
          description: The total yearly income of all borrowers.
        total_liabilities:
          type: number
          format: decimal
          description: The total yearly liabilities of all borrowers, including new credits. The total amount that is used to calculate DSTI.
        debt_service_to_income:
          type: number
          format: decimal
          description: Calculated as debt_service / total_income.
        debt_amount:
          type: number
          format: decimal
          description: The debt of all the existing loans and new loans. Calculated as the sum of (A) amount of all the product items in the offer where is_active = true and (B) the balance of each of the credit_liability objects where take_over = no linked to the clients with role = borrower.
        debt_to_income:
          type: number
          format: decimal
          description: Calculated as debt_amount / total_income.
        loan_to_income:
          type: number
          format: decimal
          description: Calculated as loan_amount / total_income.
        loan_service:
          type: number
          format: decimal
          description: The total monthly payment by borrowers for all product items in the new loan. Calculated as the sum of amortization of all active product items in the offer.
        loan_service_to_income:
          type: number
          format: decimal
          description: Calculated as loan_service / total_income.
        gross_annual_rental_income:
          type: number
          format: decimal
          description: The total (unweighted) rental income of all borrowers. Calculated as the sum of monthly_amount of each income object with type = TBD linked to borrowers.
        loan_to_rent:
          type: number
          format: decimal
          description: Calculated as loan_amount / gross_annual_rental_income.
        only_refinancing:
          type: boolean
          description: True in case there is only a loan request purpose linked to the loan request with type = refinance.
        annual_interest_cost:
          type: number
          format: decimal
          description: In case buy_to_let = true, this field should contain the sum of all the interest that will be paid in year 1 of all the product items in the offer where is_active = true.
        reason_threshold_exceeding:
          type: string
          description: ' '
          enum:
          - ltv_impacted_by_movable_guarantees
          - increase_in_initial_amount
          - buy_out
          - payment_of_inheritance_taxes
          - specific_professional_target_group
          - commercially_important_target_group
          - credit_committee
          - temporary_situation_bridge_loan_credit
          - guarantee_exchange
          - compliant_with_acceptance_policy
        detailed_reason_threshold_exceeding:
          type: string
          description: ' '
    PropertyValuation:
      type:
      - object
      properties:
        id:
          type: integer
          description: The unique identifier of each valuation
          example: '12345'
      required:
      - id
      additionalProperties: false
    GenericSour

# --- truncated at 32 KB (139 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/oper/refs/heads/main/openapi/oper-webhooks-api-openapi.yml