Skip to main content

Sub-account notification recipients

Rate-sheet emails and account-balance alerts for a subaccount default to the recipients Orbit already resolves for your organization: your parent-org finance contacts, or the platform catch-all. Per-subaccount notification recipients let you route each of those two categories to a different inbox per child organization: a franchise-level ops inbox for one child, the CFO inbox for another. This page covers who receives rate-sheet and balance-alert emails on behalf of a subaccount. The neighboring setting, the notification sender (from_name / from_address), controls who the email appears to come from. The two are independent: For the sender configuration, see Set up a custom notification-email identity for a sub-account; come back here for recipient routing.

Why this exists

Until this release, rate-sheet emails and account-balance notifications were always addressed to the resolver’s default recipient set: the parent organization’s finance contact, or the per-organization platform catch-all. A reseller with three children therefore could not send one child’s rate sheet to a franchise ops inbox and another’s to a CFO inbox; everything landed in the same mailbox. You can now set each category separately per child organization, and children you leave unconfigured keep the previous behavior unchanged.

The data model

A subaccount’s recipient lists are stored in the organization’s settings under notification_recipients:
  • Both fields are optional. Each accepts a comma-separated string ("billing@acme.example, ops@acme.example") or an array of addresses; the API normalizes either form into a clean address list.
  • Clearing a field (send null or an empty list) restores the previous recipients. When nothing is configured, rate-sheet and balance-alert emails go exactly where they went before this feature.
  • A malformed settings value is safe: Orbit treats an unparseable value as “not configured” instead of failing, so a bad settings entry can never drop an email. It routes to the previous recipients.
  • Every entry must be a single clean address (local@domain, no stray commas, spaces, or line breaks). A list containing even one bad entry is rejected as a whole and falls back to the previous recipients. Orbit never silently drops the one address you thought you had configured.
These lists route rate-sheet emails and account-balance alerts only. Invites, security notifications, digests, and webhook failure alerts keep their own recipient rules.

Where it shows in the dashboard

Open Settings → Sub-accounts, then open a sub-account. The notification recipients panel sits beside the existing notification-sender panel:
  • The sender panel shows the white-label From name and address for this subaccount and whether the sending domain passed verification. It answers “who does the email come from?”
  • The recipients panel holds the two address lists, rate_sheet_emails and balance_alert_emails. It answers “which inboxes receive these two billing email categories?”
Saving either panel takes effect on the next email of that category; nothing already queued is re-addressed.

The API

Both endpoints use the same authentication as the other subaccount settings writes: owner or admin on the parent organization, or the subaccount’s own admin when {id} is the caller’s own organization.

Read the configured lists

A null field means “not configured here”: the subaccount inherits recipients from the parent chain (see Resolution and precedence).

Set the lists

The response echoes the normalized lists (comma-separated strings are stored as arrays). Sending null or [] for a field clears it. Sending an entry that is not a single clean address rejects the write for that field with a 422, so a typo can never half-save a recipient list.

Resolution and precedence

When Orbit prepares a rate-sheet email for a subaccount, it picks the recipients in this order:
  1. The subaccount’s own rate_sheet_emails, when set to at least one clean address.
  2. The nearest ancestor organization up the reseller chain that has rate_sheet_emails set.
  3. The platform catch-all recipient list.
balance_alert_emails resolves through the same chain for account-balance alerts. Resolution stops at the first tier that has a usable list; a cleared (null) field is the same as an absent one. Consider a reseller with three children:
Acme Retail’s rate sheets go only to ops@acmeretail.example; Delta and West inherit your finance inbox. All three children’s balance alerts inherit whatever your organization resolves, because none of them sets balance_alert_emails.

Worked example

You want Acme Retail’s balance alerts to reach two inboxes, and you want its rate sheets to stop overriding and return to your finance inbox.
Reading the config back:
From the next cycle on, Acme Retail’s balance alerts are addressed to the two configured inboxes only. Its rate-sheet email goes to the previous recipients again: your organization’s list when you have one set, otherwise the platform catch-all. The email your recipients see keeps its usual sender identity; routing recipients never changes the From line. If your organization (or the subaccount) has a DNS-verified notification sender, the email arrives from that address; otherwise it arrives from the platform sender, exactly as described in White-label subaccounts:

Misconfiguration and troubleshooting

See also