Official SDK for Halifax Shames Dealing, IWWeB Shasing Dealing, Bank of Scotland Share Dealing et Lloyds Bank Direct Investments Service
Arrondit les services bancaires sur Internet, il peut donc être brisé par les mises à jour de leur front
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'
}
} )
Ceci est requis avant de passer d'autres appels
Renvoie un objet comptable avec le compte par défaut
sd . login ( )
. then ( console . dir )
// { accountId: '000123456ABCD' }
Répertorie tous les comptes
Renvoie un tableau d'objets comptables avec des noms de compte et des équilibres
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' } } ]
Obtient le compte AccountId pour le compte par défaut de la page «Définissez le compte par défaut».
Renvoie un objet comptable avec le compte par défaut
sd . login ( )
. then ( sd . getDefaultAccount )
. then ( console . dir )
// { accountId: '000123456ABCD' }
Définit le compte par défaut
Nécessite un objet comptable pour le compte que vous souhaitez définir par défaut
Renvoie un objet comptable avec le nouveau compte par défaut
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' }
Renvoie les options de dividende pour tous les comptes
Renvoie un tableau d'objets comptables avec des données d'option de dividende
sd . login ( )
. then ( sd . getDividendOptions )
. then ( console . dir )
// [ { accountId: '000123456',
// dividendOptionCode: 'H',
// dividendOptionName: 'Hold In Account' },
// { accountId: '000123456ABCD',
// dividendOptionCode: 'R',
// dividendOptionName: 'Automatic Dividend Reinvestment' } ]
Définit les options de dividende pour tous les comptes
Nécessite un tableau d'objets comptables avec dividendOptionCode
S. Ne nécessite que les données pour les comptes que vous souhaitez modifier. dividendOptionName
S est facultatif, mais si elle est fournie, la demande échouera si les dividendOptionCode
S et dividendOptionName
ne correspondent pas. accountId
S doit être unique dans le tableau d'entrée.
Renvoie un tableau d'objets comptables avec les données d'option de dividende mises à jour
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' } ]
Obtient toutes les déclarations
Renvoie un tableau de déclarations
sd . login ( )
. then ( sd . getStatements )
. then ( console . dir )
// [ { statementId: '1', statementDate: '01 Jan 1970' } ]
Obtient une évaluation pour un compte
Nécessite un objet comptable pour le compte pour lequel vous souhaitez obtenir l'évaluation
Renvoie un objet comptable avec des données d'évaluation
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' } }
Obtient l'historique des dividendes pour un compte
Nécessite un objet comptable pour le compte pour lequel vous souhaitez obtenir l'historique des dividendes pour
Renvoie un éventail de dividendes historiques relatifs au compte
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
: équivalent à ce que je pense qu'Halifax appelle un PortCode
. Habituellement, le code du compte avec potentiellement quelques lettres après. Les comptes avec différents accountId
peuvent partager le même code de compte. Je pense que ceux-ci sont uniques à travers les connexions.statementId
: ID de déclaration, je pense que c'est un nombre d'incrémentiel à partir de 1
- pas unique à travers les connexions. Les déclarations sont jointes à une connexion (par opposition au compte), et statementId
sont uniques dans une connexion.accounty object
: un objet avec une propriété accountId
Les demandes de traction sont les bienvenues sur GitHub! Pour commencer:
npm install
npm run test
pour exécuter des tests avec une plaisanterienpm run build
Un crochet de pré-engagement utile (enregistrer en tant que .git/hooks/pre-commit
) pour vous assurer que les tests passent, le code est formaté correctement et vous n'avez pas accidentellement laissé vos coordonnées personnelles (modifier 000123456 à votre code de compte ou à d'autres données personnelles que vous souhaitez rechercher):
#! /bin/sh
npm run test && npm run lint && ! grep --exclude=pre-commit -r ' 000123456 ' .
AVERTISSEMENT: il est toujours possible de commettre vos données si vous les mettez en scène, de le supprimer, puis de vous engager. Soyez prudent!
Les versions suivent la spécification du versioning sémantique.
Pour libérer:
npm version <major | minor | patch>
pour baisser la versiongit push --follow-tags
pour pousser avec les balises