WhatsApp Business Profile API

Manage your live WhatsApp Business profile — the profile photo, about text, description, address, email, and website(s) shown to customers on WhatsApp. This is different from the Meta Profile Request API: the Profile Request API submits a request to get a new profile verified, while this API reads and updates the profile of an already-connected WhatsApp Business account.

Prerequisites

These endpoints require your account to already have WhatsApp connected (Meta Cloud API, CRM, or Pinbot). Your account type and connection details are already configured on our side — you don't need to send anything extra to specify which provider you're on; just call the endpoint and it's handled automatically.

If your account isn't connected, or isn't one of the supported types, requests fail with a 422 — see Error Responses below.


Authentication

Required on all endpoints below. Send a JWT as a Bearer token:

Authorization: Bearer <jwt_token>

{{base_url}} = https://wa20.nuke.co.in/v6/api


1. Get Business Profile

Fetches your current live WhatsApp Business profile details directly from the provider (Meta / Pinbot).

Endpoint

GET {{base_url}}/account/business-profile

Headers

HeaderValue
AuthorizationBearer <jwt_token>

Example Request

curl --location '{{base_url}}/account/business-profile' \
--header 'Authorization: Bearer {{bearer_token}}'

Example Response — 200 OK

{
  "message": "Business profile fetched",
  "data": {
    "about": "Hello there! I am using WhatsApp.",
    "address": "123 Business Road",
    "description": "Official WhatsApp Business Account",
    "email": "[email protected]",
    "profile_picture_url": "https://scontent.whatsapp.net/...",
    "websites": ["https://www.business.com"],
    "vertical": "RETAIL"
  }
}

Response Fields

FieldDescription
messageConfirmation message.
data.aboutThe "About" status text on your profile.
data.addressBusiness address.
data.descriptionBusiness description.
data.emailBusiness contact email.
data.profile_picture_urlURL of the current profile photo.
data.websitesArray of business website URLs.
data.verticalBusiness category/vertical (as set with your provider).

2. Update Profile Photo

Uploads and applies a new photo to your live WhatsApp Business profile.

Endpoint

POST {{base_url}}/account/business-profile/photo

Headers

HeaderValue
AuthorizationBearer <jwt_token>
Content-Typemultipart/form-data (set automatically by your HTTP client)

Body (form-data)

FieldTypeRequiredDescription
channeltextNoChannel identifier accepted with the request.
filefileYesThe image file to set as your profile photo.

Example Request

curl --location '{{base_url}}/account/business-profile/photo' \
--header 'Authorization: Bearer {{bearer_token}}' \
--form 'channel="whatsapp"' \
--form 'file=@"/path/to/photo.jpg"'

Example Response — 200 OK

{
  "message": "Profile photo updated successfully",
  "data": {
    "success": true
  }
}

The exact shape of data mirrors whatever the underlying provider (Meta / Pinbot) returns for the apply step — treat it as provider passthrough rather than a fixed schema.

How It Works

Under the hood, the photo is uploaded and applied in three steps against your connected WhatsApp account. If any step fails, the specific error is surfaced in the response — you don't need to do anything differently in Postman, just send the request as shown above.


3. Update Business Profile

Updates one or more fields on your live WhatsApp Business profile. Only the fields you send are updated.

Endpoint

PUT {{base_url}}/account/business-profile

Headers

HeaderValue
Content-Typeapplication/json
AuthorizationBearer <jwt_token>

Body Parameters

ParameterTypeRequiredDescription
aboutstringNoThe "About" status text.
addressstringNoBusiness address.
descriptionstringNoBusiness description.
emailstringNoBusiness contact email.
verticalstringNoBusiness category/vertical.
websitesarray of stringsNoBusiness website URL(s).
channelstringNoChannel identifier accepted with the request.

Note: at least one profile field (about, address, description, email, vertical, or websites) should be sent — sending none will still call the provider but with nothing to change beyond the required messaging_product value.

Example Request

{
  "about": "Hello there! I am using WhatsApp.",
  "description": "Official WhatsApp Business Account",
  "address": "123 Business Road",
  "email": "[email protected]",
  "websites": ["https://www.business.com"]
}
curl --location --request PUT '{{base_url}}/account/business-profile' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{bearer_token}}' \
--data '{
    "about": "Hello there! I am using WhatsApp.",
    "description": "Official WhatsApp Business Account",
    "address": "123 Business Road",
    "email": "[email protected]",
    "websites": ["https://www.business.com"]
}'

Example Response — 200 OK

{
  "message": "Business profile updated successfully",
  "data": {
    "success": true
  }
}

Error Responses

These apply across all three endpoints unless noted otherwise:

StatusMessageEndpoint(s)Reason
404WhatsApp account not found in wati tableGet / Update Business ProfileYour account doesn't have a WhatsApp connection set up yet.
404No WhatsApp account configured for this userUpdate Profile PhotoYour account doesn't have a WhatsApp connection set up yet.
422WhatsApp credentials are not configuredAll threeYour WhatsApp connection is missing required credentials — contact support to fix your account setup.
422Business profile is only supported for Meta Cloud API, CRM and Pinbot accountsAll threeYour account's connected provider doesn't support this feature.
422Could not resolve phone_number_id from account URLAll threeYour account's WhatsApp connection isn't configured correctly — contact support.
422Pinbot account is missing its Business Manager ID (bmid)All threeYour account setup is incomplete — contact support.
4xx / 422Provider-specific error messageAll threeThe upstream WhatsApp provider rejected the request — the message explains why.

Notes

  • These endpoints act directly on your live, already-connected WhatsApp Business account — changes here take effect immediately, unlike the Profile Request API which submits a request for approval.
  • The channel field accepted on Update Profile Photo and Update Business Profile is recorded with the request; you don't need to configure anything else to tell us which provider you're on — that's already set up on your account.
  • If a request fails partway through Update Profile Photo, retry the same request — it's safe to call again.