> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zavu.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Templates

> Manage templates with the PHP SDK

Templates are reusable message formats for sending structured messages across WhatsApp, SMS, Telegram, and other channels. WhatsApp requires template approval for business-initiated conversations.

## Create Template

```php theme={null}
$result = $client->templates->create([
    'name' => 'order_confirmation',
    'language' => 'en',
    'body' => 'Hi {{1}}, your order #{{2}} is confirmed!',
    'whatsappCategory' => 'UTILITY',
    'variables' => ['customer_name', 'order_id'],
]);

echo $result->id . "\n"; // tpl_xxx
echo $result->status . "\n"; // draft, pending, approved, rejected
```

## List Templates

```php theme={null}
$result = $client->templates->list([]);

foreach ($result->items as $template) {
    echo $template->id . " " . $template->name . " " . $template->status . "\n";
}

// With pagination
$result = $client->templates->list([
    'limit' => 50,
    'cursor' => 'cursor_xxx',
]);
```

## Get Template

```php theme={null}
$result = $client->templates->get([
    'templateId' => 'tpl_abc123',
]);

echo $result->name . "\n";
echo $result->body . "\n";
echo $result->status . "\n";
```

## Delete Template

```php theme={null}
$client->templates->delete([
    'templateId' => 'tpl_abc123',
]);
```

## Submit Template for Approval

After creating a template, you need to submit it to Meta for approval before you can use it:

```php theme={null}
$result = $client->templates->submit([
    'templateId' => 'tpl_abc123',
    'senderId' => 'sender_xyz',
    'category' => 'UTILITY', // Optional if already set on template
]);

echo $result->status . "\n"; // "pending"
```

<Info>
  The `senderId` must reference a sender that has a WhatsApp Business Account configured. Templates are submitted to the WABA associated with that sender.
</Info>

## Template Categories

| Category         | Use Case                                             |
| ---------------- | ---------------------------------------------------- |
| `UTILITY`        | Order updates, account alerts, appointment reminders |
| `MARKETING`      | Promotions, offers, newsletters                      |
| `AUTHENTICATION` | OTP codes, verification messages                     |

## Using Templates in Messages

```php theme={null}
$result = $client->messages->send([
    'to' => '+14155551234',
    'messageType' => 'template',
    'content' => [
        'templateId' => 'tpl_abc123',
        'templateVariables' => [
            '1' => 'John',
            '2' => 'ORD-12345',
        ],
    ],
]);
```
