---
title: "Create a Sender"
method: POST
path: "/v2/Channels/Senders"
tags: ["MessagingV2ChannelsSender"]
---

# Create a Sender

`POST /v2/Channels/Senders`

## Request

- Base URL: `https://messaging.twilio.com`
- URL: `https://messaging.twilio.com/v2/Channels/Senders`
- Auth: HTTP basic

Create a Sender.

## Request body

- MessagingV2ChannelsSenderRequestsCreate
  - `sender_id` string, nullable, required: The ID of the sender in `whatsapp:<E.164_PHONE_NUMBER>` format.
  - `friendly_name` string, nullable: Optional display label for the sender in the Twilio Console.
  - `configuration` MessagingV2ChannelsSenderConfiguration, nullable: The configuration settings for creating a sender.
    - `waba_id` string, nullable: The ID of the WhatsApp Business Account (WABA) to use for this sender.
    - `verification_method` 'sms' | 'voice', nullable: The verification method.
    - `verification_code` string, nullable: The verification code.
    - `voice_application_sid` string, nullable: The SID of the Twilio Voice application.
    - `account_type` 'ISV' | 'ISVSubAccount', nullable: The account type for ISV Account Type Migration. Set to 'ISV' or 'ISVSubAccount' to configure, empty string to clear, or omit to preserve the existing value.
  - `webhook` MessagingV2ChannelsSenderWebhook, nullable: The configuration settings for webhooks.
    - `callback_url` string, nullable: The URL to send the webhook to.
    - `callback_method` 'POST' | 'PUT', nullable: The HTTP method for the webhook.
    - `fallback_url` string, nullable: The URL to send the fallback webhook to.
    - `fallback_method` 'POST' | 'PUT', nullable: The HTTP method for the fallback webhook.
    - `status_callback_url` string, nullable: The URL to send the status callback to.
    - `status_callback_method` string, nullable: The HTTP method for the status callback.
  - `profile` MessagingV2ChannelsSenderProfile, nullable: The profile information for the sender.
    - `name` string, nullable: The name of the sender. Required for WhatsApp senders and must follow [Meta's display name guidelines](https://www.facebook.com/business/help/757569725593362). On update, a WhatsApp sender's name is not changed synchronously: it is submitted to Meta for review, and `profile.name` continues to report the current active name until Meta approves the new one and the sender is automatically re-registered. Track progress with `pending_display_name_status` on Fetch Sender, and see `display_name_status` on the update response for the immediate outcome. Re-submitting the same name is how you retry applying a name Meta has already approved, for example after correcting the sender's two-step verification PIN. Meta permits a limited number of display name changes per 30-day period.
    - `about` string, nullable: The profile about text for the sender.
    - `address` string, nullable: The address of the sender.
    - `description` string, nullable: The description of the sender.
    - `logo_url` string, nullable: The logo URL of the sender.
    - `banner_url` string, nullable: The banner URL of the sender.
    - `privacy_url` string, nullable: The privacy URL of the sender. Must be a publicly accessible HTTP or HTTPS URI associated with the sender.
    - `terms_of_service_url` string, nullable: The terms of service URL of the sender.
    - `accent_color` string, nullable: The color theme of the sender. Must be in hex format and have at least a 4:5:1 contrast ratio against white.
    - `use_case` 'PROMOTIONAL' | 'TRANSACTIONAL' | 'OTP' | 'MULTI_USE', nullable: The messaging use case type for the RCS sender. Allowed values are `PROMOTIONAL`, `TRANSACTIONAL`, `OTP`, `MULTI_USE`. Defaults to `MULTI_USE` if not provided. Cannot be modified after launch.
    - `vertical` string, nullable: The vertical of the sender. Allowed values are: - `Alcohol` - `Automotive` - `Beauty, Spa and Salon` - `Clothing and Apparel` - `Education` - `Entertainment` - `Event Planning and Service` - `Finance and Banking` - `Food and Grocery` - `Hotel and Lodging` - `Matrimony Service` - `Medical and Health` - `Non-profit` - `Online Gambling` - `OTC Drugs` - `Other` - `Physical Gambling` - `Professional Services` - `Public Service` - `Restaurant` - `Shopping and Retail` - `Travel and Transportation`
    - `websites` unknown
    - `emails` unknown
    - `phone_numbers` unknown

## Response `202`

Accepted

- MessagingV2ChannelsSenderResponse
  - `sid` string, nullable: The SID of the sender.
  - `status` 'CREATING' | 'ONLINE' | 'OFFLINE' | 'PENDING_VERIFICATION' | 'VERIFYING' | 'ONLINE:UPDATING' | 'TWILIO_REVIEW' | 'DRAFT' | 'STUBBED': The status of the sender.
  - `sender_id` string, nullable: The ID of the sender in `whatsapp:<E.164_PHONE_NUMBER>` format.
  - `friendly_name` string, nullable: Optional display label for the sender in the Twilio Console.
  - `configuration` MessagingV2ChannelsSenderConfiguration, nullable: The configuration settings for creating a sender.
    - `waba_id` string, nullable: The ID of the WhatsApp Business Account (WABA) to use for this sender.
    - `verification_method` 'sms' | 'voice', nullable: The verification method.
    - `verification_code` string, nullable: The verification code.
    - `voice_application_sid` string, nullable: The SID of the Twilio Voice application.
    - `account_type` 'ISV' | 'ISVSubAccount', nullable: The account type for ISV Account Type Migration. Set to 'ISV' or 'ISVSubAccount' to configure, empty string to clear, or omit to preserve the existing value.
  - `webhook` MessagingV2ChannelsSenderWebhook, nullable: The configuration settings for webhooks.
    - `callback_url` string, nullable: The URL to send the webhook to.
    - `callback_method` 'POST' | 'PUT', nullable: The HTTP method for the webhook.
    - `fallback_url` string, nullable: The URL to send the fallback webhook to.
    - `fallback_method` 'POST' | 'PUT', nullable: The HTTP method for the fallback webhook.
    - `status_callback_url` string, nullable: The URL to send the status callback to.
    - `status_callback_method` string, nullable: The HTTP method for the status callback.
  - `profile` MessagingV2ChannelsSenderProfileGenericResponse, nullable: The profile information for the sender.
    - `name` string, nullable: The name of the sender.
    - `about` string, nullable: The profile about text for the sender.
    - `address` string, nullable: The address of the sender.
    - `description` string, nullable: The description of the sender.
    - `logo_url` string, nullable: The logo URL of the sender.
    - `banner_url` string, nullable: The banner URL of the sender.
    - `privacy_url` string, nullable: The privacy URL of the sender. Must be a publicly accessible HTTP or HTTPS URI associated with the sender.
    - `terms_of_service_url` string, nullable: The terms of service URL of the sender.
    - `accent_color` string, nullable: The color theme of the sender. Must be in hex format and have at least a 4:5:1 contrast ratio against white.
    - `use_case` 'PROMOTIONAL' | 'TRANSACTIONAL' | 'OTP' | 'MULTI_USE', nullable: The messaging use case type for the RCS sender. Allowed values are `PROMOTIONAL`, `TRANSACTIONAL`, `OTP`, `MULTI_USE`. Defaults to `MULTI_USE` if not provided. Cannot be modified after launch.
    - `vertical` string, nullable: The vertical of the sender. Allowed values are: - `Alcohol` - `Automotive` - `Beauty, Spa and Salon` - `Clothing and Apparel` - `Education` - `Entertainment` - `Event Planning and Service` - `Finance and Banking` - `Food and Grocery` - `Hotel and Lodging` - `Matrimony Service` - `Medical and Health` - `Non-profit` - `Online Gambling` - `OTC Drugs` - `Other` - `Physical Gambling` - `Professional Services` - `Public Service` - `Restaurant` - `Shopping and Retail` - `Travel and Transportation`
    - `websites` object[], nullable: The websites of the sender.
      - `website` string
      - `label` string
    - `emails` object[], nullable: The emails of the sender.
      - `email` string
      - `label` string
    - `phone_numbers` object[], nullable: The phone numbers of the sender.
      - `phone_number` string
      - `label` string
  - `pending_display_name` string, nullable: WhatsApp only. The display name the most recent change applies to — awaiting Meta review, approved by Meta and awaiting re-registration, or, once `pending_display_name_status` is `COMPLETED`, the name now in effect (identical to `name`). Absent when no display name change has been made, and once a completed change stops being reported.
  - `pending_display_name_status` 'PENDING_REVIEW' | 'APPROVED' | 'DECLINED' | 'PIN_MISMATCH' | 'REGISTRATION_FAILED' | 'EXPIRED' | 'COMPLETED', nullable: WhatsApp only. The status of the most recent display name change. `PENDING_REVIEW`, `APPROVED` and `DECLINED` are reported by Meta. `PIN_MISMATCH` and `REGISTRATION_FAILED` mean Meta approved the name but it could not be applied; `EXPIRED` means Meta's 14-day window to apply an approved name elapsed. In all three cases, re-submit the same `profile.name` to retry. `COMPLETED` means the name was approved and applied — `name` now returns it. A `COMPLETED` change is reported for 14 days after it completes and is absent afterwards, so treat its presence as "recently completed" rather than a permanent flag; use `pending_display_name_status_date` to tell how recent. Absent when no display name change has been made.
  - `pending_display_name_status_date` string, date-time, nullable: WhatsApp only. The date and time in UTC when `pending_display_name_status` last changed, specified in ISO 8601 format. Absent whenever `pending_display_name_status` is absent, so the three `pending_display_name*` fields are always present or absent together.
  - `properties` MessagingV2ChannelsSenderProperties, nullable: The additional properties for the sender.
    - `quality_rating` string, nullable: The quality rating of the sender.
    - `messaging_limit` string, nullable: The messaging limit of the sender.
  - `offline_reasons` MessagingV2ChannelsSenderOfflineReasonsItems[], nullable: The reasons why the sender is offline.
    - `code` string, nullable: The error code.
    - `message` string, nullable: The error message.
    - `more_info` string, uri, nullable: The URL to get more information about the error.
  - `compliance` MessagingV2RcsComplianceResponse, nullable: The KYC compliance information. This section consists of response to the request launch.
    - `registration_sid` string, required: The default compliance registration SID (e.g., from CR-Google) that applies to all countries unless overridden in the `countries` array.
    - `countries` MessagingV2RcsComplianceCountryResponse[]: A list of country-specific compliance details.
      - `country` string, required: The ISO 3166-1 alpha-2 country code.
      - `registration_sid` string: The default compliance registration SID (e.g., from CR-Google) that applies to all countries unless overridden in the `countries` array.
      - `status` 'ONLINE' | 'OFFLINE' | 'TWILIO_REVIEW' | 'PENDING_VERIFICATION': The country-level status. Based on the aggregation of the carrier-level status.
      - `carriers` MessagingV2RcsCarrier[]
        - `name` string: The name of the carrier. For example, `Verizon` or `AT&T` for US.
        - `status` 'UNKNOWN' | 'UNLAUNCHED' | 'CARRIER_REVIEW' | 'APPROVED' | 'REJECTED' | 'SUSPENDED': The carrier-level status.
  - `url` string, uri, nullable: The URL of the resource.

## Changes

- **2026-10-06** (v2) `c5c14a6098a3`: 1 breaking, 1 warning, 3 info
  - the `profile/name` request property's minLength was increased from `0` to `1`
  - the `profile/name` request property's maxLength was set to `255`
  - added the optional property `pending_display_name` to the response with the `202` status
  - added the optional property `pending_display_name_status` to the response with the `202` status
  - …1 more
- **2026-08-11** (v2) `1b0133a1cf72`: 2 info
  - added the new optional request property `friendly_name`
  - added the optional property `friendly_name` to the response with the `202` status
- **2026-05-06** (v2) `6742cbe164c1`: 2 info
  - added the new optional request property `profile/use_case`
  - added the optional property `profile/use_case` to the response with the `202` status
- **2026-03-24** (v2) `06dce5b2c19b`: 2 info
  - added the new optional request property `configuration/account_type`
  - added the optional property `configuration/account_type` to the response with the `202` status
- **2025-10-28** (v2) `99df3f364d3e`: 3 breaking
  - the response property `compliance/countries` became optional for the status `202`
  - the response property `compliance/countries/items/registration_sid` became optional for the status `202`
  - the response property `compliance/countries/items/status` became optional for the status `202`

[Operation history](https://skmtc.dev/twilio/apis/twilio-messaging/changes/v2/Channels/Senders/post.md)

---

[API](https://skmtc.dev/twilio/apis/twilio-messaging.md) - [All operations](https://skmtc.dev/twilio/apis/twilio-messaging/llms.txt) - [OpenAPI document](https://skmtc.dev/twilio/apis/twilio-messaging/revisions/6ba17b4505e1?raw)
