Oper Credits Webhooks API

Your Webhooks tag description

Operations 1

POST /your-webhook-endpoint Your endpoint implementation for handling Oper Connect's webhooks

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/oper-credits-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

oper-credits-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Oper Credits Agent Documents Webhooks API
  version: '1.0'
  description: Your Webhooks tag description
servers:
- url: https://developers.opercredits.com/
  description: Base URL declared by the provider in apis.yml (roadmap#122).
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
          - 'null'
          description: Optional order of the type.
      required:
      - id
      - definition
    CostItem:
      type:
      - object
      - 'null'
      properties:
        cost_type:
          type:
          - string
          - 'null'
          enum:
          - null
          - cost_purchase
          - cost_land_purchase
          - cost_renovation
          - cost_building
          - cost_buyout
          - cost_credit_takeover
          - cost_insurance
          - cost_handling
          - cost_file
          - cost_additional_financing_need
          - cost_distribution_notary
          - cost_distribution_registration
          - cost_notary_fees
          - cost_credit_notary
          - cost_credit_notary_fees
          - cost_credit_notary_administration
          - cost_credit_notary_mortgage_registration_fee
          - cost_credit_notary_mortgage_guarantee_fee
          - cost_credit_notary_disbursements
          - cost_credit_notary_annexes
          - cost_credit_registration
          - cost_credit_notary_act
          - cost_purchase_notary
          - cost_purchase_notary_act
          - cost_purchase_notary_annexes
          - cost_purchase_notary_fees
          - cost_purchase_notary_administration
          - cost_purchase_notary_mortgage_transcript
          - cost_purchase_notary_disbursements
          - cost_purchase_registration
          - cost_land_query_fees
          - cost_stamp_duty_fees
          - cost_administration
          - cost_realtor
          - cost_land_registry
          - cost_estimation
          - cost_bank_disbursements
        description:
          type:
          - string
          - 'null'
          description: All necessary details to describe the cost
          example: this is a cost relating to the notary's efforts when purchasing a house
        amount_incl_vat:
          type:
          - number
          - 'null'
          format: valuta
          description: The amount of the cost type including the VAT
        amount_excl_vat:
          type:
          - number
          - 'null'
          format: valuta
          description: The amount of the cost type excluding the VAT
        vat_rate:
          type:
          - number
          - 'null'
          format: percentage
          description: The percentage amount of the vat for a specific cost type
          example: 21
        amount_vat:
          type:
          - number
          - 'null'
          format: valuta
          description: The monetary amount of the vat for a specific cost type
          example: 150
        is_included_in_aprc:
          type: boolean
          description: True if the specific cost type is included in the APRC calculation of the credit
      required:
      - cost_type
      - description
      - amount_incl_vat
      - amount_excl_vat
      - vat_rate
      - amount_vat
      - is_included_in_aprc
      additionalProperties: false
    Decision:
      type: object
      properties:
        type:
          type: string
          description: Categorization or classification of the decision.
          enum:
          - seniorDecision
          - decision
          - recommendation
        description:
          type: string
          description: The actual text content of the decision.
        author:
          type: string
          description: Identifier or name of the user who posted the decision.
        timestamp:
          type: string
          format: datetime
          description: Date and time when the decision was created.
      required:
      - type
      - description
      - author
      - timestamp
    ComplianceAnswerType:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier of the answer type
        definition:
          type: string
          description: Description of the answer type (e.g., 'boolean', 'text')
          enum:
          - boolean
          - text
        order:
          type:
          - integer
          - 'null'
          description: Optional order of the answer type
      required:
      - id
      - definition
    RealtyValuationNewData:
      type: object
      properties:
        realty:
          $ref: '#/components/schemas/Property'
        valuation:
          $ref: '#/components/schemas/PropertyValuation'
        loan_request:
          $ref: '#/components/schemas/PropertyValuationLoanRequest'
      required:
      - action
      - loan_request
      additionalProperties: false
    FieldComparison:
      type: object
      properties:
        field_name:
          type: string
          description: Name of the compared field.
        loan_request_value:
          type: string
          description: Value from the loan request.
        sources:
          type: array
          items:
            $ref: '#/components/schemas/SourceComparison'
      required:
      - field_name
      - loan_request_value
      - sources
    Event:
      type:
      - object
      - 'null'
      properties:
        payload_type:
          type: string
          description: This field provides more information about the type of the payload sent by the webhook.
          enum:
          - loan_request
          - loan_request_data_connection
          - client_onboarding
          - realty_valuation
          - loan_request_status
          - insurance_simulation
        created:
          type:
          - string
          - 'null'
          format: date
          description: Contains the date on which the object was made. The date should be communicated in compliance with the ISO 8601 standard, which is defined as YYYY-MM-DD.
        origin_id:
          type: string
          description: This field represents the webhook origin.
        livemode:
          type: boolean
          description: If the object exists in livemode, this will have the value 'true'. If not, this will have the value 'false'
      required:
      - id
      - created
      - livemode
      - payload_type
      additionalProperties: false
    SourceDataField:
      type: object
      properties:
        id:
          type: integer
          description: ID of the source data field.
        field_name:
          type: string
          description: Name of the extracted field.
        field_value:
          type:
          - string
          - number
          - boolean
          - object
          - array
          - 'null'
          description: Value of the extracted field.
        status:
          $ref: '#/components/schemas/SourceDataFieldStatus'
      required:
      - id
      - field_name
      - field_value
      - status
    InsuranceSimulation:
      type:
      - object
      - 'null'
      properties:
        id:
          type: integer
          description: Oper Insurance ID
          examples:
          - 1
          - 123
        oper_reference:
          type:
          - string
          description: Oper reference
          examples:
          - 092117b8-8c7e-4fd8-827c-cbadc3b037b9
        coverage_type:
          type:
          - string
          - 'null'
          description: The insurance package coverage type
          enum:
          - null
          - packageA
          - packageB
          - packageC
        status:
          type:
          - string
          - 'null'
          description: The status of the simulation
          enum:
          - null
          - error
          - warning
          - success
          - notCalculated
        message:
          type:
          - string
          - 'null'
          description: The possible error message translation key
        product:
          $ref: '#/components/schemas/OfferItem'
        insurance_provider:
          allOf:
          - $ref: '#/components/schemas/Company'
          - type: object
            properties:
              external_reference:
                type:
                - string
                - 'null'
                example: '1234456'
                description: Partner Insurance Provider ID
        premium:
          type:
          - number
          - 'null'
          format: valuta
          description: The premium to pay for the insurance
          example: 5200.0
        periodicity:
          type:
          - string
          - 'null'
          description: The periodicity of the insurance payment
          enum:
          - null
          - monthly
          - yearly
          - one_shot
          - quarterly
          - semestrial
        covered_amount:
          type:
          - number
          - 'null'
          format: valuta
          description: The insured amount.
          example: 85000.0
        duration:
          type:
          - integer
          - 'null'
          description: Duration of the offer item. (In months)
          example: 240
        to_be_financed:
          type: boolean
          description: True if the liability insurance needs to be taken into account in the current loan request as a liability to be financed together with the new credit.
        mandatory:
          type: boolean
          description: True if the liability insurance needs to be taken because of an obligation coming from the lending company.
        policy_number:
          type:
          - string
          - 'null'
          description: The number of the contract at the insurer company for the insurance in question
          example: 345345345
        client_ids:
          type: array
          items:
            type: integer
            description: The Oper IDs of the clients, which relates to the field id in the Client schema.
      required:
      - id
      - oper_reference
      - coverage_type
      - status
      - product
      - insurance_provider
      - premium
      - periodicity
      - covered_amount
      - duration
      - to_be_financed
      - mandatory
      - policy_number
      - client_ids
    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
    LoanRequestStatus:
      type:
      - object
      - 'null'
      properties:
        id:
          type: integer
          description: Oper Loan Request ID
          examples:
          - 1
          - 123
        status:
          type:
          - string
          enum:
          - new_lead
          - positive_preapproval
          - negative_preapproval
          - documents_uploaded
          - analysis_ongoing
          - decision_pending
          - positive_decision
          - negative_decision
          - offer_signed
          - credit_closed
          - request_cancelled
          - dip_accepted
          - dip_rejected
          description: Current status of the loan request, values depend on the tenant.
    PropertyFinancedItem:
      allOf:
      - $ref: '#/components/schemas/FinancedItem'
      - type: object
        properties:
          financed_item_type:
            type: string
            enum:
            - realty
          property_id:
            type: integer
            description: The ID of the property being financed
            example: 1001
        required:
        - property_id
        unevaluatedProperties: false
    Broker:
      type:
      - object
      - 'null'
      properties:
        oper_reference:
          type:
          - string
          description: Oper reference
          examples:
          - 092117b8-8c7e-4fd8-827c-cbadc3b037b9
        name:
          type:
          - string
          - 'null'
          description: The name of the broker company.
          example: BrokerTrust Brussels ltd.
        is_active:
          type: boolean
          description: If the broker company is still active or not.
        parent:
          $ref: '#/components/schemas/Company'
          description: If the broker has a parent company, the company profile of that parent.
        fsma_status:
          type:
          - string
          - 'null'
          description: The status of the broker company as registered in the Financial Services and Markets Authority (FSMA).
          enum:
          - null
          - suspended
          - active
          - stopped
        commission_fee:
          type:
          - number
          - 'null'
          format: valuta
          description: The amount of commission fee that is attributed to the broker company.
          example: 300
        is_commission_to_be_confiscated:
          type: boolean
          description: Must be set to true if the commission needs to be confiscated for this specific broker.
        is_client_facing:
          type: boolean
          description: Must be set to true if the broker can be seen by the borrower in the Journey Builder tool.
          example: A borrower creates an account through the Journey Builder tool on the website of BrokerTrust Global ltd. and has the possibility to select between multiple sub-brokers (such as BrokerTrust Brussels ltd.). Brokers that are not client-facing might exist but will not appear in this specific list.
        external_reference:
          type:
          - string
          - 'null'
          example: '1234456'
          description: Partner Broker ID
        parent_external_reference:
          type:
          - string
          - 'null'
          example: '1234456'
          description: Partner Broker ID of the parent broker
        company:
          $ref: '#/components/schemas/Company'
        account_manager:
          $ref: '#/components/schemas/APUser'
      required:
      - oper_reference
      - name
      - company
      - is_active
      - parent
      - fsma_status
      - account_manager
      - commission_fee
      - is_commission_to_be_confiscated
      - is_client_facing
      - external_reference
      - parent_external_reference
      additionalProperties: false
    AdditionalFinancingNeed:
      type: object
      properties:
        oper_reference:
          type:
          - string
          description: Oper reference
          examples:
          - 092117b8-8c7e-4fd8-827c-cbadc3b037b9
        id:
          type: integer
          description: Oper Additional Financing Need ID
          examples:
          - 1
          - 123
        additional_financing_need_type:
          type:
          - string
          description: The type of additional financing need of the client
          enum:
          - executed_renovations
          - heritage_taxes_movable
          - family_debt
          - heritage_or_donation_costs
          - heritage_taxes_immovable
          - purchase_car
          - personal_taxes
          - donation_taxes_immovable
          - city_taxes
          - handling_costs
          - liquidities
          - registration_rights_and_notary_costs
        amount:
          type:
          - number
          - 'null'
          format: valuta
          description: The amount of the additional financing need
          example: 1234.56
      required:
      - oper_reference
      - id
      - additional_financing_need_type
      - amount
    RealtyValuationEvent:
      allOf:
      - $ref: '#/components/schemas/Event'
      - type: object
        properties:
          new_data:
            $ref: '#/components/schemas/RealtyValuationNewData'
        required:
        - new_data
    ComplianceQuestion:
      type: object
      properties:
        id:
          type: integer
          description: Unique ID of the question
        name:
          type: string
          description: Internal name of the question
        text:
          type: object
          description: Question text shown to the user in multiple languages
          additionalProperties:
            type: string
        answer:
          $ref: '#/components/schemas/ComplianceAnswer'
          description: The answer provided for this question
      required:
      - id
      - name
      - text
      - answer
    BankBranch:
      type:
      - object
      - 'null'
      properties:
        id:
          type: integer
          description: Oper Bank Branch ID
          example: 123
        definition:
          type:
          - string
          - 'null'
          description: The name of the bank branch.
        order:
          type:
          - integer
          - 'null'
          description: Optional order of the bank branch.
      required:
      - id
      - definition
    LoanRequestEvent:
      allOf:
      - $ref: '#/components/schemas/Event'
      - type: object
        properties:
          new_data:
            $ref: '#/components/schemas/LoanRequestNewData'
        required:
        - new_data
    LoanRequestInsuranceSimulation:
      type:
      - object
      - 'null'
      properties:
        id:
          type: integer
          description: Oper Loan Request ID
          examples:
          - 1
          - 123
        purposes:
          type: array
          items:
            $ref: '#/components/schemas/LoanPurpose'
        offer:
          $ref: '#/components/schemas/Offer'
        clients:
          type: array
          items:
            $ref: '#/components/schemas/Client'
        credit_liabilities:
          type: array
          items:
            $ref: '#/components/schemas/CreditLiability'
        properties:
          type: array
          items:
            $ref: '#/components/schemas/Property'
        liability_insurances:
          type: array
          items:
            $ref: '#/components/schemas/LiabilityInsurance'
      required:
      - id
      - purposes
      - clients
      - properties
      - liability_insurances
      - offer
      - credit_liabilities
      additionalProperties: false
    LenderState:
      type:
      - object
      properties:
        id:
          type: integer
          description: The unique identifier of each lender state
          example: 12345
      required:
      - id
      additionalProperties: false
    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: ' '
    RealtySourceData:
      type: object
      properties:
        realty_id:
          type: integer
          description: ID of the realty associated with the source data.
        fields:
          type: array
          items:
            $ref: '#/components/schemas/SourceDataField'
        source_data_type:
          $ref: '#/components/schemas/SourceDataType'
        source_type:
          $ref: '#/components/schemas/SourceType'
      required:
      - realty_id
      - fields
      - source_data_type
      - source_type
    Valuation:
      type:
      - object
      - 'null'
      properties:
        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.
        valuation_date:
          type:
          - string
          - 'null'
          format: date
          description: The date on which the valuation of the property was done.
        valuation_expiration_date:
          type:
          - string
          - 'null'
          format: date
          description: The expiration date of the valuation.
        valuation_type:
          type: string
          enum:
          - automatic
          - desktop
          - onsite
        valuation_reference:
          type:
          - string
          description: Unique reference of the valuation.
        estimator:
          $ref: '#/components/schemas/Estimator'
        epc_reference_number:
          type:
          - string
          - 'null'
          description: The EPC contract number of the property.
        epc_validity:
          type:
          - string
          - 'null'
          format: date
          description: The date until which the EPC certificate is valid.
    ComplianceAnswerBoolean:
      type: object
      properties:
        value:
          type: boolean
          description: Boolean value of the answer
        compliance_answer_type:
          $ref: '#/components/schemas/ComplianceAnswerType'
          description: Type of the compliance answer
        compliance_question_id:
          type: integer
          description: ID of the associated compliance question
        instance_type:
          type: string
          description: Instance type of the answer (e.g., 'boolean')
      required:
      - value
      - compliance_answer_type
      - compliance_question_id
      - instance_type
    Investment:
      type:
      - object
      - 'null'
      properties:
        amount_incl_vat:
          type:
          - number
          - 'null'
          example: 80000
        amount_excl_vat:
          type:
          - number
          - 'null'
          example: 50000
        amount_vat:
          type:
          - number
          - 'null'
          example: 20000
        investment_items:
          type: array
          items:
            $ref: '#/components/schemas/InvestmentItem'
      required:
      - amount_incl_vat
      - amount_excl_vat
      - amount_vat
      - investment_items
      additionalProperties: false
    Ownership:
      type:
      - object
      - 'null'
      properties:
        oper_reference:
          type:
          - string
          description: Oper reference
          examples:
          - 092117b8-8c7e-4fd8-827c-cbadc3b037b9
        client_id:
          type: integer
          description: The Oper Client ID in the loan request.
        share:
          type:
          - number
          - 'null'
          format: percentage
          description: The percentage of ownership, or share, of a client in the specific property.
        ownership_type:
          type:
          - string
          - 'null'
          description: The type of ownership depending on the legally accepted possibilities.
          enum:
          - null
          - full_ownership
          - ground_lease
          - building_right
          - undivided
          - free_hold
          - usufruct
      required:
      - oper_reference
      - client_id
      - share
      - ownership_type
      additionalProperties: false
    OtherIncome:
      allOf:
      - $ref: '#/components/schemas/Income'
      - type: object
        properties:
          income_type:
            type: string
            description: The type of income of the client
            enum:
            - variable_income
            - alimony
            - health_insurance
            - meal_vouchers
            - other
            - retirement
            - unemployment_benefit
            - company_car
          comment:
            type:
            - string
            - 'null'
            description: A free text field allowing a comment to be made and more information to be given
          payer:
            type:
            - string
            - 'null'
            description: A free text field allowing to input the paying instance of an income
      unevaluatedProperties: false
    LoanRequestStatusNewData:
      type: object
      properties:
        loan_request_status:
          $ref: '#/components/schemas/LoanRequestStatus'
        action:
          type: string
          description: Action that triggered the webhook
          enum:
          - created
      required:
      - loan_request_status
      - action
    ClientOnboardingEvent:
      allOf:
      - $ref: '#/components/schemas/Event'
      - type: object
        properties:
          new_data:
            $ref: '#/components/schemas/ClientOnboardingNewData'
        required:
        - new_data
    LoanPurpose:
      type: object
      properties:
        is_main:
          type:
          - boolean
          - 'null'
        definition:
          type:
          - string
          - 'null'
          enum:
          - null
          - purchase
          - refinance
          - new_build
          - buy_out
          - renovation
    ClientRelationship:
      type: object
      properties:
        oper_reference:
          type:
          - string
          description: Oper reference
          examples:
          - 092117b8-8c7e-4fd8-827c-cbadc3b037b9
      

# --- 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