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 .xml suffix or ?format=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>