Skip to contentSkip to navigationSkip to topbar
Page toolsOn this page

Register WhatsApp senders using the Senders API


(new)

Public Beta

The Senders API is in Public Beta. Some Senders API features for managing WhatsApp senders aren't yet supported. The information in this document could change. We might add or update features before the product becomes Generally Available. Beta products don't have a Service Level Agreement (SLA). Learn more about beta product support(link takes you to an external page).

Managing WhatsApp senders in the Twilio Console(link takes you to an external page) is Generally Available.

Learn how direct customers can register WhatsApp senders using the Twilio Senders API.

Note: If you're an Independent Software Vendor (ISV), join the WhatsApp Tech Provider Program and follow the WhatsApp sender registration process for ISVs.


Phone number requirements

phone-number-requirements page anchor

You can use either a Twilio phone number or a non-Twilio phone number to register a WhatsApp sender.

  • The phone number must meet the WhatsApp compatibility requirements(link takes you to an external page).
  • The phone number must not already be registered with WhatsApp. Learn how to check if a phone number is registered with WhatsApp and how to use an already registered phone number.
  • If the phone number is non-Twilio, it must be able to receive SMS or voice calls.
    • If the phone number is registered with an Interactive Voice Response (IVR) system or a computer-operated phone system, you can't receive One-Time Passwords (OTPs).
    • If the phone number is only available for outbound messages or calls, you can't use it to register a WhatsApp sender because Meta can't deliver OTPs.

Display name requirements

display-name-requirements page anchor

The WhatsApp sender display name (profile.name) must comply with Meta's display name guidelines(link takes you to an external page). Meta reviews the name after registration. Before bulk registration, register a single sender first to confirm that the name is accepted. If Meta rejects the name, the phone number is limited to 250 business-initiated messages per 24-hour period, and Meta might disconnect the sender.


Register the first WhatsApp sender

register-the-first-whatsapp-sender page anchor

You must register your first WhatsApp sender using WhatsApp Self Sign-up(link takes you to an external page) in the Twilio Console. Learn how to register a WhatsApp sender using WhatsApp Self Sign-up.

After registering the first WhatsApp sender, there are two ways to register additional WhatsApp senders:

  • WhatsApp Self Sign-up
  • Senders API
(information)

When to use Self Sign-up or Senders API

Twilio recommends using the API only when you need to onboard a large number of senders across many accounts (bulk registration). Use the WhatsApp Self Sign-up for a small number of senders.


Register WhatsApp senders using the Senders API

register-whatsapp-senders-using-the-senders-api page anchor

The Senders API allows you to register additional WhatsApp senders on behalf of your customers. This is useful when you have many customers and each customer needs multiple senders created across many Twilio subaccounts.

Meta requires ownership verification for every phone number registered with WhatsApp before that number can send or receive messages. Meta verifies ownership through SMS or voice call OTPs. For Twilio phone numbers with SMS capabilities, Twilio handles the verification automatically during the registration process.

The registration process depends on the phone number type (Twilio or non-Twilio) and capabilities (SMS or voice) to receive the OTP for verification.

SMS: Twilio phone numbersVoice: Twilio phone numbersSMS: Non-Twilio phone numberVoice: Non-Twilio phone number
  1. Buy a Twilio phone number that has SMS capabilities.

    Purchase a phone numberLink to code sample: Purchase a phone number
    1
    // Download the helper library from https://www.twilio.com/docs/node/install
    2
    const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
    3
    4
    // Find your Account SID and Auth Token at twilio.com/console
    5
    // and set the environment variables. See http://twil.io/secure
    6
    const accountSid = process.env.TWILIO_ACCOUNT_SID;
    7
    const authToken = process.env.TWILIO_AUTH_TOKEN;
    8
    const client = twilio(accountSid, authToken);
    9
    10
    async function createIncomingPhoneNumber() {
    11
    const incomingPhoneNumber = await client.incomingPhoneNumbers.create({
    12
    phoneNumber: "+14155552344",
    13
    });
    14
    15
    console.log(incomingPhoneNumber.accountSid);
    16
    }
    17
    18
    createIncomingPhoneNumber();
  2. To register a WhatsApp sender, make a POST /v2/Channels/Senders request. The following properties are required in the request body:

    For additional properties, see the Senders API documentation.

    (warning)

    Too many requests

    Allow several minutes between Senders API requests. Too many requests in a short period might result in errors.

    Register a WhatsApp sender (SMS: Twilio phone numbers)Link to code sample: Register a WhatsApp sender (SMS: Twilio phone numbers)
    1
    ## Create Sender
    2
    curl -X "POST" "https://messaging.twilio.com/v2/Channels/Senders" \
    3
    -H "Content-Type: application/json; charset=utf-8" \
    4
    -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN" \
    5
    -d $'{
    6
    "sender_id": "whatsapp:+15017122661",
    7
    "profile": {
    8
    "address": "101 Spear Street, San Francisco, CA",
    9
    "emails": [
    10
    "support@twilio.com"
    11
    ],
    12
    "vertical": "Other",
    13
    "logo_url": "https://www.twilio.com/logo.png",
    14
    "description": "We\'re excited to see what you build!",
    15
    "about": "Hello! We are Twilio.",
    16
    "name": "Twilio",
    17
    "websites": [
    18
    "https://twilio.com",
    19
    "https://help.twilio.com"
    20
    ]
    21
    },
    22
    "webhook": {
    23
    "callback_method": "POST",
    24
    "callback_url": "https://demo.twilio.com/welcome/sms/reply/"
    25
    }
    26
    }'

    Output

    1
    {
    2
    "status": "CREATING",
    3
    "sender_id": "whatsapp:+15017122661",
    4
    "sid": "XEXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    5
    "configuration": {
    6
    "waba_id": "12345678912345"
    7
    },
    8
    "profile": {
    9
    "about": "Hello! This is Twilio's official account.",
    10
    "name": "Twilio",
    11
    "vertical": "Other",
    12
    "websites": [
    13
    {
    14
    "website": "https://twilio.com",
    15
    "label": "Website"
    16
    },
    17
    {
    18
    "website": "https://help.twilio.com",
    19
    "label": "Website"
    20
    }
    21
    ],
    22
    "address": "101 Spear Street, San Francisco, CA",
    23
    "logo_url": "https://www.twilio.com/logo.png",
    24
    "emails": [
    25
    {
    26
    "email": "support@twilio.com",
    27
    "label": "Email"
    28
    }
    29
    ],
    30
    "description": "We're excited to see what you build!"
    31
    },
    32
    "webhook": {
    33
    "callback_method": "POST",
    34
    "callback_url": "https://demo.twilio.com/welcome/sms/reply/"
    35
    },
    36
    "url": "https://messaging.twilio.com/v2/Channels/Senders/XEXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    37
    "properties": null
    38
    }

    This request creates a WhatsApp sender in Twilio's system, adds it to the WABA connected to your Twilio account, and completes the phone number verification.

  3. To confirm that the WhatsApp sender is registered, make a GET v2/Channels/Senders/{Sid} request and check if status is ONLINE.
    Note: Immediately after registration, the status value will be OFFLINE. Wait a few minutes, then make the request again.

    1
    ## Fetch Sender
    2
    curl -X "GET" "https://messaging.twilio.com/v2/Channels/Senders/XEXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
    3
    -H "Content-Type: application/json; charset=utf-8" \
    4
    -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"

    Output

    1
    {
    2
    "status": "ONLINE",
    3
    "sender_id": "whatsapp:+15017122661",
    4
    "sid": "XEXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    5
    "configuration": {
    6
    "waba_id": "12345678912345"
    7
    },
    8
    "profile": {
    9
    "about": "Hello! This is Twilio's official account.",
    10
    "name": "Twilio",
    11
    "vertical": "Other",
    12
    "websites": [
    13
    {
    14
    "website": "https://twilio.com",
    15
    "label": "Website"
    16
    },
    17
    {
    18
    "website": "https://help.twilio.com",
    19
    "label": "Website"
    20
    }
    21
    ],
    22
    "address": "101 Spear Street, San Francisco, CA",
    23
    "logo_url": "https://www.twilio.com/logo.png",
    24
    "emails": [
    25
    {
    26
    "email": "support@twilio.com",
    27
    "label": "Email"
    28
    }
    29
    ],
    30
    "description": "We're excited to see what you build!"
    31
    },
    32
    "webhook": {
    33
    "callback_method": "POST",
    34
    "callback_url": "https://demo.twilio.com/welcome/sms/reply/"
    35
    },
    36
    "url": "https://messaging.twilio.com/v2/Channels/Senders/XEXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    37
    "properties": {
    38
    "messaging_limit": "1K Customers/24hr",
    39
    "quality_rating": "HIGH"
    40
    }
    41
    }

The following troubleshooting steps can help you resolve common issues when registering a WhatsApp sender.

I want to check if a phone number is registered with WhatsApp

i-want-to-check-if-a-phone-number-is-registered-with-whatsapp page anchor

To check if a phone number is registered with WhatsApp, use one of the following methods:

  • Send a test message: Open https://wa.me/<PHONE_NUMBER>?text=hi (include country code without +, for example, 15551234). If the number is registered, you'll receive "hi" in WhatsApp.
  • Search contacts: In WhatsApp, tap New Chat > New Contact and enter the phone number. If the number is registered, you'll see "This phone number is on WhatsApp".
  • Check error logs: Open the Error Logs page in the Twilio Console(link takes you to an external page). If the number is registered, you'll see Error 63110.

I want to use an already registered phone number

i-want-to-use-an-already-registered-phone-number page anchor

To use a phone number that's already registered with WhatsApp:

Learn more about migrating phone numbers and WhatsApp senders. If you need further assistance, contact Twilio Support(link takes you to an external page).

I can't use Argentina or Mexico phone numbers

i-cant-use-argentina-or-mexico-phone-numbers page anchor
  • For Argentina phone numbers (+54): Add a 9 after the country code and remove the prefix 15 (for example, +549 XXX XXX XXXX).
  • For Mexico phone numbers (+52): Add a 1 after the country code (for example, +521 XX XXXX XXXX).

Learn more about WhatsApp's international phone number format(link takes you to an external page).

I'm not receiving an OTP via SMS

im-not-receiving-an-otp-via-sms page anchor

You might not receive an OTP via SMS for the following reasons:

  • The OTP delivery is delayed.
  • You've reached Meta's maximum number of OTP verification attempts.

To resolve this issue:

  1. Wait a few minutes.
  2. Check the Error logs(link takes you to an external page) for any errors and follow the recommended actions.
  3. Resend an OTP by making another POST /v2/Channels/Senders request.
  4. If you don't receive the OTP after several attempts, contact Twilio Support(link takes you to an external page).

Alternatively, you can try the voice method for verification.

The status field remains OFFLINE

the-status-field-remains-offline page anchor

The status field briefly shows as OFFLINE after registration. The status field changes to ONLINE when registration is complete, which typically takes a few minutes. If the status field remains OFFLINE after that, follow these steps:

  1. Confirm the phone number meets all requirements.
  2. Confirm the display name follows Meta's display name guidelines(link takes you to an external page).
  3. Check the Error logs(link takes you to an external page) for any errors and follow the recommended actions.
  4. Check your WABA status on WhatsApp Manager(link takes you to an external page).
  5. If you still see OFFLINE, contact Twilio Support(link takes you to an external page).