# Notifications

> Which emails Nodus sends, who receives them, how often, and how to switch off the optional ones.

Source: https://nodus-platform-site.pages.dev/docs/guides/notifications/
Build revision: 211ad9f836655b1c3a2668c4693e442471f28614

Nodus emails you when something needs your attention: a balance running low, a Budget threshold, a Job that stopped because of money, a pool host that went offline. Each notice is sent once for the condition that caused it. A retry or a repeat of the same condition never sends a second email.

Every notice is also an Event, and most are [webhook](https://nodus-platform-site.pages.dev/docs/guides/webhooks/) types, so a program can react to them too.

## Who receives what

|Kind of notice|Goes to|
|-|-|
|Money: balance, funding, Budgets, grants, top-ups, arrears, disputes, storage and egress quotas|The billing email of the org’s BillingAccount, and every Owner and Admin, once each|
|Budget notices|The same people, and the addresses in the Budget’s `spec.notify.emails` (up to 10)|
|About an object: for example a Job stopped by its cost cap|The person who created it. For an object created by an API key or service account, the key’s owner or the project’s Admins|
|Pools: host offline, capacity exhausted, burst approval needed, forecast shortfall, an action proposed or executed, a cloud sync that failed|The org’s Owners and Admins, and the person who created the Pool|
|Invites|The invited address, even before it belongs to a member|

## What Nodus sends

|Notice|When|How often|
|-|-|-|
|Low balance|Available credit fell below your warning level|At most once a day|
|Funding lost|An object stopped because credit ran out|One digest per hour|
|Maximum cost reached|An object stopped at its `maxCostUSD`|Once per object|
|Budget threshold, Budget exceeded|A Budget reached a percentage, or refused a new run|Once per threshold and period|
|Grant expiring|A credit grant expires in 7 days and in 1 day|Once each|
|Top-up failed, auto-recharge failed|A charge did not go through|Once per attempt|
|Arrears|A balance went negative|At most once a day|
|Dispute opened or closed|A payment dispute changed|Once per change|
|Storage or egress quota reached|A quota was hit|At most once a day|
|Storage in arrears|Storage is unpaid after 7, 21 and 28 days, with the purge proposed at 30|Once each|
|Pool notices|A pool event listed above|Once per event and window|
|Invite|Someone invited you to an org|Once per invite, and again when it is resent|

Stripe sends the receipt for a top-up to your billing email. Sign-in and password emails come from your account system, not from these notices.

## Switch off the optional ones

Budget thresholds, low-balance warnings and run-completion emails are optional: each member can turn them off for themselves. Stops, disputes, arrears, quota limits and security notices are not optional.

Change your preferences in your account settings. They are also at `GET` and `PUT /auth/me/settings`; read the current settings first to see the fields.

Your choice applies to you only. Other recipients of the same notice still get it.

## Add recipients to a Budget

```yaml
apiVersion: nodus.dev/v1
kind: Budget
metadata:
  name: research
spec:
  limitUSD: "500"
  period: Monthly
  notify:
    emails: [finance@example.com]
```

Note

Notices never contain secrets. An invite link is sealed until the email is sent and is erased afterward.
