DtTradeDate`xml:"DTTRADE"`// trade date; for stock splits, day of record
DtSettleDate`xml:"DTSETTLE,omitempty"`// settlement date; for stock splits, execution date
ReversalFiTIdString`xml:"REVERSALFITID,omitempty"`// For a reversal transaction, the FITID of the transaction that is being reversed.
MemoString`xml:"MEMO,omitempty"`
}
typeInvBuystruct{
XMLNamexml.Name`xml:"INVBUY"`
InvTranInvTran`xml:"INVTRAN"`
SecIdSecurityId`xml:"SECID"`
UnitsAmount`xml:"UNITS"`// For stocks, MFs, other, number of shares held. Bonds = face value. Options = number of contracts
UnitPriceAmount`xml:"UNITPRICE"`// For stocks, MFs, other, price per share. Bonds = percentage of par. Option = premium per share of underlying security
MarkupAmount`xml:"MARKUP,omitempty"`// Portion of UNITPRICE that is attributed to the dealer markup
CurrencyCurrency`xml:"CURRENCY,omitempty"`// Overriding currency for UNITPRICE
OrigCurrencyCurrency`xml:"ORIGCURRENCY,omitempty"`// Overriding currency for UNITPRICE
SubAcctSecString`xml:"SUBACCTSEC"`// Sub-account type for this security. One of CASH, MARGIN, SHORT, OTHER
SubAcctFundString`xml:"SUBACCTFUND"`// Where did the money for the transaction come from or go to? CASH, MARGIN, SHORT, OTHER
// The next three elements must either all be provided, or none of htem
LoanIdString`xml:"LOANID,omitempty"`// For 401(k) accounts only. Indicates that the transaction was due to a loan or a loan repayment, and which loan it was
LoanPrincipalAmount`xml:"LOANPRINCIPAL,omitempty"`// For 401(k) accounts only. Indicates how much of the loan repayment was principal
LoanInterestAmount`xml:"LOANINTEREST,omitempty"`// For 401(k) accounts only. Indicates how much of the loan repayment was interest
Inv401kSourceString`xml:"INV401KSOURCE,omitempty"`// Source of money for this transaction. One of PRETAX, AFTERTAX, MATCH, PROFITSHARING, ROLLOVER, OTHERVEST, OTHERNONVEST for 401(k) accounts. Default if not present is OTHERNONVEST. The following cash source types are subject to vesting: MATCH, PROFITSHARING, and OTHERVEST
DtPayrollDate`xml:"DTPAYROLL,omitempty"`// For 401(k)accounts, date the funds for this transaction was obtained via payroll deduction
PriorYearContribBoolean`xml:"PRIORYEARCONTRIB,omitempty"`// For 401(k) accounts, indicates that this Buy was made with a prior year contribution
}
typeInvSellstruct{
XMLNamexml.Name`xml:"INVSELL"`
InvTranInvTran`xml:"INVTRAN"`
SecIdSecurityId`xml:"SECID"`
UnitsAmount`xml:"UNITS"`// For stocks, MFs, other, number of shares held. Bonds = face value. Options = number of contracts
UnitPriceAmount`xml:"UNITPRICE"`// For stocks, MFs, other, price per share. Bonds = percentage of par. Option = premium per share of underlying security
MarkdownAmount`xml:"MARKDOWN,omitempty"`// Portion of UNITPRICE that is attributed to the dealer markdown
CommissionAmount`xml:"COMMISSION,omitempty"`
TaxesAmount`xml:"TAXES,omitempty"`
FeesAmount`xml:"FEES,omitempty"`
LoadAmount`xml:"LOAD,omitempty"`
WitholdingAmount`xml:"WITHHOLDING,omitempty"`// Federal tax witholdings
CurrencyCurrency`xml:"CURRENCY,omitempty"`// Overriding currency for UNITPRICE
OrigCurrencyCurrency`xml:"ORIGCURRENCY,omitempty"`// Overriding currency for UNITPRICE
SubAcctSecString`xml:"SUBACCTSEC"`// Sub-account type for this security. One of CASH, MARGIN, SHORT, OTHER
SubAcctFundString`xml:"SUBACCTFUND"`// Where did the money for the transaction come from or go to? CASH, MARGIN, SHORT, OTHER
LoanIdString`xml:"LOANID,omitempty"`// For 401(k) accounts only. Indicates that the transaction was due to a loan or a loan repayment, and which loan it was
StateWitholdingAmount`xml:"STATEWITHHOLDING,omitempty"`// State tax witholdings
PenaltyAmount`xml:"PENALTY,omitempty"`// Amount witheld due to penalty
Inv401kSourceString`xml:"INV401KSOURCE,omitempty"`// Source of money for this transaction. One of PRETAX, AFTERTAX, MATCH, PROFITSHARING, ROLLOVER, OTHERVEST, OTHERNONVEST for 401(k) accounts. Default if not present is OTHERNONVEST. The following cash source types are subject to vesting: MATCH, PROFITSHARING, and OTHERVEST
}
typeBuyDebtstruct{
XMLNamexml.Name`xml:"BUYDEBT"`
InvBuyInvBuy`xml:"INVBUY"`
AccrdIntAmount`xml:"ACCRDINT,omitempty"`// Accrued interest. This amount is not reflected in the <TOTAL> field of a containing aggregate.
}
func(tBuyDebt)TransactionType()string{
return"BUYDEBT"
}
typeBuyMFstruct{
XMLNamexml.Name`xml:"BUYMF"`
InvBuyInvBuy`xml:"INVBUY"`
BuyTypeString`xml:"BUYTYPE"`// One of BUY, BUYTOCOVER (BUYTOCOVER used to close short sales.)
RelFiTIdString`xml:"RELFITID,omitempty"`// used to relate transactions associated with mutual fund exchanges
}
func(tBuyMF)TransactionType()string{
return"BUYMF"
}
typeBuyOptstruct{
XMLNamexml.Name`xml:"BUYOPT"`
InvBuyInvBuy`xml:"INVBUY"`
OptBuyTypeString`xml:"OPTBUYTYPE"`// type of purchase: BUYTOOPEN, BUYTOCLOSE (The BUYTOOPEN buy type is like “ordinary” buying of option and works like stocks.)
ShPerCtrctInt`xml:"SHPERCTRCT"`// Shares per contract
}
func(tBuyOpt)TransactionType()string{
return"BUYOPT"
}
typeBuyOtherstruct{
XMLNamexml.Name`xml:"BUYOTHER"`
InvBuyInvBuy`xml:"INVBUY"`
}
func(tBuyOther)TransactionType()string{
return"BUYOTHER"
}
typeBuyStockstruct{
XMLNamexml.Name`xml:"BUYSTOCK"`
InvBuyInvBuy`xml:"INVBUY"`
BuyTypeString`xml:"BUYTYPE"`// One of BUY, BUYTOCOVER (BUYTOCOVER used to close short sales.)
}
func(tBuyStock)TransactionType()string{
return"BUYSTOCK"
}
typeClosureOptstruct{
XMLNamexml.Name`xml:"CLOSUREOPT"`
InvTranInvTran`xml:"INVTRAN"`
SecIdSecurityId`xml:"SECID"`
OptActionString`xml:"OPTACTION"`// One of EXERCISE, ASSIGN, EXPIRE. The EXERCISE action is used to close out an option that is exercised. The ASSIGN action is used when an option writer is assigned. The EXPIRE action is used when the option’s expired date is reached
UnitsAmount`xml:"UNITS"`// For stocks, MFs, other, number of shares held. Bonds = face value. Options = number of contracts
ShPerCtrctInt`xml:"SHPERCTRCT"`// Shares per contract
SubAcctSecString`xml:"SUBACCTSEC"`// Sub-account type for this security. One of CASH, MARGIN, SHORT, OTHER
RelFiTIdString`xml:"RELFITID,omitempty"`// used to relate transactions associated with mutual fund exchanges
GainAmount`xml:"GAIN,omitempty"`// Total gain
}
func(tClosureOpt)TransactionType()string{
return"CLOSUREOPT"
}
// Investment income is realized as cash into the investment account
typeIncomestruct{
XMLNamexml.Name`xml:"INCOME"`
InvTranInvTran`xml:"INVTRAN"`
SecIdSecurityId`xml:"SECID"`
IncomeTypeString`xml:"INCOMETYPE"`// Type of investment income: CGLONG (capital gains-long term), CGSHORT (capital gains-short term), DIV (dividend), INTEREST, MISC
TotalAmount`xml:"TOTAL"`
SubAcctSecString`xml:"SUBACCTSEC"`// Sub-account type for this security. One of CASH, MARGIN, SHORT, OTHER
SubAcctFundString`xml:"SUBACCTFUND"`// Where did the money for the transaction come from or go to? CASH, MARGIN, SHORT, OTHER
WitholdingAmount`xml:"WITHHOLDING,omitempty"`// Federal tax witholdings
CurrencyCurrency`xml:"CURRENCY,omitempty"`// Overriding currency for UNITPRICE
OrigCurrencyCurrency`xml:"ORIGCURRENCY,omitempty"`// Overriding currency for UNITPRICE
Inv401kSourceString`xml:"INV401KSOURCE,omitempty"`// Source of money for this transaction. One of PRETAX, AFTERTAX, MATCH, PROFITSHARING, ROLLOVER, OTHERVEST, OTHERNONVEST for 401(k) accounts. Default if not present is OTHERNONVEST. The following cash source types are subject to vesting: MATCH, PROFITSHARING, and OTHERVEST
}
func(tIncome)TransactionType()string{
return"INCOME"
}
// Expense associated with an investment
typeInvExpensestruct{
XMLNamexml.Name`xml:"INVEXPENSE"`
InvTranInvTran`xml:"INVTRAN"`
SecIdSecurityId`xml:"SECID"`
TotalAmount`xml:"TOTAL"`
SubAcctSecString`xml:"SUBACCTSEC"`// Sub-account type for this security. One of CASH, MARGIN, SHORT, OTHER
SubAcctFundString`xml:"SUBACCTFUND"`// Where did the money for the transaction come from or go to? CASH, MARGIN, SHORT, OTHER
CurrencyCurrency`xml:"CURRENCY,omitempty"`// Overriding currency for UNITPRICE
OrigCurrencyCurrency`xml:"ORIGCURRENCY,omitempty"`// Overriding currency for UNITPRICE
Inv401kSourceString`xml:"INV401KSOURCE,omitempty"`// Source of money for this transaction. One of PRETAX, AFTERTAX, MATCH, PROFITSHARING, ROLLOVER, OTHERVEST, OTHERNONVEST for 401(k) accounts. Default if not present is OTHERNONVEST. The following cash source types are subject to vesting: MATCH, PROFITSHARING, and OTHERVEST
}
func(tInvExpense)TransactionType()string{
return"INVEXPENSE"
}
// Journaling cash holdings between sub-accounts within the same investment account.
typeJrnlFundstruct{
XMLNamexml.Name`xml:"JRNLFUND"`
InvTranInvTran`xml:"INVTRAN"`
TotalAmount`xml:"TOTAL"`
SubAcctFromString`xml:"SUBACCTFROM"`// Sub-account cash is being transferred from: CASH, MARGIN, SHORT, OTHER
SubAcctToString`xml:"SUBACCTTO"`// Sub-account cash is being transferred to: CASH, MARGIN, SHORT, OTHER
}
func(tJrnlFund)TransactionType()string{
return"JRNLFUND"
}
// Journaling security holdings between sub-accounts within the same investment account.
typeJrnlSecstruct{
XMLNamexml.Name`xml:"JRNLSEC"`
InvTranInvTran`xml:"INVTRAN"`
SecIdSecurityId`xml:"SECID"`
SubAcctFromString`xml:"SUBACCTFROM"`// Sub-account cash is being transferred from: CASH, MARGIN, SHORT, OTHER
SubAcctToString`xml:"SUBACCTTO"`// Sub-account cash is being transferred to: CASH, MARGIN, SHORT, OTHER
UnitsAmount`xml:"UNITS"`// For stocks, MFs, other, number of shares held. Bonds = face value. Options = number of contracts
}
func(tJrnlSec)TransactionType()string{
return"JRNLSEC"
}
typeMarginIntereststruct{
XMLNamexml.Name`xml:"MARGININTEREST"`
InvTranInvTran`xml:"INVTRAN"`
TotalAmount`xml:"TOTAL"`
SubAcctFundString`xml:"SUBACCTFUND"`// Where did the money for the transaction come from or go to? CASH, MARGIN, SHORT, OTHER
CurrencyCurrency`xml:"CURRENCY,omitempty"`// Overriding currency for UNITPRICE
OrigCurrencyCurrency`xml:"ORIGCURRENCY,omitempty"`// Overriding currency for UNITPRICE
}
func(tMarginInterest)TransactionType()string{
return"MARGININTEREST"
}
// REINVEST is a single transaction that contains both income and an investment transaction. If servers can’t track this as a single transaction they should return an INCOME transaction and an INVTRAN.
typeReinveststruct{
XMLNamexml.Name`xml:"REINVEST"`
InvTranInvTran`xml:"INVTRAN"`
SecIdSecurityId`xml:"SECID"`
IncomeTypeString`xml:"INCOMETYPE"`// Type of investment income: CGLONG (capital gains-long term), CGSHORT (capital gains-short term), DIV (dividend), INTEREST, MISC
SubAcctSecString`xml:"SUBACCTSEC"`// Sub-account type for this security. One of CASH, MARGIN, SHORT, OTHER
UnitsAmount`xml:"UNITS"`// For stocks, MFs, other, number of shares held. Bonds = face value. Options = number of contracts
UnitPriceAmount`xml:"UNITPRICE"`// For stocks, MFs, other, price per share. Bonds = percentage of par. Option = premium per share of underlying security
CurrencyCurrency`xml:"CURRENCY,omitempty"`// Overriding currency for UNITPRICE
OrigCurrencyCurrency`xml:"ORIGCURRENCY,omitempty"`// Overriding currency for UNITPRICE
Inv401kSourceString`xml:"INV401KSOURCE,omitempty"`// Source of money for this transaction. One of PRETAX, AFTERTAX, MATCH, PROFITSHARING, ROLLOVER, OTHERVEST, OTHERNONVEST for 401(k) accounts. Default if not present is OTHERNONVEST. The following cash source types are subject to vesting: MATCH, PROFITSHARING, and OTHERVEST
}
func(tReinvest)TransactionType()string{
return"REINVEST"
}
typeRetOfCapstruct{
XMLNamexml.Name`xml:"RETOFCAP"`
InvTranInvTran`xml:"INVTRAN"`
SecIdSecurityId`xml:"SECID"`
TotalAmount`xml:"TOTAL"`
SubAcctSecString`xml:"SUBACCTSEC"`// Sub-account type for this security. One of CASH, MARGIN, SHORT, OTHER
SubAcctFundString`xml:"SUBACCTFUND"`// Where did the money for the transaction come from or go to? CASH, MARGIN, SHORT, OTHER
CurrencyCurrency`xml:"CURRENCY,omitempty"`// Overriding currency for UNITPRICE
OrigCurrencyCurrency`xml:"ORIGCURRENCY,omitempty"`// Overriding currency for UNITPRICE
Inv401kSourceString`xml:"INV401KSOURCE,omitempty"`// Source of money for this transaction. One of PRETAX, AFTERTAX, MATCH, PROFITSHARING, ROLLOVER, OTHERVEST, OTHERNONVEST for 401(k) accounts. Default if not present is OTHERNONVEST. The following cash source types are subject to vesting: MATCH, PROFITSHARING, and OTHERVEST
}
func(tRetOfCap)TransactionType()string{
return"RETOFCAP"
}
typeSellDebtstruct{
XMLNamexml.Name`xml:"SELLDEBT"`
InvSellInvSell`xml:"INVSELL"`
SellReasonString`xml:"SELLREASON"`// CALL (the debt was called), SELL (the debt was sold), MATURITY (the debt reached maturity)
SellTypeString`xml:"SELLTYPE"`// Type of sell. SELL, SELLSHORT
AvgCostBasisAmount`xml:"AVGCOSTBASIS"`
RelFiTIdString`xml:"RELFITID,omitempty"`// used to relate transactions associated with mutual fund exchanges
}
func(tSellMF)TransactionType()string{
return"SELLMF"
}
typeSellOptstruct{
XMLNamexml.Name`xml:"SELLOPT"`
InvSellInvSell`xml:"INVSELL"`
OptSellTypeString`xml:"OPTSELLTYPE"`// For options, type of sell: SELLTOCLOSE, SELLTOOPEN. The SELLTOCLOSE action is selling a previously bought option. The SELLTOOPEN action is writing an option
ShPerCtrctInt`xml:"SHPERCTRCT"`// Shares per contract
RelFiTIdString`xml:"RELFITID,omitempty"`// used to relate transactions associated with mutual fund exchanges
RelTypeString`xml:"RELTYPE,omitempty"`// Related option transaction type: SPREAD, STRADDLE, NONE, OTHER
SellTypeString`xml:"SELLTYPE"`// Type of sell. SELL, SELLSHORT
}
func(tSellStock)TransactionType()string{
return"SELLSTOCK"
}
typeSplitstruct{
XMLNamexml.Name`xml:"SPLIT"`
InvTranInvTran`xml:"INVTRAN"`
SecIdSecurityId`xml:"SECID"`
SubAcctSecString`xml:"SUBACCTSEC"`// Sub-account type for this security. One of CASH, MARGIN, SHORT, OTHER
OldUnitsAmount`xml:"OLDUNITS"`// number of shares before the split
NewUnitsAmount`xml:"NEWUNITS"`// number of shares after the split
NumeratorInt`xml:"NUMERATOR"`// split ratio numerator
DenominatorInt`xml:"DENOMINATOR"`// split ratio denominator
CurrencyCurrency`xml:"CURRENCY,omitempty"`// Overriding currency for UNITPRICE
OrigCurrencyCurrency`xml:"ORIGCURRENCY,omitempty"`// Overriding currency for UNITPRICE
FracCashAmount`xml:"FRACCASH,omitempty"`// cash for fractional units
SubAcctFundString`xml:"SUBACCTFUND,omitempty"`// Where did the money for the transaction come from or go to? CASH, MARGIN, SHORT, OTHER
Inv401kSourceString`xml:"INV401KSOURCE,omitempty"`// Source of money for this transaction. One of PRETAX, AFTERTAX, MATCH, PROFITSHARING, ROLLOVER, OTHERVEST, OTHERNONVEST for 401(k) accounts. Default if not present is OTHERNONVEST. The following cash source types are subject to vesting: MATCH, PROFITSHARING, and OTHERVEST
}
func(tSplit)TransactionType()string{
return"SPLIT"
}
typeTransferstruct{
XMLNamexml.Name`xml:"TRANSFER"`
InvTranInvTran`xml:"INVTRAN"`
SecIdSecurityId`xml:"SECID"`
SubAcctSecString`xml:"SUBACCTSEC"`// Sub-account type for this security. One of CASH, MARGIN, SHORT, OTHER
UnitsAmount`xml:"UNITS"`// For stocks, MFs, other, number of shares held. Bonds = face value. Options = number of contracts
TferActionString`xml:"TFERACTION"`// One of IN, OUT
PosTypeString`xml:"POSTYPE"`// Position type. One of LONG, SHORT
InvAcctFromInvAcct`xml:"INVACCTFROM,omitempty"`
AvgCostBasisAmount`xml:"AVGCOSTBASIS,omitempty"`
UnitPriceAmount`xml:"UNITPRICE,omitempty"`// For stocks, MFs, other, price per share. Bonds = percentage of par. Option = premium per share of underlying security
DtPurchaseDate`xml:"DTPURCHASE,omitempty"`
Inv401kSourceString`xml:"INV401KSOURCE,omitempty"`// Source of money for this transaction. One of PRETAX, AFTERTAX, MATCH, PROFITSHARING, ROLLOVER, OTHERVEST, OTHERNONVEST for 401(k) accounts. Default if not present is OTHERNONVEST. The following cash source types are subject to vesting: MATCH, PROFITSHARING, and OTHERVEST
HeldInAcctString`xml:"HELDINACCT"`// Sub-account type, one of CASH, MARGIN, SHORT, OTHER
PosTypeString`xml:"POSTYPE"`// SHORT = Writer for options, Short for all others; LONG = Holder for options, Long for all others.
UnitsAmount`xml:"UNITS"`// For stocks, MFs, other, number of shares held. Bonds = face value. Options = number of contracts
UnitPriceAmount`xml:"UNITPRICE"`// For stocks, MFs, other, price per share. Bonds = percentage of par. Option = premium per share of underlying security
MktValAmount`xml:"MKTVAL"`// Market value of this position
DtPriceAsOfDate`xml:"DTPRICEASOF"`// Date and time of unit price and market value, and cost basis. If this date is unknown, use 19900101 as the placeholder; do not use 0,
CurrencyCurrency`xml:"CURRENCY,omitempty"`// Overriding currency for UNITPRICE
MemoString`xml:"MEMO,omitempty"`
Inv401kSourceString`xml:"INV401KSOURCE,omitempty"`// One of PRETAX, AFTERTAX, MATCH, PROFITSHARING, ROLLOVER, OTHERVEST, OTHERNONVEST for 401(k) accounts. Default if not present is OTHERNONVEST. The following cash source types are subject to vesting: MATCH, PROFITSHARING, and OTHERVEST
}
typePositioninterface{
PositionType()string
}
typeDebtPositionstruct{
XMLNamexml.Name`xml:"POSDEBT"`
InvPosInvPosition`xml:"INVPOS"`
}
func(pDebtPosition)PositionType()string{
return"POSDEBT"
}
typeMFPositionstruct{
XMLNamexml.Name`xml:"POSMF"`
InvPosInvPosition`xml:"INVPOS"`
UnitsStreetAmount`xml:"UNITSSTREET,omitempty"`// Units in the FI’s street name
UnitsUserAmount`xml:"UNITSUSER,omitempty"`// Units in the user's name directly