Printago API
POST /v1/settings/notifications

Enable a notification channel

Enable a notification channel. For `webhook`, Printago sends a JSON `POST` of `{ event, timestamp, data }` to `webhookUrl` (must be a public HTTPS URL) for each subscribed event, with your `apiKey` in the `X-API-Key` header (the key must be at least 32 characters). Discord, Slack and Pushover receive a welcome message first, and the request fails with `400` if that delivery fails. Use the configure endpoint afterwards to choose which events are sent.

Requires: settings.edit

Request Body

Channel type and its credentials

EnableTelegramNotificationsRequest | EnablePushoverNotificationsRequest | EnableSlackNotificationsRequest | EnableWebhookNotificationsRequest | EnableDiscordNotificationsRequest
channelrequired
"telegram"
datarequired
object
botTokenrequired
string
chatIdrequired
string
channelrequired
"pushover"
datarequired
object
appTokenrequired
string
deviceoptional
string
priorityoptional
-2 | -1 | 0 | 1 | 2
-2-1012
soundoptional
string
userKeyrequired
string
channelrequired
"slack"
datarequired
object
webhookUrlrequired
string
format: url
channelrequired
"webhook"
datarequired
object
apiKeyrequired
string
webhookUrlrequired
string
format: url
channelrequired
"discord"
datarequired
object
webhookUrlrequired
string
format: url

Example Request

application/json
{
  "channel": "telegram",
  "data": {
    "botToken": "string",
    "chatId": "string"
  }
}

Response Schema

NotificationSetting
channelrequired
"discord" | "webhook" | "slack" | "pushover" | "telegram" | "pubsub"
discordwebhookslackpushovertelegrampubsub
createdAtrequired
string
format: date-time
enabledrequired
boolean
idrequired
string
pattern: ^[a-z0-9]{24}$
onAiFailureDetectedrequired
boolean
onJobCancelledrequired
boolean
onJobFailedrequired
boolean
onJobStartedrequired
boolean
onJobSucceededrequired
boolean
onMaintenanceDueSoonrequired
boolean
onMaintenanceModeOffrequired
boolean
onMaintenanceModeOnrequired
boolean
onMaintenanceOverduerequired
boolean
onMaterialUsageRecordedrequired
boolean
onOrderCancelledrequired
boolean
onOrderClosedrequired
boolean
onOrderCreatedManualrequired
boolean
onOrderCreatedRetailrequired
boolean
onOrdersAutoPrintedrequired
boolean
onPrinterContinuousPrintDisabledrequired
boolean
onPrinterHmsErrorrequired
boolean
onPrinterHmsWarningrequired
boolean
onPrinterOfflinerequired
boolean
onPrinterOnlinerequired
boolean
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
updatedAtrequired
string
format: date-time

Example Response

201 OK — application/json
{
  "enabled": true,
  "channel": "discord",
  "onJobSucceeded": true,
  "onJobFailed": true,
  "onJobStarted": true,
  "onJobCancelled": true,
  "onPrinterHmsError": true,
  "onPrinterHmsWarning": true,
  "onPrinterOffline": true,
  "onPrinterOnline": true,
  "onPrinterContinuousPrintDisabled": true,
  "onOrderCreatedManual": true,
  "onOrderCreatedRetail": true,
  "onOrderCancelled": true,
  "onOrderClosed": true,
  "onOrdersAutoPrinted": true,
  "onMaintenanceModeOn": true,
  "onMaintenanceModeOff": true,
  "onMaintenanceDueSoon": true,
  "onMaintenanceOverdue": true,
  "onMaterialUsageRecorded": true,
  "onAiFailureDetected": true,
  "id": "string",
  "storeId": "string",
  "createdAt": "2025-01-15T12:00:00.000Z",
  "updatedAt": "2025-01-15T12:00:00.000Z"
}