On the wire
Ships with HTTP status 400, carrying "code": "RU-3007" in the response body alongside the human-readable error message. Existing fields are never replaced by the code: it is additive.
Common causes
- A `type` outside discord, msteams, opsgenie, generic_json (sms, voice and mobile_push are not yet deliverable).
- A `config` missing the key the type needs: webhookUrl (discord, msteams), url (generic_json), apiKey and region (opsgenie).
- An endpoint that resolves to a private or internal address.
How to fix it
- Read the `error` field for the failing field.
- Compare the config keys against the API docs at /docs/api, "POST /notification-channels".
Related codes
Still stuck?
Ask support and mention RU-3007: the code pins down the exact refusal path, so you skip the diagnostic back-and-forth.