@sheena) and hide their phone number from businesses. When that happens, you no longer see their phone number anywhere: instead, every webhook and API response identifies them by a business-scoped user ID (BSUID).
Receiving messages from a username contact
Nothing changes in the event shape. Themessage.inbound webhook fires as usual, but data.from contains the BSUID instead of an E.164 phone number:
profileName still carries the user’s display name when available, so your inbox UI has something human to show.
Replying and sending to a BSUID
Pass the BSUID into, exactly where a phone number would go. Zavu detects the format and routes it correctly on the WhatsApp API.
Recovering the phone number
If your workflow eventually needs the real phone number (calls, SMS fallback, identity verification), ask for it in the conversation. WhatsApp provides a dedicated interactive message for this:request_contact_info. It renders a fixed Share Contact Info button; when the user taps it and confirms, their phone number arrives as a regular inbound contact message.
Zavu then links the shared phone number to the BSUID contact automatically: the contact record gains a phoneNumber, and both identifiers resolve to the same contact and conversation from that point on.
You can also add a request_contact_info button to a template to ask outside the 24-hour window.
Contacts in the dashboard
A contact created from a BSUID-only inbound has no phone number until the user shares one. The dashboard contact list and inbox display the username or BSUID instead, and flag conversations where a phone number was linked from a username contact. In the API, expectphoneNumber to be absent on these contacts. Key on the from value of the inbound events to correlate messages with your own records.
Your own business username
Your WABA can reserve a business username so customers can find and message you without knowing your number. Manage it from the dashboard under Accounts → WhatsApp → your WABA: the username section shows the current username, its status (reserved, approved, deleted) and lets you set or change it. Status changes arrive automatically; there is nothing to poll.Username adoption is rolling out gradually on WhatsApp’s side. Your integration should handle BSUIDs today even if you have not seen one yet: any user can adopt a username at any time, and their next message to you will carry a BSUID.
