MailLandDocs
Webhooks

Webhook-Ereignisse

Vollständige Referenz aller Webhook-Ereignistypen und ihrer Daten

Der Ereigniskatalog von MailLand definiert 21 Ereignistypen in 6 Kategorien (2 der 21 sind Plattformhinweise, die Sie nicht abonnieren können). Jedes Ereignis wird als signierter HTTP-POST-Request an Ihren Webhook-Endpunkt zugestellt.

Noch nicht jedes katalogisierte Ereignis wird ausgelöst. Neun Ereignisse sind heute aktiv und abonnierbar: message.delivered, message.deferred, message.bounced, message.failed, message.complained, message.outcome_unknown, message.retried, message.unsubscribed und inbound.received. Die übrigen sind dokumentiert, reserviert und werden derzeit nicht in einem Abonnement akzeptiert: Die API liefert 400, wenn Sie eines davon angeben. Der Katalog-Endpunkt zeigt dies pro Ereignis über availableNow und customerSelectable an: lesen Sie diese Felder, statt eine Liste fest zu codieren.

Ereigniskatalog

Rufen Sie den vollständigen Ereigniskatalog programmatisch ab:

GET https://api.mail.land/v1/webhooks/catalog
Get event catalog
curl -X GET https://api.mail.land/v1/webhooks/catalog
Catalog response (abbreviated)
{
  "version": 1,
  "products": [
    { "id": "transactional", "name": "Transactional Email", "isActive": true, "comingSoon": false },
    { "id": "marketing", "name": "Marketing Email", "isActive": true, "comingSoon": false },
    { "id": "inbound", "name": "Inbound Email", "isActive": true, "comingSoon": false },
    { "id": "system", "name": "System Events", "isActive": true, "comingSoon": false },
    { "id": "validation", "name": "Email Validation", "isActive": false, "comingSoon": true }
  ],
  "categories": [
    {
      "id": "message",
      "name": "Message Events",
      "events": [
        { "id": "message.sent", "name": "Message Sent", "products": ["transactional", "marketing"] },
        { "id": "message.delivered", "name": "Message Delivered", "products": ["transactional", "marketing"] }
      ]
    }
  ]
}

Dieser Endpunkt ist öffentlich (keine Authentifizierung erforderlich) und liefert immer die aktuellste Katalogversion.

Standardmäßige Datenstruktur

Jede Webhook-Zustellung enthält eine einheitliche äußere Struktur:

Standard payload
{
  "event": "message.delivered",
  "event_id": "evt_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5",
  "timestamp": "2026-02-17T12:34:56.789Z",
  "occurred_at": "2026-02-17T12:34:56.120Z",
  "schema_version": 1,
  "data": {
    // Event-specific fields
  }
}
FeldTypBeschreibung
eventstringBezeichner des Ereignistyps
event_idstringEindeutige Ereignis-ID zur Deduplizierung (Format: evt_{32chars})
timestampdatetimeZeitpunkt, zu dem der Webhook eingereiht wurde (UTC): nicht der Zeitpunkt des zugrunde liegenden Ereignisses. Siehe dafür data.timestamp.
occurred_atdatetimeZeitpunkt des zugrunde liegenden Ereignisses (UTC); bei Nachrichtenereignissen derselbe Zeitpunkt wie data.timestamp
schema_versionintegerSchemaversion dieses Ereignistyps (heute 1); gespiegelt in X-MLND-Event-Version. Siehe Versionierung
dataobjectEreignisspezifische Nutzdaten

Der data-Teil jedes Nachrichtenereignisses enthält außerdem status_version, status, previous_status, complaint_status und reason, siehe Statusversionen.

Statusversionen

Jedes Nachrichtenereignis enthält data.status_version, data.status, data.previous_status, data.complaint_status und data.reason. status_version steigt um eins, jedes Mal wenn MailLand ein Ereignis für eine Änderung des Status, des Grundes oder des Beschwerdestatus der Nachricht sendet.

Zwei Ausnahmen:

  • Eine Nachricht beginnt mit status_version 0, solange sie queued oder sent ist. Der Schritt von queued zu sent sendet kein Ereignis und ändert die Version nicht.
  • Mehrere message.deferred-Ereignisse können dieselbe status_version haben: Eine wiederholte Verzögerung ändert den Status nicht.

Webhooks können in anderer Reihenfolge ankommen und wiederholt werden. Wenden Sie sie daher nach status_version an, nie nach Eingangsreihenfolge.

Ein Status kann sich ändern, nachdem er endgültig war. MailLand meldet, was es weiß, sobald es es weiß. Erfährt es später mehr, sendet es den neueren Status mit einer höheren status_version:

  • Eine zugestellte Nachricht kann später bouncen, wenn der Server des Empfängers sie nachträglich ablehnt (ein Out-of-Band-Bounce);
  • nach einem internen Fehler oder nachdem der Mailserver von MailLand sich erholt hat, kann eine Zustellung oder eine Ablehnung verspätet gemeldet werden. Eine failed-Nachricht kann dann bounced oder delivered werden, eine bounced-Nachricht delivered, und eine unknown-Nachricht jeder endgültige Status.

Eine Nachricht geht nie von delivered zu failed. MailLand zählt diese Korrekturen.

FeldTypBeschreibung
status_versionintegerDie Version des Nachrichtenstatus, die dieses Ereignis beschreibt.
statusstringDer Status der Nachricht in dieser Version: queued, sent, deferred, unknown, delivered, bounced oder failed.
previous_statusstring oder nullDer Status vor dieser Änderung; null vor der ersten Änderung.
complaint_statusstringnone oder complained.
reasonstring oder nullDer Bounce- oder Fehlergrund bei bounced, failed und unknown; sonst null.

Wiederholungsfristen

MailLand versucht eine verzögerte Nachricht bis zu ihrer Wiederholungsfrist erneut zuzustellen: etwa 5 Stunden, nachdem sie erstmals an die Zustellwarteschlange übergeben wurde, bei Transaktionsmails und etwa 25 Stunden bei Marketingmails. Nach der Frist stellt MailLand die Nachricht für keinen neuen Zustellversuch mehr in die Warteschlange. Eine Kopie, die zum Fristende bereits auf eine Verbindung wartete, kann danach noch versucht werden. Das sind Wiederholungsfristen, keine Zusagen, wann Sie das endgültige Ereignis erhalten. Sie erhalten jedes Ereignis, sobald das Ergebnis MailLand erreicht; diese Verzögerung ist noch nicht gemessen und kann bei einem internen Ausfall länger sein. Eine Nachricht, die MailLand nicht innerhalb von 24 Stunden an seine Zustellwarteschlange übergeben konnte, wird als expired beendet.

Wenn Sie den aktuellen Status einer Nachricht aus Webhooks führen (Handlungsbedarf)

Dies ist eine Verhaltensänderung für bestehende Integrationen. Eine Integration, die message.failed oder message.delivered als endgültig behandelt und spätere Ereignisse ignoriert, kann nach einer Korrektur einen falschen Status behalten. Bestehende Ereignisnamen haben jetzt neue mögliche Abfolgen.

  • Abonnieren Sie jedes Nachrichtenereignis: message.delivered, message.deferred, message.bounced, message.failed, message.complained, message.outcome_unknown und message.retried. Nur dann enthalten die empfangenen Ereignisse jede Statusänderung.
  • Speichern Sie status_version zusammen mit dem Status. Wenden Sie ein Ereignis nur an, wenn seine status_version höher ist als die gespeicherte; ein message.deferred mit gleicher Version ändert nichts.
  • Verarbeiten Sie Ereignisse nach message.failed, message.bounced oder message.delivered weiter: Ein späteres Ereignis mit höherer status_version ersetzt den früheren Status.
  • Sobald Sie jedes Ereignis bis zur status_version der API erhalten haben, entspricht Ihr Status dem der API. Die API kann den bisher empfangenen Webhooks voraus sein, und bei status_version 0 kann sie sent ohne Ereignis zeigen.

Wenn Sie nur einige Nachrichtenereignisse abonnieren, ist die höchste empfangene status_version nicht unbedingt der aktuelle Status: Ein nicht abonnierter Ereignistyp kann ihn geändert haben. Lesen Sie den aktuellen Status aus der API, zum Beispiel für jede Nachricht, deren zuletzt empfangenes Ereignis message.failed, message.bounced oder message.outcome_unknown ist, und gleichen Sie ab.

Wenn Sie Ihre Integration nicht ändern können, fragen Sie den Status der für Sie wichtigen Nachrichten über die API ab. Integrationen, die Ereignisse nur zählen oder nur einen Verlauf anzeigen, brauchen keine Änderung.

Nachrichtenereignisse

message.sent

Illustrativ: noch nicht ausgelöst. Dieses Ereignis ist katalogisiert, hat aber heute keinen Erzeuger.

message.sent (illustrative)
{
  "event": "message.sent",
  "event_id": "evt_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5",
  "timestamp": "2026-02-17T12:34:56.789Z",
  "data": {
    "message_id": "t_a1b2c3d4e5f6",
    "recipient": "[email protected]",
    "timestamp": "2026-02-17T12:34:56.789Z"
  }
}

message.delivered

Ausgelöst, wenn die E-Mail erfolgreich an den Mailserver des Empfängers zugestellt wurde.

Dieses Ereignis kann auch als Korrektur nach einem früheren endgültigen Status derselben Nachricht eintreffen. Siehe Statusversionen.

message.delivered
{
  "event": "message.delivered",
  "event_id": "evt_b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
  "timestamp": "2026-02-17T12:34:58.123Z",
  "data": {
    "message_id": "t_a1b2c3d4e5f6",
    "recipient": "[email protected]",
    "timestamp": "2026-02-17T12:34:58.123Z",
    "smtp_response": "OK",
    "status_version": 1,
    "status": "delivered",
    "previous_status": "sent",
    "complaint_status": "none",
    "reason": null
  }
}

message.deferred

Ausgelöst, wenn die Zustellung vorübergehend verzögert ist. MailLand versucht es automatisch erneut.

Eine Nachricht kann mehrmals verzögert werden. Die erste Verzögerung erhöht status_version; wiederholte Verzögerungen tragen dieselbe status_version.

message.deferred
{
  "event": "message.deferred",
  "event_id": "evt_c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7",
  "timestamp": "2026-02-17T12:35:00.000Z",
  "data": {
    "message_id": "t_a1b2c3d4e5f6",
    "recipient": "[email protected]",
    "timestamp": "2026-02-17T12:35:00.000Z",
    "smtp_response": "Try again later",
    "bounce_reason": "TransientFailure"
  }
}

message.bounced

Ausgelöst, wenn eine E-Mail unzustellbar ist (Hard- oder Soft-Bounce).

Dieses Ereignis kann auch als Korrektur nach einem früheren endgültigen Status derselben Nachricht eintreffen. Siehe Statusversionen.

message.bounced
{
  "event": "message.bounced",
  "event_id": "evt_d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8",
  "timestamp": "2026-02-17T12:35:01.000Z",
  "data": {
    "message_id": "t_a1b2c3d4e5f6",
    "recipient": "[email protected]",
    "timestamp": "2026-02-17T12:35:01.000Z",
    "bounce_type": "hard",
    "bounce_reason": "InvalidRecipient",
    "smtp_response": "The email account that you tried to reach does not exist.",
    "status_version": 1,
    "status": "bounced",
    "previous_status": "sent",
    "complaint_status": "none",
    "reason": "InvalidRecipient"
  }
}

bounce_reason ist das Klassifizierungstoken, das MailLand dem Bounce zuweist (z. B. InvalidRecipient, QuotaIssues, SpamBlock), nicht der rohe SMTP-Text, dafür smtp_response verwenden. bounce_type ist eines von hard, soft, blocked oder unknown.

smtp_response ist der Antworttext des empfangenden Servers, ohne numerischen Antwortcode und erweiterten Statuscode. bounce_type sagt, was MailLand mit der Adresse getan hat: hard, für alle E-Mails unterdrückt; soft, 30 Tage lang für Marketing-E-Mails unterdrückt; blocked, die Ablehnung betraf den Versand, nicht die Adresse (etwa Spamfilter, Absenderauthentifizierung, Reputation oder die Richtlinie des Empfängers), daher wird nichts unterdrückt; unknown, keine Klassifizierung, wird wie soft behandelt.

message.failed

Wird ausgelöst, wenn MailLand eine Nachricht auf Grundlage eindeutiger Belege beendet, dass sie nicht zugestellt wurde, aus einem Grund auf Seiten von MailLand und nicht beim Empfänger. In den unter Statusversionen beschriebenen Fällen kann später ein message.delivered oder message.bounced mit höherer status_version folgen. Der Status der Nachricht wird Failed, nicht Bounced, und reason nennt den Fall:

GrundWas geschah
dkim_revokedDie Nachricht wartete in der Zustellwarteschlange von MailLand und war mit einem DKIM-Schlüssel signiert, den MailLand anschließend für die Absenderdomain im Notfall widerrufen hat (etwa nach einer vermuteten Kompromittierung des Schlüssels). MailLand stellt eine solche Nachricht nie zu und signiert sie nie neu: Sie läuft beim nächsten Zustellversuch ab, bei Transaktions-E-Mails innerhalb von etwa 30 Minuten, bei Marketing-E-Mails innerhalb von 4 Stunden.
admin_bounceEin MailLand-Operator hat die Nachricht aus der Zustellwarteschlange von MailLand entfernt.
dkim_key_revokedFür die Absenderdomain gilt eine DKIM-Notfallsperre, daher hat MailLand die Nachricht abgelehnt, bevor sie in die Zustellwarteschlange gelangte.
inject_failedDie Zustellwarteschlange von MailLand hat die Nachricht endgültig abgelehnt; sie wurde nie zur Zustellung eingereiht.
expiredMailLand hat die Nachricht angenommen, sie aber nicht innerhalb von 24 Stunden an seine Zustellwarteschlange übergeben und sie daher beendet, ohne sie zu senden.
template_variable_missingDie Nachricht enthielt einen Platzhalter {{name}}, für den dieser Empfänger keinen Wert hatte; MailLand hat sie deshalb nicht mit dem unaufgelösten Platzhalter gesendet.
  • Der Empfänger wird nicht unterdrückt, und der Fehlschlag zählt nicht zu Ihrer Bounce-Rate.
  • Eine Nachricht erzeugt höchstens ein message.failed. Es ist das letzte Ereignis dieser Nachricht, es sei denn, MailLand erhält später eine Zustellung oder eine Ablehnung; dann folgt ein message.delivered oder message.bounced mit höherer status_version.

Eine Ablehnung durch den empfangenden Mailserver wird als message.bounced gemeldet, nie als message.failed.

message.failed
{
  "event": "message.failed",
  "event_id": "evt_e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0",
  "timestamp": "2026-09-28T02:00:19.1047332Z",
  "data": {
    "message_id": "t_a1b2c3d4e5f6",
    "recipient": "[email protected]",
    "timestamp": "2026-09-28T02:00:18.2522997Z",
    "reason": "dkim_revoked",
    "smtp_response": "Next delivery time PT3.028008S > PT1S",
    "status_version": 1,
    "status": "failed",
    "previous_status": "sent",
    "complaint_status": "none"
  }
}
FeldBeschreibung
reasonWarum MailLand die Nachricht beendet hat: einer der obigen Werte. Behandeln Sie jeden anderen Wert als neuen Grund auf Seiten von MailLand.
smtp_responseText aus der Zustellwarteschlange von MailLand, sofern vorhanden (dkim_revoked, admin_bounce, inject_failed), sonst null. Nur zur Information: nie eine Antwort des Empfängerservers.

message.outcome_unknown

Wird ausgelöst, wenn MailLand nicht feststellen kann, ob eine Nachricht seine Zustellwarteschlange erreicht hat, zum Beispiel weil die Übergabe unterbrochen wurde und sich danach nicht klären ließ. Es wird einige Zeit nach der Wiederholungsfrist der Nachricht gesendet, derzeit 7 Tage, wenn bis dahin kein Beleg eingetroffen ist. Dies ist kein endgültiger Status. Der Status wird unknown. Erfährt MailLand das Ergebnis später, erhalten Sie message.delivered, message.bounced oder message.failed mit höherer status_version.

message.outcome_unknown
{
  "event": "message.outcome_unknown",
  "event_id": "evt_0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d",
  "timestamp": "2026-10-08T17:05:00.000Z",
  "data": {
    "message_id": "t_a1b2c3d4e5f6",
    "recipient": "[email protected]",
    "timestamp": "2026-10-08T17:05:00.000Z",
    "status_version": 1,
    "status": "unknown",
    "previous_status": "queued",
    "complaint_status": "none",
    "reason": "handoff_undetermined"
  }
}

message.retried

Wird ausgelöst, wenn Sie eine gebouncte oder fehlgeschlagene Nachricht erneut versuchen und MailLand sie wieder in die Warteschlange stellt. Der Status wird queued und status_version steigt; die Ereignisse der erneut gesendeten Kopie folgen mit höheren Versionen. Dies ist kein endgültiger Status.

message.retried
{
  "event": "message.retried",
  "event_id": "evt_1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e",
  "timestamp": "2026-10-01T18:00:00.000Z",
  "data": {
    "message_id": "t_a1b2c3d4e5f6",
    "recipient": "[email protected]",
    "timestamp": "2026-10-01T18:00:00.000Z",
    "attempt": 1,
    "status_version": 2,
    "status": "queued",
    "previous_status": "bounced",
    "complaint_status": "none",
    "reason": null
  }
}

Interaktionsereignisse

message.opened und message.clicked sind katalogisiert, aber weder kundenseitig auswählbar noch werden sie heute ausgelöst. Sie können sie nicht abonnieren: der Versuch, sie beim Erstellen/Aktualisieren auszuwählen, wird mit 400 "One or more invalid events selected" abgelehnt. Die folgenden Beispiele sind nur illustrativ.

message.opened

Illustrativ: nicht verfügbar.

message.opened (illustrative)
{
  "event": "message.opened",
  "event_id": "evt_f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0",
  "timestamp": "2026-02-17T13:15:00.000Z",
  "data": {
    "message_id": "t_a1b2c3d4e5f6",
    "recipient": "[email protected]",
    "timestamp": "2026-02-17T13:15:00.000Z"
  }
}

message.clicked

Illustrativ: nicht verfügbar.

message.clicked (illustrative)
{
  "event": "message.clicked",
  "event_id": "evt_g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1",
  "timestamp": "2026-02-17T13:16:00.000Z",
  "data": {
    "message_id": "t_a1b2c3d4e5f6",
    "recipient": "[email protected]",
    "timestamp": "2026-02-17T13:16:00.000Z"
  }
}

message.unsubscribed

Wird ausgelöst, wenn sich ein Empfänger von einer Nachricht abmeldet, die Sie gesendet haben: über deren List-Unsubscribe-Header oder mailto:-Adresse, den One-Click-POST, den Abmeldelink oder die Präferenzseite. Er wird nicht ausgelöst, wenn Sie selbst über die API oder das Dashboard abmelden, und nicht bei Spam-Beschwerden (message.complained). Er wird einmal pro Nachricht gesendet, im selben Moment, in dem der Empfänger abgemeldet wird, an jeden Endpunkt, der ihn abonniert hat. Wie jedes Nachrichtenereignis enthält data außerdem die aktuellen Statusfelder der Nachricht (siehe Status-Versionen).

message.unsubscribed
{
  "event": "message.unsubscribed",
  "event_id": "evt_h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2",
  "timestamp": "2026-02-17T14:00:00.000Z",
  "data": {
    "message_id": "m_a1b2c3d4e5f6",
    "recipient": "[email protected]",
    "timestamp": "2026-02-17T14:00:00.000Z",
    "status_version": 3,
    "status": "delivered",
    "previous_status": "queued",
    "complaint_status": "none",
    "reason": null
  }
}

Unterdrückungsereignisse

message.complained

Ausgelöst, wenn ein Empfänger die E-Mail als Spam markiert (ISP-Feedback-Loop).

message.complained
{
  "event": "message.complained",
  "event_id": "evt_i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3",
  "timestamp": "2026-02-17T15:00:00.000Z",
  "data": {
    "message_id": "m_a1b2c3d4e5f6",
    "recipient": "[email protected]",
    "timestamp": "2026-02-17T15:00:00.000Z",
    "feedback_type": "abuse"
  }
}

Beschwerdequoten über 0,1 % können Ihren Absenderruf schädigen. Beobachten Sie message.complained-Ereignisse genau und versenden Sie nur an Empfänger, die eingewilligt haben.

suppression.added

Illustrativ: noch nicht ausgelöst. Dieses Ereignis ist katalogisiert, hat aber heute keinen Erzeuger.

suppression.added (illustrative)
{
  "event": "suppression.added",
  "event_id": "evt_j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4",
  "timestamp": "2026-02-17T15:00:01.000Z",
  "data": {
    "email": "[email protected]",
    "type": "complaint",
    "scope": "global",
    "reason": "Spam complaint via ISP feedback loop"
  }
}

suppression.removed

Illustrativ: noch nicht ausgelöst. Dieses Ereignis ist katalogisiert, hat aber heute keinen Erzeuger.

suppression.removed (illustrative)
{
  "event": "suppression.removed",
  "event_id": "evt_k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5",
  "timestamp": "2026-02-17T16:00:00.000Z",
  "data": {
    "email": "[email protected]",
    "type": "manual",
    "scope": "global"
  }
}

Eingehende Ereignisse

inbound.received

Ausgelöst, wenn eine eingehende E-Mail auf einer Ihrer Domains empfangen wird.

Dieses Ereignis verwendet die Standardhülle wie jedes andere Ereignis auf dieser Seite: event_id entspricht X-MLND-Event-Id und bleibt über Wiederholungen hinweg stabil, occurred_at ist der Empfangszeitpunkt der E-Mail, und die Inbound-Felder stehen unter data. Die id jedes Anhangs ist über Wiederholungen hinweg stabil; seine download_url ist bei jedem Versuch neu. Feldreferenz: Eingehende Webhooks.

inbound.received
{
  "event": "inbound.received",
  "event_id": "evt_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
  "timestamp": "2026-02-17T12:00:00.000Z",
  "occurred_at": "2026-02-17T12:00:00.000Z",
  "schema_version": 1,
  "data": {
    "idempotency_key": "r7n2k5x9m1p4w6_s5m3x8k1p7n4w2",
    "email": {
      "id": "r7n2k5x9m1p4w6",
      "received_at": "2026-02-17T12:00:00.000Z",
      "size_bytes": 4521,
      "envelope": {
        "from": "[email protected]",
        "to": ["[email protected]"]
      },
      "headers": {
        "from": { "address": "[email protected]", "name": "Jane Doe" },
        "to": [{ "address": "[email protected]" }],
        "subject": "Help with my order",
        "message_id": "<[email protected]>",
        "date": "2026-02-17T11:59:50.000Z"
      },
      "body": {
        "text_preview": "Hi, I need help with...",
        "has_text": true,
        "has_html": true
      },
      "attachments": [],
      "authentication": {
        "spf": { "result": "pass" },
        "dkim": { "result": "pass" },
        "dmarc": { "result": "pass" }
      },
      "spam": {
        "score": 0.1,
        "is_spam": false,
        "reason": null
      },
      "source": {
        "ip": "203.0.113.10",
        "hostname": "mail.external.com"
      }
    },
    "matched_route": {
      "id": "s5m3x8k1p7n4w2",
      "name": "Support inbox"
    }
  }
}

Kontoereignisse

account.webhook_paused

Wird nicht ausgelöst. Die automatische Pausierung ist real und läuft wie unter Logik für Wiederholungsversuche beschrieben ab, wird aber über die eigenen Felder pausedAt / pausedReason des Webhooks und eine In-App-Benachrichtigung mitgeteilt, nicht als Webhook-Ereignis. „Ihr Endpunkt funktioniert nicht mehr“ an einen Webhook-Endpunkt zu senden, ist konstruktionsbedingt unzuverlässig, und ohnehin kann kein Abonnement dieses Ereignis derzeit enthalten.

Ausgelöst, wenn ein Webhook aufgrund aufeinanderfolgender Fehlschläge automatisch pausiert wird.

account.webhook_paused
{
  "event": "account.webhook_paused",
  "event_id": "evt_m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7",
  "timestamp": "2026-02-17T18:00:00.000Z",
  "data": {
    "webhook_id": "z8m3p1k6x4w2n7",
    "webhook_name": "Production Events",
    "consecutive_failures": 10,
    "last_error": "Connection refused"
  }
}

account.domain_verified

Illustrativ: noch nicht ausgelöst. Dieses Ereignis ist katalogisiert, hat aber heute keinen Erzeuger.

account.domain_verified (illustrative)
{
  "event": "account.domain_verified",
  "event_id": "evt_n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8",
  "timestamp": "2026-02-17T10:15:00.000Z",
  "data": {
    "domain_id": "q3z8v1k6m9p2x5",
    "domain": "yourdomain.com"
  }
}

account.domain_failed

Illustrativ: noch nicht ausgelöst. Dieses Ereignis ist katalogisiert, hat aber heute keinen Erzeuger.

account.domain_failed (illustrative)
{
  "event": "account.domain_failed",
  "event_id": "evt_o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9",
  "timestamp": "2026-02-17T10:15:00.000Z",
  "data": {
    "domain_id": "q3z8v1k6m9p2x5",
    "domain": "yourdomain.com",
    "reason": "DKIM record not found for selector mlnd"
  }
}

account.quota_warning

Illustrativ: noch nicht ausgelöst. Dieses Ereignis ist katalogisiert, hat aber heute keinen Erzeuger.

account.quota_warning (illustrative)
{
  "event": "account.quota_warning",
  "event_id": "evt_p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0",
  "timestamp": "2026-02-17T20:00:00.000Z",
  "data": {
    "used": 45000,
    "limit": 50000,
    "percentage": 90
  }
}

account.quota_exceeded

Illustrativ: noch nicht ausgelöst. Dieses Ereignis ist katalogisiert, hat aber heute keinen Erzeuger.

account.quota_exceeded (illustrative)
{
  "event": "account.quota_exceeded",
  "event_id": "evt_q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1",
  "timestamp": "2026-02-17T22:00:00.000Z",
  "data": {
    "used": 50000,
    "limit": 50000,
    "percentage": 100
  }
}

Ereignisübersicht

„Verfügbar" ist das availableNow-Flag des Katalogs: ob heute überhaupt etwas dieses Ereignis auslöst. Nur verfügbare Ereignisse dürfen in einem Abonnement enthalten sein.

EreignisVerfügbarProdukteDomänenbezogenBeschreibung
message.deliveredJatransactional, marketingJaErfolgreich zugestellt
message.deferredJatransactional, marketingJaVorübergehend verzögert
message.bouncedJatransactional, marketingJaHard- oder Soft-Bounce
message.failedJatransactional, marketingJaVon MailLand auf Grundlage eindeutiger Belege beendet, Ursache bei MailLand; eine Korrektur kann folgen (siehe Statusversionen)
message.outcome_unknownJatransactional, marketingJaMailLand konnte nicht feststellen, ob die Nachricht die Zustellwarteschlange erreicht hat; nicht endgültig
message.retriedJatransactional, marketingJaEine gebouncte oder fehlgeschlagene Nachricht wurde erneut versucht und ist wieder in der Warteschlange; nicht endgültig
message.complainedJatransactional, marketingJaAls Spam markiert
inbound.receivedJainboundJaEingehende E-Mail empfangen
message.sentNoch nichttransactional, marketingJaE-Mail angenommen und eingereiht
message.openedNoch nichttransactional, marketingJaTracking-Pixel geladen
message.clickedNoch nichttransactional, marketingJaLink geklickt
message.unsubscribedJatransactional, marketingJaEmpfänger abgemeldet
suppression.addedNoch nichttransactional, marketingNeinZur Sperrliste hinzugefügt
suppression.removedNoch nichttransactional, marketingNeinVon der Sperrliste entfernt
account.webhook_pausedNoch nichtsystemNeinWebhook automatisch pausiert
account.domain_verifiedNoch nichtsystemNeinDomain verifiziert
account.domain_failedNoch nichtsystemNeinDomain-Verifizierung fehlgeschlagen
account.quota_warningNoch nichtsystemNeinKontingent nähert sich der Grenze
account.quota_exceededNoch nichtsystemNeinKontingent aufgebraucht

Zukünftige Ereignisse

Wenn includeFutureEvents true ist (Standard), erhält Ihr Webhook automatisch neue Ereignistypen, sobald sie zu Ihren abonnierten Produkten hinzugefügt werden. Setzen Sie es auf false, um Ihr Abonnement auf den aktuellen Ereignisstand festzulegen.

Die oben mit „Noch nicht" markierten Ereignisse werden abonnierbar, sobald ihre Erzeuger ausgeliefert werden: Die hier dokumentierten Ereignisnamen und Nutzdatenstrukturen ändern sich dann nicht.

Nächste Schritte

Auf dieser Seite