@yash101/schwab-api-client
Version:
A TypeScript client library for interacting with the Charles Schwab Brokerage APIs.
115 lines • 3.68 kB
TypeScript
import { ErrorMessageAndErrors } from "./api.types";
import { AssetType, PutCallEnum } from "./asset.types";
import { CashInitialBalance, MarginBalance, MarginInitialBalance, CashBalance } from "./balances.types";
import { Position } from "./positions.types";
export interface GetAccountNumbersRequest {
}
export type GetAccountNumbersResponse = AccountNumberHash[] | ErrorMessageAndErrors;
export interface GetAccountsRequest {
fields?: string[];
}
export type GetAccountsResponse = Account[] | ErrorMessageAndErrors;
export interface GetSingleAccountRequest {
accountNumber: AccountNumberString;
fields?: string[];
}
export type GetSingleAccountResponse = Account | ErrorMessageAndErrors;
export type AccountNumberString = string;
export type EncryptedAccountNumber = string;
export declare enum AccountType {
CASH = "CASH",
MARGIN = "MARGIN"
}
export interface SecuritiesAccountBase {
type: AccountType;
accountNumber: AccountNumberString;
roundTrips: number;
isDayTrader: boolean;
isClosingOnlyRestricted: boolean;
pfcbFlag: boolean;
positions: Position[];
}
export interface AccountNumberHash {
accountNumber: AccountNumberString;
hashValue: string;
}
export interface MarginAccount extends SecuritiesAccountBase {
type: AccountType.MARGIN;
initialBalances: MarginInitialBalance;
currentBalances: MarginBalance;
projectedBalances: MarginBalance;
}
export interface CashAccount extends SecuritiesAccountBase {
type: AccountType.CASH;
initialBalances: CashInitialBalance;
currentBalances: CashBalance;
projectedBalances: CashBalance;
}
export type SecuritiesAccount = MarginAccount | CashAccount;
export interface Account {
securitiesAccount: SecuritiesAccount;
}
export interface AccountsBaseInstrument {
assetType: AssetType;
cusip: string;
symbol: string;
description: string;
instrumentId: number;
netChange: number;
}
export declare enum AccountCashEquivalentTypeEnum {
SWEEP_VEHICLE = "SWEEP_VEHICLE",
SAVINGS = "SAVINGS",
MONEY_MARKET_FUND = "MONEY_MARKET_FUND",
UNKNOWN = "UNKNOWN"
}
export declare enum AccountOptionTypeEnum {
VANILLA = "VANILLA",
BINARY = "BINARY",
BARRIER = "BARRIER",
UNKNOWN = "UNKNOWN"
}
export declare enum UserDetailsTypeEnum {
ADVISOR_USER = "ADVISOR_USER",
BROKER_USER = "BROKER_USER",
CLIENT_USER = "CLIENT_USER",
SYSTEM_USER = "SYSTEM_USER",
UNKNOWN = "UNKNOWN"
}
export interface AccountCashEquivalent extends AccountsBaseInstrument {
type: AccountCashEquivalentTypeEnum;
}
export interface AccountEquity extends AccountsBaseInstrument {
}
export interface AccountFixedIncome extends AccountsBaseInstrument {
maturityDate: string;
factor: number;
variableRate: number;
}
export interface AccountMutualFund extends AccountsBaseInstrument {
}
export interface AccountAPIOptionDeliverable {
symbol: string;
deliverableUnits: number;
apiCurrencyType: "USD" | "CAD" | "EUR" | "JPY";
assetType: AssetType;
}
export interface AccountOption extends AccountsBaseInstrument {
optionDeliverables: AccountAPIOptionDeliverable[];
putCall: PutCallEnum;
optionMultiplier: number;
type: AccountOptionTypeEnum;
underlyingSymbol: string;
}
export type AccountsInstrument = AccountCashEquivalent | AccountEquity | AccountFixedIncome | AccountMutualFund | AccountOption;
export interface UserDetails {
cdDomainId: string;
login: string;
type: UserDetailsTypeEnum;
userId: number;
systemUserName: string;
firstName: string;
lastName: string;
brokerRepCode: string;
}
//# sourceMappingURL=accounts.types.d.ts.map