Introduction

This API is only for duly registered users and with an active plan in the tool.

It is not released to customers under test.

To start the API integration it is necessary to have the Token of your channel.

The Token is the identifier of your channel, very important for your integration, to get your API Token just go to COMPANIES, then click on CHANNELS. On that screen click on the 3 sequential points to expand and then click on COPY TOKEN API.

Endpoint

La URL base de la API que se utilizará siempre será https://api.hand.chat/core/v1/api/

Formatos y funciones

Nuestra API acepta solo el formato JSON, por lo que todas las llamadas y solicitudes utilizan content type application/json no encode UTF-8.

POST Send text message

https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0

This function is used to send a text message, where the TOKEN must be replaced by your key.

PARAMS
celular 55XXXXXXXXXXX Inform the destination cell of the message with country code + DDD + number.
nome XxXxXxXxXxXxXx Enter a name to identify this shipment within your history.
message xXxXxXxXxXxXxX Inform the message that should be sent.
verify 0 or 1 This parameter is responsible for blocking the sending of messages that the number in question has not made a previous contact, this is important so that WhatsApp does not identify your sending as SPAM.
forcar 0 or 1 This parameter is responsible for blocking the sending if the number is "in service" in the system.
var client = new RestClient("https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
curl --location --request POST 'https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0'
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://api.%7Burl%7D/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%2520de%2520mensagem&forcar=0&verify=0"
  method := "POST"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
  }
  res, err := client.Do(req)
  defer res.Body.Close()
  body, err := ioutil.ReadAll(res.Body)

  fmt.Println(string(body))
}
POST /core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0 HTTP/1.1
Host: api.hand.chat



OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0")
  .method("POST", body)
  .build();
Response response = client.newCall(request).execute();
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0")
  .asString();

var requestOptions = {
  method: 'POST',
  redirect: 'follow'
};

fetch("https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
var settings = {
  "url": "https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0",
  "method": "POST",
  "timeout": 0,
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function() {
  if(this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.%7Burl%7D/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%2520de%2520mensagem&forcar=0&verify=0");

xhr.send();
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
  curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
  curl_easy_setopt(curl, CURLOPT_URL, "https://api.%7Burl%7D/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%2520de%2520mensagem&forcar=0&verify=0");
  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
  curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
  struct curl_slist *headers = NULL;
  curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
  res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);

var axios = require('axios');

var config = {
  method: 'post',
  url: 'https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0',
  headers: { }
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});

var https = require('follow-redirects').https;
var fs = require('fs');

var options = {
  'method': 'POST',
  'hostname': 'api.hand.chat',
  'path': '/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%2520de%2520mensagem&forcar=0&verify=0',
  'headers': {
  },
  'maxRedirects': 20
};

var req = https.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });

  res.on("error", function (error) {
    console.error(error);
  });
});

req.end();
var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0',
  'headers': {
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

var unirest = require('unirest');
var req = unirest('POST', 'https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0')
  .end(function (res) { 
    if (res.error) throw new Error(res.error); 
    console.log(res.raw_body);
  });

#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.%7Burl%7D/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%2520de%2520mensagem&forcar=0&verify=0"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];

[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
  if (error) {
    NSLog(@"%@", error);
  } else {
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
    NSError *parseError = nil;
    NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
    NSLog(@"%@",responseDictionary);
    dispatch_semaphore_signal(sema);
  }
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let reqBody = 
  let uri = Uri.of_string "https://api.%7Burl%7D/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%2520de%2520mensagem&forcar=0&verify=0" in
  Client.call `POST uri >>= fun (_resp, body) ->
  body |> Cohttp_lwt.Body.to_string >|= fun body -> body

let () =
  let respBody = Lwt_main.run reqBody in
  print_endline (respBody)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.%7Burl%7D/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%2520de%2520mensagem&forcar=0&verify=0",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0');
$request->setRequestMethod('POST');
$request->setOptions(array());

$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();

$response = Invoke-RestMethod 'https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0' -Method 'POST' -Headers $headers -Body $body
$response | ConvertTo-Json
import http.client
import mimetypes
conn = http.client.HTTPSConnection("api.hand.chat")
payload = ''
headers = {}
conn.request("POST", "/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests

url = "https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0"

payload = {}
headers= {}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))

require "uri"
require "net/http"

url = URI("https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)

response = https.request(request)
puts response.read_body

http --follow --timeout 3600 POST https://api.hand.chat/core/v1/api/sendtext/TOKEN 'celular'=='55XXXXXXXXXX' 'nome'=='teste' 'message'=='teste%20de%20mensagem' 'forcar'=='0' 'verify'=='0'
wget --no-check-certificate --quiet \
  --method POST \
  --timeout=0 \
  --header '' \
   'https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0'
import Foundation

var semaphore = DispatchSemaphore (value: 0)

var request = URLRequest(url: URL(string: "https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55XXXXXXXXXX&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0")!,timeoutInterval: Double.infinity)
request.httpMethod = "POST"

let task = URLSession.shared.dataTask(with: request) { data, response, error in 
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
  semaphore.signal()
}

task.resume()
semaphore.wait()

POST Send media message

https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0

This function is used to send a media message.

PARAMS
celular 55XXXXXXXXXXX Inform the destination cell of the message with country code + DDD + number.
nome XxXxXxXxXxXxXx Enter a name to identify this shipment within your history.
message xXxXxXxXxXxXxX Inform the message that should be sent.
file Link Enter the link of your file to be sent.
extensao .pdf .doc Enter the extension of your file.
verify 0 or 1 This parameter is responsible for blocking the sending of messages that the number in question has not made a previous contact, this is important so that WhatsApp does not identify your sending as SPAM.
forcar 0 or 1 This parameter is responsible for blocking the sending if the number is "in service" in the system.
var client = new RestClient("https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
curl --location --request POST 'https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0'
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://api.%7Burl%7D/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0"
  method := "POST"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
  }
  res, err := client.Do(req)
  defer res.Body.Close()
  body, err := ioutil.ReadAll(res.Body)

  fmt.Println(string(body))
}
POST /core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0 HTTP/1.1
Host: api.hand.chat



OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0")
  .method("POST", body)
  .build();
Response response = client.newCall(request).execute();
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0")
  .asString();

var requestOptions = {
  method: 'POST',
  redirect: 'follow'
};

fetch("https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
var settings = {
  "url": "https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0",
  "method": "POST",
  "timeout": 0,
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function() {
  if(this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.%7Burl%7D/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0");

xhr.send();
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
  curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
  curl_easy_setopt(curl, CURLOPT_URL, "https://api.%7Burl%7D/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0");
  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
  curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
  struct curl_slist *headers = NULL;
  curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
  res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);

var axios = require('axios');

var config = {
  method: 'post',
  url: 'https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0',
  headers: { }
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});

var https = require('follow-redirects').https;
var fs = require('fs');

var options = {
  'method': 'POST',
  'hostname': 'api.hand.chat',
  'path': '/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0',
  'headers': {
  },
  'maxRedirects': 20
};

var req = https.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });

  res.on("error", function (error) {
    console.error(error);
  });
});

req.end();
var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0',
  'headers': {
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

var unirest = require('unirest');
var req = unirest('POST', 'https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0')
  .end(function (res) { 
    if (res.error) throw new Error(res.error); 
    console.log(res.raw_body);
  });

#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.%7Burl%7D/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];

[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
  if (error) {
    NSLog(@"%@", error);
  } else {
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
    NSError *parseError = nil;
    NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
    NSLog(@"%@",responseDictionary);
    dispatch_semaphore_signal(sema);
  }
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let reqBody = 
  let uri = Uri.of_string "https://api.%7Burl%7D/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0" in
  Client.call `POST uri >>= fun (_resp, body) ->
  body |> Cohttp_lwt.Body.to_string >|= fun body -> body

let () =
  let respBody = Lwt_main.run reqBody in
  print_endline (respBody)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.%7Burl%7D/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0');
$request->setRequestMethod('POST');
$request->setOptions(array());

$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();

$response = Invoke-RestMethod 'https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0' -Method 'POST' -Headers $headers -Body $body
$response | ConvertTo-Json
import http.client
import mimetypes
conn = http.client.HTTPSConnection("api.hand.chat")
payload = ''
headers = {}
conn.request("POST", "/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests

url = "https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0"

payload = {}
headers= {}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))

require "uri"
require "net/http"

url = URI("https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)

response = https.request(request)
puts response.read_body

http --follow --timeout 3600 POST https://api.hand.chat/core/v1/api/sendmedia/TOKEN 'celular'=='55XXXXXXXXXX' 'message'=='BOLETO' 'extensao'=='pdf' 'file'=='link_do_arquivo.pdf' 'forcar'=='0' 'verify'=='0'
wget --no-check-certificate --quiet \
  --method POST \
  --timeout=0 \
  --header '' \
   'https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0'
import Foundation

var semaphore = DispatchSemaphore (value: 0)

var request = URLRequest(url: URL(string: "https://api.hand.chat/core/v1/api/sendmedia/TOKEN?celular=55XXXXXXXXXX&message=BOLETO&extensao=pdf&file=link_do_arquivo.pdf&forcar=0&verify=0")!,timeoutInterval: Double.infinity)
request.httpMethod = "POST"

let task = URLSession.shared.dataTask(with: request) { data, response, error in 
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
  semaphore.signal()
}

task.resume()
semaphore.wait()