Kontier sends mail on your behalf: invoices, payment reminders, receipts, quotes, portal links. All of it goes out under your sender identity, not Kontier's.
That is the part worth setting up early, because until you do, nothing sends.
Nothing sends by default
Mail is off by default in every workspace. Connecting a provider in live does not connect it in sandbox, and vice versa; see Workspaces.
Unsent mail fails silently, and is not retried on its own
With no provider configured, every message is written to the queue blocked,
with the reason no_provider_configured. It is not an error you will see, and it
is not retried automatically once you fix the configuration.
You can send held mail again yourself, but only mail held for at most 7 days (see Blocked and suppressed mail); older mail is lost, not delayed. Connect the sender before you invoice anybody, and check the blocked queue if customers say they received nothing.
What Kontier sends
Broadly four kinds:
- Transactional billing mail: an invoice issued, a payment received, a payment failed.
- Dunning mail: the reminder sequence on an overdue invoice.
- Customer-facing links: a quote to sign, or a portal link.
- Operational notices: things you have asked to be told about.
Which of these go out, and their wording, comes from your templates rather than from the sending configuration.
Deliverability is yours
Because mail carries your domain, whether it arrives depends on your DNS: SPF, DKIM and a sender address on a domain you control.
Two habits that prevent most problems:
- Verify the sender domain before go-live. A domain that is not verified will see mail land in spam or be rejected outright.
- Watch the blocked and suppressed lists. A suppressed address is one the mail provider has asked not to be mailed again. Repeatedly mailing it damages the reputation of every message you send.
Sent mail over the API
The mail log is readable over the API:
| Call | Does |
|---|---|
GET /v1/mail/messages | Sent-mail history, filterable by status, customer_id, recipient, source_kind and source_id |
GET /v1/mail/messages/{id}, GET /v1/mail/messages/{id}/events | One message, and its delivery history |
POST /v1/mail/messages/{id}/resend | Rebuild the email from its source document and send it again, as a new message; the original is never altered |
GET /v1/mail/messages/{id}/sandbox-capture | What a sandbox withheld because a recipient is outside your organization |
Blocked and suppressed mail
GET /v1/mail/blocked-summary counts the mail held because something is
misconfigured, by cause, with the age of the oldest. Mail deliberately not sent
(a suppressed address, a marketing opt-out) is not counted.
POST /v1/mail/blocked/retry rebuilds held mail from its source documents and
queues it again, in batches, as new messages. It reaches back 7 days at most and
retries only mail held for a configuration problem; mail held for a missing
address is reported separately, because a retry cannot fix it.
Send the held mail again
The response counts what was retried, what was unrecoverable, and what was
skipped (skipped_no_recipient, skipped_too_old); has_more says another call
would find more.
Suppressions (hard bounces, complaints and addresses you add by hand) are listed
with GET /v1/mail/suppressions. POST /v1/mail/suppressions with
{"email": "…"} adds one, and DELETE /v1/mail/suppressions?email=… removes one.
Consent
Marketing mail and transactional mail are not the same thing legally. An invoice
is transactional and does not need consent; a product announcement is not.
Kontier tracks marketing permission per customer so the two do not get confused.
Read and record a recipient's consent with GET /v1/mail/consent and
PUT /v1/mail/consent, and read its history with GET /v1/mail/consent/history.
Reference
| Topic | When you need it |
|---|---|
| Dunning | The sequence that sends reminder mail |
| Workspaces | Why connecting a sender in sandbox is not enough |
| Organization settings | Where the integration lives |
Senders and templates have no API
Mail providers, templates and which email fires for what are managed in the
dashboard; there is no API for them. The workspace's shared routing
(the mail.house.* settings: default recipient list, CC, BCC and audience) can
be set with PUT /v1/organization/settings; see Settings. If you need
to manage senders or templates from your own system, email
engineering@kontier.eu.