コード例 #1
0
class INVSTMTMSGSETV1(Aggregate):
    """ OFX section 13.7.1.1 """

    msgsetcore = SubAggregate(MSGSETCORE, required=True)
    trandnld = Bool(required=True)
    oodnld = Bool(required=True)
    posdnld = Bool(required=True)
    baldnld = Bool(required=True)
    canemail = Bool(required=True)
    inv401kdnld = Bool()
    closingavail = Bool()
    imageprof = Unsupported()
コード例 #2
0
class SIGNONINFO(Aggregate):
    """ OFX section 7.2.2 """

    signonrealm = String(32, required=True)
    min = Integer(required=True)
    max = Integer(required=True)
    chartype = OneOf(
        "ALPHAONLY", "NUMERICONLY", "ALPHAORNUMERIC", "ALPHAANDNUMERIC", required=True
    )
    casesen = Bool(required=True)
    special = Bool(required=True)
    spaces = Bool(required=True)
    pinch = Bool(required=True)
    chgpinfirst = Bool()
    usercred1label = String(64)
    usercred2label = String(64)
    clientuidreq = Bool()
    authtokenfirst = Bool()
    authtokenlabel = String(64)
    authtokeninfourl = String(255)
    mfachallengesupt = Bool()
    mfachallengefirst = Bool()
    accesstokenreq = Bool()
コード例 #3
0
class INCOME(Aggregate, Origcurrency):
    """ OFX section 13.9.2.4.4 """

    invtran = SubAggregate(INVTRAN, required=True)
    secid = SubAggregate(SECID, required=True)
    incometype = OneOf(*INCOMETYPES, required=True)
    total = Decimal(required=True)
    subacctsec = OneOf(*INVSUBACCTS, required=True)
    subacctfund = OneOf(*INVSUBACCTS, required=True)
    taxexempt = Bool()
    withholding = Decimal()
    currency = SubAggregate(CURRENCY)
    origcurrency = SubAggregate(ORIGCURRENCY)
    inv401ksource = OneOf(*INV401KSOURCES)
コード例 #4
0
ファイル: tax1099.py プロジェクト: redstreet/ofxtools
class TAX1099OID_V100(Aggregate):
    """OFX tax extensions section 2.2.14"""

    srvrtid = String(10, required=True)
    taxyear = Integer(4, required=True)
    void = Bool()
    corrected = Bool()
    origisdisc = Decimal()
    otherperint = Decimal()
    erlwithpen = Decimal()
    fedtaxwh = Decimal()
    marketdiscount = Decimal()
    acqpremium = Decimal()
    description = String(2000)
    oidonustres = Decimal()
    investexp = Decimal()
    bondpremium = Decimal()
    taxexemptoid = Decimal()
    origstate = ListAggregate(ORIGSTATE)
    privactbondamt = Decimal()
    privactbondint = Decimal()
    statecode = String(2)
    stateidnum = String(32)
    statetaxwheld = Decimal()
    addlstatetaxwhagg = SubAggregate(ADDLSTATETAXWHAGG)
    payeraddr = SubAggregate(PAYERADDR)
    payerid = String(32, required=True)
    recid = String(32)
    recacct = String(32)
    tinnot = Bool()
    fatca = Bool()

    optionalMutexes = [
        ["statecode", "addlstatetaxwhagg"],
        ["stateidnum", "addlstatetaxwhagg"],
        ["statetaxwheld", "addlstatetaxwhagg"],
    ]
コード例 #5
0
ファイル: tax1099.py プロジェクト: redstreet/ofxtools
class TAX1099B_V100(Aggregate):
    """OFX tax extensions section 2.2.11"""

    srvrtid = String(10, required=True)
    taxyear = Integer(4, required=True)
    void = Bool()
    corrected = Bool()
    dtsale = DateTime()
    cusipnum = String(32)
    stkbnd = SubAggregate(STKBND)
    bartering = Decimal()
    fedtaxwh = Decimal()
    dscr = String(80)
    profit = Decimal()
    unrelprofitprev = Decimal()
    unrelprofit = Decimal()
    aggprofit = Decimal()
    extdbinfo_v100 = SubAggregate(EXTDBINFO_V100)
    payeraddr = SubAggregate(PAYERADDR, required=True)
    payerid = String(32, required=True)
    recaddr = SubAggregate(RECADDR)
    recid = String(32, required=True)
    recacct = String(32)
    tinnot = Bool()
コード例 #6
0
ファイル: common.py プロジェクト: scottbdr/ofxtools
class MSGSETCORE(Aggregate):
    """ OFX section 7.2.1 """
    ver = Integer(required=True)
    url = String(255, required=True)
    ofxsec = OneOf('NONE', 'TYPE1', required=True)
    transpsec = Bool(required=True)
    signonrealm = String(32, required=True)
    language = OneOf(*LANG_CODES, required=True)
    syncmode = OneOf('FULL', 'LITE', required=True)
    refreshsupt = Bool()
    respfileer = Bool(required=True)
    spname = String(32)
    ofxextension = SubAggregate(OFXEXTENSION)

    @staticmethod
    def groom(elem):
        """
        Remove proprietary tags e.g. INTU.XXX
        """
        for child in set(elem):
            if '.' in child.tag:
                elem.remove(child)

        return super(MSGSETCORE, MSGSETCORE).groom(elem)
コード例 #7
0
class XFERPROF(ElementList):
    """OFX section 11.13.2.2"""

    procdaysoff = ListElement(OneOf(*DAYS))
    procendtm = Time(required=True)
    cansched = Bool(required=True)
    canrecur = Bool(required=True)
    canloan = Bool()
    canschedloan = Bool()
    canrecurloan = Bool()
    canmodxfers = Bool(required=True)
    canmodmdls = Bool(required=True)
    modelwnd = Integer(3, required=True)
    dayswith = Integer(3, required=True)
    dfltdaystopay = Integer(3, required=True)
コード例 #8
0
ファイル: models.py プロジェクト: tgoetze/ofxtools
class INVBUY(INVTRAN, SECID, ORIGCURRENCY):
    units = Decimal(required=True)
    unitprice = Decimal(4, required=True)
    markup = Decimal()
    commission = Decimal()
    taxes = Decimal()
    fees = Decimal()
    load = Decimal()
    total = Decimal(required=True)
    subacctsec = OneOf(*INVSUBACCTS, required=True)
    subacctfund = OneOf(*INVSUBACCTS, required=True)
    loanid = String(32)
    loanprincipal = Decimal()
    loaninterest = Decimal()
    inv401ksource = OneOf(*INV401KSOURCES)
    dtpayroll = DateTime()
    prioryearcontrib = Bool()
コード例 #9
0
ファイル: investment.py プロジェクト: scottbdr/ofxtools
class REINVEST(Aggregate, Origcurrency):
    """ OFX section 13.9.2.4.4 """
    invtran = SubAggregate(INVTRAN, required=True)
    secid = SubAggregate(SECID, required=True)
    incometype = OneOf(*INCOMETYPES, required=True)
    total = Decimal(required=True)
    subacctsec = OneOf(*INVSUBACCTS, required=True)
    units = Decimal(required=True)
    unitprice = Decimal(4, required=True)
    commission = Decimal()
    taxes = Decimal()
    fees = Decimal()
    load = Decimal()
    taxexempt = Bool()
    currency = SubAggregate(CURRENCY)
    origcurrency = SubAggregate(ORIGCURRENCY)
    inv401ksource = OneOf(*INV401KSOURCES)
コード例 #10
0
ファイル: models.py プロジェクト: tgoetze/ofxtools
class INVSELL(INVTRAN, SECID, ORIGCURRENCY):
    units = Decimal(required=True)
    unitprice = Decimal(4, required=True)
    markdown = Decimal()
    commission = Decimal()
    taxes = Decimal()
    fees = Decimal()
    load = Decimal()
    withholding = Decimal()
    taxexempt = Bool()
    total = Decimal(required=True)
    gain = Decimal()
    subacctsec = OneOf(*INVSUBACCTS, required=True)
    subacctfund = OneOf(*INVSUBACCTS, required=True)
    loanid = String(32)
    statewithholding = Decimal()
    penalty = Decimal()
    inv401ksource = OneOf(*INV401KSOURCES)
コード例 #11
0
ファイル: signon.py プロジェクト: scottbdr/ofxtools
class SONRQ(Aggregate):
    """ OFX section 2.5.1.5 """
    dtclient = DateTime(required=True)
    userid = String(32)
    userpass = String(171)
    userkey = String(64)
    accesstoken = String(1000)
    genuserkey = Bool()
    language = OneOf(*LANG_CODES, required=True)
    fi = SubAggregate(FI)
    sesscookie = String(1000)
    appid = String(5, required=True)
    appver = String(4, required=True)
    appkey = String(10000)
    clientuid = String(36)
    usercred1 = String(171)
    usercred2 = String(171)
    authtoken = String(171)
    accesskey = String(1000)
    mfachallengeanswer = Unsupported()
    ofxextension = Unsupported()
コード例 #12
0
ファイル: investment.py プロジェクト: scottbdr/ofxtools
class INVBUY(Aggregate, Origcurrency):
    """ OFX section 13.9.2.4.3 """
    invtran = SubAggregate(INVTRAN, required=True)
    secid = SubAggregate(SECID, required=True)
    units = Decimal(required=True)
    unitprice = Decimal(4, required=True)
    markup = Decimal()
    commission = Decimal()
    taxes = Decimal()
    fees = Decimal()
    load = Decimal()
    total = Decimal(required=True)
    currency = SubAggregate(CURRENCY)
    origcurrency = SubAggregate(ORIGCURRENCY)
    subacctsec = OneOf(*INVSUBACCTS, required=True)
    subacctfund = OneOf(*INVSUBACCTS, required=True)
    loanid = String(32)
    loanprincipal = Decimal()
    loaninterest = Decimal()
    inv401ksource = OneOf(*INV401KSOURCES)
    dtpayroll = DateTime()
    prioryearcontrib = Bool()
コード例 #13
0
class SONRQ(Aggregate):
    """ OFX section 2.5.1.2 """

    dtclient = DateTime(required=True)
    userid = String(32)
    userpass = String(171)
    userkey = String(64)
    accesstoken = String(1000)
    genuserkey = Bool()
    language = OneOf(*LANG_CODES, required=True)
    fi = SubAggregate(FI)
    sesscookie = String(1000)
    appid = String(5, required=True)
    appver = String(4, required=True)
    appkey = String(10000)
    clientuid = String(36)
    usercred1 = String(171)
    usercred2 = String(171)
    authtoken = String(171)
    accesskey = String(1000)
    mfachallengea = ListAggregate(MFACHALLENGEA)
    ofxextension = Unsupported()

    @classmethod
    def validate_args(cls, *args, **kwargs):
        #  "Either <USERID> and <USERPASS> or <USERKEY>, but not both"
        userid = kwargs.get("userid", None)
        userpass = kwargs.get("userpass", None)
        userkey = kwargs.get("userkey", None)
        try:
            assert (userid and userpass) or userkey
            assert not ((userid or userpass) and userkey)
        except AssertionError:
            msg = ("{} must contain either <USERID> and <USERPASS> "
                   "or <USERKEY>, but not both")
            raise ValueError(msg.format(cls.__name__))

        super().validate_args(*args, **kwargs)
コード例 #14
0
ファイル: investment.py プロジェクト: scottbdr/ofxtools
class INVSELL(Aggregate, Origcurrency):
    """ OFX section 13.9.2.4.3 """
    invtran = SubAggregate(INVTRAN, required=True)
    secid = SubAggregate(SECID, required=True)
    units = Decimal(required=True)
    unitprice = Decimal(4, required=True)
    markdown = Decimal()
    commission = Decimal()
    taxes = Decimal()
    fees = Decimal()
    load = Decimal()
    withholding = Decimal()
    taxexempt = Bool()
    total = Decimal(required=True)
    gain = Decimal()
    currency = SubAggregate(CURRENCY)
    origcurrency = SubAggregate(ORIGCURRENCY)
    subacctsec = OneOf(*INVSUBACCTS, required=True)
    subacctfund = OneOf(*INVSUBACCTS, required=True)
    loanid = String(32)
    statewithholding = Decimal()
    penalty = Decimal()
    inv401ksource = OneOf(*INV401KSOURCES)
コード例 #15
0
class RECINTERCANRQ(Aggregate):
    """ OFX section 11.10.6.1 """

    recsrvrtid = String(10, required=True)
    canpending = Bool(required=True)
コード例 #16
0
class PMTMAILSYNCRQ(SyncRqList):
    """ OFX Section 12.8.2.1 """

    incimages = Bool(required=True)
    usehtml = Bool(required=True)
    pmtmailtrnrq = ListItem(PMTMAILTRNRQ)
コード例 #17
0
class TAX1099MSGSETV1(Aggregate):
    """ OFX tax extensions section 2.1 """
    msgsetcore = SubAggregate(MSGSETCORE, required=True)
    tax1099dnld = Bool(required=True)
    extd1099b = Bool(required=True)
    taxyearsupported = Integer(required=True)
コード例 #18
0
ファイル: tax1099.py プロジェクト: redstreet/ofxtools
class STKBND(Aggregate):
    """OFX tax extensions section 2.2.11"""

    stkbndamt = Decimal(required=True)
    sbgros = Bool()
    sbgrosless = Bool()
コード例 #19
0
class EMAILMSGSETV1(Aggregate):
    """ OFX section 9.4.2 """

    msgsetcore = SubAggregate(MSGSETCORE, required=True)
    mailsup = Bool(required=True)
    getmimesup = Bool(required=True)
コード例 #20
0
ファイル: signup.py プロジェクト: scottbdr/ofxtools
class CLIENTENROLL(Aggregate):
    """ OFX section 8.8 """
    acctrequired = Bool(required=True)
コード例 #21
0
class EMAILPROF(Aggregate):
    """OFX section 11.13.2.4"""

    canemail = Bool(required=True)
    cannotify = Bool(required=True)
コード例 #22
0
ファイル: investment.py プロジェクト: scottbdr/ofxtools
class POSSTOCK(Aggregate):
    """ OFX section 13.9.2.6.1 """
    invpos = SubAggregate(INVPOS, required=True)
    unitsstreet = Decimal()
    unitsuser = Decimal()
    reinvdiv = Bool()
コード例 #23
0
class RECINTRACANRS(Aggregate):
    """ OFX section 11.10.3.2 """

    recsrvrtid = String(10, required=True)
    canpending = Bool(required=True)
コード例 #24
0
class INCPOS(Aggregate):
    """ OFX section 13.9.1.2 """

    dtasof = DateTime()
    include = Bool(required=True)
コード例 #25
0
ファイル: investment.py プロジェクト: scottbdr/ofxtools
class OOBUYDEBT(Aggregate):
    """ OFX section 13.9.2.5.2 """
    oo = SubAggregate(OO, required=True)
    auction = Bool(required=True)
    dtauction = DateTime()
コード例 #26
0
class MAILSYNCRQ(SyncRqList):
    """ OFX section 9.2.4 """

    incimages = Bool(required=True)
    usehtml = Bool(required=True)
    mailtrnrq = ListItem(MAILTRNRQ)
コード例 #27
0
class SECLISTMSGSETV1(Aggregate):
    """ OFX section 13.7.2.1 """

    msgsetcore = SubAggregate(MSGSETCORE, required=True)
    seclistrqdnld = Bool(required=True)
コード例 #28
0
ファイル: investment.py プロジェクト: scottbdr/ofxtools
class OOSELLMF(Aggregate):
    """ OFX section 13.9.2.5.2 """
    oo = SubAggregate(OO, required=True)
    selltype = OneOf(*SELLTYPES, required=True)
    unittype = OneOf(*UNITTYPES, required=True)
    sellall = Bool(required=True)
コード例 #29
0
ファイル: stmt.py プロジェクト: yetaai/batchaccounting
class INCTRAN(Aggregate):
    """ OFX section 11.4.2.1 """

    dtstart = DateTime()
    dtend = DateTime()
    include = Bool(required=True)
コード例 #30
0
ファイル: investment.py プロジェクト: scottbdr/ofxtools
class SWITCHMF(Aggregate):
    """ OFX section 13.9.2.5.2 """
    oo = SubAggregate(OO, required=True)
    secid = SubAggregate(SECID, required=True)
    unittype = OneOf(*UNITTYPES, required=True)
    switchall = Bool(required=True)