Checking the document status
- Get the details of a particular document with its ID using the Get details of a particular document API.
- In the response, the request_status field indicates whether the document is completed, in progress, or declined.
- The actions array can be used to check the status of each of the recipients. The action_status key indicates what the status is. If it is UNOPENED or VIEWED, the recipients have received the email but have not signed the document. SIGNED indicates that the recipients have signed and NOACTION means they have not yet been sent the email because the previous signers have not yet signed.
<?php
$curl = curl_init("https://sign.zoho.com/api/v1/requests/<Request-Id>");
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Authorization:Zoho-oauthtoken <Oauth-Token>'
));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
$jsonbody = json_decode($response); // contain filed tyes response
if ($jsonbody->status == "success") {
$createdRequestId = $jsonbody->requests->request_id;
//Save the ID from the response to update later
$createdRequest = new stdClass();
$createdRequest = $jsonbody->requests;
echo ($createdRequest);
} else //Error check for error
{
echo $jsonbody->message;
}
curl_close($curl);
?>
const express = require('express');
const fetch = require('node-fetch');
const app = express();
const port = 4000;
app.get('/requestStatus', async (req, res) => {
let HEADERS = {};
HEADERS['Authorization'] = 'Zoho-oauthtoken <Oauth-Token>';
let URL = 'https://sign.zoho.com/api/v1/requests/<Request-Id>';
let method = 'GET';
let requestOptions = {
method: method,
headers: HEADERS
};
let response = await fetch(URL, requestOptions)
.then((_res) => {
console.log(`Return code is ${_res.status}`);
return _res.json().then((responseJson) => {
return responseJson['requests'];
});
})
.catch((error) => {
let errorResponse = {};
errorResponse['message'] = 'call failed to initiate'; //check internet connection or proper DC type
errorResponse['status'] = 'failure';
res.send(errorResponse);
});
res.send(response.request_status);
});
app.listen(port, () => {
console.log(`Example app listening on port {port}`);
});
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://sign.zoho.com/api/v1/requests/"+<<Request Id>>);
request.Headers["Authorization"] = "Zoho-oauthtoken " + <<accessToken>>;
request.Method = "GET";
JObject responseObj = new JObject();
string requestStatus = string.Empty;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream);
String responseString = reader.ReadToEnd();
responseObj = JObject.Parse(responseString);
}
if(responseObj.SelectToken("status").ToString().Equals("success"))
{
if(responseObj.ContainsKey("requests"))
{
JObject requests = (JObject)responseObj.GetValue("requests");
requestStatus = requests.GetValue("request_status").ToString();
}
}
res = zoho.sign.getDocumentById(2000001829037);
if(res.get('status') == "success")
{
request_status = res.get('requests').get('request_status');
if(request_status == 'completed')
{
info "Document signed by all parties";
}
else if(request_status == 'inprogress')
{
info 'Document in progress';
actions = res.get('requests').get('actions');
for each i in actions
{
if ( i.get('action_status') == "UNOPENED" || i.get('action_status') == "VIEWED")
{
info 'Recipient yet to sign : '+i.get('recipient_email');
}
}
}
}
def getDocumentDetailsById(request_id,Oauthtoken):
headers = {'Authorization':'Zoho-oauthtoken '+Oauthtoken}
r = requests.get('https://sign.zoho.com/api/v1/requests/'+request_id,headers=headers)
return r.json()
def getDocumentStatus(request_id,Oauthtoken):
response = getDocumentDetailsById(request_id,Oauthtoken)
if response['status'] == 'success':
status = response['requests']['request_status']
if status == 'completed':
print('Document signed by all parties')
elif status == 'inprogress':
actions = response['requests']['actions']
print('Document in progress')
for i in actions:
if i['action_status'] == 'UNOPENED' or i['action_status'] == 'VIEWED':
print('Recipient yet to sign : '+i['recipient_email'])
else:
print('Error in get document : '+response['message'])
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://sign.zoho.com/api/v1/requests/"+<<Request Id>>);
request.Headers["Authorization"] = "Zoho-oauthtoken " + <<accessToken>>;
request.Method = "GET";
JObject responseObj = new JObject();
string requestStatus = string.Empty;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream);
String responseString = reader.ReadToEnd();
responseObj = JObject.Parse(responseString);
}
if(responseObj.SelectToken("status").ToString().Equals("success"))
{
if(responseObj.ContainsKey("requests"))
{
JObject requests = (JObject)responseObj.GetValue("requests");
requestStatus = requests.GetValue("request_status").ToString();
}
}
Show full
Show less