Create invitation
Create a partner invitation link for a client to connect a Meta channel. The client opens the returned url and authorizes with Meta; the resulting sender is created in your project when they finish, and the invitation transitions to completed.
connectionType picks the channel:
whatsapp_waba(default): Meta's embedded signup links an official WhatsApp Business Account.messenger: the client picks a Facebook Page they administer; its Messenger inbox (including Marketplace chats) is routed to Zavu.
One invitation connects one channel — create one per channel to onboard a client on several. phoneNumberId and allowedPhoneCountries apply to whatsapp_waba only.
Authorization
AuthorizationheaderrequiredBearer YOUR_API_KEY. Create a key in the dashboard.
Body
application/json · optional
clientNamestringName of the client being invited.
Limitsmax length 100clientEmailstring<email>Email of the client being invited.
clientPhonestringPhone number of the client in E.164 format.
phoneNumberIdstringID of a Zavu phone number to pre-assign for WhatsApp registration. If provided, the client will use this number instead of their own. Only valid when
connectionTypeiswhatsapp_waba— sending it withmessengerreturns 400, since a Facebook Page has no phone number.expiresInDaysintegerNumber of days until the invitation expires.
Default7Limitsmin 1 · max 30allowedPhoneCountriesstring[]ISO country codes for allowed phone numbers. Only valid when
connectionTypeiswhatsapp_waba— sending it withmessengerreturns 400.connectionTypestringWhich Meta channel the client connects, and how. -
whatsapp_waba(default): Meta's embedded signup links an official WhatsApp Business Account. AcceptsphoneNumberIdandallowedPhoneCountries. -messenger: the client authorizes with Facebook and picks a Facebook Page they administer. The Page's Messenger inbox — including Marketplace chats — is routed to Zavu. They must be an admin of at least one Page. A Page can only be connected to one Zavu project at a time: if the client picks a Page that another project already connected, the newer connection wins and the older one is disconnected.One invitation connects one channel. To onboard a client on several channels, create one invitation per channel; each completes into its own sender.
One ofwhatsapp_wabamessengerDefaultwhatsapp_waba
Responses
201Invitation created.
invitationobjectrequired19 properties
idstringrequiredurlstringrequiredFull URL to share with the client.
tokenstringrequiredUnique invitation token.
clientNamestringclientEmailstringclientPhonestringphoneNumberIdstringID of a pre-assigned Zavu phone number for WhatsApp registration. Always null for
messengerinvitations.connectionTypestringWhich Meta channel the client connects:
whatsapp_waba(official WhatsApp Cloud API via embedded signup) ormessenger(a Facebook Page's Messenger inbox, including Marketplace chats).One ofwhatsapp_wabamessengerstatusstringrequiredCurrent status of the partner invitation.
failedmeans the client started the connection and it did not finish (they cancelled Meta's dialog, denied a permission, or abandoned the tab). A failed invitation is still usable: the same link can be retried, and it moves back toin_progresswhen the client tries again.One ofpendingin_progresscompletedexpiredcancelledfailedsenderIdstringID of the sender created when invitation is completed.
connectedAccountobjectThe account the client linked, populated once the invitation is
completed. Null before that. Use it to show the partner what was connected without fetching the sender.3 properties
channelstringrequiredOne ofwhatsappmessengeridstringrequiredProvider-side identifier: the WhatsApp phone number ID, or the Facebook Page ID.
namestringDisplay name of the connected account: the WhatsApp verified name, or the Facebook Page name.
failureReasonstringStable code for why the last attempt failed, present when
statusisfailed. Values includefb_cancelled(client closed Meta's dialog),fb_not_authorized(permission denied),signup_abandoned(started but never finished),meta_no_pages(the client administers no Facebook Page), andinternal_error. Treat unknown codes as a generic failure.failedAtstring<date-time>expiresAtstring<date-time>requiredviewedAtstring<date-time>startedAtstring<date-time>completedAtstring<date-time>createdAtstring<date-time>requiredupdatedAtstring<date-time>required
400Invalid request.
codestringrequiredmessagestringrequireddetailsobject
401Unauthorized.
codestringrequiredmessagestringrequireddetailsobject