Channels
connectionType picks what the client connects. One invitation connects one channel; create one invitation per channel to onboard a client on several.
A Facebook Page can only be connected to one Zavu project at a time. If your client picks a Page that another project already connected, the newer connection wins and the older one is disconnected.
Phone Number Options
These apply towhatsapp_waba only. A Facebook Page has no phone number, so sending phoneNumberId or allowedPhoneCountries with connectionType: "messenger" returns 400.
- Client provides their own number: The client uses their existing phone number to register for WhatsApp Business
- Pre-assign a Zavu number: You purchase a phone number from Zavu and assign it to the invitation. The client registers this number under their WhatsApp Business Account
Use Cases
- Agencies: Onboard client WhatsApp accounts without accessing their Facebook credentials
- SaaS platforms: Let customers self-service WhatsApp setup
- Resellers: Manage multiple client WhatsApp accounts under one project
- Managed services: Provision phone numbers and let clients complete the WhatsApp verification
How It Works
Create an Invitation
Client provides their own number
Pre-assign a Zavu phone number
First, purchase a phone number from Zavu, then create the invitation with thephoneNumberId:
Connect a Facebook Page (Messenger)
Response
url with your client. They complete Meta’s authorization to connect the channel. Once done, status is completed, senderId points at the new sender, and connectedAccount reports what was linked: the WhatsApp number or the Facebook Page.
Invitation Lifecycle
List Invitations
Get Invitation Details
Cancel an Invitation
Cancel an active invitation to prevent the client from using it:You cannot cancel a completed invitation. Once a sender is created, you can delete it through the senders API.
After Completion
When a client completes the signup flow:- A new sender is created in your project with WhatsApp enabled
- The sender’s phone number is the client’s registered WhatsApp number
- The invitation status changes to
completed - The
senderIdfield contains the ID of the created sender
SDK Examples
Best Practices
- Set appropriate expiration: Use shorter expirations (3-7 days) for urgent onboarding
- Track client info: Include
clientNameandclientEmailfor easier management - Monitor status: Check for
expiredorcancelledinvitations and resend if needed - Webhooks: Configure webhooks on the resulting sender to receive inbound messages
