Notifications / Slack
Slack Notifications
Send webhook alerts straight into your Slack channels. Use it for production alerts, staging noise, or a single "webhooks" channel your team keeps open all day.
Setup
Create a Slack App
Go to api.slack.com/apps and click Create New App.
In the dialog that appears, select From scratch.
- • App Name:
Paggio(or anything you like) - • Pick a workspace: choose your Slack workspace from the dropdown
Click Create App. You'll land on your new app's settings page.
Enable Incoming Webhooks
In your new app's settings page, find Incoming Webhooks in the left sidebar under Features.
Click the toggle next to Activate Incoming Webhooks to turn it ON. The toggle should turn green.
Once enabled, the page will expand to show options and a section titled Webhook URLs for Your Workspace.
Add Webhook to Workspace
Scroll down to Webhook URLs for Your Workspace and click Add New Webhook to Workspace.
You'll be redirected to an OAuth screen asking: "Where should [your app name] post?"
Select the channel you want notifications in, for example:
- • #general — for team-wide visibility
- • #webhooks — recommended; create a dedicated channel
- • Any private channel you have access to
Click Allow. You'll be redirected back to the app settings page and the new webhook will appear under Webhook URLs for Your Workspace.
Copy the Webhook URL
Back on the Incoming Webhooks page, scroll down to Webhook URLs for Your Workspace.
You'll see a URL that looks like:
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXXClick Copy next to the URL.
Add to Paggio
Go to paggio.dev/dashboard → Settings → Notifications.
In the Slack section:
- • Toggle Enable Slack notifications to ON.
- • Paste your webhook URL into the Slack Webhook URL field.
- • Click Save.
Then select your notification triggers:
- • ✅ Failed — recommended, get pinged when something breaks.
- • ☐ Delivered — optional, can be noisy at high volume.
- • ☐ Captured — for endpoints with no destination URL yet.
Test it
Send a test webhook to any of your Paggio endpoints:
curl -X POST https://paggio.dev/api/webhook/YOUR-SLUG \
-H "Content-Type: application/json" \
-H "stripe-signature: t=1234,v1=test" \
-d '{"type":"payment_intent.succeeded","amount":9900}'Within seconds you should see a message in your chosen Slack channel.
What the Slack message looks like
DELIVERED
┌─────────────────────────────────────┐ │ ✅ Webhook Delivered │ │ │ │ payment_intent.succeeded was │ │ successfully forwarded in 142ms │ │ │ │ Source Stripe │ │ Status Delivered │ │ Latency 142ms │ │ Endpoint stripe-prod │ │ Destination https://your-app.com/.. │ │ Event ID 550e8400-e29b-41d4... │ └─────────────────────────────────────┘ Paggio · Stripe · Today at 3:23 PM
FAILED
┌─────────────────────────────────────┐ │ ❌ Webhook Failed │ │ │ │ checkout.session.completed failed │ │ to forward after 30,000ms timeout │ │ │ │ Source Stripe │ │ Status Failed │ │ Latency 30,000ms │ │ Endpoint stripe-prod │ │ Destination https://your-app.com/.. │ │ Event ID 7f3a9c12-b4e1-42d8... │ └─────────────────────────────────────┘ Paggio · Stripe · Today at 3:25 PM
Troubleshooting
| Problem | Fix |
|---|---|
| No message received | Check that the webhook URL is saved correctly in Paggio settings and that notifications for the relevant event type (failed / delivered / captured) are enabled. |
| "channel_not_found" error | Reinstall the Slack app to your workspace and ensure the webhook is created for a channel that still exists and that the app has permission to post there. |
| URL shows as invalid | Make sure the URL starts with https://hooks.slack.com and that there are no extra spaces or quotes when you paste it. |
| Notifications stopped working | Slack may have rotated or invalidated the webhook URL. Generate a new webhook in the Slack app settings and update it in Paggio's notification settings. |
| App not showing in workspace | Confirm you clicked Allow on the OAuth screen and that your workspace admin has permitted custom apps. If you still can't see it, ask an admin to install the app. |