Skip to main content
POST
/
v1
/
organization
/
whatsapp
/
business-profiles
/
callback
cURL
curl --request POST \
  --url https://api.buildwithchirp.com/v1/organization/whatsapp/business-profiles/callback \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "code": "<string>",
  "redirectUri": "<string>",
  "wabaId": "<string>",
  "phoneNumberId": "<string>",
  "businessId": "<string>",
  "isCoexistence": true
}
'
{
  "id": "wabp_2DbBs7GWhGvVNJGrDXr5RG0mBWI",
  "organizationId": "<string>",
  "metaWabaId": "<string>",
  "metaBusinessId": "<string>",
  "businessName": "Acme Corp",
  "tokenExpiresAt": "2023-11-07T05:31:56Z",
  "onboardingCompletedAt": "2023-11-07T05:31:56Z",
  "createdAt": "2023-11-07T05:31:56Z",
  "phoneNumbers": [
    {
      "id": "<string>",
      "displayPhoneNumber": "+15551234567",
      "metaPhoneNumberId": "<string>",
      "verified": true,
      "qualityRating": "GREEN"
    }
  ],
  "isTestProfile": true
}

Authorizations

Authorization
string
header
required

Admin API key (format: sk_admin_*) for organization-level operations

Body

application/json
code
string
required

Authorization code from FB.login (expires in 30 seconds!)

Minimum string length: 1
redirectUri
string

The redirect URI used in the OAuth flow. Required for redirect mode, optional for popup mode (FB.login).

wabaId
string

WhatsApp Business Account ID from session logging. If not provided, will be fetched from Meta.

phoneNumberId
string

Phone Number ID from session logging (optional, phone numbers are fetched from WABA).

businessId
string

Business Portfolio ID from session logging

isCoexistence
boolean

Whether this signup was completed via FINISH_WHATSAPP_BUSINESS_APP_ONBOARDING event. In coexistence mode, the business uses both WhatsApp Business App and Cloud API simultaneously.

Response

Business profile created successfully

id
string
required

WhatsApp Business Profile ID

Example:

"wabp_2DbBs7GWhGvVNJGrDXr5RG0mBWI"

organizationId
string
required
metaWabaId
string
required

Meta's WhatsApp Business Account ID

metaBusinessId
string | null
required

Meta's Business Portfolio ID

businessName
string | null
required

Business name from Meta

Example:

"Acme Corp"

tokenExpiresAt
string<date-time> | null
required

When the access token expires (null = never)

onboardingCompletedAt
string<date-time> | null
required

When onboarding was completed

createdAt
string<date-time>
required
phoneNumbers
object[]
required
isTestProfile
boolean
required

Whether this is a test profile (for test mode separation)