notifications
PUT /v1/outbound-mail
Attach or replace this organisation's own mail service.
인증
Bearer 토큰으로 API 키를 전송하세요. 이 엔드포인트는 명세에 특정 권한을 명시하지 않으므로, 가정하기보다는 키에 필요한 최소한의 권한을 부여하고 응답을 확인하세요.
조직 ID가 들어가는 위치
이 엔드포인트는 org_id을(를) 쿼리 매개변수로 사용합니다. 생략하면 테넌트 하위 트리 전체가 호출 대상이 되며, 값을 전달하면 특정 조직으로 호출 범위를 좁힐 수 있습니다.
조직 ID는 대시보드의 API 키 화면에서 키 바로 옆에 있습니다. 이는 실행하는 모든 호출에서 동일한 ID입니다.
무료 체험하기
대괄호 안에 있는 모든 내용을 사용자 지정 값으로 바꾸고, 키 플레이스홀더는 대시보드의 키로 바꾸세요.
curl -X PUT https://api.zinndigital.com/v1/outbound-mail \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "provider": <string<smtp, mailgun, sendgrid, postmark, ses, resend>>, "from_domain": <string>, "credential": <string> }'로그인하셨나요? 대시보드의 API 콘솔이 실제 조직 ID와 본인의 키를 자동으로 채우고 라이브 API를 대상으로 요청을 실행하므로 실제 응답을 확인할 수 있습니다. API 콘솔에서 이 엔드포인트를 여세요
상세 정보
PUT rather than POST because a From header is singular: an organisation has exactly one sending service, and the commonest reason to be on this screen is switching provider. The credential is write-only. It goes straight to the secret vault and the row keeps only a pointer; it is never returned by any endpoint in any state. Attaching does NOT switch the sender. A new or replaced credential resets the account to `unverified`, and only a completed round trip - a real test message, and the code out of it - makes it the From address. A provider that accepts a message and then bounces it is indistinguishable from a working one at the moment of the call, so acceptance is not proof.
매개변수
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
org_id (query) | string | 아니요 | The organization to act on. Omitted (or empty) means your own. |
요청 본문
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
provider | string<smtp, mailgun, sendgrid, postmark, ses, resend> | 예 | `ses` is Amazon SES over its documented SMTP interface, so the credential is an SES SMTP username and password rather than an AWS access key. |
from_domain | string | 예 | The domain your From address will use - a domain, not an address. The local part still comes from the message type, so a receipt leaves as `billing@` and a password reset as `no… |
credential | string | 예 | The API key, server token or SMTP password. Never returned. |
config | object | 아니요 | The non-secret settings this provider needs - SMTP host/port/username, Mailgun domain and region, the SES region, the Postmark message stream. The exact fields are returned per… |
응답
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
can_configure | boolean | 예 | Whether 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… |
account | OutboundMailAccount | 예 | null when this organisation sends on the platform's account. |
providers | object[] | 예 | The 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_as | string<own, platform> | 예 | Who 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_notice | string | 예 | Plain-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_held | integer | 예 | How 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… |