> ## Documentation Index
> Fetch the complete documentation index at: https://docs.discord.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

> Send messages into Discord channels or receive event notifications from Discord delivered to your app over HTTP.

export const InboxIcon = props => <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="currentColor" fill-rule="evenodd" d="M5 2a3 3 0 0 0-3 3v14a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V5a3 3 0 0 0-3-3H5ZM4 5.5C4 4.67 4.67 4 5.5 4h13c.83 0 1.5.67 1.5 1.5v6c0 .83-.67 1.5-1.5 1.5h-2.65c-.5 0-.85.5-.85 1a3 3 0 1 1-6 0c0-.5-.35-1-.85-1H5.5A1.5 1.5 0 0 1 4 11.5v-6Z" clip-rule="evenodd" /></svg>;

Discord supports two distinct types of webhooks that work in opposite directions: **incoming webhooks** for posting messages into Discord, and **webhook events** for receiving notifications from Discord when something happens in your app.

## Incoming Webhooks

Incoming webhooks are HTTP endpoints tied to a specific Discord channel. You POST a payload to the URL and the message appears in that channel. No bot or persistent connection required. See the [Webhook Resource](/developers/resources/webhook) for the full API reference.

This makes them ideal for one-way integrations where an external system needs to push data into Discord:

* CI/CD pipelines posting build results or deployment notifications
* Monitoring systems alerting on errors or anomalies
* External apps posting updates (GitHub commits, Jira tickets, form submissions)
* Scheduled digests or reports from cron jobs

If you need your app to also listen to events or respond to users, [building a Discord bot](/developers/platform/bots) is the better fit.

## Webhook Events

Webhook events work in the opposite direction. Discord POSTs to a public URL on your server when specific events occur in your app. Instead of your app polling the API, Discord pushes the notification to you.

You subscribe to the specific event types you care about through the Developer Portal, and Discord delivers them as signed HTTP POST requests to your endpoint. Your endpoint must validate Discord's request signatures and acknowledge events promptly.

Events you can subscribe to include:

* Application authorized or de-authorized by a user
* Entitlement created (a user purchased something from your app)
* Quest enrollment and completion events

For the full list of subscribable events and setup instructions, see the [Webhook Events](/developers/events/webhook-events) documentation.

## Further Reading

<CardGroup cols={2}>
  <Card title="Webhook Resource Reference" href="/developers/resources/webhook" icon={<InboxIcon />} horizontal>
    Full API reference for incoming webhook endpoints and objects.
  </Card>

  <Card title="Webhook Events" href="/developers/events/webhook-events" icon={<InboxIcon />} horizontal>
    Subscribable event types and how to set up your endpoint to receive them.
  </Card>
</CardGroup>
