How To Send Documents To WhatsApp Groups PDF DOCX XLSX

December 30, 2024

A Step-by-Step Guide to Sharing Documents with WhatsApp Groups Using Wassenger

Sharing important documents like PDFs, DOCX files, or XLSX spreadsheets with your WhatsApp groups can significantly improve collaboration and efficiency. However manually managing these tasks can be time-consuming, especially for companies dealing with multiple groups and clients.

Enter Wassenger, a powerful CRM designed specifically for WhatsApp messaging. With Wassenger, businesses can effortlessly share documents, automate messaging, and stay connected with their teams and clients in a more organized way. This guide will show you how to leverage Wassenger to send documents seamlessly to WhatsApp groups, saving you time and enhancing productivity.

🤩 🤖 Wassenger is a complete communication platform and API solution for WhatsApp. Explore more than 100+ API use cases and automate anything on WhatsApp by signing up for a free trial and get started in minutes!

Requirements

  • Having a WhatsApp number already linked to the platform and online.
  • Channel WhatsApp ID (WID) that you can find in two ways:
  1. On your WhatsApp number’s management panel, go to “Groups”. From there you will see the channels your number has access to.
  2. Using the API, query the available groups in your device for this endpoint.

Prepare the request

Target API URL using the POST method

https://api.wassenger.com/v1/messages

Required HTTPS headers > Obtain your API key here

Content-Type: application/json
Token: $API_TOKEN

Use body in JSON format

{ "group": "${group_id}@g.us", "media": { "url": "https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611\_sample\_explain.pdf", "expiration": "30d" } }

Congrats! You can now send automatic messages using the API to groups on WhatsApp.

🤩 🤖 Wassenger is a complete API solution for WhatsApp. Sign up for a 7-day free trial and get started in minutes!

Are you a developer?

Explore how to use the code in your browser without installing any software.

Also, you can find different languages you can test on Replit.com:

# Examples requires to have installed requests Python package. # Install it by running: pip install requests

import requests

url = "https://api.wassenger.com/v1/messages"

payload = { "group": "120363295123456789@g.us", "media": { "url": "https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611\_sample\_explain.pdf", "expiration": "30d" } } headers = { "Content-Type": "application/json", "Token": "API TOKEN GOES HERE" }

response = requests.post(url, json=payload, headers=headers)

print(response.json())

<?php
$curl = curl_init();
curl_setopt_array($curl, [
  CURLOPT_URL => 'https://api.wassenger.com/v1/messages',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => json_encode([
    'group' => '120363295123456789@g.us',
    'media' => [
      'url' =>
        'https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611_sample_explain.pdf',
      'expiration' => '30d',
    ],
  ]),
  CURLOPT_HTTPHEADER => [
    'Content-Type: application/json',
    'Token: API TOKEN GOES HERE',
  ],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
  echo 'cURL Error #:' . $err;
} else {
  echo $response;
}
// This code example requires to have installed pecl_http package, a simple and elegant HTTP client for PHP.
// Install it by running: pecl install pecl_http
// More information: https://mdref.m6w6.name/http
<?php
$client = new http\Client();
$request = new http\Client\Request();
$body = new http\Message\Body();
$body->append(
  json_encode([
    'group' => '120363295123456789@g.us',
    'media' => [
      'url' =>
        'https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611_sample_explain.pdf',
      'expiration' => '30d',
    ],
  ])
);
$request->setRequestUrl('https://api.wassenger.com/v1/messages');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setHeaders([
  'Content-Type' => 'application/json',
  'Token' => 'API TOKEN GOES HERE',
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
  • C# (RestClient)

// This code requires you to have installed RestSharp package. // Documentation: https://restsharp.dev // Installation: https://www.nuget.org/packages/RestSharp

var client = new RestClient("https://api.wassenger.com/v1/messages"); var request = new RestRequest(Method.POST); request.AddHeader("Content-Type", "application/json"); request.AddHeader("Token", "API TOKEN GOES HERE"); request.AddParameter("application/json", "{\"group\":\"120363295123456789@g.us\",\"media\":{\"url\":\"https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611\_sample\_explain.pdf\\",\\"expiration\\":\\"30d\\"}}", ParameterType.RequestBody); IRestResponse response = client.Execute(request);

  • C# (HttpClient)

// This code uses the built-in HttpClient package in the .NET framework. // Documentation: https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=net-6.0

using System.Net.Http.Headers; var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri("https://api.wassenger.com/v1/messages"), Headers = { { "Token", "API TOKEN GOES HERE" }, }, Content = new StringContent("{\"group\":\"120363295123456789@g.us\",\"media\":{\"url\":\"https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611\_sample\_explain.pdf\\",\\"expiration\\":\\"30d\\"}}") { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } } }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }

// This code requires you to have installed Unirest package.
// Documentation: https://kong.github.io/unirest-java/#requests
// Installation: http://kong.github.io/unirest-java/
HttpResponse<String> response = Unirest.post("https://api.wassenger.com/v1/messages")
.header("Content-Type", "application/json")
.header("Token", "API TOKEN GOES HERE")
.body("{\"group\":\"120363295123456789@g.us\", \"media\":{\"url\":\"https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611_sample_explain.pdf\", \"expiration\":\"30d\"}}")
.asString();
$headers=@{}
$headers.Add("Content-Type", "application/json")
$headers.Add("Token", "API TOKEN GOES HERE")
$response = Invoke-WebRequest -Uri 'https://api.wassenger.com/v1/messages' -Method POST -Headers $headers -ContentType 'application/json' -Body '{"group":"120363295123456789@g.us", "media":{"url":"https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611_sample_explain.pdf", "expiration":"30d"}}'
require 'uri'
require 'net/http'
url = URI("https://api.wassenger.com/v1/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Token"] = 'API TOKEN GOES HERE'
request.body = "{\"group\":\"120363295123456789@g.us\", \"media\":{\"url\":\"https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611_sample_explain.pdf\", \"expiration\":\"30d\"}}"
response = http.request(request)
puts response.read_body
package main
import(
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url:= "https://api.wassenger.com/v1/messages"
payload:= strings.NewReader("{\"group\":\"120363295123456789@g.us\", \"media\":{\"url\":\"https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611_sample_explain.pdf\", \"expiration\":\"30d\"}}")
req, _:= http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Token", "API TOKEN GOES HERE")
res, _:= http.DefaultClient.Do(req)
defer res.Body.Close()
body, _:= io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}

🤩 🤖 Wassenger is a complete communication platform and API solution for WhatsApp. Explore more than 100+ API use cases and automate anything on WhatsApp by signing up for a free trial and getting started in minutes!

Live testing to send a message to a group via API

Explore our API live tester

FAQs

How to send messages to multiple groups

You just have to send multiple API requests, one per target group.

For instance, if you want to send a message to 10 groups, you should send 10 independent HTTPS requests to the API.

There is no option to send multiple messages in a single API request.

What type of messages can be sent?

You can send different types of messages, including text, images, videos, emojis, audio, gifs, geographic locations and file documents via API.

Check out other tutorials for more information.

Further useful resources

API Documentation

For more details about the endpoint API, please check our documentation. You will find all the details about the accepted request params, possible success or error responses and ready-to-use code examples in multiple programming languages.

https://app.wassenger.com/docs/#tag/Messages

Ready to transform your WhatsApp communication?

Start automating your customer interactions today with Wassenger

Get Started Free