@accounter/modern-poalim-scraper
Version:
Modern scraper for Israeli banks (Hapoalim, Isracard, Max)
130 lines (129 loc) • 5.16 kB
TypeScript
import type { Page } from 'puppeteer';
import { type HapoalimAccountData } from '../zod-schemas/hapoalim-account-data-schema.js';
import { type HapoalimDeposits } from '../zod-schemas/hapoalim-deposits-schema.js';
import { type HapoalimForeignDeposits } from '../zod-schemas/hapoalim-foreign-deposits-schema.js';
import { type HapoalimForeignTransactionsBusiness } from '../zod-schemas/hapoalim-foreign-transactions-business-schema.js';
import { type HapoalimForeignTransactionsPersonal } from '../zod-schemas/hapoalim-foreign-transactions-personal-schema.js';
import { type HapoalimILSTransactions } from '../zod-schemas/hapoalim-ils-checking-transactions-schema.js';
import { type HapoalimSecuritiesInfo } from '../zod-schemas/hapoalim-securities-info-schema.js';
import { type HapoalimSecuritiesTransactions } from '../zod-schemas/hapoalim-securities-transactions-schema.js';
import { type SwiftTransaction } from '../zod-schemas/swift-transaction-schema.js';
import { type SwiftTransactions } from '../zod-schemas/swift-transactions-schema.js';
export declare function hapoalim(page: Page, credentials: HapoalimCredentials, options?: HapoalimOptions): Promise<"Unknown Error" | {
getAccountsData: () => Promise<{
data: HapoalimAccountData | null;
isValid: boolean | null;
errors?: unknown;
}>;
getILSTransactions: (account: {
bankNumber: number;
branchNumber: number;
accountNumber: number;
}) => Promise<{
data: HapoalimILSTransactions | null;
isValid: boolean | null;
errors?: unknown;
}>;
getForeignTransactions: <T extends boolean>(account: {
bankNumber: number;
branchNumber: number;
accountNumber: number;
}, isBusiness?: T) => Promise<{
data: HapoalimForeignTransactionsBusiness | HapoalimForeignTransactionsPersonal | null;
isValid: boolean | null;
errors?: unknown;
}>;
getForeignSwiftTransactions: (account: {
bankNumber: number;
branchNumber: number;
accountNumber: number;
}) => Promise<{
data: SwiftTransactions | null;
isValid: boolean | null;
errors?: unknown;
}>;
getForeignSwiftTransaction: (account: {
bankNumber: number;
branchNumber: number;
accountNumber: number;
}, transferCatenatedId: string, dataOriginCode: number) => Promise<{
data: SwiftTransaction | null;
isValid: boolean | null;
errors?: unknown;
}>;
getDeposits: (account: {
bankNumber: number;
branchNumber: number;
accountNumber: number;
}) => Promise<{
data: HapoalimDeposits | null;
isValid: boolean | null;
errors?: unknown;
}>;
getForeignDeposits: (account: {
bankNumber: number;
branchNumber: number;
accountNumber: number;
}) => Promise<{
data: HapoalimForeignDeposits | null;
isValid: boolean | null;
errors?: unknown;
}>;
/**
* Static securities reference info from the "mytrade" portfolio app.
* Live balances and open orders in the same response are ignored.
*
* For the activity inside the portfolio see `getSecuritiesTransactions`.
*
* Unlike every other Poalim endpoint this one addresses the account as
* `branch-account` (no bank number), and is only served to callers running
* on the mytrade SPA's own page — so the request is issued from a
* short-lived sibling tab sharing the logged-in browser context.
*/
getSecuritiesInfo: (account: {
bankNumber: number;
branchNumber: number;
accountNumber: number;
}) => Promise<{
data: HapoalimSecuritiesInfo | null;
isValid: boolean | null;
errors?: unknown;
}>;
/**
* Executed activity inside the securities portfolio — buys, sells, dividend
* and interest payments, redemptions and other corporate actions — from the
* "mytrade" order executions history.
*
* Complements `getSecuritiesInfo`, which returns the static reference info
* for the same portfolio. Same account addressing and same sibling-tab
* mechanics; this endpoint is a GET and takes a ddMMyyyy date range, which
* defaults to the scraper's configured `duration` window.
*/
getSecuritiesTransactions: (account: {
bankNumber: number;
branchNumber: number;
accountNumber: number;
}, range?: {
fromDate: Date;
toDate: Date;
}) => Promise<{
data: HapoalimSecuritiesTransactions | null;
isValid: boolean | null;
errors?: unknown;
}>;
}>;
export declare class HapoalimOptions {
validateSchema?: boolean;
isBusiness?: boolean;
duration?: number;
getTransactionsDetails?: boolean;
otpCallback?: () => Promise<string>;
}
declare class HapoalimPersonalCredentials {
userCode: string;
password: string;
}
declare class HapoalimBusinessCredentials extends HapoalimPersonalCredentials {
}
export type HapoalimCredentials = HapoalimPersonalCredentials | HapoalimBusinessCredentials;
export {};