Create or updates the email white-label sender for a company and verifies its domain via Mandrill. If a fully-verified VerifiedEmail already exists for the company/email/tracking_domain it updates the sender name and returns already_verified. Otherwise it validates the email's domain through Mandrill. On success it creates or updates the VerifiedEmail, runs the Mandrill verification suite, and stamps domain_verified_at/url_verified_at when DKIM/DKIM2/DMARC/signing and tracking CNAME all pass. An invalid domain returns a 400 ("Invalid Domain").
Auth: Both — authentication, role-agnostic account/white-label prefix. company_id is required and scoped by an ownership check (must be in the caller's hierarchy). A partner can configure any company beneath it, an account user only its own part of the account tree.
Rate limit: No rate limit.
Request
- Body:
| Field | Type | Required | Notes |
|---|---|---|---|
| company_id | integer | required | Must be an existing account inside your own account tree. |
| sender_name | string | required | max:100, no angle brackets (NameNoAngleBrackets); stored as name. |
| string | required | email:rfc,dns; The endpoint verifies its domain via Mandrill. | |
| tracking_domain | string | required | max:100, no angle brackets; stored as tracking_url. |
Response — { data. } envelope.
status(string) —"success"(new/updated unverified record) or"already_verified"(was already fully verified, name updated).data(object|array) — theVerifiedEmailrow (id,company_id,email,name,domain,tracking_url,domain_verified_at,url_verified_at, timestamps); empty array[]on thealready_verifiedshort-circuit branch.verification(object) — Mandrill verification payload (verify_domain,check_domain,check_tracking_domain,default_settings); present only on thesuccessbranch.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
