Customer accounts
A customer account represents one organization or workspace inside your application. Create it before sending account-bound notifications or issuing account-bound user tokens.
Create or update an account
Required scope: accounts:manage.
PUT /v1/accounts/org-123
Authorization: Bearer APPLICATION_API_KEY
Content-Type: application/json
{
"display_name": "Example Customer",
"metadata": {"plan": "enterprise", "source": "example-app"}
}
The path uses external_key; later requests use the same value as account_key. The display name is for humans and may change.
Upsert when an organization is created, renamed, or its integration metadata changes. Reconcile active source organizations with GET /v1/accounts if lifecycle events can be missed.
Channel configuration
For an account, use these endpoints with providers:manage:
| Operation | Endpoint |
|---|---|
| List configured channels | GET /v1/accounts/{external_key}/providers |
| Configure a channel | PUT /v1/accounts/{external_key}/providers/{channel} |
| Test the connection | POST /v1/accounts/{external_key}/providers/{channel}/test |
| Disable the connection | DELETE /v1/accounts/{external_key}/providers/{channel} |
The configurable external channels are email, whatsapp, and discord. Use the API Reference for the exact provider-specific config and test payloads. In-app needs no external connection; Web Push uses platform VAPID settings and recipient subscriptions.
Provider secrets are encrypted and are not returned in configuration reads. Account metadata is not a secret store.
Account access
The API key identifies the application; the account key must resolve to an active account in that application. The key itself is not restricted to one customer account. Enforce customer membership in your backend and give frontends recipient-bound user tokens.