getBalance = function(callback) { banking.getStatement({ fid: '3101', fidorg: 'AMEX', url: 'https://online.americanexpress.com/myca/ofxdl/desktop/desktopDownload.do?request_type=nl_ofxdownload', bankid: 'americanexpress.com', user: settings.americanexpress.username, pass: settings.americanexpress.password, accid: settings.americanexpress.card_number, acctype: 'CREDITCARD', date_start: moment().format('YYYYMMDD'), date_end: moment().format('YYYYMMDD'), appver: '1900' }, function(res, err) { callback(numberFormat(-1 * res.OFX.CREDITCARDMSGSRSV1.CCSTMTTRNRS.CCSTMTRS.LEDGERBAL.BALAMT)); }); };
function ofxDateFmt(d) { return d.toISOString().substring(0, 20).replace(/[^0-9]/g, ''); } function daysBefore(n, d) { var msPerDay = 24 * 60 * 60 * 1000; return new Date(d.getTime() - n * msPerDay); } var info = Object.assign( { accId: process.env.CARDNUM , user: process.env.OFX_USERNAME , password: process.env.OFX_PASSWORD}, institutions.discover); console.log('myCard', info); var myCard = new Banking(info); var clock = function() { return new Date() }; var now = clock(); myCard.getStatement({start: ofxDateFmt(daysBefore(60, now)), end: ofxDateFmt(now)}, function(err, res){ if(err) console.log(err) console.log(res); });