# Webhooks

Webhooks allow your system to receive real-time updates about transaction status changes.

Instead of continuously polling the API, OMNO sends HTTP requests to your server when a transaction event occurs.

## Overview

Webhooks are configured per endpoint and can be tailored to send only the events you need.

Each webhook:

- is linked to a specific URL
- sends updates based on selected transaction events
- delivers payloads in JSON format


## How to Configure Webhooks

1. Log in to the OMNO Dashboard
2. Navigate to:
**Developers → Webhooks**
3. Click **Create Webhook**
4. Fill in the required fields:
  - **Name** – internal identifier
  - **Webhook URL** – endpoint where events will be sent
5. Select **Hook Type**:
  - Transaction
6. Select which transaction events you want to receive
7. Choose an authorization method (optional)
8. Click **Create**


## Transaction Events

Webhooks can be configured to trigger on specific transaction states.

You can subscribe only to the events relevant to your integration, such as:

- transaction creation
- processing updates
- successful completion
- failure or timeout
- refund-related updates


Each selected event will trigger a webhook request when the transaction reaches that state.

## Webhook Delivery

When an event occurs:

1. OMNO sends an HTTP POST request to your webhook URL
2. The request contains transaction data in JSON format
3. Your system should process the request and return a response


A successful response must return an HTTP 200 status code.

## Webhook Logs

In the OMNO Dashboard, you can monitor webhook activity.

The Webhooks section provides:

- full request payloads sent to your endpoint
- response data returned by your server
- delivery status for each attempt


This allows you to debug issues and verify integration behavior.

## Retry Policy

If a webhook delivery fails, OMNO will automatically retry sending the request.

Retries are triggered when:

- your endpoint does not respond
- a non-success HTTP status is returned


The retry mechanism ensures that temporary failures do not result in lost events.

## Best Practices

- Ensure your webhook endpoint is publicly accessible
- Always return HTTP 200 after successful processing
- Handle duplicate events safely (idempotency)
- Log incoming webhook requests for debugging
- Avoid long processing times in webhook handlers


## Next Steps

After configuring webhooks:

1. Trigger a test transaction
2. Verify webhook delivery in logs
3. Validate your system correctly processes events


Your integration is now able to receive real-time transaction updates.