Intuit Customer Account Data API client
Aggcat is available through Rubygems and can be installed via:
$ gem install aggcat
or add it to your Gemfile like this:
gem 'aggcat'
Register for Intuit Customer Account Data.
Get your OAuth data.
require 'aggcat'
# Aggcat global configuration
Aggcat.configure do |config|
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'
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',
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)
# 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
Please make sure to read Intuit's Account Data API.
- Ruby 1.9.3 or higher
Copyright (c) 2013 Gene Drabkin. See LICENSE for details.