Update a webhook subscription
package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://api.kirimdev.com/v1/webhook_subscriptions/wbs_01HXYZABCDEFGHJKMNPQRSTVWX"
payload := strings.NewReader("{ \"url\": \"https://example.com\", \"description\": \"example\", \"events\": [ \"message.received\" ], \"status\": \"active\", \"phone_number_ids\": [ \"example\" ] }")
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(res) fmt.Println(string(body))
}const url = 'https://api.kirimdev.com/v1/webhook_subscriptions/wbs_01HXYZABCDEFGHJKMNPQRSTVWX';const options = { method: 'PATCH', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"url":"https://example.com","description":"example","events":["message.received"],"status":"active","phone_number_ids":["example"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}use std::str::FromStr;use serde_json::json;use reqwest;
#[tokio::main]pub async fn main() { let url = "https://api.kirimdev.com/v1/webhook_subscriptions/wbs_01HXYZABCDEFGHJKMNPQRSTVWX";
let payload = json!({ "url": "https://example.com", "description": "example", "events": ("message.received"), "status": "active", "phone_number_ids": ("example") });
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("Authorization", "Bearer <token>".parse().unwrap()); headers.insert("Content-Type", "application/json".parse().unwrap());
let client = reqwest::Client::new(); let response = client.request(reqwest::Method::from_str("PATCH").unwrap(), url) .headers(headers) .json(&payload) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request PATCH \ --url https://api.kirimdev.com/v1/webhook_subscriptions/wbs_01HXYZABCDEFGHJKMNPQRSTVWX \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "url": "https://example.com", "description": "example", "events": [ "message.received" ], "status": "active", "phone_number_ids": [ "example" ] }'Toggle status (active/paused), update URL/events/description.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Public Kirimdev webhook-subscription ID.
Example
wbs_01HXYZABCDEFGHJKMNPQRSTVWXPublic Kirimdev webhook-subscription ID.
Request Body
Section titled “Request Body ”object
Responses
Section titled “ Responses ”Updated subscription
object
object
Optional whitelist of Meta business_phone_number_id values. When null (default), the subscription fires for events from every WhatsApp account in the organization. When an array, only for events originating from these accounts. Org-level events (e.g. customer.*) IGNORE this filter and always fire.
Why the subscription is CURRENTLY disabled. Cleared when you re-enable it.
When the subscription last entered the disabled state. Never cleared, so it still reports a past auto-disable after you have re-enabled.
object
Unique request identifier to include when contacting support.
Example
{ "data": { "id": "wbs_01HXYZABCDEFGHJKMNPQRSTVWX", "object": "webhook_subscription", "phone_number_ids": [ "1234567890" ], "status": "active", "secrets": [ { "id": "sec_01HXYZABCDEFGHJKMNPQRSTVWX" } ] }, "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX"}Validation failure
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
A field value is invalid.
{ "error": { "type": "invalid_request_error", "code": "invalid_field_value", "message": "A field value is invalid.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Authentication failure
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
The provided API key is invalid.
{ "error": { "type": "authentication_error", "code": "invalid_api_key", "message": "The provided API key is invalid.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Resource not found
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
Resource not found.
{ "error": { "type": "not_found", "code": "resource_not_found", "message": "Resource not found.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Rate limit exceeded
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
Rate limit exceeded.
{ "error": { "type": "rate_limit_error", "code": "rate_limit_exceeded", "message": "Rate limit exceeded.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Internal server error
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
An unexpected error occurred.
{ "error": { "type": "api_error", "code": "internal_error", "message": "An unexpected error occurred.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}