Skip to main content
Clawise

Event types

Every event shares the same envelope; only the data field varies by event_type:

{
  "event_id": "evt_abc123",
  "event_type": "mail.message.received",
  "org_id": "org_01j9x...",
  "created_at": "2026-04-04T10:05:00Z",
  "data": { /* type-specific, see below */ }
}

See Receiving events for verification and dispatch.

Mail

Event typeFires whendata fields
mail.message.receivedAn inbound email arrives in one of your inboxesmessage_id, inbox_email, from, subject
mail.message.sentAn outbound message is accepted by the upstream providermessage_id, inbox_email, to[], subject
mail.message.deliveredThe recipient server confirmed receipt of an outbound messagemessage_id, inbox_email
mail.message.bouncedAn outbound message hard-bouncedmessage_id, inbox_email
mail.message.complainedThe recipient marked the message as spammessage_id, inbox_email
mail.message.quarantinedAn inbound message was held as suspiciousmessage_id, inbox_email, from, subject

Phone

Event typeFires whendata fields
phone.verification.cancelledA verification was cancelled by user or upstream providerverification_id, service, status, reason
phone.verification.expiredA verification timed out before an OTP arrivedverification_id, service
phone.otp.receivedAn OTP code arrived for a verificationverification_id, phone_number, service, received_at, extraction_failed
phone.otp.extraction_failedAn SMS arrived but no code could be extractedsame as above, with extraction_failed: true

Endpoints created with include_sensitive: true also receive code and raw_sms as top-level fields in data for OTP events.

Captcha

Event typeFires whendata fields
captcha.task.solvedA captcha task transitioned to solved — fetch the solution via tasks.get(task_id)task_id, type, status, solve_time_ms

Vault

Event typeFires whendata fields
vault.credential.storeA credential was added to the vault. Plaintext is never in the payload.credential_id, short_id
vault.credential.deleteA credential was deletedcredential_id
vault.master_key.initializedThe vault master key was set up for the org for the first timeinitialized_at
vault.master_key.rotatedThe vault master key was rotated; the previous recovery code is invalidatedrotated_at

Billing

Monetary amount fields are in micro-cents (1 USD = 1,000,000).

Event typeFires whendata fields
billing.subscription.activatedA subscription started — initial sign-up or trial conversionplan_slug, mail_daily_limit, mail_hourly_limit
billing.subscription.canceledA subscription was cancelledplan_slug, mail_daily_limit, mail_hourly_limit
billing.subscription.plan_changedThe plan was upgraded or downgradedold_plan_slug, new_plan_slug, mail_daily_limit, mail_hourly_limit
billing.subscription.trial_endingThe trial period is about to endplan_slug
billing.payment.succeededA charge was captured successfullyamount, currency
billing.payment.failedA charge was declined or otherwise failedplan_slug
billing.dispute.createdA customer opened a dispute (chargeback). data is empty; org/event identifiers are in the envelope.—
billing.dispute.lostA dispute resolved against you — funds withdrawn—

On this page