Fintoc meets Ruby

You have just found the Ruby-flavored client of Fintoc. It mainly consists of a port (more of a carbon copy, really) of fintoc-python.

Why?

You can think of Fintoc API as a piscola. And the key ingredient to a properly made piscola are the ice cubes. Sure, you can still have a piscola without ice cubes. But hey… that’s not enjoyable -- why would you do that? Do yourself a favor: go grab some ice cubes by installing this refreshing library.

Table of contents

How to Install

Add this line to your application's Gemfile:

gem 'fintoc'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install fintoc

Quickstart

  1. Get your API key and link your bank account using the Fintoc dashboard.
  2. Open your command-line interface.
  3. Write a few lines of Ruby code to see your bank movements.
require 'fintoc'

client = Fintoc::Client.new('sk_test_9c8d8CeyBTx1VcJzuDgpm4H-bywJCeSx')
link = client.get_link('6n12zLmai3lLE9Dq_token_gvEJi8FrBge4fb3cz7Wp856W')
 = link.find(type: 'checking_account')

# Get the las 30 movements
movements = .get_movements

# Or get all the movements since a specific date
movements = .get_movements(since: '2020-08-15')

And that’s it!

Documentation

This client supports all Fintoc API endpoints. For complete information about the API, head to the docs.

Examples

Get accounts

require 'fintoc'

client = Fintoc::Client.new('api_key')
link = client.get_link('link_token')
puts link.accounts

# Or... you can pretty print all the accounts in a Link

link = client.get_link('link_token')
link.show_accounts

If you want to find a specific account in a link, you can use find. You can search by any account field:

require 'fintoc'

client = Fintoc::Client.new('api_key')
link = client.get_link('link_token')
 = link.find(type: 'checking_account')

# Or by number
 = link.find(number: '1111111')

# Or by account id
 = link.find(id: 'sdfsdf234')

You can also search for multiple accounts matching a specific criteria with find_all:

require 'fintoc'

client = Fintoc::Client.new('api_key')
link = client.get_link('link_token')
accounts = link.find_all(currency: 'CLP')

To update the account balance you can use update_balance:

require 'fintoc'

client = Fintoc::Client.new('api_key')
link = client.get_link('link_token')
 = link.find(number: '1111111')
.update_balance

Get movements

require 'fintoc'
require 'time'

client = Fintoc::Client.new('api_key')
link = client.get_link('link_token')
 = link.find(type: 'checking_account')

# You can get the account movements since a specific DateTime
yesterday = DateTime.now - 1
.get_movements(since: yesterday)

# Or you can use an ISO 8601 formatted string representation of the Date
.get_movements(since: '2020-01-01')

# You can also set how many movements you want per_page
.get_movements(since: '2020-01-01', per_page: 100)

Calling get_movements without arguments gets the last 30 movements of the account

Dependencies

This project relies on the following packages:

How to test…

You can run all the tests just by running:

rspec

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/fintoc-com/fintoc.