@yash101/schwab-api-client
Version:
A TypeScript client library for interacting with the Charles Schwab Brokerage APIs.
157 lines • 5.29 kB
TypeScript
import { EncryptedAccountNumber, UserDetails } from "./accounts.types";
import { DateAndTime, ErrorMessageAndErrors } from "./api.types";
import { AssetType, CashEquivalentTypeEnum, CollectiveInvestmentTypeEnum, FixedIncomeTypeEnum, ForexTypeEnum, FutureTypeEnum, IndexTypeEnum, MutualFundTypeEnum, OptionTypeEnum, ProductTypeEnum, PutCallEnum, TransactionEquityTypeEnum } from "./asset.types";
import { FeeTypeEnum } from "./fee.types";
import { PositionEffectEnum } from "./orders.types";
export interface GetTransactionsForAccountRequest {
accountNumber: EncryptedAccountNumber;
startDate: Date;
endDate: Date;
types: TransactionTypeEnum[];
symbol?: string;
}
export type GetTransactionsForAccountResponse = Transaction[] | ErrorMessageAndErrors;
export interface GetTransactionForAccountByTransactionIdRequest {
accountNumber: EncryptedAccountNumber;
transactionId: number;
}
export type GetTransactionForAccountByTransactionIdResponse = Transaction | ErrorMessageAndErrors;
export declare enum TransactionTypeEnum {
TRADE = "TRADE",
RECEIVE_AND_DELIVER = "RECEIVE_AND_DELIVER",
DIVIDEND_OR_INTEREST = "DIVIDEND_OR_INTEREST",
ACH_RECEIPT = "ACH_RECEIPT",
ACH_DISBURSEMENT = "ACH_DISBURSEMENT",
CASH_RECEIPT = "CASH_RECEIPT",
CASH_DISBURSEMENT = "CASH_DISBURSEMENT",
ELECTRONIC_FUND = "ELECTRONIC_FUND",
WIRE_OUT = "WIRE_OUT",
WIRE_IN = "WIRE_IN",
JOURNAL = "JOURNAL",
MEMORANDUM = "MEMORANDUM",
MARGIN_CALL = "MARGIN_CALL",
MONEY_MARKET = "MONEY_MARKET",
SMA_ADJUSTMENT = "SMA_ADJUSTMENT"
}
export declare enum TransactionStatusEnum {
VALID = "VALID",
INVALID = "INVALID",
PENDING = "PENDING",
UNKNOWN = "UNKNOWN"
}
export declare enum SubAccountEnum {
CASH = "CASH",
MARGIN = "MARGIN",
SHORT = "SHORT",
DIV = "DIV",
INCOME = "INCOME",
UNKNOWN = "UNKNOWN"
}
export declare enum TransactionActivityTypeEnum {
ACTIVITY_CORRECTION = "ACTIVITY_CORRECTION",
EXECUTION = "EXECUTION",
ORDER_ACTION = "ORDER_ACTION",
TRANSFER = "TRANSFER",
UNKNOWN = "UNKNOWN"
}
export interface Transaction {
activityId: number;
time: string;
user: UserDetails;
description: string;
accountNumber: string;
type: TransactionTypeEnum;
status: TransactionStatusEnum;
subAccount: SubAccountEnum;
tradeDate: string;
settlementDate: string;
positionId?: number;
orderId?: number;
netAmount: number;
activityType: TransactionActivityTypeEnum;
transferItems?: TransferItem[];
}
export interface TransferItem {
instrument: TransactionInstrument;
amount: number;
cost: number;
price: number;
feeType: FeeTypeEnum;
positionEffect: PositionEffectEnum;
}
export type TransactionInstrument = TransactionCashEquivalent | CollectiveInvestment | Currency | TransactionEquity | TransactionFixedIncome | Forex | Future | Index | TransactionMutualFund | TransactionOption | Product;
export interface TransactionBaseInstrument {
assetType: AssetType;
cusip: string;
symbol: string;
description: string;
instrumentId: number;
netChange: number;
}
export interface TransactionCashEquivalent extends TransactionBaseInstrument {
type: CashEquivalentTypeEnum;
}
export interface CollectiveInvestment extends TransactionBaseInstrument {
type: CollectiveInvestmentTypeEnum;
}
export interface Currency extends TransactionBaseInstrument {
}
export interface TransactionEquity extends TransactionBaseInstrument {
type: TransactionEquityTypeEnum;
}
export interface TransactionFixedIncome extends TransactionBaseInstrument {
type: FixedIncomeTypeEnum;
maturityDate: DateAndTime;
factor: number;
multiplier: number;
variableRate: number;
}
export interface Forex extends TransactionBaseInstrument {
type: ForexTypeEnum;
baseCurrency: Currency;
counterCurrency: Currency;
}
export interface Future extends TransactionBaseInstrument {
activeContract: boolean;
type: FutureTypeEnum;
expirationDate: string;
lastTradingDate: string;
firstNoticeDate: string;
multiplier: number;
}
export interface Index extends TransactionBaseInstrument {
activeContract: boolean;
type: IndexTypeEnum;
}
export interface TransactionMutualFund extends TransactionBaseInstrument {
fundFamilyName: string;
fundFamilySymbol: string;
fundGroup: string;
type: MutualFundTypeEnum;
exchangeCutoffTime: string;
purchaseCutoffTime: string;
redemptionCutoffTime: string;
}
export interface TransactionAPIOptionDeliverable {
rootSymbol: string;
strikePercent: number;
deliverableNumber: number;
deliverableUnits: number;
deliverable: TransactionInstrument;
assetType: AssetType;
}
export interface TransactionOption extends TransactionBaseInstrument {
expirationDate: string;
optionDeliverables: TransactionAPIOptionDeliverable[];
optionPremiumMultiplier: number;
putCall: PutCallEnum;
strikePrice: number;
type: OptionTypeEnum;
underlyingSymbol: string;
underlyingCusip: string;
deliverable: TransactionInstrument;
}
export interface Product extends TransactionBaseInstrument {
type: ProductTypeEnum;
}
//# sourceMappingURL=transactions.types.d.ts.map