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.
Request Body
Channel type and its credentials
EnableTelegramNotificationsRequest | EnablePushoverNotificationsRequest | EnableSlackNotificationsRequest | EnableWebhookNotificationsRequest | EnableDiscordNotificationsRequest
Variant 1EnableTelegramNotificationsRequest
channelrequired
"telegram"
datarequired
object
botTokenrequired
string
chatIdrequired
string
Variant 2EnablePushoverNotificationsRequest
channelrequired
"pushover"
datarequired
object
appTokenrequired
string
deviceoptional
string
priorityoptional
-2 | -1 | 0 | 1 | 2
-2-1012
soundoptional
string
userKeyrequired
string
Variant 3EnableSlackNotificationsRequest
channelrequired
"slack"
datarequired
object
webhookUrlrequired
string
format: url
Variant 4EnableWebhookNotificationsRequest
channelrequired
"webhook"
datarequired
object
apiKeyrequired
string
webhookUrlrequired
string
format: url
Variant 5EnableDiscordNotificationsRequest
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"
}