Skip to content

cloocher/aggcat

Repository files navigation

Aggcat

Build Status Coverage Status Gem Version

Intuit Customer Account Data API client

Installation

Aggcat is available through Rubygems and can be installed via:

$ gem install aggcat

or add it to your Gemfile like this:

gem 'aggcat'

Start Guide

Register for Intuit Customer Account Data.

Get your OAuth data.

Or

Register for Finicity Facade API

If you want to use the Finicity Facade API set the following additional configuration parameters:

oauth_url: 'https://api.finicity.com/oauth/v1/get_access_token_by_saml'
base_url: 'https://api.finicity.com/financialdatafeed/v1'

See: Finicity Setup

Usage

require 'aggcat'

# Aggcat global configuration
Aggcat.configure do |config|
  config.oauth_url 'oauth url if using Finicity Facade API'
  config.base_url 'base url if using Finicity Facade API'
  config.issuer_id = 'your issuer id'
  config.consumer_key = 'your consumer key'
  config.consumer_secret = 'your consumer secret'
  config.certificate_path = '/path/to/your/certificate/key'
  config.verbose = false # verbose = true will output all raw XML API requests/responses to STDOUT
  # certificate could be provided as a string instead of a path to a file using certificate_value
  # certificate_value takes precedence over certificate_path
  # certificate_value should contain newline characters as appropriate
  # config.certificate_value = "-----BEGIN RSA PRIVATE KEY-----\nasdf123FOO$BAR\n...\n-----END RSA PRIVATE KEY-----"
  # certificate's can contain passwords, put your password here.
  # config.certificate_password = "1234"
end

# alternatively, specify configuration options when instantiating an Aggcat::Client
client = Aggcat::Client.new(
  issuer_id: 'your issuer id',
  consumer_key: 'your consumer key',
  consumer_secret: 'your consumer secret',
  certificate_path: '/path/to/your/certificate/key', # OR certificate_value: "--BEGIN RSA KEY--..."
  customer_id: 'scope for all requests'
)

# create an scoped client by customer_id
client = Aggcat.scope(customer_id)

# get all supported financial institutions
client.institutions

# get details for Bank of America
client.institution(14007)

# add new financial account to aggregate from Bank of America
response = client.discover_and_add_accounts(14007, username, password)

# in case MFA is required
questions = response[:result][:challenges]
answers = ['first answer', 'second answer']
challenge_session_id = response[:challenge_session_id]
challenge_node_id = response[:challenge_node_id]
client.account_confirmation(14007, challenge_session_id, challenge_node_id, answers)

# get already aggregated financial account
client.account(account_id)

# get all aggregated accounts
client.accounts

# get account transactions
start_date = Date.today - 30
end_date = Date.today # optional
client.account_transactions(account_id, start_date, end_date)

# update account type
client.update_account_type(account_id, 'CREDITCARD')

# update login credentials
client.update_login(institution_id, login_id, new_username, new_password)

# in case MFA is required
client.update_login_confirmation(login_id, challenge_session_id, challenge_node_id, answers)

# get position info for an investment account
client.investment_positions(account_id)

# you can set scope inline for any request
Aggcat.scope(customer_id).account(account_id)

# delete account
client.delete_account(account_id)

# delete customer for the current scope
client.delete_customer

Documentation

Please make sure to read Intuit's Account Data API.

API Use Cases.

Testing Calls to the API.

Requirements

  • Ruby 2.2.2 or higher

Copyright

Copyright (c) 2013 Gene Drabkin. See LICENSE for details.

About

Ruby client for Intuit Customer Account Data API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages