Clicksign::Webhooks

Gem Version Build Status Maintainability Test Coverage

To fully understand Clicksign webhooks system, click here

Installation

Add this line to your application's Gemfile:

gem 'clicksign-webhooks'

And then execute:

$ bundle

Or install it yourself as:

$ gem install clicksign-webhooks

Usage

First, mount this engine on your app.

Rails.application.routes.draw do
  ...
  mount Clicksign::Webhooks::Engine => "/clicksign-webhooks"
  ...
end

Depending on your version of rails, use either rails routes -g clicksign-webhooks or rake routes | grep clicksign-webhooks, to see the path:

$ rake routes | grep clicksign-webhooks
Routes for Clicksign::Webhooks::Engine:
 event POST /event(.:format) clicksign/webhooks/events#create

Your rails app able to receive a POST at /clicksign-webhooks/event.

Then create a initializer using a Proc to each possible event:

Clicksign::Webhooks.configure do |config|
  # Setup HMAC
  config.hmac = ENV['CLICKSIGN_HMAC_KEY']

  # You have to setup one Proc for each event
  # Available events are described below
  config.on_upload = ->(event) {
    # Do something with sent event parameters
  }

  # ...
end

The argument event is a Hash:

  {
     "event":{
        "name":"add_signer",
        "data":{
           "user":{
              "email":"...",
              "name":"..."
           },
           "account":{
              "key":"..."
           },
           "signers":[
              {
                 "key":"...",
                 "email":"...",
                 "created_at":"...",
                 "sign_as":"witness",
                 "auths":["email"],
                 "phone_number":"...",
                 "phone_number_hash":"..."
              }
           ]
        },
        "occurred_at":"..."
     },
     "document":{...},
     "signers":[...],
     "events":[{...}]
  }
Available event callbacks:
  • on_upload
  • on_add_signer
  • on_remove_signer
  • on_sign
  • on_close
  • on_auto_close
  • on_deadline
  • on_cancel
  • on_update_deadline
  • on_update_auto_close

Contributing

Feel free to contribute. Pull requests are welcome.

License

The gem is available as open source under the terms of the MIT License.