Meta BSUID, Usernames & Contact Book Transition Guide

Overview of Meta's WhatsApp BSUID rollout: usernames, contact book behavior, parent BSUIDs, API recipient support, webhook changes, and migration timeline.

Try the interactive checker: Use the BSUID Transition Checker to see exactly which webhook fields change for your scenario.

WhatsApp is adding usernames and business-scoped user IDs (BSUIDs) so a user can interact with businesses without always exposing a phone number in API payloads. This guide is the overview. The detailed implementation references are split into dedicated pages:

What's Changing

Historically, most WhatsApp Cloud API integrations used phone numbers as the main user identifier: wa_id in webhooks and to in send requests. Meta is moving toward a model where WhatsApp users can adopt optional usernames. When a user has a username, their phone number may be omitted from API payloads unless one of Meta's phone-number inclusion conditions applies.

To keep API integrations working, Meta is adding business-scoped user IDs, or BSUIDs. A BSUID uniquely identifies a WhatsApp user within the context of a business portfolio. It appears in webhook payloads as user_id and can be used as a recipient identifier on supported API requests.

BSUIDs appear whether or not the user has adopted a username. Usernames control phone-number visibility in the app and in some payloads; BSUIDs are the backend identifier you use for continuity.

Timeline

Meta updated its BSUID documentation on June 10, 2026. Exact rollout dates remain subject to Meta changes.

TimingChange
Early April 2026BSUIDs begin appearing in messages webhooks.
Early April 2026Meta contact book starts rolling out.
May 2026Messages API and Marketing Messages API add BSUID recipient support.
Early May 2026REQUEST_CONTACT_INFO support becomes available for requesting phone numbers.
Later 2026WhatsApp user usernames become available.
Later 2026Business username adopt/change APIs become available.

If your production behavior depends on a specific rollout date, confirm current availability in Meta's live documentation and in your App Dashboard test webhooks.

Identifier Model

IdentifierMeaning
wa_idThe user's phone number. Can be omitted when the user has a username and phone-number inclusion conditions are not met.
user_idThe user's BSUID scoped to one business portfolio.
parent_user_idA parent BSUID shared across enrolled business portfolios. Only present for eligible managed businesses that have enrolled.
usernameThe user's optional WhatsApp username. Changing it does not change phone number or BSUID.
recipientNew API request field that accepts a BSUID or parent BSUID on supported endpoints.
toExisting phone-number recipient field. If both to and recipient are sent, to takes precedence.

BSUID format is a two-letter ISO 3166 alpha-2 country code, a period, and up to 128 alphanumeric characters, for example US.13491208655302741918. Parent BSUIDs add ENT after the country code, for example US.ENT.11815799212886844830.

Use the full BSUID value exactly as received. Do not strip the country code or period.

Implementation Areas

Webhook Parsing

Update webhook handlers so they do not require phone-number fields. Incoming messages, statuses, system events, contact messages, user preferences, groups, calls, history, and app echoes can all carry BSUID-related fields.

Start with BSUID webhook changes.

Sending and API Requests

Supported APIs add recipient for BSUID or parent BSUID sends. Phone-number sends still use to, and to wins if both are present.

Start with BSUID API and sending changes.

Contact Recovery

If you still need phone numbers, use Meta's contact book behavior and REQUEST_CONTACT_INFO flows rather than assuming wa_id always exists.

Start with BSUID contact book and contact requests.

Multi-Portfolio Identity

If you operate multiple business portfolios and need one stable user identifier across them, evaluate parent BSUIDs.

Start with Parent BSUIDs.

Business Username Management

Business usernames are separate from user privacy usernames. They make a business searchable by username, but they do not hide the business phone number.

Start with WhatsApp business usernames.

When Phone Numbers Still Appear

If a user enables a username, their phone number is still included in webhooks when at least one of these conditions applies:

  1. You have messaged or called the user's phone number within the last 30 days of the webhook.
  2. You have received a message or call from the user's phone number within the last 30 days of the webhook.
  3. The user is in your Meta-hosted contact book.

The 30-day lookback is evaluated per business phone number. If one number in a portfolio interacted with the user, that does not automatically make the phone number appear for webhooks tied to another business phone number. The contact book is portfolio-scoped and can make phone numbers available across phone numbers in the same portfolio once populated.

Dualhook Boundary

Dualhook uses Webhook Override so message-path webhooks go directly from Meta to your endpoint. That matters for BSUID adoption:

  • Dualhook does not ingest your messages webhooks.
  • Dualhook does not store BSUIDs from message-path payloads as product data.
  • Dualhook does not populate or manage Meta's contact book for you.
  • Dualhook does not migrate your CRM identifiers automatically.
  • Dualhook can help by documenting the field changes, surfacing operational context, and providing the BSUID Transition Checker.

Your webhook receiver, CRM, campaign tools, support tools, and analytics pipelines must be updated to store and join on BSUIDs.

Migration Checklist

  1. Add user_id and parent_user_id columns or equivalent identifier storage.
  2. Stop treating wa_id, from, recipient_id, and phone_number as required fields.
  3. Update inbound message, status, system, group, calling, history, echo, and preference webhook parsers.
  4. Update send code to support recipient while keeping to for known phone numbers.
  5. Handle error 131062 for message types that do not support BSUID recipients.
  6. Decide how your CRM maps phone numbers, BSUIDs, parent BSUIDs, and usernames.
  7. Add contact-request flows if your business process still needs phone numbers.
  8. Test username and no-phone-number scenarios in App Dashboard webhook testing.

FAQ

What is a BSUID?

A business-scoped user ID. It uniquely identifies a WhatsApp user within one business portfolio and appears as user_id in webhook payloads.

Is a BSUID global?

No. A regular BSUID is scoped to a business portfolio. The same WhatsApp user has different regular BSUIDs for different business portfolios. Parent BSUIDs are the cross-portfolio option for eligible managed businesses.

Does a username change the BSUID?

No. A user can change their username without changing their phone number or BSUID. A phone-number change can regenerate the BSUID.

Can I keep using phone numbers?

Yes, when you know the phone number and Meta is allowed to include it. For supported sends, to still works and takes precedence over recipient. Your webhook parser still needs to handle payloads where the phone number is omitted.

Can I use BSUIDs for authentication templates?

Not for one-tap, zero-tap, or copy-code authentication templates. Those still require phone numbers. Meta returns error 131062 when a BSUID recipient is unsupported for the message type.

Does Dualhook see or store my customers' BSUIDs?

Not for message-path traffic. Meta routes message webhooks directly to your server through Webhook Override, and Dualhook does not store those payloads.

Want to see these field changes for your specific scenario?

Configure your setup and get real-time webhook field predictions.

Open the BSUID Transition Checker

Related

  • BSUID Webhook ChangesWhatsApp webhook payload changes for BSUIDs, usernames, parent BSUIDs, optional phone-number fields, statuses, contacts, groups, calling, and Coexistence events.
  • BSUID API and Sending ChangesHow WhatsApp APIs use BSUIDs and parent BSUIDs in the recipient field for messages, Marketing Messages API, groups, block users, calling, and SIP.
  • BSUID Contact Book and Contact RequestsMeta contact book behavior for WhatsApp BSUIDs, phone-number inclusion rules, contact book deletion, REQUEST_CONTACT_INFO, and contacts webhooks.
  • Parent BSUIDsParent BSUID behavior for eligible multi-portfolio WhatsApp businesses, including payload fields, account lookup, supported APIs, and limitations.
  • WhatsApp Business UsernamesBusiness username rules for WhatsApp business phone numbers, including format, display priority, reserved usernames, management APIs, webhook updates, and errors.
Browse more docsStart Free Trial