Webhooks

Webhooks

Webhooks allow you to configure HTTP callbacks that are triggered when specific events occur in your organization. When a workflow fires, the configured webhook sends an HTTP request to the specified URL with the relevant data.

Download Webhooks OpenAPI Document

Create a webhook

Create a new webhook configuration for sending HTTP callbacks.
OAuth Scope : ZohoBooks.settings.CREATE

Arguments

entity
string
The entity type for the webhook.
webhook_name
string
Name of the webhook. Max-len [50]
description
string
Description of the webhook. Max-len [100]
method
string
HTTP method for the webhook. Allowed Values: POST, PUT, DELETE
url
string
(Required)
Target URL for the webhook callback. Max-len [5000]
entity_parameters
array
Entity parameters to include in the webhook payload.
Show Sub-Attributes arrow
param_name
string
param_value
string
additional_parameters
array
Additional custom parameters.
Show Sub-Attributes arrow
param_name
string
param_value
string
headers
array
Custom HTTP headers for the webhook request.
Show Sub-Attributes arrow
param_name
string
param_value
string
user_defined_format_name
string
Name of the user-defined format. Max-len [100000]
user_defined_format_value
string
Value of the user-defined format. Max-len [100000]
secret
string
Secret key for webhook signature verification. Min-len [12], Max-len [50], alphanumeric only.
body_type
string
Content type of the request body.
raw_data
string
Raw data payload for the webhook. Max-len [100000]
form_data
array
Form data parameters.
Show Sub-Attributes arrow
param_name
string
param_value
string
query_parameters
array
Query string parameters for the webhook URL.
Show Sub-Attributes arrow
param_name
string
param_value
string
events
array
List of events that trigger this webhook.
is_new_response_format
boolean
Whether to use the new response format.
placeholder
string
Placeholder for the webhook.
is_hidden
boolean
Whether the webhook is hidden.
lock_type
string
Type of lock. Allowed Values: error, none
lock_reason
string
Reason for locking the webhook. Max-len [255]

Query Parameters

organization_id
string
(Required)
ID of the organization.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/settings/webhooks?organization_id=10234695" type: POST headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/settings/webhooks?organization_id=10234695") .post(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/books/v3/settings/webhooks?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("POST", "/books/v3/settings/webhooks?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/settings/webhooks?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request POST \ --url 'https://www.zohoapis.com/books/v3/settings/webhooks?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "entity": "invoice", "webhook_name": "Invoice Webhook", "description": "string", "method": "POST", "url": "https://example.com/webhook", "entity_parameters": [ { "param_name": "string", "param_value": "string" } ], "additional_parameters": [ { "param_name": "string", "param_value": "string" } ], "headers": [ { "param_name": "string", "param_value": "string" } ], "user_defined_format_name": "string", "user_defined_format_value": "string", "secret": "string", "body_type": "string", "raw_data": "string", "form_data": [ { "param_name": "string", "param_value": "string" } ], "query_parameters": [ { "param_name": "string", "param_value": "string" } ], "connection_link_name": "string", "events": [ "string" ], "is_new_response_format": true, "placeholder": "string", "is_hidden": true, "lock_type": "string", "lock_reason": "string" }

Response Example

{ "code": 0, "message": "success", "webhook": { "webhook_id": "460000000040001", "webhook_name": "string", "placeholder": "string", "description": "string", "url": "string", "secret": "string", "entity": "string", "method": "string", "entity_parameters": [ { "param_name": "string", "param_value": "string" } ], "additional_parameters": [ { "param_name": "string", "param_value": "string" } ], "headers": [ { "param_name": "string", "param_value": "string" } ], "body_type": "string", "raw_data": "string", "form_data": [ { "param_name": "string", "param_value": "string" } ], "query_parameters": [ { "param_name": "string", "param_value": "string" } ], "user_defined_format_name": "string", "user_defined_format_value": "string", "connection_link_name": "string", "lock_type": "string", "lock_reason": "string", "is_new_response_format": true } }

List webhooks

Get a list of all webhook configurations in your organization.
OAuth Scope : ZohoBooks.settings.READ

Query Parameters

organization_id
string
(Required)
ID of the organization.
filter_by
string
Filter webhooks by entity type. Allowed Values: Entity.All, Entity.Invoice, Entity.Bill, etc.
sort_column
string
Sort webhooks by column. Allowed Values: webhook_name, created_time
page
integer
Page number to be fetched. Default value is 1.
per_page
integer
Number of records to be fetched per page. Default value is 200.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/settings/webhooks?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/settings/webhooks?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/books/v3/settings/webhooks?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/books/v3/settings/webhooks?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/settings/webhooks?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/books/v3/settings/webhooks?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "webhooks": [ { "webhook_id": "460000000040001", "webhook_name": "Invoice Webhook", "description": "string", "placeholder": "string", "is_active": true, "is_from_plugin": false, "url": "https://example.com/webhook", "entity": "invoice", "method": "POST", "created_time": "string", "related_rules": [ {...} ] }, {...}, {...} ] }

Update a webhook

Update an existing webhook configuration.
OAuth Scope : ZohoBooks.settings.UPDATE

Arguments

entity
string
The entity type for the webhook.
webhook_name
string
Name of the webhook. Max-len [50]
description
string
Description of the webhook. Max-len [100]
method
string
HTTP method for the webhook. Allowed Values: POST, PUT, DELETE
url
string
(Required)
Target URL for the webhook callback. Max-len [5000]
entity_parameters
array
Entity parameters to include in the webhook payload.
Show Sub-Attributes arrow
param_name
string
param_value
string
additional_parameters
array
Additional custom parameters.
Show Sub-Attributes arrow
param_name
string
param_value
string
headers
array
Custom HTTP headers for the webhook request.
Show Sub-Attributes arrow
param_name
string
param_value
string
user_defined_format_name
string
Name of the user-defined format. Max-len [100000]
user_defined_format_value
string
Value of the user-defined format. Max-len [100000]
secret
string
Secret key for webhook signature verification. Min-len [12], Max-len [50], alphanumeric only.
body_type
string
Content type of the request body.
raw_data
string
Raw data payload for the webhook. Max-len [100000]
form_data
array
Form data parameters.
Show Sub-Attributes arrow
param_name
string
param_value
string
query_parameters
array
Query string parameters for the webhook URL.
Show Sub-Attributes arrow
param_name
string
param_value
string
events
array
List of events that trigger this webhook.
is_new_response_format
boolean
Whether to use the new response format.
placeholder
string
Placeholder for the webhook.
is_hidden
boolean
Whether the webhook is hidden.
lock_type
string
Type of lock. Allowed Values: error, none
lock_reason
string
Reason for locking the webhook. Max-len [255]

Path Parameters

webhook_id
string
(Required)
Unique identifier of the webhook.

Query Parameters

organization_id
string
(Required)
ID of the organization.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/settings/webhooks/460000000040001?organization_id=10234695" type: PUT headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/settings/webhooks/460000000040001?organization_id=10234695") .put(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'PUT', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/books/v3/settings/webhooks/460000000040001?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("PUT", "/books/v3/settings/webhooks/460000000040001?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PUT", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/settings/webhooks/460000000040001?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request PUT \ --url 'https://www.zohoapis.com/books/v3/settings/webhooks/460000000040001?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "entity": "invoice", "webhook_name": "Invoice Webhook", "description": "string", "method": "POST", "url": "https://example.com/webhook", "entity_parameters": [ { "param_name": "string", "param_value": "string" } ], "additional_parameters": [ { "param_name": "string", "param_value": "string" } ], "headers": [ { "param_name": "string", "param_value": "string" } ], "user_defined_format_name": "string", "user_defined_format_value": "string", "secret": "string", "body_type": "string", "raw_data": "string", "form_data": [ { "param_name": "string", "param_value": "string" } ], "query_parameters": [ { "param_name": "string", "param_value": "string" } ], "connection_link_name": "string", "events": [ "string" ], "is_new_response_format": true, "placeholder": "string", "is_hidden": true, "lock_type": "string", "lock_reason": "string" }

Response Example

{ "code": 0, "message": "success", "webhook": { "webhook_id": "460000000040001", "webhook_name": "string", "placeholder": "string", "description": "string", "url": "string", "secret": "string", "entity": "string", "method": "string", "entity_parameters": [ { "param_name": "string", "param_value": "string" } ], "additional_parameters": [ { "param_name": "string", "param_value": "string" } ], "headers": [ { "param_name": "string", "param_value": "string" } ], "body_type": "string", "raw_data": "string", "form_data": [ { "param_name": "string", "param_value": "string" } ], "query_parameters": [ { "param_name": "string", "param_value": "string" } ], "user_defined_format_name": "string", "user_defined_format_value": "string", "connection_link_name": "string", "lock_type": "string", "lock_reason": "string", "is_new_response_format": true } }

Get a webhook

Get the details of a specific webhook configuration.
OAuth Scope : ZohoBooks.settings.READ

Path Parameters

webhook_id
string
(Required)
Unique identifier of the webhook.

Query Parameters

organization_id
string
(Required)
ID of the organization.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/settings/webhooks/460000000040001?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/settings/webhooks/460000000040001?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/books/v3/settings/webhooks/460000000040001?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/books/v3/settings/webhooks/460000000040001?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/settings/webhooks/460000000040001?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/books/v3/settings/webhooks/460000000040001?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "webhook": { "webhook_id": "460000000040001", "webhook_name": "string", "placeholder": "string", "description": "string", "url": "string", "secret": "string", "entity": "string", "method": "string", "entity_parameters": [ { "param_name": "string", "param_value": "string" } ], "additional_parameters": [ { "param_name": "string", "param_value": "string" } ], "headers": [ { "param_name": "string", "param_value": "string" } ], "body_type": "string", "raw_data": "string", "form_data": [ { "param_name": "string", "param_value": "string" } ], "query_parameters": [ { "param_name": "string", "param_value": "string" } ], "user_defined_format_name": "string", "user_defined_format_value": "string", "connection_link_name": "string", "lock_type": "string", "lock_reason": "string", "is_new_response_format": true } }

Delete a webhook

Delete an existing webhook configuration.
OAuth Scope : ZohoBooks.settings.DELETE

Path Parameters

webhook_id
string
(Required)
Unique identifier of the webhook.

Query Parameters

organization_id
string
(Required)
ID of the organization.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/settings/webhooks/460000000040001?organization_id=10234695" type: DELETE headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/settings/webhooks/460000000040001?organization_id=10234695") .delete(null) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'DELETE', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/books/v3/settings/webhooks/460000000040001?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("DELETE", "/books/v3/settings/webhooks/460000000040001?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "DELETE", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/settings/webhooks/460000000040001?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request DELETE \ --url 'https://www.zohoapis.com/books/v3/settings/webhooks/460000000040001?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success" }

Get webhook edit page data

Get the data needed to render the webhook edit page, including entities, fields, and connection link names.
OAuth Scope : ZohoBooks.settings.READ

Query Parameters

organization_id
string
(Required)
ID of the organization.
entity
string
The entity type for the webhook.
webhook_id
long
ID of the webhook to edit.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/settings/webhooks/editpage?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/settings/webhooks/editpage?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/books/v3/settings/webhooks/editpage?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/books/v3/settings/webhooks/editpage?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/settings/webhooks/editpage?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/books/v3/settings/webhooks/editpage?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "entities": [ {...}, {...}, {...} ], "entity_fields": [ {...} ], "connection_link_names": [ {...} ], "webhook": { "webhook_id": "460000000040001", "webhook_name": "string", "placeholder": "string", "description": "string", "url": "string", "secret": "string", "entity": "string", "method": "string", "entity_parameters": [ { "param_name": "string", "param_value": "string" } ], "additional_parameters": [ { "param_name": "string", "param_value": "string" } ], "headers": [ { "param_name": "string", "param_value": "string" } ], "body_type": "string", "raw_data": "string", "form_data": [ { "param_name": "string", "param_value": "string" } ], "query_parameters": [ { "param_name": "string", "param_value": "string" } ], "user_defined_format_name": "string", "user_defined_format_value": "string", "connection_link_name": "string", "lock_type": "string", "lock_reason": "string", "is_new_response_format": true } }

List webhook execution histories

Get a list of webhook execution history records.
OAuth Scope : ZohoBooks.settings.READ

Query Parameters

organization_id
string
(Required)
ID of the organization.
filter_by
string
Filter webhook histories by entity type.
webhook_id
long
Filter histories by webhook ID.
entity_id
long
Filter histories by entity ID.
from_date
string
Start date for date range filter (yyyy-MM-dd).
to_date
string
End date for date range filter (yyyy-MM-dd).
start_time
string
Start time for time range filter.
end_time
string
End time for time range filter.
sort_column
string
Sort histories by column. Allowed Values: event_time, event_id, notified_time
page
integer
Page number to be fetched. Default value is 1.
per_page
integer
Number of records to be fetched per page. Default value is 200.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/settings/webhooks/histories?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/settings/webhooks/histories?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/books/v3/settings/webhooks/histories?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/books/v3/settings/webhooks/histories?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/settings/webhooks/histories?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/books/v3/settings/webhooks/histories?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "histories": [ { "history_id": "string", "webhook_url_id": "string", "webhook_name": "string", "entity_type": "string", "entity_id": "string", "entity_name": "string", "response_message": "string", "response_code": 0, "response_status": "string", "status": "string", "retry_count": 0, "last_execution_time": "string", "next_retry_time": "string", "history_time": "string", "webhook_url": "string" }, {...}, {...} ] }

Get a webhook history detail

Get the details of a specific webhook execution history entry.
OAuth Scope : ZohoBooks.settings.READ

Path Parameters

history_id
string
(Required)
Unique identifier of the webhook history entry.

Query Parameters

organization_id
string
(Required)
ID of the organization.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/settings/webhooks/histories/460000000045001?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/settings/webhooks/histories/460000000045001?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/books/v3/settings/webhooks/histories/460000000045001?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/books/v3/settings/webhooks/histories/460000000045001?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/settings/webhooks/histories/460000000045001?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/books/v3/settings/webhooks/histories/460000000045001?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "history": { "history_id": "string", "entity": "string", "entity_type": "string", "url_value": "string", "response_message": "string", "response_headers": "string", "response_status": "string", "status": "string", "entity_id": "string", "entity_details": {...}, "webhook_url_id": "string", "retry_count": 0, "last_execution_time": "string", "next_retry_time": "string", "webhook_name": "string", "response_code": 0, "history_time": "string", "workflow_id": "string", "request_method": "string", "request_headers": "string", "versions": [ { "history_version_id": "string", "response_message": "string", "response_headers": "string", "response_code": 0, "response_status": "string", "status": "string", "history_time": "string" } ] } }

Resend a webhook

Resend a failed webhook execution.
OAuth Scope : ZohoBooks.settings.CREATE

Path Parameters

history_id
string
(Required)
Unique identifier of the webhook history entry.

Query Parameters

organization_id
string
(Required)
ID of the organization.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/settings/webhooks/histories/460000000045001/resend?organization_id=10234695" type: POST headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/settings/webhooks/histories/460000000045001/resend?organization_id=10234695") .post(null) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/books/v3/settings/webhooks/histories/460000000045001/resend?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("POST", "/books/v3/settings/webhooks/histories/460000000045001/resend?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/settings/webhooks/histories/460000000045001/resend?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request POST \ --url 'https://www.zohoapis.com/books/v3/settings/webhooks/histories/460000000045001/resend?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success" }

Bulk resend webhooks

Resend multiple failed webhook executions at once.
OAuth Scope : ZohoBooks.settings.CREATE

Query Parameters

organization_id
string
(Required)
ID of the organization.
history_ids
string
(Required)
Comma-separated list of webhook history IDs to resend. Maximum 10 IDs.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/settings/webhooks/histories/bulkresend?organization_id=10234695&history_ids=SOME_STRING_VALUE" type: POST headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/settings/webhooks/histories/bulkresend?organization_id=10234695&history_ids=SOME_STRING_VALUE") .post(null) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/books/v3/settings/webhooks/histories/bulkresend?organization_id=10234695&history_ids=SOME_STRING_VALUE', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("POST", "/books/v3/settings/webhooks/histories/bulkresend?organization_id=10234695&history_ids=SOME_STRING_VALUE", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/settings/webhooks/histories/bulkresend?organization_id=10234695&history_ids=SOME_STRING_VALUE", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request POST \ --url 'https://www.zohoapis.com/books/v3/settings/webhooks/histories/bulkresend?organization_id=10234695&history_ids=SOME_STRING_VALUE' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success" }