curl --request GET \
--url https://api-vendas.taximachine.com.br/api/v2/integracao/condutores/historico-punicoes \
--header 'Authorization: Basic <encoded-value>' \
--header 'api-key: <api-key>'import requests
url = "https://api-vendas.taximachine.com.br/api/v2/integracao/condutores/historico-punicoes"
headers = {
"Authorization": "Basic <encoded-value>",
"api-key": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: 'Basic <encoded-value>', 'api-key': '<api-key>'}
};
fetch('https://api-vendas.taximachine.com.br/api/v2/integracao/condutores/historico-punicoes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-vendas.taximachine.com.br/api/v2/integracao/condutores/historico-punicoes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-vendas.taximachine.com.br/api/v2/integracao/condutores/historico-punicoes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-vendas.taximachine.com.br/api/v2/integracao/condutores/historico-punicoes")
.header("Authorization", "Basic <encoded-value>")
.header("api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-vendas.taximachine.com.br/api/v2/integracao/condutores/historico-punicoes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": [
{
"id": 1523,
"condutor": {
"id": 5574,
"nome": "Lara",
"telefone": "(43) 99999-0001",
"email": "lara@exemplo.com"
},
"data_hora": "2026-10-01 14:32:10",
"motivo": "Cancelamentos consecutivos",
"origem": "A",
"impedido_ate": "2026-10-01 15:32:10",
"duracao_minutos": 60,
"gatilho": "O.S. 987654, 987655",
"situacao": "C",
"data_revogacao": null
},
{
"id": 1519,
"condutor": {
"id": 5590,
"nome": "Marcos",
"telefone": "(43) 99999-0002",
"email": "marcos@exemplo.com"
},
"data_hora": "2026-10-01 09:10:00",
"motivo": "Conduta inadequada",
"origem": "M",
"impedido_ate": "2026-10-01 11:10:00",
"duracao_minutos": 120,
"gatilho": "Ana Souza",
"situacao": "R",
"data_revogacao": "2026-10-01 09:45:00"
}
]
}Listar histórico de punições dos condutores
Retorna o histórico de punições aplicadas aos condutores da central autenticada. Cada item é uma punição aplicada, manualmente por um gestor ou de forma automática pela central (por exemplo, por cancelamentos).
Uma punição liberada antes do fim não gera um segundo item: ela aparece no próprio item, com situacao igual a R e a data da liberação em data_revogacao. A edição do motivo também não gera item, e motivo traz o texto de quando a punição foi aplicada. Em duracao_minutos vem a duração programada, mesmo nas punições revogadas.
Os itens vêm do mais recente para o mais antigo. O retorno é paginado com limite e pagina, como nos demais endpoints de condutores. Um parâmetro com nome diferente dos listados abaixo é ignorado, sem erro.
Os horários seguem o fuso da central, no formato AAAA-MM-DD HH:MM:SS e sem indicação de fuso. Os filtros dt_ini e dt_end usam o mesmo fuso e formato.
Só há histórico das punições aplicadas a partir do lançamento deste endpoint.
Para acessar este endpoint, o usuário autenticado deve ser um gestor da central, sem empresa vinculada, e a central deve ter a licença de integração via API ativa.
curl --request GET \
--url https://api-vendas.taximachine.com.br/api/v2/integracao/condutores/historico-punicoes \
--header 'Authorization: Basic <encoded-value>' \
--header 'api-key: <api-key>'import requests
url = "https://api-vendas.taximachine.com.br/api/v2/integracao/condutores/historico-punicoes"
headers = {
"Authorization": "Basic <encoded-value>",
"api-key": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: 'Basic <encoded-value>', 'api-key': '<api-key>'}
};
fetch('https://api-vendas.taximachine.com.br/api/v2/integracao/condutores/historico-punicoes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-vendas.taximachine.com.br/api/v2/integracao/condutores/historico-punicoes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-vendas.taximachine.com.br/api/v2/integracao/condutores/historico-punicoes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-vendas.taximachine.com.br/api/v2/integracao/condutores/historico-punicoes")
.header("Authorization", "Basic <encoded-value>")
.header("api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-vendas.taximachine.com.br/api/v2/integracao/condutores/historico-punicoes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": [
{
"id": 1523,
"condutor": {
"id": 5574,
"nome": "Lara",
"telefone": "(43) 99999-0001",
"email": "lara@exemplo.com"
},
"data_hora": "2026-10-01 14:32:10",
"motivo": "Cancelamentos consecutivos",
"origem": "A",
"impedido_ate": "2026-10-01 15:32:10",
"duracao_minutos": 60,
"gatilho": "O.S. 987654, 987655",
"situacao": "C",
"data_revogacao": null
},
{
"id": 1519,
"condutor": {
"id": 5590,
"nome": "Marcos",
"telefone": "(43) 99999-0002",
"email": "marcos@exemplo.com"
},
"data_hora": "2026-10-01 09:10:00",
"motivo": "Conduta inadequada",
"origem": "M",
"impedido_ate": "2026-10-01 11:10:00",
"duracao_minutos": 120,
"gatilho": "Ana Souza",
"situacao": "R",
"data_revogacao": "2026-10-01 09:45:00"
}
]
}Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Obrigatório. Sua chave API.
Query Parameters
ID do condutor. Retorna apenas as punições dele. O nome do parâmetro é taxista_id, e não condutor_id: com outro nome o filtro é ignorado e o retorno traz todos os condutores.
x >= 1Texto para buscar o condutor por nome, telefone ou e-mail (o campo contém o texto). Use pelo menos 3 caracteres: com menos, a resposta é 200 com data vazio. A busca considera no máximo 200 condutores que combinam com o texto; os demais ficam fora do resultado.
3Origem da punição: A (automática) ou M (manual, aplicada por um gestor). Sem o parâmetro, traz as duas. Outros valores são ignorados.
A, M Situação da punição: E (em andamento), C (concluída, o prazo terminou) ou R (revogada, liberada antes do fim). Outro valor devolve data vazio.
E, C, R Início do período, inclusive, pela data em que a punição foi aplicada. Formato AAAA-MM-DD HH:MM:SS, no fuso da central.
"2026-10-01 00:00:00"
Fim do período, inclusive, pela data em que a punição foi aplicada. Formato AAAA-MM-DD HH:MM:SS, no fuso da central.
"2026-10-31 23:59:59"
Ordem dos itens pela data em que a punição foi aplicada. Envie exatamente t.data_hora asc (mais antigo primeiro) ou t.data_hora desc (mais recente primeiro). Qualquer outro valor usa o padrão.
t.data_hora asc, t.data_hora desc Quantidade de registros por página. O limite padrão é 20 e o máximo é 100: um valor maior vira 100. Deve ser maior ou igual a 1.
1 <= x <= 100Número da página, a partir de 1. O padrão é 1. Deve ser maior ou igual a 1.
x >= 1Response
Sucesso
The response is of type object.
