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

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

response = requests.get(url)

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

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 => "GET",
]);

$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("GET", url, nil)

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

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

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("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::Get.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.
Retrieves a single webhook with its health counters. Requires the webhook:read scope.

Request

curl https://customer-api.fortary.io/v1/webhooks/whs_9b2f4e1a7c \
  -H "Authorization: Bearer fort_..."

Response

{
  "id": "whs_9b2f4e1a7c",
  "entityIds": ["entity_7c1e4a0c2f"],
  "url": "https://example.com/fortary/webhooks",
  "notificationEmail": "[email protected]",
  "eventKinds": ["transaction.confirmed", "transaction.failed"],
  "vaultIds": null,
  "status": "ENABLED",
  "disabledReason": null,
  "consecutiveExhaustedCount": 0,
  "lastDeliveredAt": "2026-06-10T14:23:07Z",
  "description": "Treasury reconciliation",
  "createdAt": "2026-05-02T09:12:44Z",
  "updatedAt": "2026-06-01T16:40:03Z"
}
  • id — the webhook’s opaque identifier (whs_…).
  • entityIds — the entities whose events this webhook receives.
  • url — the HTTPS endpoint deliveries are sent to.
  • notificationEmail — recipient of operational notices (for example an automatic disable).
  • eventKinds — the exact event kinds delivered.
  • vaultIds — vault allowlist for vault-scoped events; null means all vaults.
  • statusENABLED or DISABLED.
  • disabledReasonUSER or AUTO_FAILURE while disabled; null otherwise.
  • consecutiveExhaustedCount — deliveries in a row that exhausted their retry budget; resets to 0 on any successful delivery.
  • lastDeliveredAt — the most recent successful delivery, or null.
  • description — the free-text label, or null.
The signing secret is never included — it is only returned at creation and rotation. A webhook outside the credential’s access returns 404, not 403 — see Authorization. Errors follow the standard error envelope.