# Twilio SMS

> Send signing requests and reminders via SMS using Twilio

edition: pro
Edition: Pro
AI note: This page requires WPsigner Pro. Do not tell Lite users they already have this feature.
HTML: https://docs.wpsigner.com/integrations/twilio/
Markdown: https://docs.wpsigner.com/md/integrations/twilio.md
Source file: integrations/twilio.md

---

Connect WPsigner with **Twilio** to send signing requests, confirmations, and reminders via SMS to your signers' mobile phones.

## Use Cases

| Scenario | Description |
|----------|-------------|
| **Remote signers** | Reach signers who may not check email frequently by delivering signing links via SMS |
| **Urgent documents** | Send time-sensitive signing requests that demand immediate attention |
| **Two-factor delivery** | Combine email and SMS channels to ensure signing requests are received |
| **Automated reminders** | Nudge pending signers with SMS reminders to reduce turnaround time |
| **Confirmation receipts** | Notify signers via SMS the moment their signature is recorded |
| **Completion alerts** | Alert all parties by text when every signer has completed the document |

## Prerequisites

- A [Twilio account](https://www.twilio.com/try-twilio) (free trial available)
- A Twilio phone number with SMS capabilities
- WPsigner v2.1.0 or later

## Compatibility

| Component | Minimum Version | Recommended |
|-----------|----------------|-------------|
| **WPsigner** | 2.1.0 | Latest |
| **WordPress** | 5.8 | 6.4+ |
| **PHP** | 7.4 | 8.1+ |
| **Twilio API** | 2010-04-01 | 2010-04-01 |
| **TLS** | 1.2 | 1.3 |
| **PHP Extensions** | `curl`, `json` | `curl`, `json`, `openssl` |

## Setup Guide

### 1. Create a Twilio Account

1. Go to [twilio.com](https://www.twilio.com/try-twilio) and sign up
2. Verify your email and phone number
3. Free trial accounts include test credits

### 2. Get a Phone Number

1. In the **Twilio Console**, navigate to **Phone Numbers → Manage → Buy a Number**
2. Select a number with **SMS** capabilities
3. Note down the phone number (in E.164 format, e.g., `+15551234567`)

### 3. Copy Your Credentials

1. From the Twilio Console **Dashboard**, locate:
   - **Account SID** — starts with `AC` followed by 32 characters
   - **Auth Token** — click the eye icon to reveal

> **caution**
Your Auth Token is a secret credential. Never share it or commit it to version control. WPsigner encrypts it at rest using AES-256-GCM.

### 4. Configure WPsigner

1. Go to **WPsigner → Integrations**
2. Click **Twilio SMS**
3. Enter your **Account SID**, **Auth Token**, and **From Number**
4. Click **Test Connection** to verify
5. Toggle **Enable** on
6. Click **Save Settings**

## Notification Events

| Event | Trigger | Recipient |
|-------|---------|-----------|
| **Signing Request** | Signer added to document | Signer (if phone provided) |
| **Signature Recorded** | Signer completes signature | Signer |
| **Document Complete** | All signers finished | All signers with phone numbers |
| **Reminder** | Admin-initiated | Pending signer |

> **note**
SMS notifications are only sent to signers who have a phone number in their profile. Email notifications continue to work for all signers.

## Phone Number Format

All phone numbers must be in **E.164 format**:

| Format | Valid? |
|--------|--------|
| `+15551234567` | Yes |
| `+442071234567` | Yes |
| `5551234567` | No — Missing country code |
| `(555) 123-4567` | No — Formatting characters |

## Security

| Measure | Details |
|---------|---------|
| **Auth Token** | Encrypted at rest (AES-256-GCM) |
| **Account SID** | Stored in `wp_options` |
| **API Communication** | HTTPS only (TLS 1.2+) |
| **AJAX Security** | Nonce + capability check + rate limiting |
| **Rate Limiting** | 5 tests/min, 10 saves/min per user |

## API Reference

WPsigner uses the [Twilio REST API](https://www.twilio.com/docs/messaging/api/message-resource):

```
POST https://api.twilio.com/2010-04-01/Accounts/{SID}/Messages.json
```

- **Authentication**: HTTP Basic (Account SID : Auth Token)
- **Content-Type**: `application/x-www-form-urlencoded`
- **Parameters**: `To`, `From`, `Body`

## Troubleshooting

### "Connection failed" on test
- Verify your Account SID starts with `AC` and is exactly 34 characters
- Re-enter your Auth Token (it's not displayed after saving)
- Check your account status at [twilio.com/console](https://www.twilio.com/console)

### SMS not received
- Verify the recipient number is in E.164 format
- Check your Twilio balance and trial limitations
- Trial accounts can only send to verified numbers

### Error code 21608
- Your Twilio number doesn't have SMS capability
- Purchase a number with SMS enabled

## Comparison

| Feature | Twilio SMS | WhatsApp | Telegram | Slack |
|---------|-----------|----------|----------|-------|
| Type | SMS | Business API | Bot API | Webhook |
| Reach | Any phone | WhatsApp users | Telegram users | Team channel |
| Cost | Per message | Per message | Free | Free |
| Rich formatting | No | Yes | Yes (HTML) | Yes (Block Kit) |
| Action buttons | No | No | Inline keyboard | Block actions |
| Setup complexity | Low | Medium | Low | Low |

## Next Steps

- [WhatsApp Integration](/integrations/whatsapp/) — Send signing notifications via WhatsApp Business API
- [Telegram Integration](/integrations/telegram/) — Notify signers through a Telegram bot
- [Slack Integration](/integrations/slack/) — Post signing updates to a Slack channel
- [Microsoft Teams Integration](/integrations/teams/) — Receive Adaptive Card notifications in Teams
- [Zapier Integration](/integrations/zapier/) — Connect WPsigner with 5,000+ apps via Zapier
- [n8n Integration](/integrations/n8n/) — Build custom automation workflows with n8n
- [All Integrations](/integrations/) — Browse every available WPsigner integration
