Topic: Connecting TD bank Canada, my first try

Hi
I am new to OFX (my first day). I am trying to connect TD Bank Canada but getting null pointer exception.

Here is my code:

FinancialInstitutionData data = new BaseFinancialInstitutionData();

        FinancialInstitutionService service
                = new FinancialInstitutionServiceImpl();
        FinancialInstitution fi = service.getFinancialInstitution(data);

        BankAccountDetails bankAccountDetails
                = new BankAccountDetails();

        bankAccountDetails.setBankId("004");
        bankAccountDetails.setBranchId("80189");
        bankAccountDetails.setAccountNumber("xxxxxxx");
        bankAccountDetails.setAccountType(AccountType.CHECKING);

        BankAccount bankAccount
                = fi.loadBankAccount(bankAccountDetails, "xxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxx");

        Date startDate = new Date();
        GregorianCalendar calendar = new GregorianCalendar();
        calendar.setTime(startDate);
        calendar.set(Calendar.YEAR, 2016);
        startDate = calendar.getTime();

        Date endDate = new Date();
        try {
            AccountStatement statement =
                       bankAccount.readStatement(startDate, endDate);
            Double balance = statement.getAvailableBalance().getAmount();
            showNotification("Balance "+ balance);
        } catch (OFXException e) {
            e.printStackTrace();
        }


I get NPE in the following line: bankAccount.readStatement(startDate, endDate);

java.lang.NullPointerException
    at com.webcohesion.ofx4j.client.net.OFXV1Connection.sendRequest(OFXV1Connection.java:49)
    at com.webcohesion.ofx4j.client.impl.FinancialInstitutionImpl.sendRequest(FinancialInstitutionImpl.java:130)
    at com.webcohesion.ofx4j.client.impl.BaseAccountImpl.readStatement(BaseAccountImpl.java:87)
    at com.company.bankconnect.web.bank.BankBrowse.refreshBank(BankBrowse.java:60)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Thanks for any help.
MAK