2.35.46 • Published 4 years ago

zonky-api-handler v2.35.46

Weekly downloads
71
License
Apache-2.0
Repository
github
Last release
4 years ago

Zonky API handler

npm version renovate-app Known Vulnerabilities codecov travis

Unofficial API handler for Zonky. You can see full documentation on apiary.

How to use

Install package:

npm install zonky-api-handler

You must include polyfill for browser fetch to use it with Node.

require('cross-fetch/polyfill');
const { DateTime } = require('luxon');
const { ZonkyApi } = require('zonky-api-handler');

(async () => {
    const api = new ZonkyApi();
    await api.login(USERNAME, PASSWORD);

    const { transactions } = await api.getTransactions(DateTime.fromISO('2018-01-01'));
    console.log(transactions);
})()

You can also request export token and download xlsx reports:

require('cross-fetch/polyfill');
const fs = require('fs');
const { ZonkyApi } = require('zonky-api-handler');

(async () => {
    const api = new ZonkyApi();
    await api.login(USERNAME, PASSWORD);
    
    const investments = await api.downloadInvestments();
    fs.writeFileSync('investments.xlsx', investments);
    
})()

Downloading of transactions.

To download transactions you need to authorize through the SMS code. Example with Vorpal CLI:

require('cross-fetch/polyfill');
const vorpal = require('vorpal')();
const { ZonkyApi, EXCEPTION } = require('zonky-api-handler');

const USERNAME = 'XXX';
const PASSWORD = 'XXX';

const api = new ZonkyApi();

vorpal.command('download', 'Download transaction report.')
    .action(async function (args, cb) {
        // login user
        await api.login(USERNAME, PASSWORD);

        // send request to download transaction
        try {
            await api.downloadTransactions();
        } catch (exception) {
            // if the error is SMS required, continue, otherwise show an error
            if (!(exception instanceof EXCEPTION.ZonkyApiSMSException)) {
                throw exception;
            }

            console.log('SMS code was sent to your phone.');
        }

        // request SMS code from user
        const { sms } = await this.prompt([
            {
                type: 'input',
                name: 'sms',
                message: 'SMS code: ',
            },
        ]);

        // download file with the SMS code
        const data = await api.downloadTransactions(sms);

        // print output
        console.log(data);
        cb();
    });

vorpal
    .show()
    .parse(process.argv);

CLI to download Zonky reports

usage: zonky-report-download login@email.abc password-zonky transactions.xlsx investments.xlsx

require('cross-fetch/polyfill');
const fs = require('fs');
const { ZonkyApi } = require('zonky-api-handler');

(async () => {

   if (process.argv.length!=6) {
        console.log("zonky-report-download <login-email> <zonky-password> <transaction filename> <investments filename>");
        console.log("zonky-report-download login@email.abc password-zonky transactions.xlsx investments.xlsx");
        process.exit(-1);
   }

    const api = new ZonkyApi();
    console.log(`Login to Zonky: ${process.argv[2]}`);
    await api.login(process.argv[2], process.argv[3]);

    console.log(`Download transactions: ${process.argv[4]}`);
    const transactions = await api.downloadTransactions();
    fs.writeFileSync(process.argv[4], transactions);

    console.log(`Download investments: ${process.argv[5]}`);
    const people = await api.downloadInvestments();
    fs.writeFileSync(process.argv[5], people);

    console.log("Done");
})()
2.35.46

4 years ago

2.35.44

4 years ago

2.35.45

4 years ago

2.35.39

4 years ago

2.35.38

4 years ago

2.35.42

4 years ago

2.35.43

4 years ago

2.35.40

4 years ago

2.35.41

4 years ago

2.35.36

4 years ago

2.35.37

4 years ago

2.35.35

4 years ago

2.35.34

4 years ago

2.35.33

4 years ago

2.35.32

4 years ago

2.35.31

4 years ago

2.35.30

4 years ago

2.35.29

4 years ago

2.35.28

4 years ago

2.35.27

4 years ago

2.35.26

4 years ago

2.35.25

4 years ago

2.35.24

4 years ago

2.35.23

4 years ago

2.35.22

4 years ago

2.35.21

4 years ago

2.35.20

4 years ago

2.35.19

4 years ago

2.35.18

5 years ago

2.35.17

5 years ago

2.35.16

5 years ago

2.35.15

5 years ago

2.35.14

5 years ago

2.35.13

5 years ago

2.35.12

5 years ago

2.35.11

5 years ago

2.35.10

5 years ago

2.35.9

5 years ago

2.35.8

5 years ago

2.35.7

5 years ago

2.35.5

5 years ago

2.35.6

5 years ago

2.35.4

5 years ago

2.35.3

5 years ago

2.35.2

5 years ago

2.35.1

5 years ago

2.35.0

5 years ago

2.34.0

5 years ago

2.33.0

5 years ago

2.32.0

5 years ago

2.31.0

5 years ago

2.30.0

5 years ago

2.29.0

5 years ago

2.28.0

5 years ago

2.27.0

5 years ago

2.26.0

5 years ago

2.25.0

5 years ago

2.24.0

5 years ago

2.23.0

5 years ago

2.22.0

5 years ago

2.21.0

5 years ago

2.20.0

5 years ago

2.19.0

5 years ago

2.18.0

5 years ago

2.17.0

5 years ago

2.16.0

5 years ago

2.15.0

5 years ago

2.14.0

6 years ago

2.13.0

6 years ago

2.12.0

6 years ago

2.11.0

6 years ago

2.10.0

6 years ago

2.9.0

6 years ago

2.8.0

6 years ago

2.7.0

6 years ago

2.6.0

6 years ago

2.5.0

6 years ago

2.4.0

6 years ago

2.3.0

6 years ago

2.2.0

6 years ago

2.1.0

6 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.0.0

7 years ago

0.1.0

7 years ago