Update webhook
curl --request PATCH \
--url https://api.sendo.dev/v1/webhook/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"url": "<string>",
"eventTypes": [
"<string>"
],
"numbers": [
"<string>"
]
}
'import requests
url = "https://api.sendo.dev/v1/webhook/{id}"
payload = {
"name": "<string>",
"url": "<string>",
"eventTypes": ["<string>"],
"numbers": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
url: '<string>',
eventTypes: ['<string>'],
numbers: ['<string>']
})
};
fetch('https://api.sendo.dev/v1/webhook/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sendo.dev/v1/webhook/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'url' => '<string>',
'eventTypes' => [
'<string>'
],
'numbers' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sendo.dev/v1/webhook/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"eventTypes\": [\n \"<string>\"\n ],\n \"numbers\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.sendo.dev/v1/webhook/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"eventTypes\": [\n \"<string>\"\n ],\n \"numbers\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sendo.dev/v1/webhook/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"eventTypes\": [\n \"<string>\"\n ],\n \"numbers\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"webhook": {
"id": "d3392dbf-ae4b-43b9-9b50-dcafa5c7h4mn",
"createdAt": "2023-12-31T03:07:35.826Z",
"name": "Event Service",
"url": "https://website.com/webhook",
"campaignId": "g1tkV7Eq",
"signature": "aVWS7HTLR9xxMkdE",
"eventTypes": [
"message.incoming",
"message.status"
],
"numbers": [
"+14159436397"
]
}
}
{
"success": false,
"error": "Webhook not found"
}
Webhook
Update webhook
Update webhook for a campaign
PATCH
/
v1
/
webhook
/
{id}
Update webhook
curl --request PATCH \
--url https://api.sendo.dev/v1/webhook/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"url": "<string>",
"eventTypes": [
"<string>"
],
"numbers": [
"<string>"
]
}
'import requests
url = "https://api.sendo.dev/v1/webhook/{id}"
payload = {
"name": "<string>",
"url": "<string>",
"eventTypes": ["<string>"],
"numbers": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
url: '<string>',
eventTypes: ['<string>'],
numbers: ['<string>']
})
};
fetch('https://api.sendo.dev/v1/webhook/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sendo.dev/v1/webhook/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'url' => '<string>',
'eventTypes' => [
'<string>'
],
'numbers' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sendo.dev/v1/webhook/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"eventTypes\": [\n \"<string>\"\n ],\n \"numbers\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.sendo.dev/v1/webhook/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"eventTypes\": [\n \"<string>\"\n ],\n \"numbers\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sendo.dev/v1/webhook/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"eventTypes\": [\n \"<string>\"\n ],\n \"numbers\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"webhook": {
"id": "d3392dbf-ae4b-43b9-9b50-dcafa5c7h4mn",
"createdAt": "2023-12-31T03:07:35.826Z",
"name": "Event Service",
"url": "https://website.com/webhook",
"campaignId": "g1tkV7Eq",
"signature": "aVWS7HTLR9xxMkdE",
"eventTypes": [
"message.incoming",
"message.status"
],
"numbers": [
"+14159436397"
]
}
}
{
"success": false,
"error": "Webhook not found"
}
Parameters
string
required
The ID of the webhook to update.
Body
string
Updated name for the webhook.
string
Updated URL for the webhook.
string[]
The webhook events that you want to receive. Options are
message.incoming, message.status, or recipient.optout (read more).string[]
Array of phone numbers to receive events for in . If none are provided, webhook will default to all numbers assigned to the campaign.
Response
boolean
Whether the update succeeded.
object
The details of the webhook.
Show webhook fields
Show webhook fields
string
The ID of the webhook.
timestamp
The time the webhook was created
string
The name of the webhook (optional).
string
The URL of the webhook.
string
The campaign ID for the webhook.
string
The signature sent with events. (read more)
string
The events the webhook will receive. (read more)
string[]
The phone numbers the webhook is subscribed to.
{
"success": true,
"webhook": {
"id": "d3392dbf-ae4b-43b9-9b50-dcafa5c7h4mn",
"createdAt": "2023-12-31T03:07:35.826Z",
"name": "Event Service",
"url": "https://website.com/webhook",
"campaignId": "g1tkV7Eq",
"signature": "aVWS7HTLR9xxMkdE",
"eventTypes": [
"message.incoming",
"message.status"
],
"numbers": [
"+14159436397"
]
}
}
{
"success": false,
"error": "Webhook not found"
}
⌘I

