Skip to content

A partner is a platform such as a marketplace or a restaurant system. Each business on it is a Nexafon store, an ordinary workspace with its own WhatsApp number, inbox, calls, billing and commerce, linked to the partner by the partner’s own id for it (externalRef). Store owners and staff never open Nexafon: everything runs inside the partner’s platform.

Step How Guide
Nexafon sets up the partner Domains, default store plan and default appearance, and the partner’s keys Below
The partner’s server creates stores POST /api/v1/partner/stores with a partner secret key Partner API
It keeps products in sync Products and categories per store Catalog sync
Staff open Nexafon inside the platform A partner user token listing their stores, and <nexafon-app> User tokens and the full app
Users with several stores switch between them The store switcher inside the embed Store switcher
The platform hears every store’s events One partner-wide webhook endpoint Partner webhooks

Nexafon creates the partner in its console with:

  • the partner’s domains: every store’s embed may be framed on them, and partner sessions start only there;
  • the default store plan: every new store starts on it, with its included seats and features (such as commerce.orders);
  • the default appearance of all its stores’ embeds;
  • the partner’s keys: secret keys psk_live_…/psk_test_… (with scopes and an optional IP allow-list) for the partner’s servers, and publishable keys ppk_live_…/ppk_test_… for its pages. Each is shown once.

A suspended partner’s keys, sessions and store embeds stop working until Nexafon reactivates it; the stores’ data is kept.

A partner secret key carries partner permissions for the Partner API:

Permission Lets the key Needs plan feature
partner.account:view See the partner’s profile, status and default store plan
partner.stores:manage Create, rename, close and reopen the partner’s stores
partner.stores:view See the partner’s stores
partner.webhooks:manage Manage the partner-wide webhook endpoints that receive every store’s events

…and any workspace permissions it acts with inside the partner’s stores. A key that signs partner user tokens needs partner.stores:manage, and the sessions it starts act with no more than its workspace permissions.

examples/partner (a Node server and a React page) creates two stores, signs a partner user token for both, embeds <NexafonApp/> and verifies an order webhook; it runs in CI with Playwright.