# SMS Notifications (/docs/learn/whats-new/sms-notifications)


**2026-07-07** | SMS, Notifications

## Transactional SMS in the Verdocs API [#transactional-sms-in-the-verdocs-api]

Your signers live on their phones. For many workflows, a text message is the fastest way to get someone into a signing session. Verdocs supports **transactional SMS** - automated, event-driven text messages tied to envelope activity - alongside email. This article covers how that works today, what you need to enable it, and what to expect when you integrate.

***

## What is transactional SMS? [#what-is-transactional-sms]

Transactional SMS messages are automated texts Verdocs sends when something meaningful happens in a signing workflow. They are not marketing blasts. Each message is tied to a specific envelope event, includes a direct link to act, and is sent as a **transactional** message (with standard opt-out language appended).

**For the time being, only one notification event sends SMS**: `recipient:invited` - the initial invitation when a signer is asked to review and sign. Other lifecycle events (reminders, completion, cancellation, delegation, and so on) may send email notifications, but not SMS.

Unlike email notifications, SMS copy is **not customizable** through [notification templates](https://developers.verdocs.com/docs/reference/Rest-API/api-docs/notifications/getNotificationTemplates). Verdocs uses a fixed, concise format so messages stay readable on small screens and compliant with carrier expectations.

***

## When does Verdocs send an SMS? [#when-does-verdocs-send-an-sms]

### Supported events (today) [#supported-events-today]

Verdocs routes SMS through the same notification system as email, but **only one event is enabled for the SMS channel right now**:

| Event                     | Sends SMS?      | Typical trigger                                       |
| ------------------------- | --------------- | ----------------------------------------------------- |
| `recipient:invited`       | **Yes**         | A signer is invited to an envelope for the first time |
| `recipient:reminder`      | No (email only) | Automated or manual reminder to sign                  |
| All other envelope events | No              | Completion, cancellation, delegation, CC, etc.        |

If you are building against the API or debugging delivery, look for `recipient:invited` - that is the only event that will queue an outbound text today.

When that event fires and a signer is invited, Verdocs may deliver both an email and a text - if all of the conditions below are met.

| Condition                                                   | Why it matters                                                                                                                                                                                     |
| ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Your organization has the **SMS notifications** entitlement | Without it, Verdocs skips SMS silently and still sends email. See [Understanding Entitlements](https://developers.verdocs.com/docs/guides/tutorials/organization-hierarchies#entitlements).        |
| The recipient has a **phone number** on their record        | SMS is only queued when `phone` is present at invite time.                                                                                                                                         |
| The envelope is **not** `no_contact`                        | Bring-your-own-notification envelopes skip all outbound contact from Verdocs. See [Bring-Your-Own Notification](https://developers.verdocs.com/docs/guides/tutorials/bring-your-own-notification). |
| The recipient has **not opted out** of SMS                  | Recipients who reply `STOP`, `CANCEL`, or `END` will not receive further texts.                                                                                                                    |

**Reminders and resends** use `recipient:reminder`, which is **email-only**. A new SMS is not sent on reminder or manual resend - even if the recipient has a phone number. Only the original `recipient:invited` event triggers a text.

### What the message looks like [#what-the-message-looks-like]

An invitation SMS follows this pattern:

```
Action required - {envelope name}
{sender name} invited you to review and sign a document.
Sign here: {signing link}
Reply STOP to cancel.
```

The signing link respects your [Brand](https://developers.verdocs.com/docs/reference/Rest-API/api-docs/brands/getBrand) configuration: if the envelope uses a brand with an active custom app domain, the link points there; otherwise it uses the default Verdocs signing host. The link includes the recipient's role and a secure access key - the same style of deep link recipients receive by email.

***

## How SMS fits into your integration [#how-sms-fits-into-your-integration]

### Provide a phone number on the recipient [#provide-a-phone-number-on-the-recipient]

When you [create an envelope](https://developers.verdocs.com/docs/reference/Rest-API/api-docs/envelopes/createEnvelope), include a `phone` value on each recipient who should be reachable by text. At least one of `email` or `phone` is required per recipient; many teams supply both so Verdocs can reach signers on either channel.

Use a valid, internationally formatted number (E.164). Verdocs normalizes phone numbers before sending. Invalid numbers are rejected at send time rather than retried indefinitely.

### Email and SMS run in parallel [#email-and-sms-run-in-parallel]

Invitations are not either/or. When a recipient has both email and phone, Verdocs queues **both** channels independently. That is why you may see envelope history entries for an email invite and an SMS invite for the same recipient - and why a missing SMS entitlement does not block email delivery.

### Opt-out and consent [#opt-out-and-consent]

SMS consent works differently from email:

* **Email** recipients are treated as opted in by default for transactional messages.
* **SMS** recipients are not auto-opted-in. Verdocs tracks consent per organization and phone number. A recipient who has not opted out (`pending` or `opted_in`) can receive messages; an `opted_out` recipient will not.

Every transactional message includes &#x2A;*"Reply STOP to cancel."** Inbound replies of `STOP`, `CANCEL`, or `END` mark the number as opted out for that organization. Future invitations to that number are suppressed for SMS while email continues to work.

### Bring-your-own notification [#bring-your-own-notification]

If your application owns all signer communication, set `no_contact: true` on the envelope. Verdocs will not send invitation emails **or** SMS for that envelope. You are responsible for delivering the signing link yourself - typically via [Start Signing Session](https://developers.verdocs.com/docs/reference/Rest-API/api-docs/recipients/startSigningSession) or your own link construction.

***

## Observability: history, certificates, and usage [#observability-history-certificates-and-usage]

Verdocs gives you several ways to confirm what happened - useful for support tickets and billing reconciliation.

**Envelope history*&#x2A; records whether a recipient was invited via email or SMS. In the dashboard, you will see messages like &#x2A;"Jane Doe has been invited via sms"* alongside the email equivalent. When a recipient opens the document, history also notes whether they arrived through the email link or SMS link.

**Completion certificates** include an **SMS Invitation** indicator when the signer entered the workflow through a text-message link (alongside Email Invitation, In-Person Link, and In-App options). This helps demonstrate how the signer was reached during an audit.

**Usage metering** records each SMS invitation as `sms_invite` in your organization's usage metrics. Query [Get organization usage](https://developers.verdocs.com/docs/reference/Rest-API/api-docs/organizations/getOrganizationUsage) or listen for the `entitlement_used` [webhook](https://developers.verdocs.com/docs/reference/Rest-API/webhooks) event to feed internal billing or dashboards - especially valuable with [organization hierarchies](https://developers.verdocs.com/docs/guides/tutorials/organization-hierarchies).
