patch/v1/senders/{senderId}

Request

  • Base URL
    https://api.zavu.dev
  • URL
    https://api.zavu.dev/v1/senders/{senderId}
  • Auth
    HTTP bearer

Path parameters

senderIdstring required

Request body

namestring
enableVoiceboolean

Turn the voice channel on or off. The sender must already have a phone number provisioned for calls; enabling it otherwise returns 400 instead of storing a flag that changes nothing. Confirm with the channels array on the response.

enableSmsOnewayboolean

Turn the one-way SMS channel on or off. Enabling needs no number or credential and takes effect immediately (US and Canadian destinations still need an approved 10DLC campaign); disabling removes the channel from the sender. Confirm with the channels array on the response.

setAsDefaultboolean
webhookUrlstring uri nullable

HTTPS URL for webhook events. Set to null to remove webhook.

webhookEventsWebhookEvent[]

Events to subscribe to.

webhookActiveboolean

Whether the webhook is active.

emailReceivingEnabledboolean

Enable or disable inbound email receiving for this sender. Enabling requires a verified inbound MX record on the domain; the request is ignored otherwise, and emailReceivingEnabled comes back false on the response. Disabling always applies.

emailCatchAllEnabledboolean

Enable or disable domain catch-all. When enabled (with emailReceivingEnabled true), this sender receives email for any address at its domain. Ignored (treated as false) if receiving is not enabled.

emailAddressstring email

Attach or change the sender's email from-address (e.g. noreply@yourdomain.com). The domain must be a verified email domain in your project.

emailDomainIdstring

ID of the verified email domain to attach. Optional — resolved from emailAddress's domain when omitted.

emailFromNamestring

Display name shown in the recipient's inbox for the email channel.

webhookSignatureVersion'v1' | 'v1+v2' | 'v2'

Which X-Zavu-Signature scheme this receiver is sent.

  • v1: v1=HMAC_SHA256(secret, body). The scheme used before this was configurable. Existing webhooks stay on it until you move them.
  • v2: v2=HMAC_SHA256(secret, "{t}.{body}"). The current scheme, and the default for new senders. It signs the timestamp together with the body.
  • v1+v2: both signatures, sharing one t. The migration setting: a receiver reading either one works, so you can deploy and confirm your new verifier before switching over.

Moving from v1 straight to v2 returns 400. Set v1+v2 first. See https://docs.zavu.dev/guides/receiving-messages/signature-migration

Example request

{
  "emailAddress": "noreply@yourdomain.com",
  "webhookSignatureVersion": "v2"
}

Response

Sender updated.

idstring required
namestring required
phoneNumberstring

Phone number in E.164 format. Absent on a sender that has none: an email-only sender, or one created with only enableSmsOneway.

channelsstring[]

Channels this sender can actually send on right now: configured AND activated. Empty means the sender cannot send or receive anything yet: a phoneNumber alone does not enable SMS or voice, and a connected account that is not activated is left out, because every send on it is refused. Check this rather than inferring capability from phoneNumber or emailAddress, and turn a connected channel on with POST /v1/senders/{senderId}/channels/{channel}/activate.

isDefaultboolean

Whether this sender is the project's default.

emailAddressstring

From-address for the email channel, if configured.

emailReceivingEnabledboolean

Whether inbound email receiving is enabled for this sender.

emailCatchAllEnabledboolean

Whether catch-all receiving is enabled. When true (and emailReceivingEnabled is true), this sender receives email addressed to any local part at its domain, not just its own address. The original recipient is delivered in the message.inbound webhook's data.to.

createdAtstring date-time
updatedAtstring date-time

Example response

{
  "id": "sender_12345",
  "name": "Primary sender",
  "phoneNumber": "+13125551212",
  "channels": [
    "sms",
    "voice"
  ],
  "webhook": {
    "url": "https://api.example.com/webhooks/zavu",
    "secret": "whsec_abc123...",
    "signatureVersion": "v2"
  },
  "whatsapp": {
    "displayPhoneNumber": "+14155551234",
    "paymentStatus": {
      "setupStatus": "COMPLETE",
      "methodStatus": "VALID"
    }
  },
  "emailAddress": "noreply@yourdomain.com"
}

Changes

    • warning

      added the new contact.identity_linked enum value to the // response property for the response status

    • info

      added the new contact.identity_linked enum value to the request property /

    • info

      added the new optional request property

    • info

      added the required property / to the response with the status