Ruby
This Ruby snippet describes the sequence of API calls needed to create and activate a Signature Request.
require "uri"
require "net/http"
require 'json'
base_url = "https://api-sandbox.yousign.app/v3"
api_key = "REPLACE_WITH_YOUR_API_KEY"
## 1 - Create a Signature Request:
url = URI(sprintf("%s/signature_requests", base_url))
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url, 'Content-Type' => 'application/json')
request["Authorization"] = sprintf("Bearer %s", api_key)
request.body = {name: 'The name of your Signature Request', delivery_mode: 'none', timezone: 'Europe/Paris'}.to_json
response = https.request(request)
signature_request = JSON(response.body)
signature_request_id = signature_request["id"]
## 2 - Add a Document to the Signature Request:
url = URI(sprintf("%s/signature_requests/%s/documents", base_url, signature_request_id))
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = sprintf("Bearer %s", api_key)
form_data = [['file', File.open('test.pdf'), content_type: 'application/pdf'],['nature', 'signable_document'],['parse_anchors', 'true']]
request.set_form form_data, 'multipart/form-data'
response = https.request(request)
document = JSON(response.body)
document_id = document["id"]
## 3 - Add a Signer to the Signature Request:
url = URI(sprintf("%s/signature_requests/%s/signers", base_url, signature_request_id))
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url, 'Content-Type' => 'application/json')
request["Authorization"] = sprintf("Bearer %s", api_key)
request.body = {
"info": {
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]",
"phone_number": "+33600000000",
"locale": "fr"
},
"signature_authentication_mode": "no_otp",
"signature_level": "electronic_signature",
"fields": [
{
"document_id": document_id,
"type": "signature",
"height": 37,
"width": 85,
"page": 1,
"x": 0,
"y": 0
}
]
}.to_json
https.request(request)
## 4 - Activate the Signature Request:
url = URI(sprintf("%s/signature_requests/%s/activate", base_url, signature_request_id))
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url, 'Content-Type' => 'application/json')
request["Authorization"] = sprintf("Bearer %s", api_key)
response = https.request(request)
puts response.body
Updated 8 months ago