핼리팩스 주식 거래, iWeb 주식 거래, 스코틀랜드 은행 주식 거래 및 Lloyds Bank Direct Investments Service를위한 비공식 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'
}
} )
다른 전화를하기 전에 필요합니다
기본 계정으로 Accounty Object를 반환합니다
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' } } ]
'기본 계정 설정'페이지에서 기본 계정에 대한 계정을 가져옵니다.
기본 계정으로 Accounty Object를 반환합니다
sd . login ( )
. then ( sd . getDefaultAccount )
. then ( console . dir )
// { accountId: '000123456ABCD' }
기본 계정을 설정합니다
기본값으로 설정하려는 계정에 대한 회계 개체가 필요합니다.
새 기본 계정으로 Accounty Object를 반환합니다
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
가있는 회계 개체가 필요합니다. 변경하려는 계정에 대한 데이터 만 필요합니다. dividendOptionName
S는 선택 사항이지만, 제공된 경우 dividendOptionCode
및 dividendOptionName
S가 일치하지 않으면 요청이 실패합니다. accountId
는 입력 배열에서 고유해야합니다.
업데이트 된 배당 옵션 데이터로 회계 개체 배열을 반환합니다.
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
: 핼리팩스가 PortCode
호출한다고 생각하는 것과 동일합니다. 일반적으로 계정 코드는 잠재적으로 일부 문자가있는 문자가 있습니다. 계정이 다른 accountId
은 동일한 계정 코드를 공유 할 수 있습니다. 나는 이것들이 로그인에서 독특하다고 생각합니다.statementId
: statement id, 나는 그것이 1
에서 시작하는 증가 숫자라고 생각합니다 - 로그인에서 독특하지 않습니다. 명령문은 로그인에 첨부되어 있으며 (계정과 반대로) statementId
는 로그인 내에서 고유합니다.accounty object
: accountId
속성이있는 개체 풀 요청은 Github에서 환영합니다! 시작하려면 :
npm install
로 종속성을 설치하십시오npm run test
실행하여 농담으로 테스트를 실행하십시오npm run build
로 빌드 유용한 사전 커밋 후크 ( .git/hooks/pre-commit
으로 저장) 테스트가 통과되도록하려면 코드가 올바르게 형식화되며 실수로 개인 정보를 남기지 않았습니다 (000123456 변경 계정 코드 또는 기타로 변경하십시오. 검색하려는 개인 데이터) :
#! /bin/sh
npm run test && npm run lint && ! grep --exclude=pre-commit -r ' 000123456 ' .
경고 : 데이터를 중단하고 삭제 한 다음 커밋하면 데이터를 커밋 할 수 있습니다. 조심하세요!
버전은 시맨틱 버전화 사양을 따릅니다.
출시하려면 :
npm version <major | minor | patch>
사용하십시오 npm version <major | minor | patch>
버전을 범프합니다git push --follow-tags
실행하여 태그로 푸시하십시오