Investec Programmable Banking Open API Wrapper

A Dart null-safe wrapper to be able to use the Investec OpenAPI from your Dart/Flutter projects

Investec developer documentation

codecov Flutter Test

Getting Started

Currently and Active WIP and has not been submitted to pub.dev yet.


Usage


Setup:

import 'package:http/http.dart' as http;
import 'investec_open_api/investec_open_api.dart';

final httpClient = http.Client();

final api = InvestecOpenAPI(
  clientId: 'YOUR_CLIENT_ID',
  secret: 'YOUR_SECRET',
  httpClient: httpClient,
);

Available Methods:

api.getAccounts()

This returns a list of your accounts as well as some meta data

Sample API Response

{
  "data": {
    "accounts": [
      {
        "accountId": "123",
        "accountNumber": "112233",
        "accountName": "John Smith",
        "referenceName": "Mr J Smith",
        "productName": "Private Bank Account"
      }
    ]
  },
  "links": {
    "self": "mock-url"
  },
  "meta": {
    "totalPages": 1
  }
}

Sample resulting dart class


const accounts = AccountsEntity(
  data: AccountsData(
    accounts: [
      AccountEntity(
        accountId: '123',
        accountNumber: '112233',
        accountName: 'John Smith',
        referenceName: 'Mr J Smith',
        productName: 'Private Bank Account',
      )
    ],
  ),
  links: AccountsLinks(
    self: 'mock-url',
  ),
  meta: AccountsMeta(
    totalPages: 1,
  ),
);

api.getAccountTransactions() (Unimplemented)

api.getAccountBalance()

Returns teh account balance details for a provided account number.

Sample API Response

{
  "data": {
    "accountId": "account-number",
    "currentBalance": 1234.65,
    "availableBalance": 9876.00,
    "currency": "ZAR"
  },
  "links": {
    "self": "mock-url"
  },
  "meta": {
    "totalPages": 1
  }
}

Sample resulting dart class


const accountBalanceFixture = AccountBalanceModel(
  data: AccountBalanceDataModel(
    accountId: 'account-number',
    currentBalance: 1234.65,
    availableBalance: 9876.00,
    currency: 'ZAR',
  ),
  links: AccountsLinks(
    self: 'mock-url',
  ),
  meta: AccountsMeta(
    totalPages: 1,
  ),
);

Hope you find this useful! Please give a star and feel free to contribute or log issues and feature requests!

And if you want to say thanks, then go ahead:

Buy Me A Coffee

Libraries

access_token_entity
access_token_model
access_token_remote_source
access_token_repository
access_token_repository_impl
account_balance_entity
account_balance_model
account_balance_remote_source
account_balance_repository
account_balance_repository_impl
account_entity
account_model
accounts_entity
accounts_model
accounts_remote_source
accounts_repositories
accounts_repository
endpoint_builder
get_access_token_usecase
get_account_balance_usecase
get_accounts_usecase
investec_open_api
shared_entities
shared_models
usecase