← Blog

·

Where to find the Phone Number ID, WABA ID and App ID for the WhatsApp API

Updated on October 29, 2026

Your WhatsApp Phone Number ID is shown in the API Setup section of your app in Meta’s App Dashboard, next to the Messaging account ID (the former WABA ID); the App ID sits in the toolbar at the top of the app dashboard. If you don’t have dashboard access, the API gives you everything: GET /debug_token returns the App ID and the Messaging account IDs a token can reach, and GET /{waba-id}/phone_numbers lists the numbers with their IDs.

This guide explains what each ID identifies, where to find it in Meta’s interface, how to get it from the Graph API, and where it lives in Vectalk.

The three IDs (and why they’re not interchangeable)

People new to the official WhatsApp API often mix up these IDs because they’re all long numbers with no prefix. Each one points to a different Graph API object:

IDWhat it identifiesWhere you use it
Phone Number IDA phone number registered on the Cloud APIPOST /{phone-number-id}/messages, media, number registration, business profile
WABA ID (Messaging account ID)The account that holds templates, billing and webhook subscriptionsGET/POST/DELETE /{waba-id}/message_templates, GET /{waba-id}/phone_numbers, webhook subscriptions
App IDThe app you created in Meta’s developer dashboardWebhook configuration, Embedded Signup, token debugging
Business portfolio IDThe business in Business ManagerSystem users, assets and business verification

The classic mistake is putting the WABA ID in the /messages path. The call fails because that object isn’t a phone number. The reverse also happens: trying to list templates with a Phone Number ID. If the acronyms are new to you, the WhatsApp API glossary covers each one.

What changed with the new WABA structure

Since September 23, 2026, Meta splits the WABA into two accounts (the migration was staged and, per Meta’s timeline, reaches all businesses by mid-October 2026): the WhatsApp account, which holds the phone number and profile, and the Messaging account, which holds templates, billing and webhooks. According to Meta’s WhatsApp Business account updates page, existing WABA IDs stay the same and now denote Messaging account IDs. Phone Number IDs also keep working with every API.

The WhatsApp account ID isn’t exposed yet: Meta plans that for a new Graph API version in the first half of 2027, and only from Phase 3 (first half of 2028) will endpoints that take the Phone Number ID in the path require that new ID instead. The details are in WhatsApp account vs. Messaging account. So throughout this article, “WABA ID” and “Messaging account ID” mean the same number.

Where to find them in Meta’s App Dashboard

These steps follow the Cloud API get-started guide.

  1. Go to developers.facebook.com/apps and open the app that uses the WhatsApp use case.
  2. Open API Setup in the left-side menu (right after creating the app you land on Customize use case > Connect on WhatsApp > Quickstart, and API Setup is in the menu on the left).
  3. Once the app is connected to a Messaging account, the Messaging account ID is displayed in the API Setup panel.
  4. In the same panel you pick the number in the From field to send a test message. Meta’s guide tells you to keep the phone number ID and the Messaging account ID from this step for later.

If you have more than one number, check which one is selected under From before copying: each number has its own Phone Number ID, and they can all belong to the same Messaging account.

App ID

The App ID is generated when the app is created. Meta’s App Dashboard documentation says the toolbar at the top of the dashboard, once you select an app, displays the App ID and lets you switch between apps. Settings are split into Basic and Advanced; Basic is where you find the App Secret, which you use to validate webhook signatures. The App ID can appear in front-end code (in Embedded Signup, for example); the App Secret never should.

Want to try it while you read? Create a Vectalk account and send your first message through the official API. Create free account →

Where to find them in Business Settings

If you’re not a developer on the app but you are a business admin, use Business Manager. Meta’s system users page says:

  • Messaging account ID (WABA ID): Business Settings > Accounts > WhatsApp Business Accounts. Select the account and the details panel shows its ID.
  • Business portfolio ID: Business Settings > Business Info.

After the migration, Meta says the Accounts menu in Meta Business Suite shows two tabs, WhatsApp Accounts and Messaging Accounts, instead of the single WABA view; the Messaging account ID is under Messaging Accounts. Keep in mind that the ID in the Business Manager URL belongs to the portfolio you’re currently using, not necessarily the one that owns the WhatsApp account.

How to get the IDs from the API

When all you have is a token (from a client, a teammate or an Embedded Signup flow), the API is the most reliable way to find the IDs. The examples use Graph API v26.0, the version in Meta’s current samples.

1. App ID and WABA ID with debug_token

The debug_token endpoint inspects a token. Per the debug_token reference, the response includes app_id, application, is_valid, expires_at, scopes and granular_scopes, among others. To call it, use an app access token or a user access token from the app’s developer; in the partner flow, Meta sends the system user token in the header.

curl -G "https://graph.facebook.com/v26.0/debug_token" \
  --data-urlencode "input_token=TOKEN_TO_INSPECT" \
  -H "Authorization: Bearer SYSTEM_USER_TOKEN"

Trimmed response (sample values):

{
  "data": {
    "app_id": "670843887433847",
    "application": "My Integration",
    "is_valid": true,
    "scopes": ["whatsapp_business_management", "whatsapp_business_messaging"],
    "granular_scopes": [
      {
        "scope": "whatsapp_business_management",
        "target_ids": ["102289599326934"]
      },
      {
        "scope": "whatsapp_business_messaging",
        "target_ids": ["102289599326934"]
      }
    ]
  }
}

app_id is the App ID. Inside granular_scopes, the target_ids for the whatsapp_business_management scope are the IDs of the Messaging accounts that granted that permission to the app. Meta’s account management page for partners explains that the most recently onboarded accounts appear first, so right after an Embedded Signup the first ID in the list is the newly shared account.

2. Phone Number IDs with /phone_numbers

With the WABA ID, list the account’s numbers, as shown in Meta’s phone numbers documentation:

curl "https://graph.facebook.com/v26.0/102289599326934/phone_numbers" \
  -H "Authorization: Bearer YOUR_TOKEN"
{
  "data": [
    {
      "verified_name": "Example Store",
      "display_phone_number": "+1 631-555-5555",
      "id": "1906385232743451",
      "quality_rating": "GREEN"
    }
  ]
}

Each item’s id is the Phone Number ID. display_phone_number tells you which is which when the account has several numbers, and quality_rating shows the number’s quality.

3. Check a specific number

If you already have a Phone Number ID and want to confirm which number it belongs to:

curl "https://graph.facebook.com/v26.0/1906385232743451" \
  -H "Authorization: Bearer YOUR_TOKEN"

The response includes display_phone_number, verified_name, quality_rating, code_verification_status and the id itself.

4. From the webhook

The IDs also arrive with every event. In a message webhook, entry[].id is the WABA ID (now the Messaging account ID) and value.metadata.phone_number_id is the Phone Number ID of the number that received the message. That’s handy for routing events when one endpoint serves several numbers.

{
  "object": "whatsapp_business_account",
  "entry": [{
    "id": "102289599326934",
    "changes": [{
      "field": "messages",
      "value": {
        "messaging_product": "whatsapp",
        "metadata": {
          "display_phone_number": "16315555555",
          "phone_number_id": "1906385232743451"
        }
      }
    }]
  }]
}

Common mistakes with these IDs

  • WABA ID instead of Phone Number ID in /messages: the call fails because that object doesn’t support the operation. Run GET /{id} to check what the ID actually is.
  • Test number’s Phone Number ID in production: the test number in API Setup has its own ID. When you move to your real number, update the ID in your config.
  • Token without access to the asset: the ID is right, but the token (from another app, or from a system user without the asset assigned) can’t see the account. Generate a permanent system user token with the right assets.
  • Portfolio ID mistaken for the WABA ID: the ID in the Business Manager URL is the portfolio’s.

The error codes you’ll see in each case are covered in WhatsApp API error codes. To try these calls without writing code, see how to test the WhatsApp API in Postman.

Where to see the IDs in Vectalk

In Vectalk, each connected number becomes an instance. When you connect your account through Embedded Signup under Instances → Connect account, the platform imports the phone_number_id, the waba_id and the access token, as described in the quickstart. Per the instances documentation, each instance groups phone_number_id, waba_id (under the new structure, the Messaging account ID), business_id and the token, which Vectalk manages for you.

In the dashboard, the instances screen shows the number’s profile and IDs, plus webhooks, API keys and test message sending. Via the API, with an instance token:

# The instance's number (the Phone Number ID is resolved from the token)
curl "https://apis.vectalk.com.br/api/phone-numbers?fields=id,display_phone_number,verified_name,quality_rating" \
  -H "Authorization: Bearer YOUR_INSTANCE_TOKEN"

# All numbers in the Messaging account (the WABA ID is resolved from the token)
curl "https://apis.vectalk.com.br/api/phone-numbers/list" \
  -H "Authorization: Bearer YOUR_INSTANCE_TOKEN"

Both routes are documented under Get phone number and List WABA numbers. With an instance token you don’t even need to pass the Phone Number ID to send messages; with an organization token, include phone_number_id in the body, as the authentication page explains. The same applies when you send templates. To get started, create your account at apps.vectalk.com.br/register.

Frequently asked questions

Is the Phone Number ID the phone number?

No. It’s Meta’s internal identifier for that number on the Cloud API. The number itself is in display_phone_number. In the to field of a message you use the recipient’s phone number; in the URL path, the sender’s Phone Number ID.

Did my WABA ID change with the new account structure?

No. Meta says existing WABA IDs stay the same and now denote the Messaging account ID. The WhatsApp account ID is only expected to be exposed in a new Graph API version planned for 2027.

Where is the App Secret?

Under Settings > Basic in the app dashboard. It’s used to validate webhook signatures and must never go into front-end code or a repository.

Can I find the WABA ID with just a token?

Yes. Call GET /debug_token with the token as input_token and read the target_ids for the whatsapp_business_management scope. Then call GET /{waba-id}/phone_numbers to get the Phone Number IDs.

Can one number have two Phone Number IDs?

Nothing in the documentation suggests that: each number has one Phone Number ID. What changes in the new model is that the same number can be linked to more than one Messaging account, each with its own ID. If you’re starting from scratch, see how to get WhatsApp API access.


Official sources checked on October 29, 2026: Get started (Meta), Phone numbers (Meta), Manage accounts for partners (Meta), System users (Meta), WhatsApp Business account updates (Meta), Debug Token (Graph API), App Dashboard (Meta), Instances (Vectalk), Phone numbers (Vectalk).

Put your business on the official WhatsApp

Create your account, connect your number to the official API (you can keep the app with coexistence) and start serving customers and sending messages.