Skip to main content
POST
/
v1
/
organization
/
whatsapp
/
business-profiles
/
claim
cURL
curl --request POST \
  --url https://api.buildwithchirp.com/v1/organization/whatsapp/business-profiles/claim \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "attemptId": "wss_2DbBs7GWhGvVNJGrDXr5RG0mBWI"
}
'
{
  "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
attemptId
string
required

The ID of the recovered signup attempt to claim

Example:

"wss_2DbBs7GWhGvVNJGrDXr5RG0mBWI"

Response

Business profile created successfully from claimed attempt

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)