notifications

POST /v1/outbound-mail/test

Send a real message through your provider, carrying a one-time code.

All notifications endpoints

Authentication

Send an API key as a bearer token. This endpoint does not state a specific permission in the specification, so give your key the least it needs and check the response rather than assuming.

Where your organisation id goes

This endpoint takes org_id as a query parameter. Leave it out and the call covers your whole tenancy subtree; send it to narrow the call to one organisation.

Your organisation id is on the API keys screen in your dashboard, beside the key itself. It is the same id in every call you make.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X POST https://api.zinndigital.com/v1/outbound-mail/test \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "to": <string> }'

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

Sends an actual email through the attached service to an address you nominate. It contains a code; enter that code at `/v1/outbound-mail/verify` to switch the account on. The send happens before anything is stored. If your provider refuses the message the account stays exactly where it was and the error says what the provider said - a tenant with a wrong key must be told the key is wrong, not left waiting for a message that was never sent.

Parameters

NameTypeRequiredWhat it is
org_id (query)stringNoThe organization to act on. Omitted means your own.

Request body

NameTypeRequiredWhat it is
tostringYesAn inbox you can read. Use one OUTSIDE the domain you are configuring where you can: a message that never leaves your own server proves less than one that crossed the internet.

Response

NameTypeRequiredWhat it is
can_configurebooleanYesWhether this organisation's plan includes its own sending identity - the agency and reseller plans do, a plain client plan does not. A claim about the PLAN, never the authorisat…
accountOutboundMailAccountYesnull when this organisation sends on the platform's account.
providersobject[]YesThe provider catalogue AND the fields each one needs, served from the same definition the API validates against - so the form a customer fills in and the rules it must satisfy c…
sending_asstring<own, platform>YesWho is actually paying for this organisation's mail right now. `platform` whenever no account is attached OR the attached one has not completed its round trip.
fallback_noticestringYesPlain-language explanation shown when `sending_as` is `platform`; empty otherwise. Part of the contract rather than presentation - an empty state that does not say who is paying…
client_orgs_heldintegerYesHow many client organisations under this one currently have their non-essential notifications held because no own mail provider is connected (owner ruling 2026-09-03). `0` when…