Skip to content
2026

Customers — multi-tenant platform mode

Released: June 5, 2026

Kirimdev now supports multi-tenant platform mode: your organization can model its own end-customers (logistics companies, salons, stores, …) as first class objects, hand each one a setup link, and have them connect their own WhatsApp Business number without ever logging in to the Kirimdev dashboard. After onboarding, you send messages on each customer’s behalf via the same /v1/{phone_number_id}/messages endpoint you already use.

A Customer here is NOT a WhatsApp chat partner — those remain on the /v1/{phone_number_id}/contacts resource. A Customer is one of your tenants, owning zero or more WhatsApp accounts.

MethodPathDescription
GET/v1/customersList end-customers
POST/v1/customersCreate a customer
GET/v1/customers/{id}Retrieve (includes assigned WhatsApp accounts)
PATCH/v1/customers/{id}Update name / email / metadata / status
DELETE/v1/customers/{id}Soft-archive
GET/v1/customers/{id}/setup_linksList setup links
POST/v1/customers/{id}/setup_linksGenerate a setup link (token returned ONCE)
DELETE/v1/customers/{id}/setup_links/{link_id}Revoke a still-active link

The official MCP server (POST /mcp) gains five new tools:

  • list_customers
  • get_customer
  • create_customer
  • update_customer
  • create_customer_setup_link

@kirimdev/sdk ≥ 3.3.0 exposes the new resource as kirim.customers (versions 3.2.x shipped the same surface, but the create-setup-link response previously also carried a redundant token field that was dropped in 3.3.0 — see the 2026-06-05 drop note):

const customer = await kirim.customers.create({
name: 'Acme Logistics',
email: 'admin@acme.io',
metadata: { crm_id: 'C-1234', branch: 'Jakarta' },
})
const link = await kirim.customers.createSetupLink(customer.id, {
expires_in_hours: 168,
})
console.log('Send this URL to your customer:', link.setup_url)
// → https://app.kirimdev.com/onboard/csl_xxxxxxxxxxxxxxxxxxxxxxxxxxxx

No new webhook event types in this release. The existing whatsapp_account.connected event fires when a customer’s onboarding completes — the payload now includes customer_id so your worker can attribute the new number to the right tenant immediately.

Updated 2026-06-05: Gating moved from an env flag to plan-driven entitlements. The Customers feature is now available on the Business plan and above; Pro and Starter requests return HTTP 402 with code: "feature_not_entitled". See Business plan unlocks Customers for migration steps and the new entitlement keys.

Read the Platform docs →