﻿<?xml version="1.0" encoding="utf-8"?>
<schema xmlns:common="https://webservices.idosplatform.nl/common/" xmlns:financial="https://webservices.idosplatform.nl/financial/" xmlns:premiumperiod="https://webservices.idosplatform.nl/premiumperiod/" elementFormDefault="qualified" targetNamespace="https://webservices.idosplatform.nl/financial/" xmlns="http://www.w3.org/2001/XMLSchema">
  <import schemaLocation="https://webservices.idosplatform.nl/Contracts/Common.xsd" namespace="https://webservices.idosplatform.nl/common/" />
  <import schemaLocation="https://webservices.idosplatform.nl/Contracts/PremiumPeriod_2.54.xsd" namespace="https://webservices.idosplatform.nl/premiumperiod/" />
  <simpleType name="FinancialTypeType">
    <restriction base="string">
      <enumeration value="PremiumTerm" />
      <enumeration value="Mutation" />
    </restriction>
  </simpleType>
  <simpleType name="BookableAmountTypeType">
    <restriction base="string">
      <enumeration value="PremiumTerm" />
      <enumeration value="Mutation" />
      <enumeration value="Settlement" />
    </restriction>
  </simpleType>
  <complexType name="ClusterType">
    <sequence minOccurs="1" maxOccurs="1">
      <element name="Id" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>Unique technical id of the Cluster. 0 if cluster name is 'Other'</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="Name" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>Name of the Cluster</documentation>
        </annotation>
        <simpleType>
          <restriction base="string">
            <maxLength value="250" />
          </restriction>
        </simpleType>
      </element>
    </sequence>
  </complexType>
  <complexType name="PremiumPeriodsByDossierType">
    <choice maxOccurs="unbounded">
      <element name="PremiumPeriod" type="premiumperiod:PremiumPeriodDetailsType" />
    </choice>
  </complexType>
  <complexType name="BookableAmountsType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element name="BookableAmount" type="financial:BookableAmountType" />
    </choice>
  </complexType>
  <complexType name="PremiumTermsBookableAmountsType">
    <choice maxOccurs="unbounded">
      <element name="PremiumTermBookableAmounts" type="financial:PremiumTermBookableAmountsType" />
    </choice>
  </complexType>
  <complexType name="TotalsDetailsType">
    <sequence maxOccurs="1" minOccurs="1">
      <element name="Total" type="financial:TotalDetailsType" maxOccurs="unbounded" minOccurs="0" />
    </sequence>
  </complexType>
  <complexType name="TotalDetailsType">
    <sequence minOccurs="1" maxOccurs="1">
      <element name="TotalInsuredValue" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>The total insured value</documentation>
        </annotation>
        <simpleType>
          <restriction base="decimal" />
        </simpleType>
      </element>
      <element name="InsuredValueCurrencyId" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>Technical id of the Currency of total insured value</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="InsuredValueCurrencyCode" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>Three character abbreviation of the Currency of the total insured value. Unique within the system.</documentation>
        </annotation>
        <simpleType>
          <restriction base="string">
            <minLength value="1" />
            <maxLength value="3" />
          </restriction>
        </simpleType>
      </element>
      <element name="TotalPremiumValue" minOccurs="1" maxOccurs="1" nillable="false">
        <annotation>
          <documentation>The total premium value</documentation>
        </annotation>
        <simpleType>
          <restriction base="decimal" />
        </simpleType>
      </element>
      <element name="PremiumCurrencyId" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>Technical id of the Currency of the total premium</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="PremiumCurrencyCode" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>Three character abbreviation of the Currency of the total premium. Unique within the system.</documentation>
        </annotation>
        <simpleType>
          <restriction base="string">
            <minLength value="1" />
            <maxLength value="3" />
          </restriction>
        </simpleType>
      </element>
      <element name="CoverTypeId" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>Unique technical id of the cover type of this total</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="CoverTypeName" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>Name of the cover type. In the language that is specified as the default language for the web service user.</documentation>
        </annotation>
        <simpleType>
          <restriction base="string">
            <minLength value="1" />
            <maxLength value="250" />
          </restriction>
        </simpleType>
      </element>
      <element name="MemberCoverTypeId" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>Unique technical id of the member cover type (alias) of this total</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="MemberCoverTypeName" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>Name of the member specific cover type. In the language that is specified as the default language for the web service user.</documentation>
        </annotation>
        <simpleType>
          <restriction base="string">
            <minLength value="1" />
            <maxLength value="250" />
          </restriction>
        </simpleType>
      </element>
      <element name="MemberCoverTypeCode" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>Code of the member specific cover type.</documentation>
        </annotation>
        <simpleType>
          <restriction base="string">
            <minLength value="1" />
            <maxLength value="50" />
          </restriction>
        </simpleType>
      </element>
    </sequence>
  </complexType>
  <complexType name="IndexationNumberType">
    <sequence minOccurs="1" maxOccurs="1">
      <element name="IndexName" minOccurs="1" maxOccurs="1" nillable="false">
        <annotation>
          <documentation>Name of index</documentation>
        </annotation>
        <simpleType>
          <restriction base="string" />
        </simpleType>
      </element>
      <element name="IndexId" minOccurs="1" maxOccurs="1" nillable="false">
        <annotation>
          <documentation>Technical identifier of the index</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="IndexationNumberId" minOccurs="1" maxOccurs="1" nillable="false">
        <annotation>
          <documentation>Technical identifier of the indexation number</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="IndexationNumberValue" minOccurs="1" maxOccurs="1" nillable="false">
        <annotation>
          <documentation>The value of the indexation number</documentation>
        </annotation>
        <simpleType>
          <restriction base="decimal" />
        </simpleType>
      </element>
      <element name="IndexationNumberMonthYear" type="dateTime" minOccurs="1" maxOccurs="1" nillable="false">
        <annotation>
          <documentation>Month and year of the indexation number</documentation>
        </annotation>
      </element>
      <element name="IndexationNumberIsActive" type="boolean" minOccurs="1" maxOccurs="1" nillable="false">
        <annotation>
          <documentation>Indication whether the indexation number is active</documentation>
        </annotation>
      </element>
    </sequence>
  </complexType>
  <complexType name="PremiumAmountsByInsurerType">
    <choice maxOccurs="unbounded">
      <element name="PremiumAmountByInsurer" type="financial:PremiumAmountByInsurerType" />
    </choice>
  </complexType>
  <complexType name="PremiumAmountByInsurerType">
    <sequence minOccurs="1" maxOccurs="1">
      <element name="BookableAmountId" minOccurs="1" maxOccurs="1" nillable="false">
        <annotation>
          <documentation>Technical id of this bookable amount</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="PremiumAmount" nillable="false" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>The premium amount by insurer</documentation>
        </annotation>
        <simpleType>
          <restriction base="decimal" />
        </simpleType>
      </element>
      <element name="UserOrganisation" type="common:InsurerUserOrganisationType" nillable="true" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>Basic data of the insurer user organisation for this default coverage line.</documentation>
        </annotation>
      </element>
      <element name="Organisation" type="common:InsurerOrganisationType" nillable="true" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>Basic data of the insurer organisation for this default coverage line.</documentation>
        </annotation>
      </element>
      <element name="BasedOnInsurerBookableAmountId" nillable="true" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>Insurer bookable amount based on insurer bookable amount id</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
    </sequence>
  </complexType>
  <complexType name="BookableAmountType">
    <sequence minOccurs="1" maxOccurs="1">
      <element name="BookableAmountId" minOccurs="1" maxOccurs="1" nillable="false">
        <annotation>
          <documentation>Technical id of this bookable amount</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="PremiumPeriodId" type="common:PositiveIntegerType" minOccurs="1" maxOccurs="1" nillable="false" />
      <element name="PremiumTermId" type="common:PositiveIntegerType" minOccurs="1" maxOccurs="1" nillable="false" />
      <element name="BookableAmountType" type="financial:BookableAmountTypeType" minOccurs="1" maxOccurs="1" nillable="false" />
      <element name="PremiumAmount" nillable="true" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>The premium amount</documentation>
        </annotation>
        <simpleType>
          <restriction base="decimal" />
        </simpleType>
      </element>
      <element name="PremiumCurrencyId" nillable="false" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>Technical id of the currency of this bookable amount</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="CoverTypeId" nillable="false" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>Technical id of the Cover type of this bookable amount</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="ObjectListId" nillable="false" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>Technical id of the Object list of this bookable amount</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="ObjectListTypeIsBipar" type="boolean" minOccurs="1" maxOccurs="1" nillable="false">
        <annotation>
          <documentation>Indication whether the Object list is of type BIPAR</documentation>
        </annotation>
      </element>
      <element name="MutationDate" type="date" minOccurs="1" maxOccurs="1" nillable="false" />
      <element name="PremiumAmountsByInsurer" type="financial:PremiumAmountsByInsurerType" minOccurs="0" maxOccurs="1" nillable="false">
        <annotation>
          <documentation>Optional: return if BIPAR</documentation>
        </annotation>
      </element>
      <element name="Cluster" type="financial:ClusterType" minOccurs="0" maxOccurs="1" nillable="false" />
      <element name="BasedOnBookableAmountId" nillable="true" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>Bookable amount based on bookable amount id</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
    </sequence>
  </complexType>
  <complexType name="PremiumTermBookableAmountsType">
    <sequence minOccurs="1" maxOccurs="1">
      <element name="PremiumTerm" type="premiumperiod:PremiumTermType" minOccurs="1" maxOccurs="1" nillable="false" />
      <element name="BookableAmounts" type="financial:BookableAmountsType" minOccurs="1" maxOccurs="1" />
    </sequence>
  </complexType>
  <complexType name="RiskCoverType">
    <sequence minOccurs="1" maxOccurs="1">
      <element name="PremiumTerm" type="financial:MutationType" minOccurs="1" maxOccurs="unbounded">
        <annotation>
          <documentation>
          </documentation>
        </annotation>
      </element>
    </sequence>
  </complexType>
  <complexType name="MutationType">
    <sequence minOccurs="1" maxOccurs="1">
      <element name="PremiumTerm" type="financial:BookableAmountType" minOccurs="1" maxOccurs="unbounded">
        <annotation>
          <documentation>
          </documentation>
        </annotation>
      </element>
    </sequence>
  </complexType>
  <element name="GetPremiumPeriodsByDossierIdRequest">
    <annotation>
      <documentation>
                Dutch functional name: "Premieperiodes"
            </documentation>
    </annotation>
    <complexType>
      <complexContent>
        <extension base="common:WithOnbehalfUserRequest">
          <sequence minOccurs="1" maxOccurs="1">
            <element name="DossierId" type="common:PositiveIntegerType" minOccurs="1" maxOccurs="1" nillable="false" />
          </sequence>
        </extension>
      </complexContent>
    </complexType>
  </element>
  <element name="GetPremiumPeriodsByDossierIdResponse">
    <complexType>
      <sequence minOccurs="1" maxOccurs="1">
        <element name="PremiumPeriods" type="financial:PremiumPeriodsByDossierType" minOccurs="1" maxOccurs="1" />
      </sequence>
    </complexType>
  </element>
  <element name="GetBookableAmountsByPremiumPeriodIdRequest">
    <annotation>
      <documentation>
                Dutch functional name: "Te boeken bedragen"
            </documentation>
    </annotation>
    <complexType>
      <complexContent>
        <extension base="common:WithOnbehalfUserRequest">
          <sequence minOccurs="1" maxOccurs="1">
            <element name="PremiumPeriodId" type="common:PositiveIntegerType" minOccurs="1" maxOccurs="1" nillable="false" />
            <element name="PremiumTermId" type="common:PositiveIntegerType" minOccurs="0" maxOccurs="1" nillable="true" />
            <element name="BookableAmountType" type="financial:BookableAmountTypeType" minOccurs="0" maxOccurs="1" nillable="true" />
          </sequence>
        </extension>
      </complexContent>
    </complexType>
  </element>
  <element name="GetBookableAmountsByPremiumPeriodIdResponse">
    <complexType>
      <sequence minOccurs="1" maxOccurs="1">
        <element name="PremiumTermsBookableAmounts" type="financial:PremiumTermsBookableAmountsType" minOccurs="1" maxOccurs="1" />
      </sequence>
    </complexType>
  </element>
  <element name="GetTotalAmountsByDossierIdRequest">
    <annotation>
      <documentation>
                Dutch functional name: "Totalen per dossier op peildatum"
            </documentation>
    </annotation>
    <complexType>
      <complexContent>
        <extension base="common:WithOnbehalfUserRequest">
          <sequence minOccurs="1" maxOccurs="1">
            <element name="DossierId" type="common:PositiveIntegerType" minOccurs="1" maxOccurs="1" nillable="false">
              <annotation>
                <documentation>Technical identifier of the Dossier to get the total amounts for.</documentation>
              </annotation>
            </element>
            <element name="ReferenceDate" type="date" minOccurs="1" maxOccurs="1" nillable="false">
              <annotation>
                <documentation>
                                    Date for which the total amounts should be retrieved.
                                    A premium period must be available for this date. Note: The reference date must be greater than or equal to the start date of the premium period and less than the main premium due date.
                                </documentation>
              </annotation>
            </element>
            <element name="CalculateInsuredValuesBasedOnSingleLossLimit" type="boolean" minOccurs="0" maxOccurs="1" default="false" nillable="false">
              <annotation>
                <documentation>Indication if insured values should be calculated based on single loss limit, if the premium is based on single loss limit.</documentation>
              </annotation>
            </element>
          </sequence>
        </extension>
      </complexContent>
    </complexType>
  </element>
  <element name="GetTotalAmountsByDossierIdResponse">
    <complexType>
      <sequence minOccurs="1" maxOccurs="1">
        <element name="Dossier" type="financial:FinancialDossierDetailsGetType" minOccurs="1" maxOccurs="1">
          <annotation>
            <documentation>Dossier</documentation>
          </annotation>
        </element>
        <element name="PremiumPeriod" type="premiumperiod:PremiumPeriodDetailsType" minOccurs="1" maxOccurs="1" />
        <element name="Totals" type="financial:TotalsDetailsType" minOccurs="1" maxOccurs="1" />
        <element name="NumberOfObjects" type="common:PositiveIntegerType" minOccurs="1" maxOccurs="1" nillable="false">
          <annotation>
            <documentation>The total number of objects for which coverages are included in the calculation.</documentation>
          </annotation>
        </element>
        <element name="NumberOfObjectGroups" type="common:PositiveIntegerOrZeroType" minOccurs="1" maxOccurs="1" nillable="false">
          <annotation>
            <documentation>The total number of object groups for which coverages are included in the calculation.</documentation>
          </annotation>
        </element>
      </sequence>
    </complexType>
  </element>
  <complexType name="FinancialDossierDetailsGetType">
    <annotation>
      <documentation />
    </annotation>
    <sequence minOccurs="1" maxOccurs="1">
      <element name="DossierId" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>Unique technical id of the returned Dossier</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="RelationId" minOccurs="1" maxOccurs="1" nillable="false">
        <annotation>
          <documentation>Unique technical id of the Relation for returned Dossier</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="RelationName" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>The Name of the Relation for the returned Dossier</documentation>
        </annotation>
        <simpleType>
          <restriction base="string">
            <minLength value="1" />
            <maxLength value="250" />
          </restriction>
        </simpleType>
      </element>
      <element name="RelationReferenceNumber" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>The Reference Number of the Relation for the returned dossier</documentation>
        </annotation>
        <simpleType>
          <restriction base="string">
            <minLength value="1" />
            <maxLength value="200" />
          </restriction>
        </simpleType>
      </element>
      <element name="Number" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>The policy number of the returned Dossier</documentation>
        </annotation>
        <simpleType>
          <restriction base="string">
            <maxLength value="30" />
          </restriction>
        </simpleType>
      </element>
      <element name="SubNumber" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>The policy subnumber of the returned Dossier</documentation>
        </annotation>
        <simpleType>
          <restriction base="string">
            <maxLength value="30" />
          </restriction>
        </simpleType>
      </element>
      <element name="VNABNumber" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>The VNAB subscription number of the member that the returned Dossier belongs to</documentation>
        </annotation>
        <simpleType>
          <restriction base="int">
            <pattern value="\d{9}" />
          </restriction>
        </simpleType>
      </element>
      <element name="Reference" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>Textual identifier or attribute of the returned Dossier</documentation>
        </annotation>
        <simpleType>
          <restriction base="string">
            <maxLength value="200" />
          </restriction>
        </simpleType>
      </element>
      <element name="Remarks" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>Miscellaneous comments on the returned Dossier</documentation>
        </annotation>
        <simpleType>
          <restriction base="string" />
        </simpleType>
      </element>
      <element name="ProductTypeId" minOccurs="1" maxOccurs="1" nillable="false">
        <annotation>
          <documentation>Unique technical id of the Product Type for returned Dossier</documentation>
        </annotation>
        <simpleType>
          <restriction base="common:PositiveIntegerType" />
        </simpleType>
      </element>
      <element name="ProductTypeCode" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>Two character abbreviation of the Product Type. Unique within the system.</documentation>
        </annotation>
        <simpleType>
          <restriction base="string">
            <minLength value="1" />
            <maxLength value="10" />
          </restriction>
        </simpleType>
      </element>
      <element name="ProductTypeName" minOccurs="1" maxOccurs="1">
        <annotation>
          <documentation>Name of the Product Type. In the language that is specified as the default language for the web service user.</documentation>
        </annotation>
        <simpleType>
          <restriction base="string">
            <minLength value="1" />
            <maxLength value="250" />
          </restriction>
        </simpleType>
      </element>
      <element name="NextPremiumDueDate" type="date" minOccurs="1" maxOccurs="1" nillable="true">
        <annotation>
          <documentation>Next premium due date for Dossier</documentation>
        </annotation>
      </element>
    </sequence>
  </complexType>
</schema>