AIM Web Services

<back to all web services

ContractFullDetailsRequest

ContractFullDetails
Requires active-e Contracts Service.

The following routes are available for this service:
GET/api/ContractFullDetails
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


// @DataContract
class BaseRequest implements JsonSerializable
{
    public function __construct(
        /** @description This is your AIM API Key provided by Tri-Tech */
        // @DataMember
        // @ApiMember(DataType="string", Description="This is your AIM API Key provided by Tri-Tech", IsRequired=true, Name="ApiKey", ParameterType="header")
        /** @var string */
        public string $ApiKey='',

        // @DataMember
        // @ApiMember(DataType="string", Name="OAuthToken", ParameterType="header")
        /** @var string|null */
        public ?string $OAuthToken=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ApiKey'])) $this->ApiKey = $o['ApiKey'];
        if (isset($o['OAuthToken'])) $this->OAuthToken = $o['OAuthToken'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ApiKey)) $o['ApiKey'] = $this->ApiKey;
        if (isset($this->OAuthToken)) $o['OAuthToken'] = $this->OAuthToken;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class BaseSecureRequest extends BaseRequest implements JsonSerializable
{
    /**
     * @param string $ApiKey
     * @param string|null $OAuthToken
     */
    public function __construct(
        string $ApiKey='',
        ?string $OAuthToken=null,
        /** @description  */
        // @DataMember
        // @ApiMember(DataType="string", Description="", Name="Token", ParameterType="Header")
        /** @var string|null */
        public ?string $Token=null,

        /** @description  */
        // @DataMember
        // @ApiMember(DataType="string", Description="", Name="DeviceId", ParameterType="Header")
        /** @var string|null */
        public ?string $DeviceId=null,

        /** @description  */
        // @DataMember
        // @ApiMember(DataType="string", Description="", IsRequired=true, Name="AppId", ParameterType="Header")
        /** @var string */
        public string $AppId=''
    ) {
        parent::__construct($ApiKey,$OAuthToken);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['Token'])) $this->Token = $o['Token'];
        if (isset($o['DeviceId'])) $this->DeviceId = $o['DeviceId'];
        if (isset($o['AppId'])) $this->AppId = $o['AppId'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->Token)) $o['Token'] = $this->Token;
        if (isset($this->DeviceId)) $o['DeviceId'] = $this->DeviceId;
        if (isset($this->AppId)) $o['AppId'] = $this->AppId;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class BaseResponseResult implements JsonSerializable
{
    public function __construct(
        /** @description  */
        // @DataMember
        // @ApiMember(DataType="string", Description="", Name="StatusCode", ParameterType="body")
        /** @var string|null */
        public ?string $StatusCode=null,

        /** @description  */
        // @DataMember
        // @ApiMember(DataType="string", Description="", Name="Login", ParameterType="body")
        /** @var string|null */
        public ?string $Login=null,

        /** @description  */
        // @DataMember
        // @ApiMember(DataType="string", Description="", Name="ErrorCode", ParameterType="body")
        /** @var string|null */
        public ?string $ErrorCode=null,

        /** @description  */
        // @DataMember
        // @ApiMember(DataType="string", Description="", Name="ErrorDisplayText", ParameterType="body")
        /** @var string|null */
        public ?string $ErrorDisplayText=null,

        /** @description  */
        // @DataMember
        // @ApiMember(DataType="string", Description="", Name="ErrorMessage", ParameterType="body")
        /** @var string|null */
        public ?string $ErrorMessage=null,

        /** @description  */
        // @DataMember
        // @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="DomainName", ParameterType="body")
        /** @var string|null */
        public ?string $DomainName=null,

        /** @description  */
        // @DataMember
        // @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="IPAddress", ParameterType="body")
        /** @var string|null */
        public ?string $IpAddress=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['StatusCode'])) $this->StatusCode = $o['StatusCode'];
        if (isset($o['Login'])) $this->Login = $o['Login'];
        if (isset($o['ErrorCode'])) $this->ErrorCode = $o['ErrorCode'];
        if (isset($o['ErrorDisplayText'])) $this->ErrorDisplayText = $o['ErrorDisplayText'];
        if (isset($o['ErrorMessage'])) $this->ErrorMessage = $o['ErrorMessage'];
        if (isset($o['DomainName'])) $this->DomainName = $o['DomainName'];
        if (isset($o['IpAddress'])) $this->IpAddress = $o['IpAddress'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->StatusCode)) $o['StatusCode'] = $this->StatusCode;
        if (isset($this->Login)) $o['Login'] = $this->Login;
        if (isset($this->ErrorCode)) $o['ErrorCode'] = $this->ErrorCode;
        if (isset($this->ErrorDisplayText)) $o['ErrorDisplayText'] = $this->ErrorDisplayText;
        if (isset($this->ErrorMessage)) $o['ErrorMessage'] = $this->ErrorMessage;
        if (isset($this->DomainName)) $o['DomainName'] = $this->DomainName;
        if (isset($this->IpAddress)) $o['IpAddress'] = $this->IpAddress;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class BaseResponse implements JsonSerializable
{
    public function __construct(
        /** @description  */
        // @DataMember
        // @ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body")
        /** @var BaseResponseResult|null */
        public ?BaseResponseResult $Status=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Status'])) $this->Status = JsonConverters::from('BaseResponseResult', $o['Status']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Status)) $o['Status'] = JsonConverters::to('BaseResponseResult', $this->Status);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class ContractInventoryInfo implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var int */
        public int $Id=0,

        // @DataMember
        /** @var DateTime */
        public DateTime $BeginDate=new DateTime(),

        // @DataMember
        /** @var int */
        public int $Cat=0,

        // @DataMember
        /** @var float|null */
        public ?float $Cost=null,

        // @DataMember
        /** @var string|null */
        public ?string $Description=null,

        // @DataMember
        /** @var float */
        public float $Discount=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $Dunn=null,

        // @DataMember
        /** @var DateTime */
        public DateTime $EndDate=new DateTime(),

        // @DataMember
        /** @var string|null */
        public ?string $InvType=null,

        // @DataMember
        /** @var string|null */
        public ?string $Notes=null,

        // @DataMember
        /** @var float */
        public float $OurPrice=0.0,

        // @DataMember
        /** @var float */
        public float $Qty=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $ReceiptNotes=null,

        // @DataMember
        /** @var string|null */
        public ?string $Serial=null,

        // @DataMember
        /** @var int */
        public int $Sub=0,

        // @DataMember
        /** @var float */
        public float $Total=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $Sku=null,

        // @DataMember
        /** @var string|null */
        public ?string $Mfg=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['BeginDate'])) $this->BeginDate = JsonConverters::from('DateTime', $o['BeginDate']);
        if (isset($o['Cat'])) $this->Cat = $o['Cat'];
        if (isset($o['Cost'])) $this->Cost = $o['Cost'];
        if (isset($o['Description'])) $this->Description = $o['Description'];
        if (isset($o['Discount'])) $this->Discount = $o['Discount'];
        if (isset($o['Dunn'])) $this->Dunn = $o['Dunn'];
        if (isset($o['EndDate'])) $this->EndDate = JsonConverters::from('DateTime', $o['EndDate']);
        if (isset($o['InvType'])) $this->InvType = $o['InvType'];
        if (isset($o['Notes'])) $this->Notes = $o['Notes'];
        if (isset($o['OurPrice'])) $this->OurPrice = $o['OurPrice'];
        if (isset($o['Qty'])) $this->Qty = $o['Qty'];
        if (isset($o['ReceiptNotes'])) $this->ReceiptNotes = $o['ReceiptNotes'];
        if (isset($o['Serial'])) $this->Serial = $o['Serial'];
        if (isset($o['Sub'])) $this->Sub = $o['Sub'];
        if (isset($o['Total'])) $this->Total = $o['Total'];
        if (isset($o['Sku'])) $this->Sku = $o['Sku'];
        if (isset($o['Mfg'])) $this->Mfg = $o['Mfg'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->BeginDate)) $o['BeginDate'] = JsonConverters::to('DateTime', $this->BeginDate);
        if (isset($this->Cat)) $o['Cat'] = $this->Cat;
        if (isset($this->Cost)) $o['Cost'] = $this->Cost;
        if (isset($this->Description)) $o['Description'] = $this->Description;
        if (isset($this->Discount)) $o['Discount'] = $this->Discount;
        if (isset($this->Dunn)) $o['Dunn'] = $this->Dunn;
        if (isset($this->EndDate)) $o['EndDate'] = JsonConverters::to('DateTime', $this->EndDate);
        if (isset($this->InvType)) $o['InvType'] = $this->InvType;
        if (isset($this->Notes)) $o['Notes'] = $this->Notes;
        if (isset($this->OurPrice)) $o['OurPrice'] = $this->OurPrice;
        if (isset($this->Qty)) $o['Qty'] = $this->Qty;
        if (isset($this->ReceiptNotes)) $o['ReceiptNotes'] = $this->ReceiptNotes;
        if (isset($this->Serial)) $o['Serial'] = $this->Serial;
        if (isset($this->Sub)) $o['Sub'] = $this->Sub;
        if (isset($this->Total)) $o['Total'] = $this->Total;
        if (isset($this->Sku)) $o['Sku'] = $this->Sku;
        if (isset($this->Mfg)) $o['Mfg'] = $this->Mfg;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract(Name="CCInfo")
class CcInfo implements JsonSerializable
{
    public function __construct(
        /** @description Token returned from processor */
        // @DataMember
        // @ApiMember(DataType="string", Description="Token returned from processor", IsRequired=true, Name="TokenStr", ParameterType="query")
        /** @var string */
        public string $TokenStr='',

        /** @description Card Type (VISA, MCARD, AMEX, DSCVR) */
        // @DataMember
        // @ApiMember(DataType="string", Description="Card Type (VISA, MCARD, AMEX, DSCVR)", IsRequired=true, Name="CardType", ParameterType="query")
        /** @var string */
        public string $CardType='',

        /** @description Last four of the card */
        // @DataMember
        // @ApiMember(DataType="string", Description="Last four of the card", IsRequired=true, Name="LastFour", ParameterType="query")
        /** @var string */
        public string $LastFour='',

        /** @description Expiration Date of the Card. (MM/YY) */
        // @DataMember
        // @ApiMember(DataType="string", Description="Expiration Date of the Card. (MM/YY)", Name="Expiration", ParameterType="query")
        /** @var string|null */
        public ?string $Expiration=null,

        /** @description Reason the card is on file. */
        // @DataMember
        // @ApiMember(DataType="string", Description="Reason the card is on file.", Name="ReasonOnFile", ParameterType="query")
        /** @var string|null */
        public ?string $ReasonOnFile=null,

        /** @description ID of the existing Token Record in AIM, if applicable */
        // @DataMember
        // @ApiMember(DataType="integer", Description="ID of the existing Token Record in AIM, if applicable", Format="int64", Name="TokenPk", ParameterType="query")
        /** @var int|null */
        public ?int $TokenPk=null,

        /** @description Is this the customer's primary card? Defaults to false. */
        // @DataMember
        // @ApiMember(DataType="boolean", Description="Is this the customer's primary card? Defaults to false.", Name="Primary", ParameterType="query")
        /** @var bool|null */
        public ?bool $Primary=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['TokenStr'])) $this->TokenStr = $o['TokenStr'];
        if (isset($o['CardType'])) $this->CardType = $o['CardType'];
        if (isset($o['LastFour'])) $this->LastFour = $o['LastFour'];
        if (isset($o['Expiration'])) $this->Expiration = $o['Expiration'];
        if (isset($o['ReasonOnFile'])) $this->ReasonOnFile = $o['ReasonOnFile'];
        if (isset($o['TokenPk'])) $this->TokenPk = $o['TokenPk'];
        if (isset($o['Primary'])) $this->Primary = $o['Primary'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->TokenStr)) $o['TokenStr'] = $this->TokenStr;
        if (isset($this->CardType)) $o['CardType'] = $this->CardType;
        if (isset($this->LastFour)) $o['LastFour'] = $this->LastFour;
        if (isset($this->Expiration)) $o['Expiration'] = $this->Expiration;
        if (isset($this->ReasonOnFile)) $o['ReasonOnFile'] = $this->ReasonOnFile;
        if (isset($this->TokenPk)) $o['TokenPk'] = $this->TokenPk;
        if (isset($this->Primary)) $o['Primary'] = $this->Primary;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class ContractValuesObject implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var int */
        public int $Position=0,

        // @DataMember
        /** @var string|null */
        public ?string $Display=null,

        // @DataMember
        /** @var float */
        public float $Value=0.0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Position'])) $this->Position = $o['Position'];
        if (isset($o['Display'])) $this->Display = $o['Display'];
        if (isset($o['Value'])) $this->Value = $o['Value'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Position)) $o['Position'] = $this->Position;
        if (isset($this->Display)) $o['Display'] = $this->Display;
        if (isset($this->Value)) $o['Value'] = $this->Value;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class ContractCalculatedFields implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var int */
        public int $Terms=0,

        // @DataMember
        /** @var int */
        public int $PayStream=0,

        // @DataMember
        /** @var float */
        public float $FinalPay=0.0,

        // @DataMember
        /** @var float */
        public float $AmountDue=0.0,

        // @DataMember
        /** @var float */
        public float $Payoff=0.0,

        // @DataMember
        /** @var float */
        public float $DiscountedPayoff=0.0,

        // @DataMember
        /** @var float */
        public float $RebateFc=0.0,

        // @DataMember
        /** @var float */
        public float $TotalLate=0.0,

        // @DataMember
        /** @var float */
        public float $PaymentsLate=0.0,

        // @DataMember
        /** @var int */
        public int $PaymentsAhead=0,

        // @DataMember
        /** @var float */
        public float $TotalMaintOwed=0.0,

        // @DataMember
        /** @var float */
        public float $CurrentPlusNext=0.0,

        // @DataMember
        /** @var DateTime */
        public DateTime $PayoffDate=new DateTime(),

        // @DataMember
        /** @var float */
        public float $CreditAmount=0.0,

        // @DataMember
        /** @var float */
        public float $PrinLessTax=0.0,

        // @DataMember
        /** @var float */
        public float $MaintLessTax=0.0,

        // @DataMember
        /** @var float */
        public float $AFeeLessTax=0.0,

        // @DataMember
        /** @var float */
        public float $PaymentTax=0.0,

        // @DataMember
        /** @var array<ContractValuesObject>|null */
        public ?array $RentDueInfo=null,

        // @DataMember
        /** @var array<ContractValuesObject>|null */
        public ?array $PayoffInfo=null,

        // @DataMember
        /** @var string|null */
        public ?string $Notice=null,

        // @DataMember
        /** @var string|null */
        public ?string $Notice2=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Terms'])) $this->Terms = $o['Terms'];
        if (isset($o['PayStream'])) $this->PayStream = $o['PayStream'];
        if (isset($o['FinalPay'])) $this->FinalPay = $o['FinalPay'];
        if (isset($o['AmountDue'])) $this->AmountDue = $o['AmountDue'];
        if (isset($o['Payoff'])) $this->Payoff = $o['Payoff'];
        if (isset($o['DiscountedPayoff'])) $this->DiscountedPayoff = $o['DiscountedPayoff'];
        if (isset($o['RebateFc'])) $this->RebateFc = $o['RebateFc'];
        if (isset($o['TotalLate'])) $this->TotalLate = $o['TotalLate'];
        if (isset($o['PaymentsLate'])) $this->PaymentsLate = $o['PaymentsLate'];
        if (isset($o['PaymentsAhead'])) $this->PaymentsAhead = $o['PaymentsAhead'];
        if (isset($o['TotalMaintOwed'])) $this->TotalMaintOwed = $o['TotalMaintOwed'];
        if (isset($o['CurrentPlusNext'])) $this->CurrentPlusNext = $o['CurrentPlusNext'];
        if (isset($o['PayoffDate'])) $this->PayoffDate = JsonConverters::from('DateTime', $o['PayoffDate']);
        if (isset($o['CreditAmount'])) $this->CreditAmount = $o['CreditAmount'];
        if (isset($o['PrinLessTax'])) $this->PrinLessTax = $o['PrinLessTax'];
        if (isset($o['MaintLessTax'])) $this->MaintLessTax = $o['MaintLessTax'];
        if (isset($o['AFeeLessTax'])) $this->AFeeLessTax = $o['AFeeLessTax'];
        if (isset($o['PaymentTax'])) $this->PaymentTax = $o['PaymentTax'];
        if (isset($o['RentDueInfo'])) $this->RentDueInfo = JsonConverters::fromArray('ContractValuesObject', $o['RentDueInfo']);
        if (isset($o['PayoffInfo'])) $this->PayoffInfo = JsonConverters::fromArray('ContractValuesObject', $o['PayoffInfo']);
        if (isset($o['Notice'])) $this->Notice = $o['Notice'];
        if (isset($o['Notice2'])) $this->Notice2 = $o['Notice2'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Terms)) $o['Terms'] = $this->Terms;
        if (isset($this->PayStream)) $o['PayStream'] = $this->PayStream;
        if (isset($this->FinalPay)) $o['FinalPay'] = $this->FinalPay;
        if (isset($this->AmountDue)) $o['AmountDue'] = $this->AmountDue;
        if (isset($this->Payoff)) $o['Payoff'] = $this->Payoff;
        if (isset($this->DiscountedPayoff)) $o['DiscountedPayoff'] = $this->DiscountedPayoff;
        if (isset($this->RebateFc)) $o['RebateFc'] = $this->RebateFc;
        if (isset($this->TotalLate)) $o['TotalLate'] = $this->TotalLate;
        if (isset($this->PaymentsLate)) $o['PaymentsLate'] = $this->PaymentsLate;
        if (isset($this->PaymentsAhead)) $o['PaymentsAhead'] = $this->PaymentsAhead;
        if (isset($this->TotalMaintOwed)) $o['TotalMaintOwed'] = $this->TotalMaintOwed;
        if (isset($this->CurrentPlusNext)) $o['CurrentPlusNext'] = $this->CurrentPlusNext;
        if (isset($this->PayoffDate)) $o['PayoffDate'] = JsonConverters::to('DateTime', $this->PayoffDate);
        if (isset($this->CreditAmount)) $o['CreditAmount'] = $this->CreditAmount;
        if (isset($this->PrinLessTax)) $o['PrinLessTax'] = $this->PrinLessTax;
        if (isset($this->MaintLessTax)) $o['MaintLessTax'] = $this->MaintLessTax;
        if (isset($this->AFeeLessTax)) $o['AFeeLessTax'] = $this->AFeeLessTax;
        if (isset($this->PaymentTax)) $o['PaymentTax'] = $this->PaymentTax;
        if (isset($this->RentDueInfo)) $o['RentDueInfo'] = JsonConverters::toArray('ContractValuesObject', $this->RentDueInfo);
        if (isset($this->PayoffInfo)) $o['PayoffInfo'] = JsonConverters::toArray('ContractValuesObject', $this->PayoffInfo);
        if (isset($this->Notice)) $o['Notice'] = $this->Notice;
        if (isset($this->Notice2)) $o['Notice2'] = $this->Notice2;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class PaymentGeneric implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var DateTime */
        public DateTime $Date=new DateTime(),

        // @DataMember
        /** @var float */
        public float $Amount=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $Ref=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Date'])) $this->Date = JsonConverters::from('DateTime', $o['Date']);
        if (isset($o['Amount'])) $this->Amount = $o['Amount'];
        if (isset($o['Ref'])) $this->Ref = $o['Ref'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Date)) $o['Date'] = JsonConverters::to('DateTime', $this->Date);
        if (isset($this->Amount)) $o['Amount'] = $this->Amount;
        if (isset($this->Ref)) $o['Ref'] = $this->Ref;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class ContractInfo implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var float */
        public float $Rnt_afee=0.0,

        // @DataMember
        /** @var bool|null */
        public ?bool $Rnt_alatedbt=null,

        // @DataMember
        /** @var float */
        public float $Rnt_amtfin=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_aofinchg=0.0,

        // @DataMember
        /** @var bool|null */
        public ?bool $Rnt_apaydbt=null,

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_apaytyp=null,

        // @DataMember
        /** @var int */
        public int $Rnt_atcode=0,

        // @DataMember
        /** @var DateTime */
        public DateTime $Rnt_autopayhold=new DateTime(),

        // @DataMember
        /** @var float */
        public float $Rnt_avgbal=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_balance=0.0,

        // @DataMember
        /** @var int */
        public int $Rnt_billdays=0,

        // @DataMember
        /** @var DateTime */
        public DateTime $Rnt_cdate=new DateTime(),

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_colagency=null,

        // @DataMember
        /** @var float */
        public float $Rnt_colamt=0.0,

        // @DataMember
        /** @var DateTime */
        public DateTime $Rnt_coupdate=new DateTime(),

        // @DataMember
        /** @var float */
        public float $Rnt_cramt=0.0,

        // @DataMember
        /** @var int */
        public int $Rnt_crmo=0,

        // @DataMember
        /** @var float */
        public float $Rnt_currafee=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_currbal=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_currfc=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_currfeetax1=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_currfeetax2=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_currlte=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_currma=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_curroth=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_currprn=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_currtax1=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_currtax2=0.0,

        // @DataMember
        /** @var int */
        public int $Rnt_dayslate=0,

        // @DataMember
        /** @var int */
        public int $Rnt_daystlst=0,

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_deprcode=null,

        // @DataMember
        /** @var float */
        public float $Rnt_discount=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_downpay=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_dunn=null,

        // @DataMember
        /** @var DateTime */
        public DateTime $Rnt_edate=new DateTime(),

        // @DataMember
        /** @var DateTime */
        public DateTime $Rnt_fdate=new DateTime(),

        // @DataMember
        /** @var float */
        public float $Rnt_fee=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_finalpay=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_finchg=0.0,

        // @DataMember
        /** @var int */
        public int $Rnt_freemos=0,

        // @DataMember
        /** @var DateTime */
        public DateTime $Rnt_intdate=new DateTime(),

        // @DataMember
        /** @var float */
        public float $Rnt_intrate=0.0,

        // @DataMember
        /** @var bool|null */
        public ?bool $Rnt_irregular=null,

        // @DataMember
        /** @var int */
        public int $Rnt_itcode=0,

        // @DataMember
        /** @var float */
        public float $Rnt_lastpaid=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_latefee=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_lateowed=0.0,

        // @DataMember
        /** @var DateTime */
        public DateTime $Rnt_ldate=new DateTime(),

        // @DataMember
        /** @var int */
        public int $Rnt_ltcode=0,

        // @DataMember
        /** @var float */
        public float $Rnt_monma=0.0,

        // @DataMember
        /** @var bool|null */
        public ?bool $Rnt_mopayreq=null,

        // @DataMember
        /** @var int */
        public int $Rnt_mtcode=0,

        // @DataMember
        /** @var DateTime */
        public DateTime $Rnt_ndate=new DateTime(),

        // @DataMember
        /** @var float */
        public float $Rnt_nextpayamt=0.0,

        // @DataMember
        /** @var int */
        public int $Rnt_nextpaynum=0,

        // @DataMember
        /** @var DateTime */
        public DateTime $Rnt_notedate=new DateTime(),

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_notes=null,

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_exchnotes=null,

        // @DataMember
        /** @var float */
        public float $Rnt_otherowed=0.0,

        // @DataMember
        /** @var int */
        public int $Rnt_payfreq=0,

        // @DataMember
        /** @var int */
        public int $Rnt_latefreq=0,

        // @DataMember
        /** @var int */
        public int $Rnt_payfreqtype=0,

        // @DataMember
        /** @var float */
        public float $Rnt_payment=0.0,

        // @DataMember
        /** @var int */
        public int $Rnt_paystrm=0,

        // @DataMember
        /** @var int */
        public int $Rnt_pk=0,

        // @DataMember
        /** @var float */
        public float $Rnt_prevamt=0.0,

        // @DataMember
        /** @var int */
        public int $Rnt_prevmo=0,

        // @DataMember
        /** @var float */
        public float $Rnt_price=0.0,

        // @DataMember
        /** @var DateTime */
        public DateTime $Rnt_rdate=new DateTime(),

        // @DataMember
        /** @var DateTime */
        public DateTime $Rnt_sdate=new DateTime(),

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_student=null,

        // @DataMember
        /** @var int */
        public int $Rnt_sub=0,

        // @DataMember
        /** @var float */
        public float $Rnt_tax=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_taxrate1=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_taxrate2=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_taxrateorig1=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_taxrateorig2=0.0,

        // @DataMember
        /** @var int */
        public int $Rnt_tcode=0,

        // @DataMember
        /** @var int */
        public int $Rnt_term=0,

        // @DataMember
        /** @var float */
        public float $Rnt_tmaint=0.0,

        // @DataMember
        /** @var float */
        public float $Rnt_tradein=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_typer=null,

        // @DataMember
        /** @var DateTime */
        public DateTime $Rnt_timestamp=new DateTime(),

        // @DataMember
        /** @var int */
        public int $Acct=0,

        // @DataMember
        /** @var string|null */
        public ?string $TaxLocation=null,

        // @DataMember
        /** @var string|null */
        public ?string $DefaultDesc=null,

        // @DataMember
        /** @var string|null */
        public ?string $PayoffDesc=null,

        // @DataMember
        /** @var string|null */
        public ?string $School=null,

        // @DataMember
        /** @var string|null */
        public ?string $District=null,

        // @DataMember
        /** @var string|null */
        public ?string $Ref=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $AutoPayDeclined=null,

        // @DataMember
        /** @var array<ContractInventoryInfo>|null */
        public ?array $Inventory=null,

        // @DataMember
        /** @var CcInfo|null */
        public ?CcInfo $CardInfo=null,

        // @DataMember
        /** @var ContractCalculatedFields|null */
        public ?ContractCalculatedFields $ContractCalculatedFields=null,

        // @DataMember
        /** @var array<PaymentGeneric>|null */
        public ?array $Payments=null,

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_avacodeprin=null,

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_avacodemaint=null,

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_avacodelate=null,

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_avacodelease=null,

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_avacodefin=null,

        // @DataMember
        /** @var DateTime */
        public DateTime $Rnt_scheduledreturndate=new DateTime(),

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_scheduledreturnoption=null,

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_scheduledreturnnotes=null,

        // @DataMember
        /** @var string|null */
        public ?string $Rnt_scheduledreturnstatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Rnt_afee'])) $this->Rnt_afee = $o['Rnt_afee'];
        if (isset($o['Rnt_alatedbt'])) $this->Rnt_alatedbt = $o['Rnt_alatedbt'];
        if (isset($o['Rnt_amtfin'])) $this->Rnt_amtfin = $o['Rnt_amtfin'];
        if (isset($o['Rnt_aofinchg'])) $this->Rnt_aofinchg = $o['Rnt_aofinchg'];
        if (isset($o['Rnt_apaydbt'])) $this->Rnt_apaydbt = $o['Rnt_apaydbt'];
        if (isset($o['Rnt_apaytyp'])) $this->Rnt_apaytyp = $o['Rnt_apaytyp'];
        if (isset($o['Rnt_atcode'])) $this->Rnt_atcode = $o['Rnt_atcode'];
        if (isset($o['Rnt_autopayhold'])) $this->Rnt_autopayhold = JsonConverters::from('DateTime', $o['Rnt_autopayhold']);
        if (isset($o['Rnt_avgbal'])) $this->Rnt_avgbal = $o['Rnt_avgbal'];
        if (isset($o['Rnt_balance'])) $this->Rnt_balance = $o['Rnt_balance'];
        if (isset($o['Rnt_billdays'])) $this->Rnt_billdays = $o['Rnt_billdays'];
        if (isset($o['Rnt_cdate'])) $this->Rnt_cdate = JsonConverters::from('DateTime', $o['Rnt_cdate']);
        if (isset($o['Rnt_colagency'])) $this->Rnt_colagency = $o['Rnt_colagency'];
        if (isset($o['Rnt_colamt'])) $this->Rnt_colamt = $o['Rnt_colamt'];
        if (isset($o['Rnt_coupdate'])) $this->Rnt_coupdate = JsonConverters::from('DateTime', $o['Rnt_coupdate']);
        if (isset($o['Rnt_cramt'])) $this->Rnt_cramt = $o['Rnt_cramt'];
        if (isset($o['Rnt_crmo'])) $this->Rnt_crmo = $o['Rnt_crmo'];
        if (isset($o['Rnt_currafee'])) $this->Rnt_currafee = $o['Rnt_currafee'];
        if (isset($o['Rnt_currbal'])) $this->Rnt_currbal = $o['Rnt_currbal'];
        if (isset($o['Rnt_currfc'])) $this->Rnt_currfc = $o['Rnt_currfc'];
        if (isset($o['Rnt_currfeetax1'])) $this->Rnt_currfeetax1 = $o['Rnt_currfeetax1'];
        if (isset($o['Rnt_currfeetax2'])) $this->Rnt_currfeetax2 = $o['Rnt_currfeetax2'];
        if (isset($o['Rnt_currlte'])) $this->Rnt_currlte = $o['Rnt_currlte'];
        if (isset($o['Rnt_currma'])) $this->Rnt_currma = $o['Rnt_currma'];
        if (isset($o['Rnt_curroth'])) $this->Rnt_curroth = $o['Rnt_curroth'];
        if (isset($o['Rnt_currprn'])) $this->Rnt_currprn = $o['Rnt_currprn'];
        if (isset($o['Rnt_currtax1'])) $this->Rnt_currtax1 = $o['Rnt_currtax1'];
        if (isset($o['Rnt_currtax2'])) $this->Rnt_currtax2 = $o['Rnt_currtax2'];
        if (isset($o['Rnt_dayslate'])) $this->Rnt_dayslate = $o['Rnt_dayslate'];
        if (isset($o['Rnt_daystlst'])) $this->Rnt_daystlst = $o['Rnt_daystlst'];
        if (isset($o['Rnt_deprcode'])) $this->Rnt_deprcode = $o['Rnt_deprcode'];
        if (isset($o['Rnt_discount'])) $this->Rnt_discount = $o['Rnt_discount'];
        if (isset($o['Rnt_downpay'])) $this->Rnt_downpay = $o['Rnt_downpay'];
        if (isset($o['Rnt_dunn'])) $this->Rnt_dunn = $o['Rnt_dunn'];
        if (isset($o['Rnt_edate'])) $this->Rnt_edate = JsonConverters::from('DateTime', $o['Rnt_edate']);
        if (isset($o['Rnt_fdate'])) $this->Rnt_fdate = JsonConverters::from('DateTime', $o['Rnt_fdate']);
        if (isset($o['Rnt_fee'])) $this->Rnt_fee = $o['Rnt_fee'];
        if (isset($o['Rnt_finalpay'])) $this->Rnt_finalpay = $o['Rnt_finalpay'];
        if (isset($o['Rnt_finchg'])) $this->Rnt_finchg = $o['Rnt_finchg'];
        if (isset($o['Rnt_freemos'])) $this->Rnt_freemos = $o['Rnt_freemos'];
        if (isset($o['Rnt_intdate'])) $this->Rnt_intdate = JsonConverters::from('DateTime', $o['Rnt_intdate']);
        if (isset($o['Rnt_intrate'])) $this->Rnt_intrate = $o['Rnt_intrate'];
        if (isset($o['Rnt_irregular'])) $this->Rnt_irregular = $o['Rnt_irregular'];
        if (isset($o['Rnt_itcode'])) $this->Rnt_itcode = $o['Rnt_itcode'];
        if (isset($o['Rnt_lastpaid'])) $this->Rnt_lastpaid = $o['Rnt_lastpaid'];
        if (isset($o['Rnt_latefee'])) $this->Rnt_latefee = $o['Rnt_latefee'];
        if (isset($o['Rnt_lateowed'])) $this->Rnt_lateowed = $o['Rnt_lateowed'];
        if (isset($o['Rnt_ldate'])) $this->Rnt_ldate = JsonConverters::from('DateTime', $o['Rnt_ldate']);
        if (isset($o['Rnt_ltcode'])) $this->Rnt_ltcode = $o['Rnt_ltcode'];
        if (isset($o['Rnt_monma'])) $this->Rnt_monma = $o['Rnt_monma'];
        if (isset($o['Rnt_mopayreq'])) $this->Rnt_mopayreq = $o['Rnt_mopayreq'];
        if (isset($o['Rnt_mtcode'])) $this->Rnt_mtcode = $o['Rnt_mtcode'];
        if (isset($o['Rnt_ndate'])) $this->Rnt_ndate = JsonConverters::from('DateTime', $o['Rnt_ndate']);
        if (isset($o['Rnt_nextpayamt'])) $this->Rnt_nextpayamt = $o['Rnt_nextpayamt'];
        if (isset($o['Rnt_nextpaynum'])) $this->Rnt_nextpaynum = $o['Rnt_nextpaynum'];
        if (isset($o['Rnt_notedate'])) $this->Rnt_notedate = JsonConverters::from('DateTime', $o['Rnt_notedate']);
        if (isset($o['Rnt_notes'])) $this->Rnt_notes = $o['Rnt_notes'];
        if (isset($o['Rnt_exchnotes'])) $this->Rnt_exchnotes = $o['Rnt_exchnotes'];
        if (isset($o['Rnt_otherowed'])) $this->Rnt_otherowed = $o['Rnt_otherowed'];
        if (isset($o['Rnt_payfreq'])) $this->Rnt_payfreq = $o['Rnt_payfreq'];
        if (isset($o['Rnt_latefreq'])) $this->Rnt_latefreq = $o['Rnt_latefreq'];
        if (isset($o['Rnt_payfreqtype'])) $this->Rnt_payfreqtype = $o['Rnt_payfreqtype'];
        if (isset($o['Rnt_payment'])) $this->Rnt_payment = $o['Rnt_payment'];
        if (isset($o['Rnt_paystrm'])) $this->Rnt_paystrm = $o['Rnt_paystrm'];
        if (isset($o['Rnt_pk'])) $this->Rnt_pk = $o['Rnt_pk'];
        if (isset($o['Rnt_prevamt'])) $this->Rnt_prevamt = $o['Rnt_prevamt'];
        if (isset($o['Rnt_prevmo'])) $this->Rnt_prevmo = $o['Rnt_prevmo'];
        if (isset($o['Rnt_price'])) $this->Rnt_price = $o['Rnt_price'];
        if (isset($o['Rnt_rdate'])) $this->Rnt_rdate = JsonConverters::from('DateTime', $o['Rnt_rdate']);
        if (isset($o['Rnt_sdate'])) $this->Rnt_sdate = JsonConverters::from('DateTime', $o['Rnt_sdate']);
        if (isset($o['Rnt_student'])) $this->Rnt_student = $o['Rnt_student'];
        if (isset($o['Rnt_sub'])) $this->Rnt_sub = $o['Rnt_sub'];
        if (isset($o['Rnt_tax'])) $this->Rnt_tax = $o['Rnt_tax'];
        if (isset($o['Rnt_taxrate1'])) $this->Rnt_taxrate1 = $o['Rnt_taxrate1'];
        if (isset($o['Rnt_taxrate2'])) $this->Rnt_taxrate2 = $o['Rnt_taxrate2'];
        if (isset($o['Rnt_taxrateorig1'])) $this->Rnt_taxrateorig1 = $o['Rnt_taxrateorig1'];
        if (isset($o['Rnt_taxrateorig2'])) $this->Rnt_taxrateorig2 = $o['Rnt_taxrateorig2'];
        if (isset($o['Rnt_tcode'])) $this->Rnt_tcode = $o['Rnt_tcode'];
        if (isset($o['Rnt_term'])) $this->Rnt_term = $o['Rnt_term'];
        if (isset($o['Rnt_tmaint'])) $this->Rnt_tmaint = $o['Rnt_tmaint'];
        if (isset($o['Rnt_tradein'])) $this->Rnt_tradein = $o['Rnt_tradein'];
        if (isset($o['Rnt_typer'])) $this->Rnt_typer = $o['Rnt_typer'];
        if (isset($o['Rnt_timestamp'])) $this->Rnt_timestamp = JsonConverters::from('DateTime', $o['Rnt_timestamp']);
        if (isset($o['Acct'])) $this->Acct = $o['Acct'];
        if (isset($o['TaxLocation'])) $this->TaxLocation = $o['TaxLocation'];
        if (isset($o['DefaultDesc'])) $this->DefaultDesc = $o['DefaultDesc'];
        if (isset($o['PayoffDesc'])) $this->PayoffDesc = $o['PayoffDesc'];
        if (isset($o['School'])) $this->School = $o['School'];
        if (isset($o['District'])) $this->District = $o['District'];
        if (isset($o['Ref'])) $this->Ref = $o['Ref'];
        if (isset($o['AutoPayDeclined'])) $this->AutoPayDeclined = $o['AutoPayDeclined'];
        if (isset($o['Inventory'])) $this->Inventory = JsonConverters::fromArray('ContractInventoryInfo', $o['Inventory']);
        if (isset($o['CardInfo'])) $this->CardInfo = JsonConverters::from('CcInfo', $o['CardInfo']);
        if (isset($o['ContractCalculatedFields'])) $this->ContractCalculatedFields = JsonConverters::from('ContractCalculatedFields', $o['ContractCalculatedFields']);
        if (isset($o['Payments'])) $this->Payments = JsonConverters::fromArray('PaymentGeneric', $o['Payments']);
        if (isset($o['Rnt_avacodeprin'])) $this->Rnt_avacodeprin = $o['Rnt_avacodeprin'];
        if (isset($o['Rnt_avacodemaint'])) $this->Rnt_avacodemaint = $o['Rnt_avacodemaint'];
        if (isset($o['Rnt_avacodelate'])) $this->Rnt_avacodelate = $o['Rnt_avacodelate'];
        if (isset($o['Rnt_avacodelease'])) $this->Rnt_avacodelease = $o['Rnt_avacodelease'];
        if (isset($o['Rnt_avacodefin'])) $this->Rnt_avacodefin = $o['Rnt_avacodefin'];
        if (isset($o['Rnt_scheduledreturndate'])) $this->Rnt_scheduledreturndate = JsonConverters::from('DateTime', $o['Rnt_scheduledreturndate']);
        if (isset($o['Rnt_scheduledreturnoption'])) $this->Rnt_scheduledreturnoption = $o['Rnt_scheduledreturnoption'];
        if (isset($o['Rnt_scheduledreturnnotes'])) $this->Rnt_scheduledreturnnotes = $o['Rnt_scheduledreturnnotes'];
        if (isset($o['Rnt_scheduledreturnstatus'])) $this->Rnt_scheduledreturnstatus = $o['Rnt_scheduledreturnstatus'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Rnt_afee)) $o['Rnt_afee'] = $this->Rnt_afee;
        if (isset($this->Rnt_alatedbt)) $o['Rnt_alatedbt'] = $this->Rnt_alatedbt;
        if (isset($this->Rnt_amtfin)) $o['Rnt_amtfin'] = $this->Rnt_amtfin;
        if (isset($this->Rnt_aofinchg)) $o['Rnt_aofinchg'] = $this->Rnt_aofinchg;
        if (isset($this->Rnt_apaydbt)) $o['Rnt_apaydbt'] = $this->Rnt_apaydbt;
        if (isset($this->Rnt_apaytyp)) $o['Rnt_apaytyp'] = $this->Rnt_apaytyp;
        if (isset($this->Rnt_atcode)) $o['Rnt_atcode'] = $this->Rnt_atcode;
        if (isset($this->Rnt_autopayhold)) $o['Rnt_autopayhold'] = JsonConverters::to('DateTime', $this->Rnt_autopayhold);
        if (isset($this->Rnt_avgbal)) $o['Rnt_avgbal'] = $this->Rnt_avgbal;
        if (isset($this->Rnt_balance)) $o['Rnt_balance'] = $this->Rnt_balance;
        if (isset($this->Rnt_billdays)) $o['Rnt_billdays'] = $this->Rnt_billdays;
        if (isset($this->Rnt_cdate)) $o['Rnt_cdate'] = JsonConverters::to('DateTime', $this->Rnt_cdate);
        if (isset($this->Rnt_colagency)) $o['Rnt_colagency'] = $this->Rnt_colagency;
        if (isset($this->Rnt_colamt)) $o['Rnt_colamt'] = $this->Rnt_colamt;
        if (isset($this->Rnt_coupdate)) $o['Rnt_coupdate'] = JsonConverters::to('DateTime', $this->Rnt_coupdate);
        if (isset($this->Rnt_cramt)) $o['Rnt_cramt'] = $this->Rnt_cramt;
        if (isset($this->Rnt_crmo)) $o['Rnt_crmo'] = $this->Rnt_crmo;
        if (isset($this->Rnt_currafee)) $o['Rnt_currafee'] = $this->Rnt_currafee;
        if (isset($this->Rnt_currbal)) $o['Rnt_currbal'] = $this->Rnt_currbal;
        if (isset($this->Rnt_currfc)) $o['Rnt_currfc'] = $this->Rnt_currfc;
        if (isset($this->Rnt_currfeetax1)) $o['Rnt_currfeetax1'] = $this->Rnt_currfeetax1;
        if (isset($this->Rnt_currfeetax2)) $o['Rnt_currfeetax2'] = $this->Rnt_currfeetax2;
        if (isset($this->Rnt_currlte)) $o['Rnt_currlte'] = $this->Rnt_currlte;
        if (isset($this->Rnt_currma)) $o['Rnt_currma'] = $this->Rnt_currma;
        if (isset($this->Rnt_curroth)) $o['Rnt_curroth'] = $this->Rnt_curroth;
        if (isset($this->Rnt_currprn)) $o['Rnt_currprn'] = $this->Rnt_currprn;
        if (isset($this->Rnt_currtax1)) $o['Rnt_currtax1'] = $this->Rnt_currtax1;
        if (isset($this->Rnt_currtax2)) $o['Rnt_currtax2'] = $this->Rnt_currtax2;
        if (isset($this->Rnt_dayslate)) $o['Rnt_dayslate'] = $this->Rnt_dayslate;
        if (isset($this->Rnt_daystlst)) $o['Rnt_daystlst'] = $this->Rnt_daystlst;
        if (isset($this->Rnt_deprcode)) $o['Rnt_deprcode'] = $this->Rnt_deprcode;
        if (isset($this->Rnt_discount)) $o['Rnt_discount'] = $this->Rnt_discount;
        if (isset($this->Rnt_downpay)) $o['Rnt_downpay'] = $this->Rnt_downpay;
        if (isset($this->Rnt_dunn)) $o['Rnt_dunn'] = $this->Rnt_dunn;
        if (isset($this->Rnt_edate)) $o['Rnt_edate'] = JsonConverters::to('DateTime', $this->Rnt_edate);
        if (isset($this->Rnt_fdate)) $o['Rnt_fdate'] = JsonConverters::to('DateTime', $this->Rnt_fdate);
        if (isset($this->Rnt_fee)) $o['Rnt_fee'] = $this->Rnt_fee;
        if (isset($this->Rnt_finalpay)) $o['Rnt_finalpay'] = $this->Rnt_finalpay;
        if (isset($this->Rnt_finchg)) $o['Rnt_finchg'] = $this->Rnt_finchg;
        if (isset($this->Rnt_freemos)) $o['Rnt_freemos'] = $this->Rnt_freemos;
        if (isset($this->Rnt_intdate)) $o['Rnt_intdate'] = JsonConverters::to('DateTime', $this->Rnt_intdate);
        if (isset($this->Rnt_intrate)) $o['Rnt_intrate'] = $this->Rnt_intrate;
        if (isset($this->Rnt_irregular)) $o['Rnt_irregular'] = $this->Rnt_irregular;
        if (isset($this->Rnt_itcode)) $o['Rnt_itcode'] = $this->Rnt_itcode;
        if (isset($this->Rnt_lastpaid)) $o['Rnt_lastpaid'] = $this->Rnt_lastpaid;
        if (isset($this->Rnt_latefee)) $o['Rnt_latefee'] = $this->Rnt_latefee;
        if (isset($this->Rnt_lateowed)) $o['Rnt_lateowed'] = $this->Rnt_lateowed;
        if (isset($this->Rnt_ldate)) $o['Rnt_ldate'] = JsonConverters::to('DateTime', $this->Rnt_ldate);
        if (isset($this->Rnt_ltcode)) $o['Rnt_ltcode'] = $this->Rnt_ltcode;
        if (isset($this->Rnt_monma)) $o['Rnt_monma'] = $this->Rnt_monma;
        if (isset($this->Rnt_mopayreq)) $o['Rnt_mopayreq'] = $this->Rnt_mopayreq;
        if (isset($this->Rnt_mtcode)) $o['Rnt_mtcode'] = $this->Rnt_mtcode;
        if (isset($this->Rnt_ndate)) $o['Rnt_ndate'] = JsonConverters::to('DateTime', $this->Rnt_ndate);
        if (isset($this->Rnt_nextpayamt)) $o['Rnt_nextpayamt'] = $this->Rnt_nextpayamt;
        if (isset($this->Rnt_nextpaynum)) $o['Rnt_nextpaynum'] = $this->Rnt_nextpaynum;
        if (isset($this->Rnt_notedate)) $o['Rnt_notedate'] = JsonConverters::to('DateTime', $this->Rnt_notedate);
        if (isset($this->Rnt_notes)) $o['Rnt_notes'] = $this->Rnt_notes;
        if (isset($this->Rnt_exchnotes)) $o['Rnt_exchnotes'] = $this->Rnt_exchnotes;
        if (isset($this->Rnt_otherowed)) $o['Rnt_otherowed'] = $this->Rnt_otherowed;
        if (isset($this->Rnt_payfreq)) $o['Rnt_payfreq'] = $this->Rnt_payfreq;
        if (isset($this->Rnt_latefreq)) $o['Rnt_latefreq'] = $this->Rnt_latefreq;
        if (isset($this->Rnt_payfreqtype)) $o['Rnt_payfreqtype'] = $this->Rnt_payfreqtype;
        if (isset($this->Rnt_payment)) $o['Rnt_payment'] = $this->Rnt_payment;
        if (isset($this->Rnt_paystrm)) $o['Rnt_paystrm'] = $this->Rnt_paystrm;
        if (isset($this->Rnt_pk)) $o['Rnt_pk'] = $this->Rnt_pk;
        if (isset($this->Rnt_prevamt)) $o['Rnt_prevamt'] = $this->Rnt_prevamt;
        if (isset($this->Rnt_prevmo)) $o['Rnt_prevmo'] = $this->Rnt_prevmo;
        if (isset($this->Rnt_price)) $o['Rnt_price'] = $this->Rnt_price;
        if (isset($this->Rnt_rdate)) $o['Rnt_rdate'] = JsonConverters::to('DateTime', $this->Rnt_rdate);
        if (isset($this->Rnt_sdate)) $o['Rnt_sdate'] = JsonConverters::to('DateTime', $this->Rnt_sdate);
        if (isset($this->Rnt_student)) $o['Rnt_student'] = $this->Rnt_student;
        if (isset($this->Rnt_sub)) $o['Rnt_sub'] = $this->Rnt_sub;
        if (isset($this->Rnt_tax)) $o['Rnt_tax'] = $this->Rnt_tax;
        if (isset($this->Rnt_taxrate1)) $o['Rnt_taxrate1'] = $this->Rnt_taxrate1;
        if (isset($this->Rnt_taxrate2)) $o['Rnt_taxrate2'] = $this->Rnt_taxrate2;
        if (isset($this->Rnt_taxrateorig1)) $o['Rnt_taxrateorig1'] = $this->Rnt_taxrateorig1;
        if (isset($this->Rnt_taxrateorig2)) $o['Rnt_taxrateorig2'] = $this->Rnt_taxrateorig2;
        if (isset($this->Rnt_tcode)) $o['Rnt_tcode'] = $this->Rnt_tcode;
        if (isset($this->Rnt_term)) $o['Rnt_term'] = $this->Rnt_term;
        if (isset($this->Rnt_tmaint)) $o['Rnt_tmaint'] = $this->Rnt_tmaint;
        if (isset($this->Rnt_tradein)) $o['Rnt_tradein'] = $this->Rnt_tradein;
        if (isset($this->Rnt_typer)) $o['Rnt_typer'] = $this->Rnt_typer;
        if (isset($this->Rnt_timestamp)) $o['Rnt_timestamp'] = JsonConverters::to('DateTime', $this->Rnt_timestamp);
        if (isset($this->Acct)) $o['Acct'] = $this->Acct;
        if (isset($this->TaxLocation)) $o['TaxLocation'] = $this->TaxLocation;
        if (isset($this->DefaultDesc)) $o['DefaultDesc'] = $this->DefaultDesc;
        if (isset($this->PayoffDesc)) $o['PayoffDesc'] = $this->PayoffDesc;
        if (isset($this->School)) $o['School'] = $this->School;
        if (isset($this->District)) $o['District'] = $this->District;
        if (isset($this->Ref)) $o['Ref'] = $this->Ref;
        if (isset($this->AutoPayDeclined)) $o['AutoPayDeclined'] = $this->AutoPayDeclined;
        if (isset($this->Inventory)) $o['Inventory'] = JsonConverters::toArray('ContractInventoryInfo', $this->Inventory);
        if (isset($this->CardInfo)) $o['CardInfo'] = JsonConverters::to('CcInfo', $this->CardInfo);
        if (isset($this->ContractCalculatedFields)) $o['ContractCalculatedFields'] = JsonConverters::to('ContractCalculatedFields', $this->ContractCalculatedFields);
        if (isset($this->Payments)) $o['Payments'] = JsonConverters::toArray('PaymentGeneric', $this->Payments);
        if (isset($this->Rnt_avacodeprin)) $o['Rnt_avacodeprin'] = $this->Rnt_avacodeprin;
        if (isset($this->Rnt_avacodemaint)) $o['Rnt_avacodemaint'] = $this->Rnt_avacodemaint;
        if (isset($this->Rnt_avacodelate)) $o['Rnt_avacodelate'] = $this->Rnt_avacodelate;
        if (isset($this->Rnt_avacodelease)) $o['Rnt_avacodelease'] = $this->Rnt_avacodelease;
        if (isset($this->Rnt_avacodefin)) $o['Rnt_avacodefin'] = $this->Rnt_avacodefin;
        if (isset($this->Rnt_scheduledreturndate)) $o['Rnt_scheduledreturndate'] = JsonConverters::to('DateTime', $this->Rnt_scheduledreturndate);
        if (isset($this->Rnt_scheduledreturnoption)) $o['Rnt_scheduledreturnoption'] = $this->Rnt_scheduledreturnoption;
        if (isset($this->Rnt_scheduledreturnnotes)) $o['Rnt_scheduledreturnnotes'] = $this->Rnt_scheduledreturnnotes;
        if (isset($this->Rnt_scheduledreturnstatus)) $o['Rnt_scheduledreturnstatus'] = $this->Rnt_scheduledreturnstatus;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class ContractFullDetailsResponse extends BaseResponse implements JsonSerializable
{
    /**
     * @param BaseResponseResult|null $Status
     */
    public function __construct(
        ?BaseResponseResult $Status=null,
        // @DataMember
        /** @var array<ContractInfo>|null */
        public ?array $Contracts=null,

        // @DataMember
        /** @var int */
        public int $RemainingRecords=0
    ) {
        parent::__construct($Status);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['Contracts'])) $this->Contracts = JsonConverters::fromArray('ContractInfo', $o['Contracts']);
        if (isset($o['RemainingRecords'])) $this->RemainingRecords = $o['RemainingRecords'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->Contracts)) $o['Contracts'] = JsonConverters::toArray('ContractInfo', $this->Contracts);
        if (isset($this->RemainingRecords)) $o['RemainingRecords'] = $this->RemainingRecords;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description ContractFullDetailsRequires active-e Contracts Service. */
// @DataContract
class ContractFullDetailsRequest extends BaseSecureRequest implements JsonSerializable
{
    /**
     * @param string $ApiKey
     * @param string|null $OAuthToken
     * @param string|null $Token
     * @param string|null $DeviceId
     * @param string $AppId
     */
    public function __construct(
        string $ApiKey='',
        ?string $OAuthToken=null,
        ?string $Token=null,
        ?string $DeviceId=null,
        string $AppId='',
        // @DataMember
        /** @var int|null */
        public ?int $Acct=null,

        // @DataMember
        /** @var int|null */
        public ?int $Sub=null,

        // @DataMember
        /** @var DateTime|null */
        public ?DateTime $ChangedDate=null,

        // @DataMember
        /** @var string|null */
        public ?string $SerialNumber=null,

        /** @description If sent, additional calculated fields will be returned using this date */
        // @DataMember
        // @ApiMember(DataType="string", Description="If sent, additional calculated fields will be returned using this date", Format="date", Name="CalculationsDate", ParameterType="query")
        /** @var DateTime|null */
        public ?DateTime $CalculationsDate=null,

        /** @description The Starting Offset */
        // @DataMember
        // @ApiMember(DataType="integer", Description="The Starting Offset", Format="int64", Name="StartOffset")
        /** @var int|null */
        public ?int $StartOffset=null,

        /** @description The # of records to be returned */
        // @DataMember
        // @ApiMember(DataType="integer", Description="The # of records to be returned", Format="int64", Name="RecordCount")
        /** @var int|null */
        public ?int $RecordCount=null,

        /** @description The Contract Ref# to be looked up. If sent, do not send WebRef, Acct, Sub, ChangedDate, SerialNumber, StartOffset, or Recordcount */
        // @DataMember
        // @ApiMember(DataType="string", Description="The Contract Ref# to be looked up. If sent, do not send WebRef, Acct, Sub, ChangedDate, SerialNumber, StartOffset, or Recordcount", Name="AIMRef")
        /** @var string|null */
        public ?string $AIMRef=null,

        /** @description The WebRef to be looked up. If sent, do not send AIMRef, Acct, Sub, ChangedDate, SerialNumber, StartOffset, or Recordcount */
        // @DataMember
        // @ApiMember(DataType="string", Description="The WebRef to be looked up. If sent, do not send AIMRef, Acct, Sub, ChangedDate, SerialNumber, StartOffset, or Recordcount", Name="WebRef")
        /** @var string|null */
        public ?string $WebRef=null
    ) {
        parent::__construct($ApiKey,$OAuthToken,$Token,$DeviceId,$AppId);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['Acct'])) $this->Acct = $o['Acct'];
        if (isset($o['Sub'])) $this->Sub = $o['Sub'];
        if (isset($o['ChangedDate'])) $this->ChangedDate = JsonConverters::from('DateTime', $o['ChangedDate']);
        if (isset($o['SerialNumber'])) $this->SerialNumber = $o['SerialNumber'];
        if (isset($o['CalculationsDate'])) $this->CalculationsDate = JsonConverters::from('DateTime', $o['CalculationsDate']);
        if (isset($o['StartOffset'])) $this->StartOffset = $o['StartOffset'];
        if (isset($o['RecordCount'])) $this->RecordCount = $o['RecordCount'];
        if (isset($o['AIMRef'])) $this->AIMRef = $o['AIMRef'];
        if (isset($o['WebRef'])) $this->WebRef = $o['WebRef'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->Acct)) $o['Acct'] = $this->Acct;
        if (isset($this->Sub)) $o['Sub'] = $this->Sub;
        if (isset($this->ChangedDate)) $o['ChangedDate'] = JsonConverters::to('DateTime', $this->ChangedDate);
        if (isset($this->SerialNumber)) $o['SerialNumber'] = $this->SerialNumber;
        if (isset($this->CalculationsDate)) $o['CalculationsDate'] = JsonConverters::to('DateTime', $this->CalculationsDate);
        if (isset($this->StartOffset)) $o['StartOffset'] = $this->StartOffset;
        if (isset($this->RecordCount)) $o['RecordCount'] = $this->RecordCount;
        if (isset($this->AIMRef)) $o['AIMRef'] = $this->AIMRef;
        if (isset($this->WebRef)) $o['WebRef'] = $this->WebRef;
        return empty($o) ? new class(){} : $o;
    }
}

PHP ContractFullDetailsRequest DTOs

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

HTTP + XML

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

GET /api/ContractFullDetails HTTP/1.1 
Host: active-ewebservice.biz 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<ContractFullDetailsResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/AIM.WebService">
  <Status>
    <DomainName>String</DomainName>
    <ErrorCode>String</ErrorCode>
    <ErrorDisplayText>String</ErrorDisplayText>
    <ErrorMessage>String</ErrorMessage>
    <IpAddress>String</IpAddress>
    <Login>String</Login>
    <StatusCode>String</StatusCode>
  </Status>
  <Contracts>
    <ContractInfo>
      <Acct>0</Acct>
      <AutoPayDeclined>false</AutoPayDeclined>
      <CardInfo>
        <CardType>String</CardType>
        <Expiration>String</Expiration>
        <LastFour>String</LastFour>
        <Primary>false</Primary>
        <ReasonOnFile>String</ReasonOnFile>
        <TokenPk>0</TokenPk>
        <TokenStr>String</TokenStr>
      </CardInfo>
      <ContractCalculatedFields>
        <AFeeLessTax>0</AFeeLessTax>
        <AmountDue>0</AmountDue>
        <CreditAmount>0</CreditAmount>
        <CurrentPlusNext>0</CurrentPlusNext>
        <DiscountedPayoff>0</DiscountedPayoff>
        <FinalPay>0</FinalPay>
        <MaintLessTax>0</MaintLessTax>
        <Notice>String</Notice>
        <Notice2>String</Notice2>
        <PayStream>0</PayStream>
        <PaymentTax>0</PaymentTax>
        <PaymentsAhead>0</PaymentsAhead>
        <PaymentsLate>0</PaymentsLate>
        <Payoff>0</Payoff>
        <PayoffDate>0001-01-01T00:00:00</PayoffDate>
        <PayoffInfo xmlns:d5p1="http://schemas.datacontract.org/2004/07/AIM.BL.Core.Global">
          <d5p1:ContractValuesObject>
            <d5p1:Display>String</d5p1:Display>
            <d5p1:Position>0</d5p1:Position>
            <d5p1:Value>0</d5p1:Value>
          </d5p1:ContractValuesObject>
        </PayoffInfo>
        <PrinLessTax>0</PrinLessTax>
        <RebateFc>0</RebateFc>
        <RentDueInfo xmlns:d5p1="http://schemas.datacontract.org/2004/07/AIM.BL.Core.Global">
          <d5p1:ContractValuesObject>
            <d5p1:Display>String</d5p1:Display>
            <d5p1:Position>0</d5p1:Position>
            <d5p1:Value>0</d5p1:Value>
          </d5p1:ContractValuesObject>
        </RentDueInfo>
        <Terms>0</Terms>
        <TotalLate>0</TotalLate>
        <TotalMaintOwed>0</TotalMaintOwed>
      </ContractCalculatedFields>
      <DefaultDesc>String</DefaultDesc>
      <District>String</District>
      <Inventory>
        <ContractInventoryInfo>
          <BeginDate>0001-01-01T00:00:00</BeginDate>
          <Cat>0</Cat>
          <Cost>0</Cost>
          <Description>String</Description>
          <Discount>0</Discount>
          <Dunn>String</Dunn>
          <EndDate>0001-01-01T00:00:00</EndDate>
          <Id>0</Id>
          <InvType>String</InvType>
          <Mfg>String</Mfg>
          <Notes>String</Notes>
          <OurPrice>0</OurPrice>
          <Qty>0</Qty>
          <ReceiptNotes>String</ReceiptNotes>
          <Serial>String</Serial>
          <Sku>String</Sku>
          <Sub>0</Sub>
          <Total>0</Total>
        </ContractInventoryInfo>
      </Inventory>
      <Payments xmlns:d4p1="http://schemas.datacontract.org/2004/07/AIM">
        <d4p1:PaymentGeneric>
          <d4p1:Amount>0</d4p1:Amount>
          <d4p1:Date>0001-01-01T00:00:00</d4p1:Date>
          <d4p1:Ref>String</d4p1:Ref>
        </d4p1:PaymentGeneric>
      </Payments>
      <PayoffDesc>String</PayoffDesc>
      <Ref>String</Ref>
      <Rnt_afee>0</Rnt_afee>
      <Rnt_alatedbt>false</Rnt_alatedbt>
      <Rnt_amtfin>0</Rnt_amtfin>
      <Rnt_aofinchg>0</Rnt_aofinchg>
      <Rnt_apaydbt>false</Rnt_apaydbt>
      <Rnt_apaytyp>String</Rnt_apaytyp>
      <Rnt_atcode>0</Rnt_atcode>
      <Rnt_autopayhold>0001-01-01T00:00:00</Rnt_autopayhold>
      <Rnt_avacodefin>String</Rnt_avacodefin>
      <Rnt_avacodelate>String</Rnt_avacodelate>
      <Rnt_avacodelease>String</Rnt_avacodelease>
      <Rnt_avacodemaint>String</Rnt_avacodemaint>
      <Rnt_avacodeprin>String</Rnt_avacodeprin>
      <Rnt_avgbal>0</Rnt_avgbal>
      <Rnt_balance>0</Rnt_balance>
      <Rnt_billdays>0</Rnt_billdays>
      <Rnt_cdate>0001-01-01T00:00:00</Rnt_cdate>
      <Rnt_colagency>String</Rnt_colagency>
      <Rnt_colamt>0</Rnt_colamt>
      <Rnt_coupdate>0001-01-01T00:00:00</Rnt_coupdate>
      <Rnt_cramt>0</Rnt_cramt>
      <Rnt_crmo>0</Rnt_crmo>
      <Rnt_currafee>0</Rnt_currafee>
      <Rnt_currbal>0</Rnt_currbal>
      <Rnt_currfc>0</Rnt_currfc>
      <Rnt_currfeetax1>0</Rnt_currfeetax1>
      <Rnt_currfeetax2>0</Rnt_currfeetax2>
      <Rnt_currlte>0</Rnt_currlte>
      <Rnt_currma>0</Rnt_currma>
      <Rnt_curroth>0</Rnt_curroth>
      <Rnt_currprn>0</Rnt_currprn>
      <Rnt_currtax1>0</Rnt_currtax1>
      <Rnt_currtax2>0</Rnt_currtax2>
      <Rnt_dayslate>0</Rnt_dayslate>
      <Rnt_daystlst>0</Rnt_daystlst>
      <Rnt_deprcode>String</Rnt_deprcode>
      <Rnt_discount>0</Rnt_discount>
      <Rnt_downpay>0</Rnt_downpay>
      <Rnt_dunn>String</Rnt_dunn>
      <Rnt_edate>0001-01-01T00:00:00</Rnt_edate>
      <Rnt_exchnotes>String</Rnt_exchnotes>
      <Rnt_fdate>0001-01-01T00:00:00</Rnt_fdate>
      <Rnt_fee>0</Rnt_fee>
      <Rnt_finalpay>0</Rnt_finalpay>
      <Rnt_finchg>0</Rnt_finchg>
      <Rnt_freemos>0</Rnt_freemos>
      <Rnt_intdate>0001-01-01T00:00:00</Rnt_intdate>
      <Rnt_intrate>0</Rnt_intrate>
      <Rnt_irregular>false</Rnt_irregular>
      <Rnt_itcode>0</Rnt_itcode>
      <Rnt_lastpaid>0</Rnt_lastpaid>
      <Rnt_latefee>0</Rnt_latefee>
      <Rnt_latefreq>0</Rnt_latefreq>
      <Rnt_lateowed>0</Rnt_lateowed>
      <Rnt_ldate>0001-01-01T00:00:00</Rnt_ldate>
      <Rnt_ltcode>0</Rnt_ltcode>
      <Rnt_monma>0</Rnt_monma>
      <Rnt_mopayreq>false</Rnt_mopayreq>
      <Rnt_mtcode>0</Rnt_mtcode>
      <Rnt_ndate>0001-01-01T00:00:00</Rnt_ndate>
      <Rnt_nextpayamt>0</Rnt_nextpayamt>
      <Rnt_nextpaynum>0</Rnt_nextpaynum>
      <Rnt_notedate>0001-01-01T00:00:00</Rnt_notedate>
      <Rnt_notes>String</Rnt_notes>
      <Rnt_otherowed>0</Rnt_otherowed>
      <Rnt_payfreq>0</Rnt_payfreq>
      <Rnt_payfreqtype>0</Rnt_payfreqtype>
      <Rnt_payment>0</Rnt_payment>
      <Rnt_paystrm>0</Rnt_paystrm>
      <Rnt_pk>0</Rnt_pk>
      <Rnt_prevamt>0</Rnt_prevamt>
      <Rnt_prevmo>0</Rnt_prevmo>
      <Rnt_price>0</Rnt_price>
      <Rnt_rdate>0001-01-01T00:00:00</Rnt_rdate>
      <Rnt_scheduledreturndate>0001-01-01T00:00:00</Rnt_scheduledreturndate>
      <Rnt_scheduledreturnnotes>String</Rnt_scheduledreturnnotes>
      <Rnt_scheduledreturnoption>String</Rnt_scheduledreturnoption>
      <Rnt_scheduledreturnstatus>String</Rnt_scheduledreturnstatus>
      <Rnt_sdate>0001-01-01T00:00:00</Rnt_sdate>
      <Rnt_student>String</Rnt_student>
      <Rnt_sub>0</Rnt_sub>
      <Rnt_tax>0</Rnt_tax>
      <Rnt_taxrate1>0</Rnt_taxrate1>
      <Rnt_taxrate2>0</Rnt_taxrate2>
      <Rnt_taxrateorig1>0</Rnt_taxrateorig1>
      <Rnt_taxrateorig2>0</Rnt_taxrateorig2>
      <Rnt_tcode>0</Rnt_tcode>
      <Rnt_term>0</Rnt_term>
      <Rnt_timestamp>0001-01-01T00:00:00</Rnt_timestamp>
      <Rnt_tmaint>0</Rnt_tmaint>
      <Rnt_tradein>0</Rnt_tradein>
      <Rnt_typer>String</Rnt_typer>
      <School>String</School>
      <TaxLocation>String</TaxLocation>
    </ContractInfo>
  </Contracts>
  <RemainingRecords>0</RemainingRecords>
</ContractFullDetailsResponse>