Skip to main content
Setup links let customers connect their WhatsApp Business accounts to your platform. Send a link, customer clicks, logs in with Facebook, and you’re connected.

Quick start

Create a setup link:
The response carries the url you send to your customer:
See Connection detection for handling successful connections.

Parameters

Every field is optional. Send only what you want to change from the defaults.
string
Where the customer lands after completing setup. Receives query parameters with setup details.
string
Where the customer lands if setup fails.
string[]
default:"[\"coexistence\", \"dedicated\"]"
Which connection types the customer can pick. Passing a single value auto-selects it and skips the choice.
string
default:"customer_managed"
Who pays Meta’s message fees: customer_managed or partner_managed. See Meta billing policy. Cannot be changed after the link is created.
string
Language for the hosted setup page: en, es, pt, hi, id, or ar. Defaults to the customer’s browser language.
boolean
default:"false"
Provision a phone number for the customer during setup. See Phone number provisioning. Non-US numbers require Twilio credentials.
string[]
default:"[\"US\"]"
Countries the provisioned number can come from, as ISO country codes.
string
Preferred area code for the provisioned number. US only.
object
Brand colors for the hosted setup page. See Theme customization.
string
Scope the link to refresh credentials for a number the customer already has. See Reconnect existing numbers.

Connection types

Customers can connect their WhatsApp in two ways: Coexistence - Keep using WhatsApp Business app alongside API
  • 5 messages/second
  • App stays active
  • Good for small businesses
Dedicated - API-only access for automation
  • Up to 1000 messages/second
  • No app access
  • Built for scale
By default the customer chooses. Pass a single value in allowed_connection_types to decide for them:

Meta billing policy

Choose how Meta’s message fees should be paid after the customer connects their WABA:
  • customer_managed - the customer pays Meta directly. This is the default.
  • partner_managed - Kapso pays Meta and deducts the cost from the project’s Kapso credits.
partner_managed requires Kapso-managed Meta credentials. It is not available on projects using their own Meta app. meta_billing_mode can be set only when creating the link. The response echoes the selected value. Create a new link to change the policy. The hosted setup page does not let the customer change this policy or add billing disclosure. Explain the billing arrangement to your customer before sharing the link. See Meta message billing for the customer-facing differences. Kapso checks WABA-level eligibility after Meta returns the connected account. If Kapso billing cannot be attached, number setup still completes and the project owner sees a retryable warning in Kapso. A completed setup link or meta_billing_mode: "partner_managed" does not confirm that Kapso billing was attached.

Phone number provisioning

Automatically provision a phone number for customers:

Country support

  • Default Kapso provisioning: ["US"]. See Instant setup
  • For your own Twilio account, multi-country support, and project-owned pre-verified pools, see Provide local numbers
If the requested country has a ready project pool, setup can use a pre-verified number. If that country has no pool, or the pool is empty, the setup link still works and falls back to live provisioning. When provision_phone_number is enabled, complete Meta’s phone-number step with the Kapso-provided, BSP-provided, or project-pool number shown by the flow, not with Display name only.

Theme customization

Match your brand colors:
All colors use hex format (#RRGGBB).

Full example