Skip to main content
WhatsApp Tech Provider Embedded Signup lets ISVs and SaaS platforms embed Meta’s WhatsApp onboarding flow directly into their own portal. Your end-customers can create and register a WhatsApp Business Account (WABA), claim a phone number, and begin messaging — all without leaving your application. Unlike the standard embedded signup flow, which is designed for direct Telnyx customers, the Tech Provider flow is built for partners who manage multiple end-customers and need programmatic control over WABA provisioning.

Overview

As a Tech Provider, you build the onboarding experience into your own product. The end-customer clicks a button in your portal, completes Meta’s embedded signup flow, and your backend receives the resulting WABA ID and phone number ID. You then register the WABA with Telnyx so that it can use Telnyx’s messaging infrastructure.

Tech Provider vs. Direct Customer

Tech ProviderDirect Customer
Who uses this?ISVs, SaaS platforms, resellersIndividual businesses
OnboardingEmbedded in your portalVia Telnyx portal or API
WABA ownershipYour end-customers own their WABAsYou own your WABA
API callsYou call Telnyx on behalf of customersYou call Telnyx directly
ScaleMany WABAs under one integrationOne WABA per integration

Prerequisites

Before you begin, make sure you have:
  • A Meta Business Account with admin access
  • A Meta Tech Provider App that has been approved by Meta with the following permissions:
    • whatsapp_business_messaging
    • whatsapp_business_management
  • The Tech Provider onboarding process completed in Meta App Dashboard
  • A Telnyx account with an API key
All links to Meta documentation in this guide require that you are logged in to a Meta Business account. If you don’t have one, create one at business.facebook.com before proceeding.

Step 1: Create and configure your Meta Tech Provider App

1

Create a Meta App

Go to Meta App Dashboard and create a new app. Select Business as the app type.
2

Add WhatsApp product

In your app’s dashboard, add the WhatsApp product. This will generate the permissions you need.
3

Request required permissions

Under App Review > Permissions and Features, request the following permissions:
PermissionPurpose
whatsapp_business_messagingSend and receive WhatsApp messages on behalf of your customers
whatsapp_business_managementManage WhatsApp Business Accounts and phone numbers
Both permissions require Advanced Access for production use.
4

Complete Tech Provider onboarding

Follow Meta’s Tech Provider onboarding guide to complete the Tech Provider registration process. This includes business verification and agreeing to Meta’s Tech Provider terms.
5

Submit for App Review

Submit your app for Meta’s App Review. Meta will evaluate your use case and grant (or deny) the requested permissions. This process typically takes several business days.
While waiting for App Review approval, you can test in Development Mode with your own test users. Production use requires Live Mode and Advanced Access permissions.
Once your Meta App is configured, you need to link it to Telnyx so that WABAs created through your embedded signup flow are registered on Telnyx’s infrastructure.
1

Switch your app to Live mode

In the Meta App Dashboard, change your app mode from Development to Live. This is required for Telnyx to initiate the partner invitation.
2

Contact Telnyx

Reach out to your Telnyx representative or contact support and provide:
  • Your Meta App ID (found in your app’s dashboard)
  • Your business name as registered with Meta
3

Accept the partner invitation

Within 1–2 business days, you’ll receive an email from Meta containing a partner invitation link. Click the link and accept the invitation to link your app with Telnyx.
4

Switch back to Development mode

After accepting the invitation, you can switch your app back to Development mode for testing. The link persists regardless of the app mode.
You must switch your app to Live mode before Telnyx can send the partner invitation. The invitation will fail if your app is in Development mode. After accepting the invite, you can switch back to Development mode for testing.

Step 3: Implement the frontend embedded signup

Meta’s embedded signup flow is triggered from your web application using the Facebook JavaScript SDK. Your frontend launches the signup dialog, the end-customer completes it, and you receive the resulting credentials.
1

Include the Facebook SDK

Add the Facebook SDK to your web application:
<script>
  window.fbAsyncInit = function () {
    FB.init({
      appId: 'YOUR_APP_ID',
      autoLogAppEvents: true,
      xfbml: true,
      version: 'v19.0',
    });
  };
</script>
<script
  async
  defer
  crossorigin="anonymous"
  src="https://connect.facebook.net/en_US/sdk.js"
></script>
2

Trigger the embedded signup flow

Call FB.login() with the config_id of your WhatsApp Business Configuration. This opens Meta’s embedded signup dialog for your end-customer.
function launchWhatsAppSignup() {
  // The response_type must include 'code' and 'setup_token'
  FB.login(
    function (response) {
      if (response.authResponse) {
        const code = response.authResponse.code;
        // Send the code to your backend to exchange for credentials
        sendCodeToBackend(code);
      } else {
        console.error('User cancelled login or did not fully authorize.');
      }
    },
    {
      config_id: 'YOUR_CONFIG_ID',
      response_type: 'code',
      override_default_response_type: true,
      extras: {
        setup: {},
        featureType: '',
        sessionInfoVersion: '3',
      },
    }
  );
}
3

Exchange the code for WABA ID and Phone Number ID

After the user completes the signup, Meta returns an authorization code. Exchange this code using Meta’s API to obtain the WABA ID and phone number ID.
curl -X GET \
  "https://graph.facebook.com/v19.0/oauth/access_token?\
client_id=YOUR_APP_ID\
&client_secret=YOUR_APP_SECRET\
&code=AUTHORIZATION_CODE"
The response contains access token information. Use this access token to retrieve the WABA ID and phone number ID from the signed request or the response payload:
{
  "access_token": "EAAJc...",
  "token_type": "bearer",
  "expires_in": 5183814
}
4

Capture the WABA ID and Phone Number ID

From the embedded signup response, extract the two critical identifiers:
FieldDescription
waba_idThe WhatsApp Business Account ID (e.g., 123456789012345)
phone_number_idThe phone number ID within that WABA (e.g., 987654321098765)
Refer to Meta’s embedded signup documentation for full details on parsing the response. You only need the frontend (web) portion of Meta’s guide — the backend registration is handled by Telnyx in the next step.

Step 4: Register the WABA with Telnyx

Once you have the waba_id and phone_number_id from the embedded signup flow, send them to Telnyx to register the WABA and activate messaging.

Request

curl -X POST https://api.telnyx.com/v2/whatsapp/business_accounts/tech_provider \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "waba_id": "123456789012345",
    "phone_number_id": "987654321098765",
    "app_id": "123456789012345",
    "customer_id": "acme-corp-42"
  }'

Request body parameters

ParameterTypeRequiredDescription
waba_idstringYesThe WABA ID returned by Meta’s embedded signup flow
phone_number_idstringYesThe phone number ID returned by Meta’s embedded signup flow
app_idstringYesYour Meta App ID
customer_idstringNoAn optional identifier you assign to track this customer (e.g., your internal customer ID)
This endpoint requires authentication with a Telnyx API key via the Authorization: Bearer header. Use an API key from your Telnyx account — you can create one in the API Keys page.

Response

A successful response confirms that the WABA has been registered with Telnyx:
{
  "data": {
    "waba_id": "123456789012345",
    "phone_number_id": "987654321098765",
    "status": "registered",
    "customer_id": "acme-corp-42"
  }
}

What happens after registration

When the Telnyx API returns a successful response:
  1. Credit line is applied — The WABA is associated with your Telnyx billing account
  2. WABA is registered — The WhatsApp Business Account is linked to Telnyx’s messaging infrastructure
  3. Number is ready for messaging — The phone number can send and receive WhatsApp messages through Telnyx

Troubleshooting

  • Verify that your app was in Live mode when you contacted Telnyx
  • Check your spam and junk folders
  • Ensure the email associated with your Meta Business account is correct
  • Confirm with your Telnyx representative that they initiated the invitation
  • The invitation typically arrives within 1–2 business days
  • Review Meta’s rejection reasons carefully in the App Review section of your dashboard
  • Common reasons include: insufficient permissions justification, unclear use case description, or missing screencast
  • Update your submission with clearer documentation and resubmit
  • Ensure your app is functional and testable during the review period
  • Confirm the Facebook SDK is loaded before calling FB.login()
  • Check that your config_id is correct and matches a WhatsApp Business Configuration in your app
  • Ensure your app has the whatsapp_business_messaging and whatsapp_business_management permissions
  • Open your browser’s developer console for error messages from the SDK
  • Verify you are using a valid Telnyx API key
  • Ensure the Authorization: Bearer YOUR_API_KEY header is included in your request
  • Check that your API key has not expired or been revoked
  • Ensure the response_type parameter includes code
  • Check that override_default_response_type is set to true
  • Verify the user completed all steps in the Meta signup flow (business verification, phone number selection)
  • Inspect the full response object in your FB.login() callback for debug information
  • Verify the phone number entered by the end-customer is correct and can receive SMS
  • Check that the phone number is not already registered with another WhatsApp account
  • Try requesting the verification code via phone call instead of SMS
  • Ensure the end-customer’s phone carrier is not blocking Meta’s verification messages

Next steps

WhatsApp Quickstart

Send your first WhatsApp message with Telnyx

Standard Embedded Signup

Direct customer embedded signup flow

WhatsApp API Reference

Explore WhatsApp API endpoints

Messaging API

Send messages across all channels