Introdução

Essa API é apenas para usuários devidamente cadastrados e com um plano ativo na ferramenta.

A mesma não é liberada para clientes em teste.

Para iniciar a integração API é necessario ter o Token do seu canal.

O Token é o identificador do seu canal, muito importante para a sua integração, para obter seu Token da API basta ir em EMPRESAS, em seguida clique sobre CANAIS. Nessa tela clique sobre os 3 pontos sequenciais para expandir e após clique sobre COPIAR TOKEN API.

Endpoint

A URL base da API a ser utilizada sempre será https://api.hand.chat/core/api/

Formatos e Características

Nossa API aceita apenas o formato JSON, portanto todas as chamadas e requisições usam content type application/json no encode UTF-8.

POST Enviar mensagem de mídia

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

Essa função é utilizada para enviar uma mensagem de mídia.

PARAMS
celular 55XXXXXXXXXXX Informar o celular de destino da mensagem com código do país + DDD + número.
nome XxXxXxXxXxXxXx Informar um nome para identificar esse envio dentro do seu histórico.
message xXxXxXxXxXxXxX Informe a mensagem que deverá ser enviada.
file Link ou Base64 Informe o link do seu arquivo ou base64 para ser enviado.
extensao .pdf .doc Informe a extensão do seu arquivo.
verify 0 ou 1 Esse parâmetro é responsável em bloquear o envio de mensagens que o número em questão não tenha feito um contato anterior, isso é importante para que o WhatsApp não identifique seu envio como SPAM.
forcar 0 ou 1 Esse parâmetro é responsável por bloquear o envio caso o numero estaja "em atendimento" no 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.hand.chat/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.hand.chat/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.hand.chat/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.hand.chat/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.hand.chat/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.hand.chat/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()

POST Enviar mensagem de texto

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

Essa função é utilizada para enviar uma mensagem de texto, onde o TOKEN, deve ser substituido por sua chave.


PARAMS
celular 55XXXXXXXXXXX Informar o celular de destino da mensagem com código do país + DDD + número.
nome XxXxXxXxXxXxXx Informar um nome para identificar esse envio dentro do seu histórico.
message xXxXxXxXxXxXxX Informe a mensagem que deverá ser enviada.
verify 0 ou 1 Esse parâmetro é responsável em bloquear o envio de mensagens que o número em questão não tenha feito um contato anterior, isso é importante para que o WhatsApp não identifique seu envio como SPAM.
forcar 0 ou 1 Esse parâmetro é responsável por bloquear o envio caso o numero estaja "em atendimento" no 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);
request.AddHeader("", "");
var body = @"";
request.AddParameter("text/plain", body,  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
curl --location -g --request POST 'https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55xxxxxxxxxx&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0
' \
--data-raw ''
package main

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

func main() {

  url := "https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55xxxxxxxxxx&nome=teste&message=teste%2520de%2520mensagem&forcar=0&verify=0%0A"
  method := "POST"

  payload := strings.NewReader(``)

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

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("", "")

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

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  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)
  .addHeader("", "")
  .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
")
  .header("", "")
  .body("")
  .asString();
var myHeaders = new Headers();
myHeaders.append("", "");

var raw = "";

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55xxxxxxxxxx&nome=teste&message=teste%20de%20mensagem&forcar=0&verify=0\n", 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,
  "headers": {
    "": ""
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var data = "";

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

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

xhr.open("POST", "https://api.hand.chat/core/v1/api/sendtext/TOKEN?celular=55xxxxxxxxxx&nome=teste&message=teste%2520de%2520mensagem&forcar=0&verify=0%0A");
xhr.setRequestHeader("", "");

xhr.send(data);
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.hand.chat/core/v1/api/sendtext/TOKEN?celular=55xxxxxxxxxx&nome=teste&message=teste%2520de%2520mensagem&forcar=0&verify=0%0A");
  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
  curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
  struct curl_slist *headers = NULL;
  headers = curl_slist_append(headers, ": ");
  curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
  const char *data = "";
  curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
  res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);
var axios = require('axios');
var data = '';

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\n',
  headers: { 
    '': ''
  },
  data : data
};

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%0A',
  '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\n',
  '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\n')
  .headers({
    '': ''
  })
  .send("")
  .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.hand.chat/core/v1/api/sendtext/TOKEN?celular=55xxxxxxxxxx&nome=teste&message=teste%2520de%2520mensagem&forcar=0&verify=0%0A"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"": @""
};

[request setAllHTTPHeaderFields:headers];
NSData *postData = [[NSData alloc] initWithData:[@"" dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postData];

[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
  if (error) {
    NSLog(@"%@", error);
    dispatch_semaphore_signal(sema);
  } 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.hand.chat/core/v1/api/sendtext/TOKEN?celular=55xxxxxxxxxx&nome=teste&message=teste%2520de%2520mensagem&forcar=0&verify=0%0A" in
  let headers = Header.init ()
    |> fun h -> Header.add h "" ""
  in
  Client.call ~headers `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.hand.chat/core/v1/api/sendtext/TOKEN?celular=55xxxxxxxxxx&nome=teste&message=teste%2520de%2520mensagem&forcar=0&verify=0%0A',
  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',
  CURLOPT_HTTPHEADER => array(
    ': '
  ),
));

$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\n');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  '' => ''
));
$request->setBody('');
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');
$body = new http\Message\Body;
$request->setBody($body);
$request->setOptions(array());
$request->setHeaders(array(
  '' => ''
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("", "")

$body = ""

$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

conn = http.client.HTTPSConnection("api.hand.chat")
payload = ''
headers = {
  '': ''
}
conn.request("POST", "/core/v1/api/sendtext/TOKEN?celular=55xxxxxxxxxx&nome=teste&message=teste%2520de%2520mensagem&forcar=0&verify=0%0A", 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)
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)
request[""] = ""

response = https.request(request)
puts response.read_body
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
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

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.addValue("", forHTTPHeaderField: "")

request.httpMethod = "POST"

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

task.resume()
semaphore.wait()