Introducción

Esta API es solo para usuarios debidamente registrados y con un plan activo en la herramienta.

No se entrega a los clientes bajo prueba.

Para iniciar la integración de la API es necesario tener el Token de tu canal.

El Token es el identificador de su canal, muy importante para su integración, para obtener su Token API solo vaya a EMPRESAS, luego haga clic en CANALES. En esa pantalla, haga clic en los 3 puntos secuenciales para expandir y luego haga clic en COPY TOKEN API.

Endpoint

The base URL of the API to be used will always be https://api.hand.chat/core/v1/api/

Formats and Features

Our API accepts only the JSON format, so all calls and requests use content type application/json no encode UTF-8.

POST Envía un mensaje de texto

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

Esta función se utiliza para enviar un mensaje de texto, donde el TOKEN debe ser reemplazado por su clave.

PARAMS
celular 55XXXXXXXXXXX Informe a la celda de destino del mensaje con el código de país + DDD + número.
nome XxXxXxXxXxXxXx Ingrese un nombre para identificar este envío dentro de su historial.
message Link o Base64 Informar el mensaje que se debe enviar.
verify 0 o 1 Este parámetro se encarga de bloquear el envío de mensajes de que el número en cuestión no haya realizado un contacto previo, esto es importante para que WhatsApp no identifique su envío como SPAM.
forcar 0 o 1 Este parámetro se encarga de bloquear el envío si el número está "en servicio" en el sistema.
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 Enviar mensaje multimedia

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

Esta función se utiliza para enviar un mensaje multimedia.

PARAMS
celular 55XXXXXXXXXXX Informe a la celda de destino del mensaje con el código de país + DDD + número.
nome XxXxXxXxXxXxXx Ingrese un nombre para identificar este envío dentro de su historial.
message xXxXxXxXxXxXxX Informar el mensaje que se debe enviar.
file Link Ingrese el enlace de su archivo para ser enviado.
extensao .pdf .doc Ingrese la extensión de su archivo.
verify 0 o 1 Este parámetro se encarga de bloquear el envío de mensajes de que el número en cuestión no haya realizado un contacto previo, esto es importante para que WhatsApp no identifique su envío como SPAM.
forcar 0 o 1 Este parámetro se encarga de bloquear el envío si el número está "en servicio" en el sistema.
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()