0.01
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
A Rails Engine to work with Plaid
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Plaid for Rails

Build Status

This gem is a Rails Engine to provide an interface to Plaid using the plaid-ruby api

PlaidRails provides these features:

  • Accepts webhooks callbacks from plaid to manage transaction requests or errors
  • Configures Plaid Link to easily connect with the banks
  • Stores bank details to use within your application

Installation

Add the gem to your app

gem 'plaid_rails'

Run the installer

bundle install
rails g plaid_rails:install
rake db:migrate

The plaid_rails:install task does the following:

  • add the plaid_rails engine to the config/routes.rb config/initializer/plaid.rb
mount PlaidRails::Engine => '/plaid', as: :plaid_rails` to the config/routes.rb
  • Create the initializer config/initializer/plaid.rb. Be sure to update this with your settings
  • Update the app/assets/javascript/application.js with //= require plaid_rails

Views

Add a button and javascript to your view to use Link with Plaid.

<button id="plaidLinkButton" class="small"
     data-client-name="<%= client_name %>"
     data-env="<%= Rails.env.production? ? "production" : "tartan"%>"
     data-key="<%=  PlaidRails.public_key %>"
     data-webhook="<%=  PlaidRails.webhook %>"
     data-longtail="<%=  PlaidRails.longtail %>"
     data-owner-type="<%=  owner.class.name %>"
     data-plaid-rails-path='/plaid/authenticate'
     data-product='transactions'
     data-owner-id="<%=  owner.id %>">Link your Bank Account</button>

<!-- put at bottom of page -->
<%=javascript_include_tag "https://cdn.plaid.com/link/stable/link-initialize.js" %>

Overwrite the plaid_rails views with your own views.

  • plaid_rails/accounts/create.html - rendered after creating an account
  • plaid_rails/accounts/destroy.html - rendered after removing an account
  • plaid_rails/accounts/index.html - renders the list of accounts connected
  • plaid_rails/accounts/new.html - renders list of available accounts to connect
  • plaid_rails/link/authenticate.js.erb - renders after the Plaid.create javascript function is successful

Webhooks

The plaid webhooks runs subscribers for to process transactions and report errors.

  • transactions.initial - code 0
  • transactions.new - code 1
  • transactions.interval - code 2
  • transactions.removed - code 3
  • webhook.updated - code 4
  • plaid.error - any other code

Update the PlaidRails.configuration.webhook with the address of the webhook url. The route is plaid/webhook i.e. http(s)://my.app.com/plaid/webhooks

Testing

To run the tests you need to set the PLAID credentials in environment variables.

export PLAID_CLIENT_ID='your client_id'
export PLAID_SECRET='your secret'
export PLAID_PUBLIC_KEY='your public_key'