Webhooks created through REST API not appearing in Jira admin panel [PHP]

I have successfully created webhooks using the REST API and can retrieve them through API calls, but they don’t show up in the Jira administration dashboard. The webhook creation seems to work fine and returns success codes, but I can’t see them in the UI and they don’t seem to trigger when I update issues.

Here’s my PHP implementation:

<?php
$apiEndpoint = 'https://api.atlassian.com/ex/jira/'.$siteId.'/rest/api/3/webhook';
$payload = <<<JSON
{
  "url": "https://webhook.site/a1b2c3d4-e5f6-789a-bcde-f012345678gh",
  "webhooks": [
    {
      "events": [
        "jira:issue_updated"
      ],
      "fieldIdsFilter": [
        "summary"
      ],
      "jqlFilter": "project = MYPROJECT"
    }
  ]
}
JSON;

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $apiEndpoint);
curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_HTTPHEADER, [
    'Accept: application/json',
    'Content-Type: application/json',
    'Authorization: Bearer ' . $tokenData['access_token']
]);

$response = curl_exec($curl);
$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

if (curl_errno($curl)) {
    echo 'cURL Error: ' . curl_error($curl);
}
curl_close($curl);

echo 'Status: ' . $statusCode . '<br>Result: ' . $response;
?>

Why can’t I see these webhooks in the Jira admin section even though the API shows they exist? Also, when I modify issues that should trigger the webhook, no payload is sent to my endpoint. Any ideas what might be wrong?

This is endpoint confusion - you’re hitting the Connect app webhook endpoint but don’t have a Connect app registered. Jira dumps these webhooks into a separate namespace that’s completely isolated from the system webhooks you see in admin. Since there’s no Connect app to handle the events, they never fire even though they exist in the API. I hit this exact issue last year migrating from the old webhook system. Fixed it by switching to proper system webhook registration through admin or using a different API approach. Your webhooks are orphaned - they’re waiting for a Connect app that doesn’t exist. Try registering webhooks directly through Jira admin instead. If you need programmatic creation, check out the system administration APIs (they need different auth scopes).

This issue arises from the distinction between Atlassian Connect webhooks and standard Jira REST API webhooks. The endpoint you are using is designed for app-specific webhooks related to Connect apps, which do not appear in the Jira admin panel. They can only be accessed through the API, and proper context for the Connect app is necessary for them to function correctly. If you want the webhooks to show in the admin panel, you will need to utilize the system webhook endpoints or create an Atlassian Connect app with the appropriate permissions and declarations. For standalone integrations, consider using the system webhook creation methods, but note that they have different authentication and permission requirements.

you’re hitting the wrong endpoint. that api/3/webhook is only for connect apps - that’s why they don’t show up in admin. use the system webhook endpoints instead, or register as a proper atlassian connect app first. also double-check that your webhook url is publicly accessible and actually responding.