哈利法克斯共享交易,IWEB共享交易,蘇格蘭銀行股份交易和勞埃德銀行直接投資服務的非官方SDK
刮擦互聯網銀行業務,因此可能會因其前端的更新而破壞
import halifaxShareDealingSdk from 'halifax-share-dealing-sdk'
// Alternatively:
// const halifaxShareDealingSdk = require('halifax-share-dealing-sdk').default
const sd = halifaxShareDealingSdk ( {
site : 'halifax' , // one of 'halifax', 'iweb', 'bos', 'lloyds'
USERNAME : 'username' ,
PASSWORD : 'password' ,
MEMORABLE_INFORMATION : {
"Your mother's FIRST name" : 'Jane' ,
"Your father's FIRST name" : 'John' ,
'Your place/town of birth' : 'Anytown' ,
'The name of your first school' : 'Anyschool'
}
} )
這是在撥打任何其他電話之前需要的
返回帶有默認帳戶的帳戶對象
sd . login ( )
. then ( console . dir )
// { accountId: '000123456ABCD' }
列出所有帳戶
返回帶有帳戶名稱和余額的帳戶對像數組
sd . login ( )
. then ( sd . getAccounts )
. then ( console . dir )
// [ { accountId: '000123456',
// name: 'Share Dealing Account',
// availableToInvest: { asFloat: 1.23, asText: '£1.23', asRawText: '£1.23' },
// totalSecurities: { asFloat: 4.56, asText: '£4.56', asRawText: '£4.56' },
// totalValue: { asFloat: 5.79, asText: '£5.79', asRawText: '£5.79' } },
// { accountId: '000123456ABCD',
// name: 'Stocks and Shares ISA',
// availableToInvest: { asFloat: 1.23, asText: '£1.23', asRawText: '£1.23' },
// totalSecurities: { asFloat: 4.56, asText: '£4.56', asRawText: '£4.56' },
// totalValue: { asFloat: 5.79, asText: '£5.79', asRawText: '£5.79' } } ]
從“集合默認帳戶”頁面獲取默認帳戶的帳戶。
返回帶有默認帳戶的帳戶對象
sd . login ( )
. then ( sd . getDefaultAccount )
. then ( console . dir )
// { accountId: '000123456ABCD' }
設置默認帳戶
需要您要設置為默認的帳戶的帳戶對象
返回帶有新默認帳戶的帳戶對象
sd . login ( )
. then ( ( ) => sd . setDefaultAccount ( { accountId : '000123456' } ) )
. then ( console . dir )
// { accountId: '000123456' }
sd . login ( )
. then ( sd . getAccounts )
. then ( accounts => accounts . find ( account => account . name == 'Share Dealing Account' ) )
. then ( sd . setDefaultAccount )
. then ( console . dir )
// { accountId: '000123456' }
返回所有帳戶的股息選項
返回帶有股息選項數據的帳戶對像數組
sd . login ( )
. then ( sd . getDividendOptions )
. then ( console . dir )
// [ { accountId: '000123456',
// dividendOptionCode: 'H',
// dividendOptionName: 'Hold In Account' },
// { accountId: '000123456ABCD',
// dividendOptionCode: 'R',
// dividendOptionName: 'Automatic Dividend Reinvestment' } ]
為所有帳戶設置股息選項
需要具有dividendOptionCode
s的帳戶對像數組。僅需要您要更改的帳戶的數據。 dividendOptionName
s是可選的,但是如果提供,如果dividendOptionCode
s和dividendOptionName
s不匹配,請求將失敗。 accountId
S在輸入數組中必須是唯一的。
返回具有更新的股息選項數據的帳戶對像數組
sd . login ( )
. then ( ( ) => [
{
accountId : '000123456ABCD' ,
dividendOptionCode : 'P6'
}
] )
. then ( sd . setDividendOptions )
. then ( console . dir )
// [ { accountId: '000123456',
// dividendOptionCode: 'H',
// dividendOptionName: 'Hold In Account' },
// { accountId: '000123456ABCD',
// dividendOptionCode: 'P6',
// dividendOptionName: 'Pay Away 6-Monthly' } ]
獲取所有語句
返回一系列語句
sd . login ( )
. then ( sd . getStatements )
. then ( console . dir )
// [ { statementId: '1', statementDate: '01 Jan 1970' } ]
獲得帳戶的估值
需要一個您希望獲得估值的帳戶的帳戶對象
返回帶有估值數據的帳戶對象
sd . login ( )
. then ( sd . getValuation )
. then ( console . dir )
// { accountId: '000123456ABCD',
// stocks:
// [ { TIDM: 'LLOY',
// fullName: 'LLOYDS BANKING GP ORD GBP0.1',
// holding: { asFloat: 100, asText: '100.000', asRawText: '100.000' },
// avgCostPerShare: { asFloat: 0.495, asText: '49.50p', asRawText: '49.50p' },
// bookCost: { asFloat: 49.5, asText: '£49.50', asRawText: '£49.50' },
// latestPricePerShare: { asFloat: 0.555, asText: '55.50p', asRawText: '*55.50p' },
// valuation: { asFloat: 55.5, asText: '£55.50', asRawText: '£55.50' },
// change:
// { absolute: { asFloat: 6, asText: '£6.00', asRawText: '£6.00' },
// percentage: { asFloat: 0.1212, asText: '12.12%', asRawText: '12.12%' } } } ],
// cash: { asFloat: 1000, asText: '£1000.00', asRawText: '£ 1,000.00' },
// availableToInvest: { asFloat: 1000, asText: '£1000.00', asRawText: '£ 1,000.00' },
// totalSecurities: { asFloat: 55.5, asText: '£55.50', asRawText: '£ 55.50' },
// totalValue: { asFloat: 1055.5, asText: '£1055.50' } }
獲得帳戶的股息歷史
需要一個您希望獲得股息歷史記錄的帳戶的帳戶對象
返回與帳戶有關的一系列歷史股息
sd . login ( )
. then ( sd . getDividendHistory )
. then ( console . dir )
// [ { issueDate: '09 Oct 2019',
// fullName: 'VANGUARD FUNDS PLC FTSE 250 UCITS ETF GBP DIS',
// exDividendDate: '26 Sep 2019',
// sharesHeldOnExDividendDate: { asFloat: 1, asText: '1', asRawText: '1' },
// amountPayable: { asFloat: 0.26, asText: '£0.26', asRawText: '£0.26' },
// handlingOperation:
// { dividendOptionCode: 'Hold In Account',
// dividendOptionName: 'H' },
// cashRef: 'ABCDXYZ123' } ]
accountId
:相當於我認為Halifax稱之為PortCode
內容。通常,此後可能會帶有一些字母的帳戶代碼。具有不同accountId
帳戶可能會共享相同的帳戶代碼。我認為這些都是在跨登錄中獨一無二的。statementId
:語句ID,我認為這是一個從1
開始的增量數字 - 跨登錄不是唯一的。語句連接到登錄名(與帳戶相對),而statementId
s在登錄內是唯一的。accounty object
:具有accountId
屬性的對象拉力請求在Github上受到歡迎!開始:
npm install
安裝依賴項npm run test
以與Jest運行測試npm run build
構建一個有用的預加壓掛鉤(另存為.git/hooks/pre-commit
),以確保測試通過,正確格式化了代碼,並且您沒有意外將您的個人詳細信息留在IS中(將000123456更改為帳戶代碼或其他您要搜索的個人數據):
#! /bin/sh
npm run test && npm run lint && ! grep --exclude=pre-commit -r ' 000123456 ' .
警告:如果您分階段就可以提交您的數據,將其刪除然後提交。請小心!
版本遵循語義版本管理規範。
發布:
npm version <major | minor | patch>
顛簸版本git push --follow-tags