Skip to main content
Update webhook
curl --request PATCH \
  --url https://customer-api.fortary.io/v1/webhooks/{webhookId}
import requests

url = "https://customer-api.fortary.io/v1/webhooks/{webhookId}"

response = requests.patch(url)

print(response.text)
const options = {method: 'PATCH'};

fetch('https://customer-api.fortary.io/v1/webhooks/{webhookId}', 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://customer-api.fortary.io/v1/webhooks/{webhookId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://customer-api.fortary.io/v1/webhooks/{webhookId}"

req, _ := http.NewRequest("PATCH", url, nil)

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.patch("https://customer-api.fortary.io/v1/webhooks/{webhookId}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://customer-api.fortary.io/v1/webhooks/{webhookId}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)

response = http.request(request)
puts response.read_body
Pre-release — contact your Fortary account team for access.
Illustrative reference. These examples show the shape of the API and are provided for early evaluation while it is still being finalized. Field names and response details may change before the API is released. A complete reference, generated directly from the live API, will replace these examples once it is available.
Updates a webhook. All fields are optional; at least one is required. Requires the webhook:manage scope.

Request

curl -X PATCH https://customer-api.fortary.io/v1/webhooks/whs_9b2f4e1a7c \
  -H "Authorization: Bearer fort_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/fortary/webhooks-v2",
    "eventKinds": ["transaction.confirmed"],
    "status": "ENABLED"
  }'
  • url — new HTTPS endpoint.
  • eventKinds — replaces the delivered event kinds.
  • vaultIds — replaces the vault allowlist; null clears it (all vaults).
  • statusENABLED or DISABLED. Re-enabling resets the failure counter.
  • description — new label, or null to clear it.
entityIds and notificationEmail are set at creation and cannot be changed. Changes take effect on the next delivery attempt — including deliveries already retrying. Disabling cancels in-flight deliveries at their next attempt. A deleted webhook cannot be updated.

Response

The updated webhook — fields as in Get webhook.
{
  "id": "whs_9b2f4e1a7c",
  "url": "https://example.com/fortary/webhooks-v2",
  "eventKinds": ["transaction.confirmed"],
  "status": "ENABLED",
  "disabledReason": null,
  "consecutiveExhaustedCount": 0,
  "updatedAt": "2026-06-11T08:15:20Z"
}
Errors follow the standard error envelope.