0.0
No release in over 3 years
Low commit activity in last 3 years
Primitive for connecting to the financial services
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

>= 2.0
>= 12.0
>= 3.0
>= 0.49

Runtime

>= 5.0
 Project Readme

Hws Connectors

License Ruby gem PRs Welcome

An Open Source Connector to integrate with any financial service providers like banks, fintech, etc., providing a unified response across various providers.

NOTE: We are starting of with Hypto connectors & will be introducing the integrations of other financial service providers shortly.

Installation

Add this line to your application's Gemfile:

gem 'hws-connectors'

And then execute:

bundle install

Or install it yourself as:

gem install hws-connectors

Configuration

Hws::Connectors.configure do |config|
  config.logger = Rails.logger
  config.options = { skip_logging: %w(get) },
    config.webhooks = {
      'payouts' => {
        'callback' => -> (entity, response) { puts "#{entity.inspect} - #{response.inspect}" },
      },
      'virtual_accounts' => {
        'notify' => -> (entity, response) { puts "#{entity.inspect} - #{response.inspect}" }
      }
    }
end

Payout

# Initialise payout client (eg: Hypto)
CLIENT_INFO = { 'api_token' => "<HYPTO_API_TOKEN>", 'env' => 'development | production' }
$hypto_payout_client = Hws::Connectors::Hypto::Payout.new(CLIENT_INFO)

# Send to bank account
beneficiary = Hws::Connectors::Dto::AccountDetail.new(name: 'Logesh', account_number: '12345678', account_ifsc: 'HDFC0005322', note: 'Connector testing')
request = Hws::Connectors::Dto::PayoutRequest.new(beneficiary: beneficiary, payment_type: 'IMPS', amount: 1)
resp = $hypto_payout_client.send_to_bank_account(request: request)

# Send to Upi Id
beneficiary = Hws::Connectors::Dto::AccountDetail.new(name: 'Logesh', upi_id: 'ddlogesh@okhdfcbank', note: 'Connector testing')
request = Hws::Connectors::Dto::PayoutRequest.new(beneficiary: beneficiary, payment_type: 'UPI', amount: 1)
resp = $hypto_payout_client.send_to_upi_id(request: request)

# Fetch payout status
resp = $hypto_payout_client.status(reference_number: 'reference_number')

VirtualAccount

# Initialise virtual account client (eg: Hypto)
$hypto_va_client = Hws::Connectors::Hypto::VirtualAccount.new(CLIENT_INFO)

# Create a virtual account
request = Hws::Connectors::Dto::VirtualAccountRequest.new(reference_number: 'REF123')
resp = $hypto_va_client.create(request: request)

# Update an existing virtual account
request = Hws::Connectors::Dto::VirtualAccountRequest.new(reference_number: 'REF139856', meta: { id: 139856 })
resp = $hypto_va_client.update(request: request)

# Activate a virtual account
resp = $hypto_va_client.activate(reference_number: 139856)

# Deactivate a virtual account
resp = $hypto_va_client.deactivate(reference_number: 139856)

# Fetch a virtual account
resp = $hypto_va_client.fetch(reference_number: 139856)

Payout (From Virtual Account)

# Send to bank account
beneficiary = Hws::Connectors::Dto::AccountDetail.new(name: 'Logesh', account_number: '12345678', account_ifsc: 'HDFC0005322', note: 'Connector testing')
request = Hws::Connectors::Dto::PayoutRequest.new(beneficiary: beneficiary, payment_type: 'IMPS', amount: 1, meta: { va_id: 139856 })
resp = $hypto_va_client.send_to_bank_account(request: request)

# Send to Upi Id
beneficiary = Hws::Connectors::Dto::AccountDetail.new(name: 'Logesh', upi_id: 'ddlogesh@okhdfcbank', note: 'Connector testing')
request = Hws::Connectors::Dto::PayoutRequest.new(beneficiary: beneficiary, payment_type: 'UPI', amount: 1, meta: { va_id: 139856 })
resp = $hypto_va_client.send_to_upi_id(request: request)

# Fetch payout status
resp = $hypto_va_client.status(reference_number: 'reference_number', va_id: 139856)

Webhooks

Payout Status 
POST : {{host}}/hws/connectors/payouts/hypto/callback

Credit Virtual Account
POST : {{host}}/hws/connectors/virtual_accounts/hypto/notify

Contributing

We wish the Fintech community to come forward and contribute to this project, making the developer's life easier.

Fork our project and send us a pull request: may be a minor bug fix, new bank integrations or financial connectors.

Every contribution is welcome!