> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zavu.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# WhatsApp Business Profile

> Manage your WhatsApp Business profile information visible to customers

Your WhatsApp Business Profile contains important information about your business that customers see when they interact with you. This includes your business description, address, email, website, and profile picture.

## Profile Fields

| Field               | Max Length | Description                   |
| ------------------- | ---------- | ----------------------------- |
| **About**           | 139 chars  | Short tagline or status       |
| **Description**     | 512 chars  | Detailed business description |
| **Address**         | 256 chars  | Physical business address     |
| **Email**           | -          | Contact email address         |
| **Websites**        | 2 URLs     | Your business websites        |
| **Category**        | -          | Business vertical/industry    |
| **Profile Picture** | 5MB        | Square image (JPEG or PNG)    |

## Business Categories

Choose the category that best describes your business:

| Value           | Display Name                  |
| --------------- | ----------------------------- |
| `AUTO`          | Automotive                    |
| `BEAUTY`        | Beauty, Spa and Salon         |
| `APPAREL`       | Clothing and Apparel          |
| `EDU`           | Education                     |
| `ENTERTAIN`     | Entertainment                 |
| `EVENT_PLAN`    | Event Planning and Service    |
| `FINANCE`       | Finance and Banking           |
| `GROCERY`       | Grocery and Supermarket       |
| `GOVT`          | Government and Public Service |
| `HOTEL`         | Hotel and Lodging             |
| `HEALTH`        | Medical and Health            |
| `NONPROFIT`     | Non-profit                    |
| `PROF_SERVICES` | Professional Services         |
| `RETAIL`        | Shopping and Retail           |
| `TRAVEL`        | Travel and Transportation     |
| `RESTAURANT`    | Restaurant                    |
| `OTHER`         | Other                         |

## Managing via Dashboard

The easiest way to manage your WhatsApp Business Profile is through the Zavu dashboard.

### Prerequisites

* A sender with WhatsApp Business Account connected
* The sender must be active (not in draft status)

### Steps

1. Navigate to **Senders** in your dashboard
2. Select the sender with WhatsApp configured
3. Click on the **Profile** tab (only visible for WhatsApp-enabled senders)
4. Update your profile information:
   * Upload or change your profile picture
   * Edit your about text, description, and address
   * Add your contact email
   * Add up to 2 website URLs
   * Select your business category
5. Click **Save Changes**

<Note>
  Changes to your WhatsApp Business Profile are applied immediately and visible to customers.
</Note>

## Managing via API

You can also manage your WhatsApp Business Profile programmatically using the Zavu API.

### Get Current Profile

Retrieve the current profile information for a sender:

<CodeGroup>
  ```typescript TypeScript theme={null}
  import Zavudev from '@zavudev/sdk';

  const zavu = new Zavu({ apiKey: process.env.ZAVU_API_KEY });

  const response = await zavu.senders.getProfile('snd_abc123');

  console.log('About:', response.profile.about);
  console.log('Description:', response.profile.description);
  console.log('Address:', response.profile.address);
  console.log('Email:', response.profile.email);
  console.log('Websites:', response.profile.websites);
  console.log('Category:', response.profile.vertical);
  console.log('Picture URL:', response.profile.profilePictureUrl);
  ```

  ```python Python theme={null}
  from zavudev import Zavu

  client = Zavu(api_key=os.environ["ZAVUDEV_API_KEY"])

  response = client.senders.get_profile("snd_abc123")

  print("About:", response.profile.about)
  print("Description:", response.profile.description)
  print("Address:", response.profile.address)
  print("Email:", response.profile.email)
  print("Websites:", response.profile.websites)
  print("Category:", response.profile.vertical)
  print("Picture URL:", response.profile.profile_picture_url)
  ```

  ```ruby Ruby theme={null}
  response = client.senders.get_profile("snd_abc123")

  puts "About: #{response.profile.about}"
  puts "Description: #{response.profile.description}"
  puts "Address: #{response.profile.address}"
  puts "Email: #{response.profile.email}"
  puts "Websites: #{response.profile.websites}"
  puts "Category: #{response.profile.vertical}"
  puts "Picture URL: #{response.profile.profile_picture_url}"
  ```

  ```go Go theme={null}
  response, err := client.Senders.GetProfile(context.TODO(), "snd_abc123")

  fmt.Println("About:", response.Profile.About)
  fmt.Println("Description:", response.Profile.Description)
  fmt.Println("Address:", response.Profile.Address)
  fmt.Println("Email:", response.Profile.Email)
  fmt.Println("Websites:", response.Profile.Websites)
  fmt.Println("Category:", response.Profile.Vertical)
  fmt.Println("Picture URL:", response.Profile.ProfilePictureURL)
  ```

  ```php PHP theme={null}
  $response = $client->senders->getProfile('snd_abc123');

  echo 'About: ' . $response->profile->about . "\n";
  echo 'Description: ' . $response->profile->description . "\n";
  echo 'Address: ' . $response->profile->address . "\n";
  echo 'Email: ' . $response->profile->email . "\n";
  echo 'Category: ' . $response->profile->vertical . "\n";
  echo 'Picture URL: ' . $response->profile->profilePictureUrl . "\n";
  ```

  ```bash cURL theme={null}
  curl -X GET "https://api.zavu.dev/v1/senders/snd_abc123/profile" \
    -H "Authorization: Bearer $ZAVU_API_KEY"
  ```
</CodeGroup>

### Update Profile

Update one or more profile fields:

<CodeGroup>
  ```typescript TypeScript theme={null}
  import Zavudev from '@zavudev/sdk';

  const zavu = new Zavu({ apiKey: process.env.ZAVU_API_KEY });

  const response = await zavu.senders.updateProfile('snd_abc123', {
    about: 'Your trusted online store',
    description: 'We offer the best products at competitive prices with fast shipping and excellent customer service.',
    address: '123 Main Street, San Francisco, CA 94102',
    email: 'support@example.com',
    websites: ['https://example.com', 'https://shop.example.com'],
    vertical: 'RETAIL',
  });

  console.log('Profile updated successfully');
  ```

  ```python Python theme={null}
  from zavudev import Zavu

  client = Zavu(api_key=os.environ["ZAVUDEV_API_KEY"])

  response = client.senders.update_profile(
      "snd_abc123",
      about="Your trusted online store",
      description="We offer the best products at competitive prices with fast shipping and excellent customer service.",
      address="123 Main Street, San Francisco, CA 94102",
      email="support@example.com",
      websites=["https://example.com", "https://shop.example.com"],
      vertical="RETAIL"
  )

  print("Profile updated successfully")
  ```

  ```ruby Ruby theme={null}
  response = client.senders.update_profile(
    "snd_abc123",
    about: "Your trusted online store",
    description: "We offer the best products at competitive prices with fast shipping and excellent customer service.",
    address: "123 Main Street, San Francisco, CA 94102",
    email: "support@example.com",
    websites: ["https://example.com", "https://shop.example.com"],
    vertical: "RETAIL"
  )

  puts "Profile updated successfully"
  ```

  ```go Go theme={null}
  response, err := client.Senders.UpdateProfile(context.TODO(), "snd_abc123", zavudev.WhatsAppBusinessProfileUpdateParams{
      About:       zavudev.String("Your trusted online store"),
      Description: zavudev.String("We offer the best products at competitive prices with fast shipping and excellent customer service."),
      Address:     zavudev.String("123 Main Street, San Francisco, CA 94102"),
      Email:       zavudev.String("support@example.com"),
      Websites:    []string{"https://example.com", "https://shop.example.com"},
      Vertical:    zavudev.String("RETAIL"),
  })

  fmt.Println("Profile updated successfully")
  ```

  ```php PHP theme={null}
  $response = $client->senders->updateProfile('snd_abc123', [
      'about' => 'Your trusted online store',
      'description' => 'We offer the best products at competitive prices with fast shipping and excellent customer service.',
      'address' => '123 Main Street, San Francisco, CA 94102',
      'email' => 'support@example.com',
      'websites' => ['https://example.com', 'https://shop.example.com'],
      'vertical' => 'RETAIL',
  ]);

  echo "Profile updated successfully\n";
  ```

  ```bash cURL theme={null}
  curl -X PATCH "https://api.zavu.dev/v1/senders/snd_abc123/profile" \
    -H "Authorization: Bearer $ZAVU_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "about": "Your trusted online store",
      "description": "We offer the best products at competitive prices with fast shipping and excellent customer service.",
      "address": "123 Main Street, San Francisco, CA 94102",
      "email": "support@example.com",
      "websites": ["https://example.com", "https://shop.example.com"],
      "vertical": "RETAIL"
    }'
  ```
</CodeGroup>

<Tip>
  You only need to include the fields you want to update. Omitted fields will remain unchanged.
</Tip>

### Upload Profile Picture

Upload a new profile picture for your WhatsApp Business account:

<CodeGroup>
  ```typescript TypeScript theme={null}
  import Zavudev from '@zavudev/sdk';

  const zavu = new Zavu({ apiKey: process.env.ZAVU_API_KEY });

  const response = await zavu.senders.uploadProfilePicture('snd_abc123', {
    imageUrl: 'https://example.com/logo.png',
    mimeType: 'image/png',
  });

  console.log('Profile picture updated successfully');
  ```

  ```python Python theme={null}
  from zavudev import Zavu

  client = Zavu(api_key=os.environ["ZAVUDEV_API_KEY"])

  response = client.senders.upload_profile_picture(
      "snd_abc123",
      image_url="https://example.com/logo.png",
      mime_type="image/png"
  )

  print("Profile picture updated successfully")
  ```

  ```ruby Ruby theme={null}
  response = client.senders.upload_profile_picture(
    "snd_abc123",
    image_url: "https://example.com/logo.png",
    mime_type: "image/png"
  )

  puts "Profile picture updated successfully"
  ```

  ```go Go theme={null}
  response, err := client.Senders.UploadProfilePicture(context.TODO(), "snd_abc123", zavudev.WhatsAppBusinessProfilePictureParams{
      ImageURL: zavudev.String("https://example.com/logo.png"),
      MimeType: zavudev.String("image/png"),
  })

  fmt.Println("Profile picture updated successfully")
  ```

  ```php PHP theme={null}
  $response = $client->senders->uploadProfilePicture('snd_abc123', [
      'imageUrl' => 'https://example.com/logo.png',
      'mimeType' => 'image/png',
  ]);

  echo "Profile picture updated successfully\n";
  ```

  ```bash cURL theme={null}
  curl -X POST "https://api.zavu.dev/v1/senders/snd_abc123/profile/picture" \
    -H "Authorization: Bearer $ZAVU_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "imageUrl": "https://example.com/logo.png",
      "mimeType": "image/png"
    }'
  ```
</CodeGroup>

### Image Requirements

* **Formats:** JPEG (`image/jpeg`) or PNG (`image/png`)
* **Max size:** 5MB
* **Recommended:** Square images work best

## Best Practices

<CardGroup cols={2}>
  <Card title="Keep it professional" icon="building">
    Use a clear logo or professional image that represents your brand.
  </Card>

  <Card title="Be concise" icon="compress">
    Write clear, concise descriptions that quickly communicate your value.
  </Card>

  <Card title="Include contact info" icon="address-card">
    Add your email and website so customers can easily reach you.
  </Card>

  <Card title="Choose the right category" icon="tag">
    Select the business category that best matches your industry.
  </Card>
</CardGroup>

## API Reference

<CardGroup cols={2}>
  <Card title="Get Profile" icon="eye" href="/api-reference/senders/get-profile">
    GET /v1/senders/{senderId}/profile
  </Card>

  <Card title="Update Profile" icon="pen" href="/api-reference/senders/update-profile">
    PATCH /v1/senders/{senderId}/profile
  </Card>

  <Card title="Upload Picture" icon="image" href="/api-reference/senders/upload-profile-picture">
    POST /v1/senders/{senderId}/profile/picture
  </Card>
</CardGroup>
