# Email Notifications **Category:** Admin **Base URL:** `/admin/notifications` **Authentication:** Required **Routes:** 1 routes documented ## Overview This section documents 1 API routes for email notifications. > ⚠️ **These endpoints operate on your live store.** `POST`/`PUT`/`DELETE` operations here — including sync, push, resync, and cache operations — modify or delete production data, and some trigger downstream effects such as warehouse orders or customer emails. `DELETE` operations are generally irreversible. Verify IDs and parameters carefully before calling them from scripts. ## Quick Reference | Method | Endpoint | Description | |--------|----------|-------------| | POST | `/admin/notifications/:id/dismiss` | Remove one notification from the admin bell: `POST /admin/no... | --- ## POST Admin Notifications :id Dismiss **Endpoint:** `POST /admin/notifications/:id/dismiss` **Authentication:** Admin (Required) ### Description Remove one notification from the admin bell: `POST /admin/notifications/:id/dismiss`. Soft-deletes the row, so it stops being listed but nothing is destroyed and a mistaken dismissal is recoverable. Who a dismissal acts for depends on the notification type: a `shared` row is one row the whole team sees, so dismissing it means "handled", not "read by me". Accepts `channel = "feed"` rows ONLY. Customer-email rows share this table and their delivery records are the proof an order email was sent, so a request to dismiss one is a 400. An id that is already dismissed returns 200 with `already: true`, so a double click is not an error. For `personal` types — announcements, which are fanned out one row per admin — dismissing a row addressed to someone else is a 403. Shared ops alerts stay dismissible by anyone, which is what "the team handled this" means. ### URL Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | string | Yes | Id identifier | ### Request Body This route does not declare a validation schema, so the accepted fields are not derivable from the source. Check the handler before relying on a particular body. ### Response **Success:** ```typescript { id, object, dismissed, already, } ``` **Also returns:** ```typescript { id, object, dismissed, } ``` **Error (400):** ```typescript { message, } ``` **Error (400):** ```typescript { message, } ``` **Error (403):** ```typescript { message, } ``` **Error (500):** ```typescript { message, } ``` ### Example Request ```bash curl -X POST 'https://your-store.omnicart.cc/admin/notifications/:id/dismiss' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` ---