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
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"}}