Webhooks enable your applications to receive real-time notifications when events occur in your source code repositories. This eliminates the need for polling and ensures your systems stay synchronized with code changes across all integrated platforms.
Unizo normalizes webhook events from GitHub, GitLab, Bitbucket, Azure DevOps, and other SCM providers into a consistent format. This means you write your webhook handler once and it works with all supported platforms.
Webhook Configuration
To set up webhooks for your integration, visit the Unizo Console Webhooks section for step-by-step configuration guide.
These are the event types currently supported by Unizo's SCM webhooks. The list keeps growing as we add support for more events across different platforms.
Event Type
Description
Trigger Conditions
organization:renamed
Event broadcast when the organization's name was changed
Organization Renamed
organization:deleted
Event broadcast when an organization is disconnected
Organization Deleted
repository:created
Event broadcast when a new repository is created
Repository Created
repository:renamed
Event broadcast when a repository is renamed
Repository Renamed
repository:deleted
Event broadcast when a repository is deleted
Repository Deleted
branch:created
A new branch has been created
Branch creation from UI, API, or push
branch:deleted
A branch has been deleted
Branch deletion from UI, API, or after merge
commit:created
Event broadcast when a new commit is pushed to a branch
Commit Created
commit:updated
Event broadcast when a commit is updated
Commit Updated
Webhook Security
All webhooks from Unizo include security headers to verify authenticity:
Headers
Header
Description
x-unizo-event-type
The type of event that triggered the webhook
x-unizo-signature
HMAC SHA-256 signature for request validation
x-unizo-timestamp
Unix timestamp when the event was sent
x-unizo-delivery-id
Unique identifier for this webhook delivery
Signature Verification
Verify the authenticity of incoming webhooks using HMAC SHA-256:
Event broadcast when the organization's name was changed
POSThttps://api.yourapp.com/webhooks/unizo/scm
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/scm - Route by category (scm, ticketing, etc.) for microservices architecture
Event broadcast when an organization is disconnected
POSThttps://api.yourapp.com/webhooks/unizo/scm
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/scm - Route by category (scm, ticketing, etc.) for microservices architecture
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/scm - Route by category (scm, ticketing, etc.) for microservices architecture
Headers
Name
Type
Required
Description
x-unizo-event-type
string
Yes
The type of event that was triggered
x-unizo-signature
string
Yes
HMAC SHA-256 signature
Request Body Schema
Property
Type
Required
Description
type
string
Yes
Event type identifier
version
string
Yes
Webhook payload version
contentType
string
Yes
Branch name/identifier
repository
string
Yes
Repository name
repository.id
string
Yes
Repository ID
repository.key
string
Yes
Repository key
repository.state
string
Yes
Repository state
repository.createdDateTime
string
Yes
Repository createdDateTime
repository.url
string
Yes
Repository url
integration
string
Yes
Integration name
integration.type
string
Yes
Integration type
integration.id
string
Yes
Integration ID
integration.name
string
Yes
Integration display name
Example Payload
{
"type":"repository:created",
"version":"1.0.0",
"contentType":"application/json",
"repository":{
"id":"repo-enterprise-sec-9971",
"key":"cloud-compliance-engine",
"state":"active",
"summary":"Infrastructure-as-Code (IaC) policies and scanning tools for cloud compliance",
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/scm - Route by category (scm, ticketing, etc.) for microservices architecture
Headers
Name
Type
Required
Description
x-unizo-event-type
string
Yes
The type of event that was triggered
x-unizo-signature
string
Yes
HMAC SHA-256 signature
Request Body Schema
Property
Type
Required
Description
type
string
Yes
Event type identifier
version
string
Yes
Webhook payload version
contentType
string
Yes
Branch name/identifier
repository
string
Yes
Repository name
repository.id
string
Yes
Repository ID
repository.key
string
Yes
Repository key
repository.createdDateTime
string
Yes
Repository createdDateTime
repository.from
string
Yes
Source Repository Name
repository.to
string
Yes
Target Repository Name
integration
string
Yes
Integration name
integration.type
string
Yes
Integration type
integration.id
string
Yes
Integration ID
integration.name
string
Yes
Integration display name
Example Payload
{
"type":"repository:renamed",
"version":"1.0.0",
"contentType":"application/json",
"repository":{
"id":"978118703",
"key":"Demo-testing",
"createdDateTime":"2025-05-05T13:59:18Z",
"from":"Demo-testing1",
"to":"Demo-testing"
},
"integration":{
"type":"SCM",
"id":"14616a42-2a4a-42b2-b167-030908d6fc17",
"name":"Gi_Secu_1746452195518"
}
}
Response
200 OK
Webhook processed successfully
400 Bad Request
Invalid webhook payload
401 Unauthorized
Invalid or missing signature
Repository Deleted
repository:deleted
Event broadcast when a new repository is renamed
POSThttps://api.yourapp.com/webhooks/unizo/scm
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/scm - Route by category (scm, ticketing, etc.) for microservices architecture
Triggered when a new branch is created in a repository
POSThttps://api.yourapp.com/webhooks/unizo/scm
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/scm - Route by category (scm, ticketing, etc.) for microservices architecture
Headers
Name
Type
Required
Description
x-unizo-event-type
string
Yes
The type of event that was triggered
x-unizo-signature
string
Yes
HMAC SHA-256 signature
Request Body Schema
Property
Type
Required
Description
type
string
Yes
Event type identifier
version
string
Yes
Webhook payload version
contentType
string
Yes
Branch name/identifier
branch
string
Yes
Branch name/identifier
branch.id
string
Yes
Branch Id
branch.key
string
Yes
Branch Key
integration
string
Yes
Integration name
integration.type
string
Yes
Integration type
integration.id
string
Yes
Integration id
integration.name
string
Yes
Integration display name
Example Payload
{
"type":"branch:created",
"version":"1.0.0",
"contentType":"application/json",
"branch":{
"id":"Shruthi089-patch-1",
"key":"Shruthi089-patch-1"
},
"integration":{
"type":"SCM",
"id":"14616a42-2a4a-42b2-b167-030908d6fc17",
"name":"Gi_Secu_1746452195518"
}
}
Response
200 OK
Webhook processed successfully
400 Bad Request
Invalid webhook payload
401 Unauthorized
Invalid or missing signature
Branch Deleted
branch:deleted
Triggered when a branch is deleted from a repository
POSThttps://api.yourapp.com/webhooks/unizo/scm
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/scm - Route by category (scm, ticketing, etc.) for microservices architecture
Event broadcast when a new commit is pushed to a branch
POSThttps://api.yourapp.com/webhooks/unizo/scm
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/scm - Route by category (scm, ticketing, etc.) for microservices architecture
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/scm - Route by category (scm, ticketing, etc.) for microservices architecture
Headers
Name
Type
Required
Description
x-unizo-event-type
string
Yes
The type of event that was triggered
x-unizo-signature
string
Yes
HMAC SHA-256 signature
Request Body Schema
Property
Type
Required
Description
type
string
Yes
Event type identifier
version
string
Yes
Webhook payload version
contentType
string
Yes
Branch name/identifier
commit
string
Yes
Array of commit objects
commit.id
string
Yes
Commit Id
commit.message
string
Yes
Commit message
commit.author
string
Yes
Commit author details
commit.author.name
string
Yes
Author name
commit.author.email
string
Yes
Author email
committer
string
Yes
Committer
committer.name
string
Yes
Committer name
committer.email
string
Yes
Committer email
createdDateTime
string
Yes
Committer created Timestamp
url
string
Yes
URL
repository
string
Yes
Repository name
repository.id
string
Yes
Repository ID
repository.key
string
Yes
Repository key
repository.url
string
Yes
Repository url
branch
string
Yes
Branch name/identifier
branch.id
string
Yes
Branch Id
branch.key
string
Yes
Branch Key
integration
string
Yes
Integration name
integration.type
string
Yes
Integration type
integration.id
string
Yes
Integration id
integration.name
string
Yes
Integration display name
Example Payload
{
"type":"commit:updated",
"version":"1.0.0",
"contentType":"application/json",
"commit":{
"id":"a1b2c3d4e5f6g7h8i9j0k1!@#",
"message":"Update: Add more tests for user authentication",