Server

<back to all web services

CreateCustomers

Requires Authentication
The following routes are available for this service:
POST/Customers/Create
import java.math.*
import java.util.*
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*


@DataContract
open class CreateCustomers
{
    @DataMember(Name="Kunden")
    @SerializedName("Kunden")
    var customers:ArrayList<Customer> = ArrayList<Customer>()

    @DataMember(Name="Objekte")
    @SerializedName("Objekte")
    var objekte:ArrayList<Objekt> = ArrayList<Objekt>()

    @DataMember(Name="Adressen")
    @SerializedName("Adressen")
    var addresses:ArrayList<Address> = ArrayList<Address>()

    @DataMember(Name="Nutzer")
    @SerializedName("Nutzer")
    var nutzer:ArrayList<Nutzer> = ArrayList<Nutzer>()

    @DataMember(Name="NutzerCoOwnership")
    @SerializedName("NutzerCoOwnership")
    var nutzerCoOwnership:ArrayList<NutzerCoOwnership> = ArrayList<NutzerCoOwnership>()

    @DataMember(Name="NutzerPersonen")
    @SerializedName("NutzerPersonen")
    var nutzerPersonen:ArrayList<NutzerPersonen> = ArrayList<NutzerPersonen>()

    @DataMember(Name="NutzerQuadratmeter")
    @SerializedName("NutzerQuadratmeter")
    var nutzerQuadratmeter:ArrayList<NutzerQuadratmeter> = ArrayList<NutzerQuadratmeter>()

    @DataMember(Name="EigentuemerNutzeinheit")
    @SerializedName("EigentuemerNutzeinheit")
    var ownerNutzeinheiten:ArrayList<OwnerNutzeinheit> = ArrayList<OwnerNutzeinheit>()

    @DataMember(Name="Nutzeinheiten")
    @SerializedName("Nutzeinheiten")
    var nutzeinheiten:ArrayList<Nutzeinheit> = ArrayList<Nutzeinheit>()

    @DataMember(Name="Direktkosten")
    @SerializedName("Direktkosten")
    var direktkosten:ArrayList<Direktkosten> = ArrayList<Direktkosten>()

    @DataMember(Name="Prepayments")
    @SerializedName("Prepayments")
    var prepayments:ArrayList<Prepayment> = ArrayList<Prepayment>()

    @DataMember(Name="EnergieVerwerter")
    @SerializedName("EnergieVerwerter")
    var energieVerwerter:ArrayList<EnergieVerwerter> = ArrayList<EnergieVerwerter>()

    @DataMember(Name="Brennstofflieferungen")
    @SerializedName("Brennstofflieferungen")
    var brennstofflieferungen:ArrayList<Brennstofflieferung> = ArrayList<Brennstofflieferung>()

    @DataMember(Name="Nebenkosten")
    @SerializedName("Nebenkosten")
    var nebenkosten:ArrayList<Nebenkosten> = ArrayList<Nebenkosten>()

    @DataMember(Name="Heizbetriebskosten")
    @SerializedName("Heizbetriebskosten")
    var heizbetriebskosten:ArrayList<Heizbetriebskosten> = ArrayList<Heizbetriebskosten>()

    @DataMember(Name="NutzeinheitGeraete")
    @SerializedName("NutzeinheitGeraete")
    var nutzeinheitDevices:ArrayList<NutzeinheitDevice> = ArrayList<NutzeinheitDevice>()

    @DataMember(Name="Geraete")
    @SerializedName("Geraete")
    var devices:ArrayList<Device> = ArrayList<Device>()

    @DataMember(Name="Geraeteverbraeuche")
    @SerializedName("Geraeteverbraeuche")
    var deviceConsumptions:ArrayList<DeviceConsumption> = ArrayList<DeviceConsumption>()

    @DataMember(Name="BillingInformations")
    @SerializedName("BillingInformations")
    var billingInformations:ArrayList<BillingInformation> = ArrayList<BillingInformation>()
}

@DataContract
open class Customer
{
    @DataMember(Name="Guid")
    @SerializedName("Guid")
    var guid:String? = null

    @DataMember(Name="Name1")
    @SerializedName("Name1")
    var name1:String? = null

    @DataMember(Name="Name2")
    @SerializedName("Name2")
    var name2:String? = null

    @DataMember(Name="Name3")
    @SerializedName("Name3")
    var name3:String? = null

    @DataMember(Name="Kundennummer")
    @SerializedName("Kundennummer")
    var number:String? = null

    @DataMember(Name="Anrede")
    @SerializedName("Anrede")
    var salutation:String? = null

    @DataMember(Name="KundenAdressen")
    @SerializedName("KundenAdressen")
    var customerAddresses:ArrayList<CustomerAddress> = ArrayList<CustomerAddress>()

    @DataMember(Name="KundenObjekte")
    @SerializedName("KundenObjekte")
    var customerObjekte:ArrayList<CustomerObjekt> = ArrayList<CustomerObjekt>()
}

@DataContract
open class CustomerAddress
{
    @DataMember(Name="AdresseGuid")
    @SerializedName("AdresseGuid")
    var addressGuid:String? = null

    @DataMember(Name="IstPrimaer")
    @SerializedName("IstPrimaer")
    var isPrimary:Boolean? = null

    @DataMember(Name="AdressTypBezeichnung")
    @SerializedName("AdressTypBezeichnung")
    var addressKindLabel:String? = null

    @DataMember(Name="AdressTyp")
    @SerializedName("AdressTyp")
    var addressKindTyp:String? = null
}

@DataContract
open class CustomerObjekt
{
    @DataMember(Name="Guid")
    @SerializedName("Guid")
    var guid:String? = null

    @DataMember(Name="ZeitraumVon")
    @SerializedName("ZeitraumVon")
    var rangeFrom:Date? = null

    @DataMember(Name="ZeitraumBis")
    @SerializedName("ZeitraumBis")
    var rangeTo:Date? = null

    @DataMember(Name="IstKunde")
    @SerializedName("IstKunde")
    var isCustomer:Boolean? = null

    @DataMember(Name="IstEigentümer")
    @SerializedName("IstEigentümer")
    var isOwner:Boolean? = null

    @DataMember(Name="IstEigentümerPseudo")
    @SerializedName("IstEigentümerPseudo")
    var isOwnerPseudo:Boolean? = null

    @DataMember(Name="ObjektGuid")
    @SerializedName("ObjektGuid")
    var objektGuid:String? = null

    @DataMember(Name="KundeGuid")
    @SerializedName("KundeGuid")
    var customerGuid:String? = null
}

@DataContract
open class Objekt
{
    @DataMember(Name="Guid")
    @SerializedName("Guid")
    var guid:String? = null

    @DataMember(Name="Objektnummer")
    @SerializedName("Objektnummer")
    var number:String? = null

    @DataMember(Name="IstAbgeschlossen")
    @SerializedName("IstAbgeschlossen")
    var isCompleted:String? = null

    @DataMember(Name="Uvi")
    @SerializedName("Uvi")
    var uvi:String? = null

    @DataMember(Name="IsUviDisabled")
    @SerializedName("IsUviDisabled")
    var isUviDisabled:String? = null

    @DataMember(Name="AbgeschlossenDatum")
    @SerializedName("AbgeschlossenDatum")
    var completedDate:Date? = null

    @DataMember(Name="AdressGuid")
    @SerializedName("AdressGuid")
    var addressGuid:String? = null

    @DataMember(Name="AnmerkungKundenportal")
    @SerializedName("AnmerkungKundenportal")
    var anmerkungKundenportal:String? = null

    @DataMember(Name="KundenportalMarkedDone")
    @SerializedName("KundenportalMarkedDone")
    var kundenportalMarkedDone:Boolean? = null

    @DataMember(Name="MarkedDoneAt")
    @SerializedName("MarkedDoneAt")
    var markedDoneAt:Date? = null
}

@DataContract
open class Address
{
    @DataMember(Name="Guid")
    @SerializedName("Guid")
    var guid:String? = null

    @DataMember(Name="Straße")
    @SerializedName("Straße")
    var street:String? = null

    @DataMember(Name="Straße2")
    @SerializedName("Straße2")
    var street2:String? = null

    @DataMember(Name="Hausnummer")
    @SerializedName("Hausnummer")
    var streetNumber:String? = null

    @DataMember(Name="Postleitzahl")
    @SerializedName("Postleitzahl")
    var zipcode:String? = null

    @DataMember(Name="Ort")
    @SerializedName("Ort")
    var city:String? = null

    @DataMember(Name="Postfach")
    @SerializedName("Postfach")
    var mailbox:String? = null

    @DataMember(Name="Adresszusatz")
    @SerializedName("Adresszusatz")
    var additional:String? = null
}

@DataContract
open class Nutzer
{
    @DataMember
    var guid:UUID? = null

    @DataMember
    var name1:String? = null

    @DataMember
    var name2:String? = null

    @DataMember
    var name3:String? = null

    @DataMember
    var name4:String? = null

    @DataMember
    @ApiMember(IsRequired=true)
    var nutzerType:NutzerType? = null

    @DataMember
    var nutzeinheitNumberExternal:String? = null

    @DataMember
    @ApiMember(IsRequired=true)
    var nutzerInNutzeinheitSequence:Long? = null

    @DataMember
    @ApiMember(IsRequired=true)
    var rangeFrom:Date? = null

    @DataMember
    var rangeTo:Date? = null

    @DataMember
    var isDeleted:Boolean? = null

    @DataMember
    var isCreatedByApp:Boolean? = null

    @DataMember(Name="IstUvi")
    @SerializedName("IstUvi")
    var isUviRecieved:String? = null

    @DataMember(Name="EigentuemerBewohnt")
    @SerializedName("EigentuemerBewohnt")
    var isNutzerOwner:String? = null

    @DataMember(Name="Email")
    @SerializedName("Email")
    var email:String? = null

    @DataMember(Name="Mobil")
    @SerializedName("Mobil")
    var mobilePhone:String? = null

    @DataMember
    var title:String? = null

    @DataMember
    @ApiMember(IsRequired=true, ParameterType="body")
    var salutation:String? = null
}

enum class NutzerType
{
    Leerstand,
    Gewerblich,
    Privat,
    AllgemeineNutzung,
}

@DataContract
open class NutzerCoOwnership
{
    @DataMember(Name="Guid")
    @SerializedName("Guid")
    var guid:String? = null

    @DataMember(Name="ShareValue")
    @SerializedName("ShareValue")
    var shareValue:BigDecimal? = null

    @DataMember(Name="Von")
    @SerializedName("Von")
    var rangeFrom:Date? = null

    @DataMember(Name="Bis")
    @SerializedName("Bis")
    var rangeTo:Date? = null

    @DataMember(Name="NutzerGuid")
    @SerializedName("NutzerGuid")
    var nutzerGuid:String? = null

    @DataMember(Name="IsCreatedByApp")
    @SerializedName("IsCreatedByApp")
    var isCreatedByApp:Boolean? = null

    @DataMember(Name="IsDeleted")
    @SerializedName("IsDeleted")
    var isDeleted:Boolean? = null
}

@DataContract
open class NutzerPersonen
{
    @DataMember(Name="Guid")
    @SerializedName("Guid")
    var guid:String? = null

    @DataMember(Name="Personen")
    @SerializedName("Personen")
    var numberOfPeople:Int? = null

    @DataMember(Name="Von")
    @SerializedName("Von")
    var rangeFrom:Date? = null

    @DataMember(Name="Bis")
    @SerializedName("Bis")
    var rangeTo:Date? = null

    @DataMember(Name="NutzerGuid")
    @SerializedName("NutzerGuid")
    var nutzerGuid:String? = null

    @DataMember(Name="IsCreatedByApp")
    @SerializedName("IsCreatedByApp")
    var isCreatedByApp:Boolean? = null

    @DataMember(Name="IsDeleted")
    @SerializedName("IsDeleted")
    var isDeleted:Boolean? = null
}

@DataContract
open class NutzerQuadratmeter
{
    @DataMember(Name="Guid")
    @SerializedName("Guid")
    var guid:String? = null

    @DataMember(Name="Quadratmeter_Hzg")
    @SerializedName("Quadratmeter_Hzg")
    var squareMeters_Hzg:BigDecimal? = null

    @DataMember(Name="Quadratmeter_Ww")
    @SerializedName("Quadratmeter_Ww")
    var squareMeters_Ww:BigDecimal? = null

    @DataMember(Name="Quadratmeter_Nk")
    @SerializedName("Quadratmeter_Nk")
    var squareMeters_Nk:BigDecimal? = null

    @DataMember(Name="Von")
    @SerializedName("Von")
    var rangeFrom:Date? = null

    @DataMember(Name="Bis")
    @SerializedName("Bis")
    var rangeTo:Date? = null

    @DataMember(Name="NutzerGuid")
    @SerializedName("NutzerGuid")
    var nutzerGuid:String? = null

    @DataMember(Name="IsCreatedByApp")
    @SerializedName("IsCreatedByApp")
    var isCreatedByApp:Boolean? = null

    @DataMember(Name="IsDeleted")
    @SerializedName("IsDeleted")
    var isDeleted:Boolean? = null
}

@DataContract
open class OwnerNutzeinheit
{
    @DataMember(Name="Guid")
    @SerializedName("Guid")
    var guid:String? = null

    @DataMember(Name="Name1")
    @SerializedName("Name1")
    var name1:String? = null

    @DataMember(Name="Name2")
    @SerializedName("Name2")
    var name2:String? = null

    @DataMember(Name="Name3")
    @SerializedName("Name3")
    var name3:String? = null

    @DataMember(Name="Name4")
    @SerializedName("Name4")
    var name4:String? = null

    @DataMember(Name="ZeitraumVon")
    @SerializedName("ZeitraumVon")
    var rangeFrom:Date? = null

    @DataMember(Name="ZeitraumBis")
    @SerializedName("ZeitraumBis")
    var rangeTo:Date? = null

    @DataMember(Name="Titel")
    @SerializedName("Titel")
    var title:String? = null

    @DataMember(Name="Anrede")
    @SerializedName("Anrede")
    var salutation:String? = null

    @DataMember(Name="AdressGuid")
    @SerializedName("AdressGuid")
    var addressGuid:String? = null

    @DataMember(Name="NutzeinheitGuid")
    @SerializedName("NutzeinheitGuid")
    var nutzeinheitGuid:String? = null
}

@DataContract
open class Nutzeinheit
{
    @DataMember(Name="Guid")
    @SerializedName("Guid")
    var guid:String? = null

    @DataMember(Name="Nummer")
    @SerializedName("Nummer")
    var number:String? = null

    @DataMember(Name="Lage")
    @SerializedName("Lage")
    var location:String? = null

    @DataMember(Name="ObjektGuid")
    @SerializedName("ObjektGuid")
    var objektGuid:String? = null

    @DataMember(Name="AdressGuid")
    @SerializedName("AdressGuid")
    var addressGuid:String? = null
}

@DataContract
open class Direktkosten
{
    @DataMember
    var guid:UUID? = null

    @DataMember
    var label:String? = null

    @DataMember
    var date:Date? = null

    @DataMember
    var brutto:BigDecimal? = null

    @DataMember
    var salesTax:BigDecimal? = null

    @DataMember
    var quantity:BigDecimal? = null

    @DataMember
    @SerializedName("type") var Type:String? = null

    @DataMember
    var isDeleted:Boolean? = null

    @DataMember
    var isCreatedByApp:Boolean? = null

    @DataMember
    var nutzerGuid:UUID? = null

    @DataMember
    var billingInformation:BillingInformation? = null
}

@DataContract
open class BillingInformation
{
    @DataMember
    var guid:String? = null

    @DataMember
    var from:Date? = null

    @DataMember
    var to:Date? = null

    @DataMember
    var isCompleted:Boolean? = null

    @DataMember
    var hasNebenkosten:Boolean? = null
}

@DataContract
open class Prepayment
{
    @DataMember(Name="Guid")
    @SerializedName("Guid")
    var guid:String? = null

    @DataMember(Name="Von")
    @SerializedName("Von")
    var from:Date? = null

    @DataMember(Name="Bis")
    @SerializedName("Bis")
    var to:Date? = null

    @DataMember(Name="VZ Nebenkosten")
    @SerializedName("VZ Nebenkosten")
    var amount_Nk:BigDecimal? = null

    @DataMember(Name="VZ Heizkosten")
    @SerializedName("VZ Heizkosten")
    var amount_HK:BigDecimal? = null

    @DataMember(Name="VZ Warmwasser")
    @SerializedName("VZ Warmwasser")
    var amount_Ww:BigDecimal? = null

    @DataMember(Name="IstGeloescht")
    @SerializedName("IstGeloescht")
    var isDeleted:Boolean? = null

    @DataMember(Name="IstErzeugtVonApp")
    @SerializedName("IstErzeugtVonApp")
    var isCreatedByApp:Boolean? = null

    @DataMember(Name="ObjektGuid")
    @SerializedName("ObjektGuid")
    var objektGuid:String? = null

    @DataMember(Name="NutzerGuid")
    @SerializedName("NutzerGuid")
    var nutzerGuid:String? = null

    @DataMember(Name="BillingInformationGuid")
    @SerializedName("BillingInformationGuid")
    var billingInformationGuid:String? = null
}

@DataContract
open class EnergieVerwerter
{
    @DataMember(Name="Guid")
    @SerializedName("Guid")
    var guid:String? = null

    @DataMember(Name="Bezeichnung")
    @SerializedName("Bezeichnung")
    var label:String? = null

    @DataMember(Name="Wirkungsgrad")
    @SerializedName("Wirkungsgrad")
    var efficiencyFactor:BigDecimal? = null

    @DataMember(Name="Einbau")
    @SerializedName("Einbau")
    var assemblyDate:Date? = null

    @DataMember(Name="Ausbau")
    @SerializedName("Ausbau")
    var disassemblyDate:Date? = null

    @DataMember(Name="Baujahr")
    @SerializedName("Baujahr")
    var buildYear:Long? = null

    @DataMember(Name="Temperatur")
    @SerializedName("Temperatur")
    var temperature:Long? = null

    @DataMember(Name="EigenstGewerbLieferung")
    @SerializedName("EigenstGewerbLieferung")
    var commercialSupply:Boolean? = null

    @DataMember(Name="Brennwert")
    @SerializedName("Brennwert")
    var brennwert:Boolean? = null

    @DataMember(Name="ObjektGuid")
    @SerializedName("ObjektGuid")
    var objektGuid:String? = null

    @DataMember(Name="BrennstoffMediumGuid")
    @SerializedName("BrennstoffMediumGuid")
    var brennstoffMediumGuid:String? = null
}

@DataContract
open class Brennstofflieferung
{
    @DataMember
    var guid:UUID? = null

    @DataMember
    var deliveryDate:Date? = null

    @DataMember
    var salexTax:BigDecimal? = null

    @DataMember
    var emisionsTax:BigDecimal? = null

    @DataMember
    var c02Taxes:BigDecimal? = null

    @DataMember
    var customsTax:BigDecimal? = null

    @DataMember
    var otherCharges:BigDecimal? = null

    @DataMember
    var c02Price:BigDecimal? = null

    @DataMember
    var c02Tons:BigDecimal? = null

    @DataMember
    var quantity:BigDecimal? = null

    @DataMember
    var amount:BigDecimal? = null

    @DataMember
    var startMeterReadingValue:BigDecimal? = null

    @DataMember
    var endMeterReadingValue:BigDecimal? = null

    @DataMember
    var heizwert:BigDecimal? = null

    @DataMember
    var brennwert:Boolean? = null

    @DataMember
    var energyReliefAmountDescription:String? = null

    @DataMember
    var energyReliefAmount:BigDecimal? = null

    @DataMember
    var electricityReliefAmountDescription:String? = null

    @DataMember
    var electricityReliefAmount:BigDecimal? = null

    @DataMember
    var cO2EmissionsFactor:BigDecimal? = null

    @DataMember
    var cO2Text:String? = null

    @DataMember
    var cO2Active:Boolean? = null

    @DataMember
    var cO2PriceKnd:Boolean? = null

    @DataMember
    var cO2PriceLandlord:BigDecimal? = null

    @DataMember
    var cO2PriceRenter:BigDecimal? = null

    @DataMember
    var cO2Area:BigDecimal? = null

    @DataMember
    var isForCommercialUse:Boolean? = null

    @DataMember
    var isRenovationRequired:Boolean? = null

    @DataMember
    var isHeatingPadsImproved:Boolean? = null

    @DataMember
    var cO2KWh:BigDecimal? = null

    @DataMember
    var includedCO2SalesTax:BigDecimal? = null

    @DataMember
    var cO2Costs:BigDecimal? = null

    @DataMember
    var totalC02Weight:BigDecimal? = null

    @DataMember
    var noTotalDeductionC02Costs:Boolean? = null

    @DataMember
    var isDeleted:Boolean? = null

    @DataMember
    var isCreatedByApp:Boolean? = null

    @DataMember
    var brennstoffMediumGuid:UUID? = null

    @DataMember
    var billingInformation:BillingInformation? = null
}

@DataContract
open class Nebenkosten
{
    @DataMember
    var guid:UUID? = null

    @DataMember
    var number:Long? = null

    @DataMember
    var from:Date? = null

    @DataMember
    var to:Date? = null

    @DataMember
    var targetAllocation:NebenkostenTargetAllocation? = null

    @DataMember
    var targetAllocationIn:NebenkostenTargetAllocationIn? = null

    @DataMember
    var nebenkostenKind:String? = null

    /**
    * Freitext
    */
    @DataMember
    @ApiMember(Description="Freitext")
    var kostenart:String? = null

    @DataMember
    var brutto:BigDecimal? = null

    @DataMember
    var bruttoLastYear:BigDecimal? = null

    @DataMember
    var salesTax:BigDecimal? = null

    @DataMember
    var haushaltsnahediensteLabel:String? = null

    @DataMember
    var haushaltsnahediensteBrutto:BigDecimal? = null

    /**
    * Freitext
    */
    @DataMember
    @ApiMember(Description="Freitext")
    var kostenartUnit:String? = null

    @DataMember
    var reduzierungsartType:String? = null

    @DataMember
    var comment:String? = null

    @DataMember
    var isDeleted:Boolean? = null

    @DataMember
    var isCreatedByApp:Boolean? = null

    @DataMember
    var nebenkostenNutzeinheiten:ArrayList<NebenkostenNutzeinheit> = ArrayList<NebenkostenNutzeinheit>()

    @DataMember
    var nebenkostenNutzer:ArrayList<NebenkostenNutzer> = ArrayList<NebenkostenNutzer>()

    @DataMember
    var billingInformation:BillingInformation? = null
}

enum class NebenkostenTargetAllocation
{
    Null,
    AlleNutzer,
    ZugeordneteNutzer,
    ZugeordneteNutzeinheiten,
    ZugeordneteNutzerDiff,
    ZugeordneteNutzeinheitenDiff,
}

enum class NebenkostenTargetAllocationIn
{
    Nebenkosten,
    Heizkosten,
    Warmwasserkosten,
}

@DataContract
open class NebenkostenNutzeinheit
{
    @DataMember
    var relativeAmount:BigDecimal? = null

    @DataMember
    var isDeleted:Boolean? = null

    @DataMember
    var isCreatedByApp:Boolean? = null

    @DataMember
    var nutzeinheitGuid:UUID? = null
}

@DataContract
open class NebenkostenNutzer
{
    @DataMember
    var relativeAmount:BigDecimal? = null

    @DataMember
    var isDeleted:Boolean? = null

    @DataMember
    var isCreatedByApp:Boolean? = null

    @DataMember
    var nutzerGuid:UUID? = null
}

@DataContract
open class Heizbetriebskosten
{
    @DataMember
    var guid:UUID? = null

    @DataMember
    var from:Date? = null

    @DataMember
    var to:Date? = null

    @DataMember
    var salesTax:BigDecimal? = null

    @DataMember
    var haushatlsnahediensteBrutto:BigDecimal? = null

    @DataMember
    var brutto:BigDecimal? = null

    @DataMember
    var haushatlsnahediensteLabel:String? = null

    @DataMember
    var description:String? = null

    @DataMember
    var isDeleted:Boolean? = null

    @DataMember
    var isCreatedByApp:Boolean? = null
}

@DataContract
open class NutzeinheitDevice
{
    @DataMember(Name="Guid")
    @SerializedName("Guid")
    var guid:String? = null

    @DataMember(Name="ZuordnungVon")
    @SerializedName("ZuordnungVon")
    var assignedFromDate:Date? = null

    @DataMember(Name="ZuordnungBis")
    @SerializedName("ZuordnungBis")
    var assignedToDate:Date? = null

    @DataMember(Name="Raum")
    @SerializedName("Raum")
    var room:String? = null

    @DataMember(Name="LaufendeNummer")
    @SerializedName("LaufendeNummer")
    var ongoingNumber:String? = null

    @DataMember(Name="gemietet")
    @SerializedName("gemietet")
    var isRented:Boolean? = null

    @DataMember(Name="gewartet")
    @SerializedName("gewartet")
    var isMaintained:Boolean? = null

    @DataMember(Name="DeviceGuid")
    @SerializedName("DeviceGuid")
    var deviceGuid:String? = null

    @DataMember(Name="NutzeinheitGuid")
    @SerializedName("NutzeinheitGuid")
    var nutzeinheitGuid:String? = null
}

@DataContract
open class Device
{
    @DataMember(Name="Guid")
    @SerializedName("Guid")
    var guid:String? = null

    @DataMember(Name="Geraetenummer")
    @SerializedName("Geraetenummer")
    var number:String? = null

    @DataMember(Name="Bezeichnung")
    @SerializedName("Bezeichnung")
    var label:String? = null

    @DataMember(Name="Beschreibung")
    @SerializedName("Beschreibung")
    var description:String? = null

    @DataMember(Name="Einbaudatum")
    @SerializedName("Einbaudatum")
    var installationDate:Date? = null

    @DataMember(Name="Ausbaudatum")
    @SerializedName("Ausbaudatum")
    var deinstallationDate:Date? = null

    @DataMember(Name="Eichdatum")
    @SerializedName("Eichdatum")
    var calibrationDate:Date? = null

    @DataMember(Name="Einheit")
    @SerializedName("Einheit")
    var unit:String? = null

    @DataMember(Name="Memo")
    @SerializedName("Memo")
    var note:String? = null

    @DataMember(Name="DeviceCatalogGuid")
    @SerializedName("DeviceCatalogGuid")
    var deviceCatalogGuid:String? = null
}

@DataContract
open class DeviceConsumption
{
    @DataMember
    var guid:UUID? = null

    @DataMember
    var deviceReading:Double? = null

    @DataMember
    var deviceReadingDate:Date? = null

    @DataMember
    var deviceReadingKind:DeviceReadingKind? = null

    @DataMember
    var changeDate:Date? = null

    @DataMember
    var note:String? = null

    @DataMember
    var ampouleColour:String? = null

    @DataMember
    var deviceGuid:String? = null
}

enum class DeviceReadingKind
{
    Za,
    Ha,
    Mo,
    Eb,
    Ab,
}

@DataContract
open class BillingInformation
{
    @DataMember(Name="Guid")
    @SerializedName("Guid")
    var guid:String? = null

    @DataMember(Name="Von")
    @SerializedName("Von")
    var from:Date? = null

    @DataMember(Name="Bis")
    @SerializedName("Bis")
    var to:Date? = null

    @DataMember(Name="IstAbgeschlossen")
    @SerializedName("IstAbgeschlossen")
    var isCompleted:Boolean? = null

    @DataMember(Name="HatNebenkosten")
    @SerializedName("HatNebenkosten")
    var hasNebenkosten:Boolean? = null

    @DataMember(Name="ObjektGuid")
    @SerializedName("ObjektGuid")
    var objektGuid:String? = null

    @DataMember(Name="AnmerkungKundenportal")
    @SerializedName("AnmerkungKundenportal")
    var anmerkungKundenportal:String? = null

    @DataMember(Name="KundenportalMarkedDone")
    @SerializedName("KundenportalMarkedDone")
    var kundenportalMarkedDone:Boolean? = null

    @DataMember(Name="MarkedDoneAt")
    @SerializedName("MarkedDoneAt")
    var markedDoneAt:Date? = null

    @DataMember(Name="KundenportalMarkedClosed")
    @SerializedName("KundenportalMarkedClosed")
    var kundenportalMarkedClosed:Boolean? = null

    @DataMember(Name="MarkedClosedAt")
    @SerializedName("MarkedClosedAt")
    var markedClosedAt:Date? = null
}

open class CreateCustomersResponse
{
    var customersCreated:Int? = null
    var responseStatus:ResponseStatus? = null
}

Kotlin CreateCustomers DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /Customers/Create HTTP/1.1 
Host: plasa-servdesk.eras-online.de 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Kunden: 
	[
		{
			Guid: String,
			Name1: String,
			Name2: String,
			Name3: String,
			Kundennummer: String,
			Anrede: String,
			KundenAdressen: 
			[
				{
					AdresseGuid: String,
					IstPrimaer: False,
					AdressTypBezeichnung: String,
					AdressTyp: String
				}
			],
			KundenObjekte: 
			[
				{
					Guid: String,
					ZeitraumVon: 0001-01-01T00:00:00Z,
					ZeitraumBis: 0001-01-01T00:00:00Z,
					IstKunde: False,
					IstEigentümer: False,
					IstEigentümerPseudo: False,
					ObjektGuid: String,
					KundeGuid: String
				}
			]
		}
	],
	Objekte: 
	[
		{
			Guid: String,
			Objektnummer: String,
			IstAbgeschlossen: String,
			Uvi: String,
			IsUviDisabled: String,
			AbgeschlossenDatum: 0001-01-01T00:00:00Z,
			AdressGuid: String,
			AnmerkungKundenportal: String,
			KundenportalMarkedDone: False,
			MarkedDoneAt: 0001-01-01T00:00:00Z
		}
	],
	Adressen: 
	[
		{
			Guid: String,
			Straße: String,
			Straße2: String,
			Hausnummer: String,
			Postleitzahl: String,
			Ort: String,
			Postfach: String,
			Adresszusatz: String
		}
	],
	Nutzer: 
	[
		{
			Guid: String,
			Name1: String,
			Name2: String,
			Name3: String,
			Name4: String,
			NutzerType: String,
			NutzeinheitNummerExtern: String,
			NutzerInNutzeinheitReihenfolge: 0,
			ZeitraumVon: 0001-01-01T00:00:00Z,
			ZeitraumBis: 0001-01-01T00:00:00Z,
			IstGeloescht: False,
			IstErzeugtVonApp: False,
			Uvi: String,
			EigentuemerBewohnt: String,
			Email: String,
			Mobil: String,
			Titel: String,
			Anrede: String,
			NutzeinheitGuid: String
		}
	],
	NutzerCoOwnership: 
	[
		{
			Guid: String,
			ShareValue: 0,
			Von: 0001-01-01T00:00:00Z,
			Bis: 0001-01-01T00:00:00Z,
			NutzerGuid: String,
			IsCreatedByApp: False,
			IsDeleted: False
		}
	],
	NutzerPersonen: 
	[
		{
			Guid: String,
			Personen: 0,
			Von: 0001-01-01T00:00:00Z,
			Bis: 0001-01-01T00:00:00Z,
			NutzerGuid: String,
			IsCreatedByApp: False,
			IsDeleted: False
		}
	],
	NutzerQuadratmeter: 
	[
		{
			Guid: String,
			Quadratmeter_Hzg: 0,
			Quadratmeter_Ww: 0,
			Quadratmeter_Nk: 0,
			Von: 0001-01-01T00:00:00Z,
			Bis: 0001-01-01T00:00:00Z,
			NutzerGuid: String,
			IsCreatedByApp: False,
			IsDeleted: False
		}
	],
	EigentuemerNutzeinheit: 
	[
		{
			Guid: String,
			Name1: String,
			Name2: String,
			Name3: String,
			Name4: String,
			ZeitraumVon: 0001-01-01T00:00:00Z,
			ZeitraumBis: 0001-01-01T00:00:00Z,
			Titel: String,
			Anrede: String,
			AdressGuid: String,
			NutzeinheitGuid: String
		}
	],
	Nutzeinheiten: 
	[
		{
			Guid: String,
			Nummer: String,
			Lage: String,
			ObjektGuid: String,
			AdressGuid: String
		}
	],
	Direktkosten: 
	[
		{
			Guid: String,
			Bezeichnung: String,
			Datum: 0001-01-01T00:00:00Z,
			Brutto: 0,
			Mwst: 0,
			Menge: 0,
			Typ: String,
			IstGeloescht: False,
			IstErzeugtVonApp: False,
			ObjektGuid: String,
			NutzerGuid: String,
			BillingInformationGuid: String
		}
	],
	Prepayments: 
	[
		{
			Guid: String,
			Von: 0001-01-01T00:00:00Z,
			Bis: 0001-01-01T00:00:00Z,
			VZ Nebenkosten: 0,
			VZ Heizkosten: 0,
			VZ Warmwasser: 0,
			IstGeloescht: False,
			IstErzeugtVonApp: False,
			ObjektGuid: String,
			NutzerGuid: String,
			BillingInformationGuid: String
		}
	],
	EnergieVerwerter: 
	[
		{
			Guid: String,
			Bezeichnung: String,
			Wirkungsgrad: 0,
			Einbau: 0001-01-01T00:00:00Z,
			Ausbau: 0001-01-01T00:00:00Z,
			Baujahr: 0,
			Temperatur: 0,
			EigenstGewerbLieferung: False,
			Brennwert: False,
			ObjektGuid: String,
			BrennstoffMediumGuid: String
		}
	],
	Brennstofflieferungen: 
	[
		{
			Guid: String,
			Lieferdatum: 0001-01-01T00:00:00Z,
			Mwst: 0,
			Emissionsangabe: 0,
			Steuern: 0,
			Zolle: 0,
			SonstigeAngaben: 0,
			C02Preis: 0,
			C02Tonnen: 0,
			Menge: 0,
			Betrag: 0,
			Anfangsstand: 0,
			Endstand: 0,
			Heizwert: 0,
			Brennwert: False,
			IstGeloescht: False,
			IstErzeugtVonApp: False,
			EnergieEntlastungsbetragBezeichnung: String,
			EnergieEntlastungsbetrag: 0,
			StromEntlastungsbetragBezeichnung: String,
			StromEntlastungsbetrag: 0,
			CO2Emissionsfaktor: 0,
			CO2Text: String,
			CO2Aktiv: False,
			CO2PreisKnd: False,
			CO2PreisVermieter: 0,
			CO2PreisMieter: 0,
			CO2Flaeche: 0,
			GewerblicheNutzung: False,
			Sanierungsauflagen: False,
			AuflagenHeizungsverbesserung: False,
			CO2KWH: 0,
			EnthalteneMwst: 0,
			CO2KostenBrutto: 0,
			CO2GesamtKg: 0,
			KeinGesamtabzugC02Kosten: False,
			EnergieVerwerterGuid: String,
			BrennstoffMediumGuid: String,
			BillingInformationGuid: String
		}
	],
	Nebenkosten: 
	[
		{
			Guid: String,
			Kostennummer: 0,
			Von: 0001-01-01T00:00:00Z,
			Bis: 0001-01-01T00:00:00Z,
			UmlageZiel: String,
			UmlageZielIn: String,
			NebenkostenArt: String,
			Kostenart: String,
			Brutto: 0,
			BruttoLetztesJahr: 0,
			Mwst: 0,
			HaushaltsnahediensteLabel: String,
			HaushaltsnahediensteBrutto: 0,
			EinheitDerKostenart: String,
			Reduzierungsart: String,
			Kommentar: String,
			IstGeloescht: False,
			IstErzeugtVonApp: False,
			ObjektGuid: String,
			BillingInformationGuid: String,
			NebenkostenNutzeinheiten: 
			[
				{
					Anteil: 0,
					IstGeloescht: False,
					IstErzeugtVonApp: False,
					NutzeinheitGuid: String
				}
			],
			NebenkostenNutzer: 
			[
				{
					Anteil: 0,
					IstGeloescht: False,
					IstErzeugtVonApp: False,
					NutzerGuid: String
				}
			]
		}
	],
	Heizbetriebskosten: 
	[
		{
			Guid: String,
			Von: 0001-01-01T00:00:00Z,
			Bis: 0001-01-01T00:00:00Z,
			Mwst: 0,
			HaushatlsnahediensteBrutto: 0,
			Brutto: 0,
			HaushatlsnahediensteLabel: String,
			Anmerkung: String,
			IstGeloescht: False,
			IstErzeugtVonApp: False,
			ObjektGuid: String,
			BillingInformationGuid: String
		}
	],
	NutzeinheitGeraete: 
	[
		{
			Guid: String,
			ZuordnungVon: 0001-01-01T00:00:00Z,
			ZuordnungBis: 0001-01-01T00:00:00Z,
			Raum: String,
			LaufendeNummer: String,
			gemietet: False,
			gewartet: False,
			DeviceGuid: String,
			NutzeinheitGuid: String
		}
	],
	Geraete: 
	[
		{
			Guid: String,
			Geraetenummer: String,
			Bezeichnung: String,
			Beschreibung: String,
			Einbaudatum: 0001-01-01T00:00:00Z,
			Ausbaudatum: 0001-01-01T00:00:00Z,
			Eichdatum: 0001-01-01T00:00:00Z,
			Einheit: String,
			Memo: String,
			DeviceCatalogGuid: String
		}
	],
	Geraeteverbraeuche: 
	[
		{
			Guid: String,
			Ablesung: 0,
			Ablesedatum: 0001-01-01T00:00:00Z,
			Ableseart: String,
			Aenderungsdatum: 0001-01-01T00:00:00Z,
			Anmerkung: String,
			Ampullenfarbe: String,
			DeviceGuid: String
		}
	],
	BillingInformations: 
	[
		{
			Guid: String,
			Von: 0001-01-01T00:00:00Z,
			Bis: 0001-01-01T00:00:00Z,
			IstAbgeschlossen: False,
			HatNebenkosten: False,
			ObjektGuid: String,
			AnmerkungKundenportal: String,
			KundenportalMarkedDone: False,
			MarkedDoneAt: 0001-01-01T00:00:00Z,
			KundenportalMarkedClosed: False,
			MarkedClosedAt: 0001-01-01T00:00:00Z
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	customersCreated: 0,
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}