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
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BaseRequest:
    # @ApiMember(DataType="string", Description="This is your AIM API Key provided by Tri-Tech", IsRequired=true, Name="ApiKey", ParameterType="header")
    api_key: Optional[str] = None
    """
    This is your AIM API Key provided by Tri-Tech
    """


    # @ApiMember(DataType="string", Name="OAuthToken", ParameterType="header")
    o_auth_token: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BaseSecureRequest(BaseRequest):
    # @ApiMember(DataType="string", Description="", Name="Token", ParameterType="Header")
    token: Optional[str] = None
    """
    
    """

    # @ApiMember(DataType="string", Description="", Name="DeviceId", ParameterType="Header")
    device_id: Optional[str] = None
    """
    
    """

    # @ApiMember(DataType="string", Description="", IsRequired=true, Name="AppId", ParameterType="Header")
    app_id: Optional[str] = None
    """
    
    """


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BaseResponseResult:
    # @ApiMember(DataType="string", Description="", Name="StatusCode", ParameterType="body")
    status_code: Optional[str] = None
    """
    
    """

    # @ApiMember(DataType="string", Description="", Name="Login", ParameterType="body")
    login: Optional[str] = None
    """
    
    """

    # @ApiMember(DataType="string", Description="", Name="ErrorCode", ParameterType="body")
    error_code: Optional[str] = None
    """
    
    """

    # @ApiMember(DataType="string", Description="", Name="ErrorDisplayText", ParameterType="body")
    error_display_text: Optional[str] = None
    """
    
    """

    # @ApiMember(DataType="string", Description="", Name="ErrorMessage", ParameterType="body")
    error_message: Optional[str] = None
    """
    
    """

    # @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="DomainName", ParameterType="body")
    domain_name: Optional[str] = None
    """
    
    """

    # @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="IPAddress", ParameterType="body")
    ip_address: Optional[str] = None
    """
    
    """


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BaseResponse:
    # @ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body")
    status: Optional[BaseResponseResult] = None
    """
    
    """


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ContractInventoryInfo:
    id: int = 0
    begin_date: datetime.datetime = datetime.datetime(1, 1, 1)
    cat: int = 0
    cost: Optional[Decimal] = None
    description: Optional[str] = None
    discount: Decimal = decimal.Decimal(0)
    dunn: Optional[str] = None
    end_date: datetime.datetime = datetime.datetime(1, 1, 1)
    inv_type: Optional[str] = None
    notes: Optional[str] = None
    our_price: Decimal = decimal.Decimal(0)
    qty: Decimal = decimal.Decimal(0)
    receipt_notes: Optional[str] = None
    serial: Optional[str] = None
    sub: int = 0
    total: Decimal = decimal.Decimal(0)
    sku: Optional[str] = None
    mfg: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CcInfo:
    # @ApiMember(DataType="string", Description="Token returned from processor", IsRequired=true, Name="TokenStr", ParameterType="query")
    token_str: Optional[str] = None
    """
    Token returned from processor
    """


    # @ApiMember(DataType="string", Description="Card Type (VISA, MCARD, AMEX, DSCVR)", IsRequired=true, Name="CardType", ParameterType="query")
    card_type: Optional[str] = None
    """
    Card Type (VISA, MCARD, AMEX, DSCVR)
    """


    # @ApiMember(DataType="string", Description="Last four of the card", IsRequired=true, Name="LastFour", ParameterType="query")
    last_four: Optional[str] = None
    """
    Last four of the card
    """


    # @ApiMember(DataType="string", Description="Expiration Date of the Card. (MM/YY)", Name="Expiration", ParameterType="query")
    expiration: Optional[str] = None
    """
    Expiration Date of the Card. (MM/YY)
    """


    # @ApiMember(DataType="string", Description="Reason the card is on file.", Name="ReasonOnFile", ParameterType="query")
    reason_on_file: Optional[str] = None
    """
    Reason the card is on file.
    """


    # @ApiMember(DataType="integer", Description="ID of the existing Token Record in AIM, if applicable", Format="int64", Name="TokenPk", ParameterType="query")
    token_pk: Optional[int] = None
    """
    ID of the existing Token Record in AIM, if applicable
    """


    # @ApiMember(DataType="boolean", Description="Is this the customer's primary card? Defaults to false.", Name="Primary", ParameterType="query")
    primary: Optional[bool] = None
    """
    Is this the customer's primary card? Defaults to false.
    """


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ContractValuesObject:
    position: int = 0
    display: Optional[str] = None
    value: Decimal = decimal.Decimal(0)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ContractCalculatedFields:
    terms: int = 0
    pay_stream: int = 0
    final_pay: Decimal = decimal.Decimal(0)
    amount_due: Decimal = decimal.Decimal(0)
    payoff: Decimal = decimal.Decimal(0)
    discounted_payoff: Decimal = decimal.Decimal(0)
    rebate_fc: Decimal = decimal.Decimal(0)
    total_late: Decimal = decimal.Decimal(0)
    payments_late: Decimal = decimal.Decimal(0)
    payments_ahead: int = 0
    total_maint_owed: Decimal = decimal.Decimal(0)
    current_plus_next: Decimal = decimal.Decimal(0)
    payoff_date: datetime.datetime = datetime.datetime(1, 1, 1)
    credit_amount: Decimal = decimal.Decimal(0)
    prin_less_tax: Decimal = decimal.Decimal(0)
    maint_less_tax: Decimal = decimal.Decimal(0)
    a_fee_less_tax: Decimal = decimal.Decimal(0)
    payment_tax: Decimal = decimal.Decimal(0)
    rent_due_info: Optional[List[ContractValuesObject]] = None
    payoff_info: Optional[List[ContractValuesObject]] = None
    notice: Optional[str] = None
    notice2: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PaymentGeneric:
    date: datetime.datetime = datetime.datetime(1, 1, 1)
    amount: Decimal = decimal.Decimal(0)
    ref: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ContractInfo:
    rnt_afee: Decimal = decimal.Decimal(0)
    rnt_alatedbt: bool = False
    rnt_amtfin: Decimal = decimal.Decimal(0)
    rnt_aofinchg: Decimal = decimal.Decimal(0)
    rnt_apaydbt: bool = False
    rnt_apaytyp: Optional[str] = None
    rnt_atcode: int = 0
    rnt_autopayhold: datetime.datetime = datetime.datetime(1, 1, 1)
    rnt_avgbal: Decimal = decimal.Decimal(0)
    rnt_balance: Decimal = decimal.Decimal(0)
    rnt_billdays: int = 0
    rnt_cdate: datetime.datetime = datetime.datetime(1, 1, 1)
    rnt_colagency: Optional[str] = None
    rnt_colamt: Decimal = decimal.Decimal(0)
    rnt_coupdate: datetime.datetime = datetime.datetime(1, 1, 1)
    rnt_cramt: Decimal = decimal.Decimal(0)
    rnt_crmo: int = 0
    rnt_currafee: Decimal = decimal.Decimal(0)
    rnt_currbal: Decimal = decimal.Decimal(0)
    rnt_currfc: Decimal = decimal.Decimal(0)
    rnt_currfeetax1: Decimal = decimal.Decimal(0)
    rnt_currfeetax2: Decimal = decimal.Decimal(0)
    rnt_currlte: Decimal = decimal.Decimal(0)
    rnt_currma: Decimal = decimal.Decimal(0)
    rnt_curroth: Decimal = decimal.Decimal(0)
    rnt_currprn: Decimal = decimal.Decimal(0)
    rnt_currtax1: Decimal = decimal.Decimal(0)
    rnt_currtax2: Decimal = decimal.Decimal(0)
    rnt_dayslate: int = 0
    rnt_daystlst: int = 0
    rnt_deprcode: Optional[str] = None
    rnt_discount: Decimal = decimal.Decimal(0)
    rnt_downpay: Decimal = decimal.Decimal(0)
    rnt_dunn: Optional[str] = None
    rnt_edate: datetime.datetime = datetime.datetime(1, 1, 1)
    rnt_fdate: datetime.datetime = datetime.datetime(1, 1, 1)
    rnt_fee: Decimal = decimal.Decimal(0)
    rnt_finalpay: Decimal = decimal.Decimal(0)
    rnt_finchg: Decimal = decimal.Decimal(0)
    rnt_freemos: int = 0
    rnt_intdate: datetime.datetime = datetime.datetime(1, 1, 1)
    rnt_intrate: Decimal = decimal.Decimal(0)
    rnt_irregular: bool = False
    rnt_itcode: int = 0
    rnt_lastpaid: Decimal = decimal.Decimal(0)
    rnt_latefee: Decimal = decimal.Decimal(0)
    rnt_lateowed: Decimal = decimal.Decimal(0)
    rnt_ldate: datetime.datetime = datetime.datetime(1, 1, 1)
    rnt_ltcode: int = 0
    rnt_monma: Decimal = decimal.Decimal(0)
    rnt_mopayreq: bool = False
    rnt_mtcode: int = 0
    rnt_ndate: datetime.datetime = datetime.datetime(1, 1, 1)
    rnt_nextpayamt: Decimal = decimal.Decimal(0)
    rnt_nextpaynum: int = 0
    rnt_notedate: datetime.datetime = datetime.datetime(1, 1, 1)
    rnt_notes: Optional[str] = None
    rnt_exchnotes: Optional[str] = None
    rnt_otherowed: Decimal = decimal.Decimal(0)
    rnt_payfreq: int = 0
    rnt_latefreq: int = 0
    rnt_payfreqtype: int = 0
    rnt_payment: Decimal = decimal.Decimal(0)
    rnt_paystrm: int = 0
    rnt_pk: int = 0
    rnt_prevamt: Decimal = decimal.Decimal(0)
    rnt_prevmo: int = 0
    rnt_price: Decimal = decimal.Decimal(0)
    rnt_rdate: datetime.datetime = datetime.datetime(1, 1, 1)
    rnt_sdate: datetime.datetime = datetime.datetime(1, 1, 1)
    rnt_student: Optional[str] = None
    rnt_sub: int = 0
    rnt_tax: Decimal = decimal.Decimal(0)
    rnt_taxrate1: Decimal = decimal.Decimal(0)
    rnt_taxrate2: Decimal = decimal.Decimal(0)
    rnt_taxrateorig1: Decimal = decimal.Decimal(0)
    rnt_taxrateorig2: Decimal = decimal.Decimal(0)
    rnt_tcode: int = 0
    rnt_term: int = 0
    rnt_tmaint: Decimal = decimal.Decimal(0)
    rnt_tradein: Decimal = decimal.Decimal(0)
    rnt_typer: Optional[str] = None
    rnt_timestamp: datetime.datetime = datetime.datetime(1, 1, 1)
    acct: int = 0
    tax_location: Optional[str] = None
    default_desc: Optional[str] = None
    payoff_desc: Optional[str] = None
    school: Optional[str] = None
    district: Optional[str] = None
    ref: Optional[str] = None
    auto_pay_declined: bool = False
    inventory: Optional[List[ContractInventoryInfo]] = None
    card_info: Optional[CcInfo] = None
    contract_calculated_fields: Optional[ContractCalculatedFields] = None
    payments: Optional[List[PaymentGeneric]] = None
    rnt_avacodeprin: Optional[str] = None
    rnt_avacodemaint: Optional[str] = None
    rnt_avacodelate: Optional[str] = None
    rnt_avacodelease: Optional[str] = None
    rnt_avacodefin: Optional[str] = None
    rnt_scheduledreturndate: datetime.datetime = datetime.datetime(1, 1, 1)
    rnt_scheduledreturnoption: Optional[str] = None
    rnt_scheduledreturnnotes: Optional[str] = None
    rnt_scheduledreturnstatus: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ContractFullDetailsResponse(BaseResponse):
    contracts: Optional[List[ContractInfo]] = None
    remaining_records: int = 0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ContractFullDetailsRequest(BaseSecureRequest):
    """
    ContractFullDetailsRequires active-e Contracts Service.
    """

    acct: Optional[int] = None
    sub: Optional[int] = None
    changed_date: Optional[datetime.datetime] = None
    serial_number: Optional[str] = None
    # @ApiMember(DataType="string", Description="If sent, additional calculated fields will be returned using this date", Format="date", Name="CalculationsDate", ParameterType="query")
    calculations_date: Optional[datetime.datetime] = None
    """
    If sent, additional calculated fields will be returned using this date
    """


    # @ApiMember(DataType="integer", Description="The Starting Offset", Format="int64", Name="StartOffset")
    start_offset: Optional[int] = None
    """
    The Starting Offset
    """


    # @ApiMember(DataType="integer", Description="The # of records to be returned", Format="int64", Name="RecordCount")
    record_count: Optional[int] = None
    """
    The # of records to be returned
    """


    # @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")
    aim_ref: Optional[str] = None
    """
    The Contract Ref# to be looked up. If sent, do not send WebRef, Acct, Sub, ChangedDate, SerialNumber, StartOffset, or Recordcount
    """


    # @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")
    web_ref: Optional[str] = None
    """
    The WebRef to be looked up. If sent, do not send AIMRef, Acct, Sub, ChangedDate, SerialNumber, StartOffset, or Recordcount
    """

Python ContractFullDetailsRequest DTOs

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

HTTP + OTHER

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: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Contracts":[{"Rnt_afee":0,"Rnt_alatedbt":false,"Rnt_amtfin":0,"Rnt_aofinchg":0,"Rnt_apaydbt":false,"Rnt_apaytyp":"String","Rnt_atcode":0,"Rnt_avgbal":0,"Rnt_balance":0,"Rnt_billdays":0,"Rnt_colagency":"String","Rnt_colamt":0,"Rnt_cramt":0,"Rnt_crmo":0,"Rnt_currafee":0,"Rnt_currbal":0,"Rnt_currfc":0,"Rnt_currfeetax1":0,"Rnt_currfeetax2":0,"Rnt_currlte":0,"Rnt_currma":0,"Rnt_curroth":0,"Rnt_currprn":0,"Rnt_currtax1":0,"Rnt_currtax2":0,"Rnt_dayslate":0,"Rnt_daystlst":0,"Rnt_deprcode":"String","Rnt_discount":0,"Rnt_downpay":0,"Rnt_dunn":"String","Rnt_fee":0,"Rnt_finalpay":0,"Rnt_finchg":0,"Rnt_freemos":0,"Rnt_intrate":0,"Rnt_irregular":false,"Rnt_itcode":0,"Rnt_lastpaid":0,"Rnt_latefee":0,"Rnt_lateowed":0,"Rnt_ltcode":0,"Rnt_monma":0,"Rnt_mopayreq":false,"Rnt_mtcode":0,"Rnt_nextpayamt":0,"Rnt_nextpaynum":0,"Rnt_notes":"String","Rnt_exchnotes":"String","Rnt_otherowed":0,"Rnt_payfreq":0,"Rnt_latefreq":0,"Rnt_payfreqtype":0,"Rnt_payment":0,"Rnt_paystrm":0,"Rnt_pk":0,"Rnt_prevamt":0,"Rnt_prevmo":0,"Rnt_price":0,"Rnt_student":"String","Rnt_sub":0,"Rnt_tax":0,"Rnt_taxrate1":0,"Rnt_taxrate2":0,"Rnt_taxrateorig1":0,"Rnt_taxrateorig2":0,"Rnt_tcode":0,"Rnt_term":0,"Rnt_tmaint":0,"Rnt_tradein":0,"Rnt_typer":"String","Acct":0,"TaxLocation":"String","DefaultDesc":"String","PayoffDesc":"String","School":"String","District":"String","Ref":"String","AutoPayDeclined":false,"Inventory":[{"Id":0,"Cat":0,"Cost":0,"Description":"String","Discount":0,"Dunn":"String","InvType":"String","Notes":"String","OurPrice":0,"Qty":0,"ReceiptNotes":"String","Serial":"String","Sub":0,"Total":0,"Sku":"String","Mfg":"String"}],"CardInfo":{"TokenStr":"String","CardType":"String","LastFour":"String","Expiration":"String","ReasonOnFile":"String","TokenPk":0,"Primary":false},"ContractCalculatedFields":{"Terms":0,"PayStream":0,"FinalPay":0,"AmountDue":0,"Payoff":0,"DiscountedPayoff":0,"RebateFc":0,"TotalLate":0,"PaymentsLate":0,"PaymentsAhead":0,"TotalMaintOwed":0,"CurrentPlusNext":0,"CreditAmount":0,"PrinLessTax":0,"MaintLessTax":0,"AFeeLessTax":0,"PaymentTax":0,"RentDueInfo":[{"Position":0,"Display":"String","Value":0}],"PayoffInfo":[{"Position":0,"Display":"String","Value":0}],"Notice":"String","Notice2":"String"},"Payments":[{"Amount":0,"Ref":"String"}],"Rnt_avacodeprin":"String","Rnt_avacodemaint":"String","Rnt_avacodelate":"String","Rnt_avacodelease":"String","Rnt_avacodefin":"String","Rnt_scheduledreturnoption":"String","Rnt_scheduledreturnnotes":"String","Rnt_scheduledreturnstatus":"String"}],"RemainingRecords":0,"Status":{"StatusCode":"String","Login":"String","ErrorCode":"String","ErrorDisplayText":"String","ErrorMessage":"String","DomainName":"String","IpAddress":"String"}}