Overview
IBM Cloud Event Notifications (EN) allows applications to publish events and fan them out to multiple channels such as email, webhooks, Slack, Microsoft Teams, and more.
This guide walks you through:
- Configuring Event Notifications in IBM Cloud
- Importing ready-to-use Postman collection & environment files
- Generating IAM tokens and publishing test events
- Delivering events to a webhook
- Troubleshooting common issues
1. Prerequisites
IBM Cloud account with Event Notifications instance provisioned
An IBM Cloud API Key
Postman installed
2) Open Postman → Import the files
Open Postman.
Click Import (top-left).
In the Import dialog choose Upload Files (or drag & drop).
Select both files:
IBM-EN-Collection.json
{
"info": {
"name": "IBM Event Notifications API",
"_postman_id": "ibm-en-collection-uuid",
"description": "Collection to fetch IAM token and publish events to IBM Cloud Event Notifications.",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Get IAM Token",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "grant_type",
"value": "urn:ibm:params:oauth:grant-type:apikey",
"type": "text"
},
{
"key": "apikey",
"value": "{{API_KEY}}",
"type": "text"
}
]
},
"url": {
"raw": "https://iam.cloud.ibm.com/identity/token",
"protocol": "https",
"host": ["iam", "cloud", "ibm", "com"],
"path": ["identity", "token"]
}
},
"response": [],
"event": [
{
"listen": "test",
"script": {
"exec": [
"let jsonData = pm.response.json();",
"if (jsonData.access_token) {",
" pm.environment.set(\"IAM_TOKEN\", jsonData.access_token);",
" console.log(\"IAM_TOKEN set successfully\");",
"} else {",
" console.log(\"Failed to get IAM token\");",
"}"
],
"type": "text/javascript"
}
}
]
},
{
"name": "Publish Event",
"request": {
"method": "POST",
"header": [
{
"key": "Authorization",
"value": "Bearer {{IAM_TOKEN}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"ibmenseverity\": \"info\",\n \"ibmensourceid\": \"my-custom-app\",\n \"ibmenfcmbody\": \"A test event from Postman\",\n \"type\": \"custom\",\n \"specversion\": \"1.0\",\n \"id\": \"test-001\",\n \"source\": \"postman-client\",\n \"time\": \"2025-09-06T10:00:00Z\",\n \"datacontenttype\": \"application/json\",\n \"data\": {\n \"message\": \"Testing Postman integration\",\n \"env\": \"dev\"\n }\n}"
},
"url": {
"raw": "https://{{EN_REGION}}.event-notifications.cloud.ibm.com/event-notifications/v1/instances/{{EN_INSTANCE_ID}}/notifications",
"protocol": "https",
"host": ["{{EN_REGION}}.event-notifications", "cloud", "ibm", "com"],
"path": ["event-notifications", "v1", "instances", "{{EN_INSTANCE_ID}}", "notifications"]
}
},
"response": []
}
]
}
IBM-EN-Environment.json
{
"id": "ibm-environment-uuid",
"name": "IBM Event Notifications",
"values": [
{
"key": "API_KEY",
"value": "<your_ibmcloud_api_key>",
"type": "default",
"enabled": true
},
{
"key": "EN_INSTANCE_ID",
"value": "<your_event_notifications_instance_guid>",
"type": "default",
"enabled": true
},
{
"key": "EN_REGION",
"value": "us-south",
"type": "default",
"enabled": true
},
{
"key": "IAM_TOKEN",
"value": "",
"type": "default",
"enabled": true
}
],
"_postman_variable_scope": "environment",
"_postman_exported_at": "2025-09-06T18:00:00.000Z",
"_postman_exported_using": "Postman/10.x"
}
3. Populate required environment variables
Open Postman and then Edit (or open Manage Environments → select the environment → Edit).
Change these values:
API_KEY → paste your IBM Cloud API key (the real API key)
EN_INSTANCE_ID → your Event Notifications instance GUID/CRN (exact value from console)
EN_REGION → e.g. us-south (the region where your EN instance runs)
Leave IAM_TOKEN empty — it will be filled automatically when you run the token request.
Save the environment.
4. Set Publish Event request details
Open Publish Event request.
Verify URL:
https://{{EN_REGION}}.event-notifications.cloud.ibm.com/event-notifications/v1/instances/{{EN_INSTANCE_ID}}/notifications

(The notifications path at the end is required.)
- In Authorization tab set Auth Type to No Auth (so Postman does not auto-add an API Key header).

- In Headers tab add exactly:
Authorization: Bearer {{IAM_TOKEN}}
Content-Type: application/json

(No other API Key header should be present.)
- In Body (raw → JSON) paste a test event body (example):
{
"ibmenseverity": "info",
"ibmensourceid": "my-custom-app",
"ibmenfcmbody": "Testing Event Notifications via Postman",
"type": "custom",
"specversion": "1.0",
"id": "test-001",
"source": "postman-client",
"time": "2025-09-06T12:00:00Z",
"datacontenttype": "application/json",
"data": {
"message": "This is a test event",
"env": "dev"
}
}
Important: ibmensourceid must exactly match the Source ID you created in the Event Notifications console (e.g., my-custom-app).
6) Run the IAM token request (first request)
- Open Get IAM Token request.
- Click Send.
- Confirm response contains access_token.
- IAM_TOKEN should now be populated with a long token string.
- If not, re-open Get IAM Token → Scripts → ensure the post-response snippet is present and saved.
7) Send the Publish Event request
- With the same environment selected, open Publish Event.
- Click Send.
- Expected response status: 202 Accepted (sometimes 200).
- If you receive 202, the event was accepted for processing.

8) Verify delivery in IBM Cloud and webhook test
- In IBM Cloud Console → open your Event Notifications instance.
- Check Source → Topic → Subscription linkage:
Go to Sources → confirm your custom source exists (e.g., testapi).

Go to Topics → confirm a Topic is created (e.g., postman-test-topic).
Go to Rules → verify there’s a Rule that connects your Source → Topic.
Go to Subscriptions → ensure the Topic is linked to a Subscription (email, webhook, etc.) and that the subscription status is Active.

🔑 Without this chain, EN accepts the event (202) but has nowhere to deliver it.
- If you created a webhook subscription for payload testing (as instructed in KB), check the webhook receiver logs (or the webhook service you used) — the webhook URL you provided:
https://webhook-server.wi8dtw1s9so.us-south.codeengine.appdomain.cloud/
should receive the full event payload. Confirm the payload contains your data content.
9. Testing with an Template
1. Create a Template
- In your Event Notifications instance → go to Templates.
- Click Create.
- Choose webhook as the type.

- Add a name (e.g., test-payload_webhook).
- In the Body, insert variables that map to your event payload. Example:

2. Attach Template to Subscription
- Go to Subscriptions.
- Edit the subscription you created (e.g., email or webhook).
- In the Template dropdown, select the template you just created (test-payload_webhook).
- Save.
3. Send Test Payload via Postman
- Update your Publish Event request body → make sure data contains the fields referenced in the template (message, env, etc.):
- Send the request.
4. Verify the Output
- If you used the webhook subscription with the test endpoint:
https://webhook-server.wi8dtw1s9so.us-south.codeengine.appdomain.cloud/
you’ll see the payload delivered there as well (the template applies only to email, not webhook).
Common failures & fixes
- 405 Method Not Allowed on token request → you used GET; token endpoint requires POST.
- 401 Unauthorized on publish → IAM_TOKEN missing or expired. Re-run Get IAM Token.
- 404 Not Found on publish → URL missing /notifications or wrong EN_REGION/EN_INSTANCE_ID.
- 422 Unprocessable → ibmensourceid not matched by any Rule. Fix rule or payload source.
- Invitation emails only, no payload → confirm email subscription is Active (click invite link) and Rule links Source → Topic → Subscription.
For more Information, Please see the official documentation
https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-getting-started