curl --request POST \
--url https://api-vendas.taximachine.com.br/api/v2/integracao/cupons/lote \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"cupons": [
{
"gerador_cupom_id": 1,
"codigo": "DESCONTO10",
"data_hora_inicio": "2026-05-01T00:00:00Z",
"data_hora_final": "2026-06-01T23:59:59Z",
"limite_de_uso": "sem_limite",
"tipo_desconto": "valor_fixo",
"desconto": "10.00",
"tipos_pagamentos": [
"D"
]
},
{
"gerador_cupom_id": 2,
"codigo_pattern": "NATAL{00}",
"data_hora_inicio": "2026-05-01T00:00:00Z",
"data_hora_final": "2026-06-01T23:59:59Z",
"limite_de_uso": "ate_n_vezes_por_passageiro",
"limite_de_uso_individual": 3,
"tipo_desconto": "percentual",
"desconto": "15",
"valor_maximo": "20.00",
"tipos_pagamentos": [
"C",
"B"
],
"cliente_id": 83983,
"area_id": 239,
"local_aplicacao": "D"
}
]
}
'import requests
url = "https://api-vendas.taximachine.com.br/api/v2/integracao/cupons/lote"
payload = { "cupons": [
{
"gerador_cupom_id": 1,
"codigo": "DESCONTO10",
"data_hora_inicio": "2026-05-01T00:00:00Z",
"data_hora_final": "2026-06-01T23:59:59Z",
"limite_de_uso": "sem_limite",
"tipo_desconto": "valor_fixo",
"desconto": "10.00",
"tipos_pagamentos": ["D"]
},
{
"gerador_cupom_id": 2,
"codigo_pattern": "NATAL{00}",
"data_hora_inicio": "2026-05-01T00:00:00Z",
"data_hora_final": "2026-06-01T23:59:59Z",
"limite_de_uso": "ate_n_vezes_por_passageiro",
"limite_de_uso_individual": 3,
"tipo_desconto": "percentual",
"desconto": "15",
"valor_maximo": "20.00",
"tipos_pagamentos": ["C", "B"],
"cliente_id": 83983,
"area_id": 239,
"local_aplicacao": "D"
}
] }
headers = {
"Authorization": "Basic <encoded-value>",
"api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Basic <encoded-value>',
'api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
cupons: [
{
gerador_cupom_id: 1,
codigo: 'DESCONTO10',
data_hora_inicio: '2026-05-01T00:00:00Z',
data_hora_final: '2026-06-01T23:59:59Z',
limite_de_uso: 'sem_limite',
tipo_desconto: 'valor_fixo',
desconto: '10.00',
tipos_pagamentos: ['D']
},
{
gerador_cupom_id: 2,
codigo_pattern: 'NATAL{00}',
data_hora_inicio: '2026-05-01T00:00:00Z',
data_hora_final: '2026-06-01T23:59:59Z',
limite_de_uso: 'ate_n_vezes_por_passageiro',
limite_de_uso_individual: 3,
tipo_desconto: 'percentual',
desconto: '15',
valor_maximo: '20.00',
tipos_pagamentos: ['C', 'B'],
cliente_id: 83983,
area_id: 239,
local_aplicacao: 'D'
}
]
})
};
fetch('https://api-vendas.taximachine.com.br/api/v2/integracao/cupons/lote', 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/cupons/lote",
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([
'cupons' => [
[
'gerador_cupom_id' => 1,
'codigo' => 'DESCONTO10',
'data_hora_inicio' => '2026-05-01T00:00:00Z',
'data_hora_final' => '2026-06-01T23:59:59Z',
'limite_de_uso' => 'sem_limite',
'tipo_desconto' => 'valor_fixo',
'desconto' => '10.00',
'tipos_pagamentos' => [
'D'
]
],
[
'gerador_cupom_id' => 2,
'codigo_pattern' => 'NATAL{00}',
'data_hora_inicio' => '2026-05-01T00:00:00Z',
'data_hora_final' => '2026-06-01T23:59:59Z',
'limite_de_uso' => 'ate_n_vezes_por_passageiro',
'limite_de_uso_individual' => 3,
'tipo_desconto' => 'percentual',
'desconto' => '15',
'valor_maximo' => '20.00',
'tipos_pagamentos' => [
'C',
'B'
],
'cliente_id' => 83983,
'area_id' => 239,
'local_aplicacao' => 'D'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-vendas.taximachine.com.br/api/v2/integracao/cupons/lote"
payload := strings.NewReader("{\n \"cupons\": [\n {\n \"gerador_cupom_id\": 1,\n \"codigo\": \"DESCONTO10\",\n \"data_hora_inicio\": \"2026-05-01T00:00:00Z\",\n \"data_hora_final\": \"2026-06-01T23:59:59Z\",\n \"limite_de_uso\": \"sem_limite\",\n \"tipo_desconto\": \"valor_fixo\",\n \"desconto\": \"10.00\",\n \"tipos_pagamentos\": [\n \"D\"\n ]\n },\n {\n \"gerador_cupom_id\": 2,\n \"codigo_pattern\": \"NATAL{00}\",\n \"data_hora_inicio\": \"2026-05-01T00:00:00Z\",\n \"data_hora_final\": \"2026-06-01T23:59:59Z\",\n \"limite_de_uso\": \"ate_n_vezes_por_passageiro\",\n \"limite_de_uso_individual\": 3,\n \"tipo_desconto\": \"percentual\",\n \"desconto\": \"15\",\n \"valor_maximo\": \"20.00\",\n \"tipos_pagamentos\": [\n \"C\",\n \"B\"\n ],\n \"cliente_id\": 83983,\n \"area_id\": 239,\n \"local_aplicacao\": \"D\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-vendas.taximachine.com.br/api/v2/integracao/cupons/lote")
.header("Authorization", "Basic <encoded-value>")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"cupons\": [\n {\n \"gerador_cupom_id\": 1,\n \"codigo\": \"DESCONTO10\",\n \"data_hora_inicio\": \"2026-05-01T00:00:00Z\",\n \"data_hora_final\": \"2026-06-01T23:59:59Z\",\n \"limite_de_uso\": \"sem_limite\",\n \"tipo_desconto\": \"valor_fixo\",\n \"desconto\": \"10.00\",\n \"tipos_pagamentos\": [\n \"D\"\n ]\n },\n {\n \"gerador_cupom_id\": 2,\n \"codigo_pattern\": \"NATAL{00}\",\n \"data_hora_inicio\": \"2026-05-01T00:00:00Z\",\n \"data_hora_final\": \"2026-06-01T23:59:59Z\",\n \"limite_de_uso\": \"ate_n_vezes_por_passageiro\",\n \"limite_de_uso_individual\": 3,\n \"tipo_desconto\": \"percentual\",\n \"desconto\": \"15\",\n \"valor_maximo\": \"20.00\",\n \"tipos_pagamentos\": [\n \"C\",\n \"B\"\n ],\n \"cliente_id\": 83983,\n \"area_id\": 239,\n \"local_aplicacao\": \"D\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-vendas.taximachine.com.br/api/v2/integracao/cupons/lote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cupons\": [\n {\n \"gerador_cupom_id\": 1,\n \"codigo\": \"DESCONTO10\",\n \"data_hora_inicio\": \"2026-05-01T00:00:00Z\",\n \"data_hora_final\": \"2026-06-01T23:59:59Z\",\n \"limite_de_uso\": \"sem_limite\",\n \"tipo_desconto\": \"valor_fixo\",\n \"desconto\": \"10.00\",\n \"tipos_pagamentos\": [\n \"D\"\n ]\n },\n {\n \"gerador_cupom_id\": 2,\n \"codigo_pattern\": \"NATAL{00}\",\n \"data_hora_inicio\": \"2026-05-01T00:00:00Z\",\n \"data_hora_final\": \"2026-06-01T23:59:59Z\",\n \"limite_de_uso\": \"ate_n_vezes_por_passageiro\",\n \"limite_de_uso_individual\": 3,\n \"tipo_desconto\": \"percentual\",\n \"desconto\": \"15\",\n \"valor_maximo\": \"20.00\",\n \"tipos_pagamentos\": [\n \"C\",\n \"B\"\n ],\n \"cliente_id\": 83983,\n \"area_id\": 239,\n \"local_aplicacao\": \"D\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"cupons": [
{
"id": 4210,
"codigo": "DESCONTO10"
},
{
"id": 4211,
"codigo": "NATAL37"
}
]
}
}Criar cupons em lote
Cria vários cupons de desconto numa única requisição, tudo ou nada: ou todos os cupons são criados, ou nenhum.
Cada item de cupons tem o formato e as regras do body do POST /cupons, inclusive area_id, local_aplicacao, valor_maximo e valor_maximo_corrida, e traz o próprio gerador_cupom_id, com uma diferença: a restrição de cliente é um único cliente_id opcional por cupom, e a lista cliente_ids do POST /cupons é recusada no lote. O lote aceita de 1 a 100 cupons.
A validação é completa antes de gravar: todos os erros de todos os itens voltam juntos, cada um com o campo no formato cupons.N.campo, em que N é a posição do item a partir de zero, e com o mesmo code que o POST /cupons devolve para o mesmo erro. Além das regras de cada item, o lote confere que a cota de cada gerador comporta os cupons já criados mais os do lote, que nenhum codigo se repete no lote e que nenhum já está em uso na central. Item com codigo_pattern tem o código sorteado na criação e ressorteado até 5 vezes em caso de colisão; persistindo a colisão, o lote falha.
Requer Api-Key (bandeira) + autenticação HTTP Basic de um gestor ativo da bandeira com a permissão de cupons, como o POST /cupons. Gestor com empresa vinculada só alcança os geradores da própria empresa.
curl --request POST \
--url https://api-vendas.taximachine.com.br/api/v2/integracao/cupons/lote \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"cupons": [
{
"gerador_cupom_id": 1,
"codigo": "DESCONTO10",
"data_hora_inicio": "2026-05-01T00:00:00Z",
"data_hora_final": "2026-06-01T23:59:59Z",
"limite_de_uso": "sem_limite",
"tipo_desconto": "valor_fixo",
"desconto": "10.00",
"tipos_pagamentos": [
"D"
]
},
{
"gerador_cupom_id": 2,
"codigo_pattern": "NATAL{00}",
"data_hora_inicio": "2026-05-01T00:00:00Z",
"data_hora_final": "2026-06-01T23:59:59Z",
"limite_de_uso": "ate_n_vezes_por_passageiro",
"limite_de_uso_individual": 3,
"tipo_desconto": "percentual",
"desconto": "15",
"valor_maximo": "20.00",
"tipos_pagamentos": [
"C",
"B"
],
"cliente_id": 83983,
"area_id": 239,
"local_aplicacao": "D"
}
]
}
'import requests
url = "https://api-vendas.taximachine.com.br/api/v2/integracao/cupons/lote"
payload = { "cupons": [
{
"gerador_cupom_id": 1,
"codigo": "DESCONTO10",
"data_hora_inicio": "2026-05-01T00:00:00Z",
"data_hora_final": "2026-06-01T23:59:59Z",
"limite_de_uso": "sem_limite",
"tipo_desconto": "valor_fixo",
"desconto": "10.00",
"tipos_pagamentos": ["D"]
},
{
"gerador_cupom_id": 2,
"codigo_pattern": "NATAL{00}",
"data_hora_inicio": "2026-05-01T00:00:00Z",
"data_hora_final": "2026-06-01T23:59:59Z",
"limite_de_uso": "ate_n_vezes_por_passageiro",
"limite_de_uso_individual": 3,
"tipo_desconto": "percentual",
"desconto": "15",
"valor_maximo": "20.00",
"tipos_pagamentos": ["C", "B"],
"cliente_id": 83983,
"area_id": 239,
"local_aplicacao": "D"
}
] }
headers = {
"Authorization": "Basic <encoded-value>",
"api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Basic <encoded-value>',
'api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
cupons: [
{
gerador_cupom_id: 1,
codigo: 'DESCONTO10',
data_hora_inicio: '2026-05-01T00:00:00Z',
data_hora_final: '2026-06-01T23:59:59Z',
limite_de_uso: 'sem_limite',
tipo_desconto: 'valor_fixo',
desconto: '10.00',
tipos_pagamentos: ['D']
},
{
gerador_cupom_id: 2,
codigo_pattern: 'NATAL{00}',
data_hora_inicio: '2026-05-01T00:00:00Z',
data_hora_final: '2026-06-01T23:59:59Z',
limite_de_uso: 'ate_n_vezes_por_passageiro',
limite_de_uso_individual: 3,
tipo_desconto: 'percentual',
desconto: '15',
valor_maximo: '20.00',
tipos_pagamentos: ['C', 'B'],
cliente_id: 83983,
area_id: 239,
local_aplicacao: 'D'
}
]
})
};
fetch('https://api-vendas.taximachine.com.br/api/v2/integracao/cupons/lote', 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/cupons/lote",
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([
'cupons' => [
[
'gerador_cupom_id' => 1,
'codigo' => 'DESCONTO10',
'data_hora_inicio' => '2026-05-01T00:00:00Z',
'data_hora_final' => '2026-06-01T23:59:59Z',
'limite_de_uso' => 'sem_limite',
'tipo_desconto' => 'valor_fixo',
'desconto' => '10.00',
'tipos_pagamentos' => [
'D'
]
],
[
'gerador_cupom_id' => 2,
'codigo_pattern' => 'NATAL{00}',
'data_hora_inicio' => '2026-05-01T00:00:00Z',
'data_hora_final' => '2026-06-01T23:59:59Z',
'limite_de_uso' => 'ate_n_vezes_por_passageiro',
'limite_de_uso_individual' => 3,
'tipo_desconto' => 'percentual',
'desconto' => '15',
'valor_maximo' => '20.00',
'tipos_pagamentos' => [
'C',
'B'
],
'cliente_id' => 83983,
'area_id' => 239,
'local_aplicacao' => 'D'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-vendas.taximachine.com.br/api/v2/integracao/cupons/lote"
payload := strings.NewReader("{\n \"cupons\": [\n {\n \"gerador_cupom_id\": 1,\n \"codigo\": \"DESCONTO10\",\n \"data_hora_inicio\": \"2026-05-01T00:00:00Z\",\n \"data_hora_final\": \"2026-06-01T23:59:59Z\",\n \"limite_de_uso\": \"sem_limite\",\n \"tipo_desconto\": \"valor_fixo\",\n \"desconto\": \"10.00\",\n \"tipos_pagamentos\": [\n \"D\"\n ]\n },\n {\n \"gerador_cupom_id\": 2,\n \"codigo_pattern\": \"NATAL{00}\",\n \"data_hora_inicio\": \"2026-05-01T00:00:00Z\",\n \"data_hora_final\": \"2026-06-01T23:59:59Z\",\n \"limite_de_uso\": \"ate_n_vezes_por_passageiro\",\n \"limite_de_uso_individual\": 3,\n \"tipo_desconto\": \"percentual\",\n \"desconto\": \"15\",\n \"valor_maximo\": \"20.00\",\n \"tipos_pagamentos\": [\n \"C\",\n \"B\"\n ],\n \"cliente_id\": 83983,\n \"area_id\": 239,\n \"local_aplicacao\": \"D\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-vendas.taximachine.com.br/api/v2/integracao/cupons/lote")
.header("Authorization", "Basic <encoded-value>")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"cupons\": [\n {\n \"gerador_cupom_id\": 1,\n \"codigo\": \"DESCONTO10\",\n \"data_hora_inicio\": \"2026-05-01T00:00:00Z\",\n \"data_hora_final\": \"2026-06-01T23:59:59Z\",\n \"limite_de_uso\": \"sem_limite\",\n \"tipo_desconto\": \"valor_fixo\",\n \"desconto\": \"10.00\",\n \"tipos_pagamentos\": [\n \"D\"\n ]\n },\n {\n \"gerador_cupom_id\": 2,\n \"codigo_pattern\": \"NATAL{00}\",\n \"data_hora_inicio\": \"2026-05-01T00:00:00Z\",\n \"data_hora_final\": \"2026-06-01T23:59:59Z\",\n \"limite_de_uso\": \"ate_n_vezes_por_passageiro\",\n \"limite_de_uso_individual\": 3,\n \"tipo_desconto\": \"percentual\",\n \"desconto\": \"15\",\n \"valor_maximo\": \"20.00\",\n \"tipos_pagamentos\": [\n \"C\",\n \"B\"\n ],\n \"cliente_id\": 83983,\n \"area_id\": 239,\n \"local_aplicacao\": \"D\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-vendas.taximachine.com.br/api/v2/integracao/cupons/lote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cupons\": [\n {\n \"gerador_cupom_id\": 1,\n \"codigo\": \"DESCONTO10\",\n \"data_hora_inicio\": \"2026-05-01T00:00:00Z\",\n \"data_hora_final\": \"2026-06-01T23:59:59Z\",\n \"limite_de_uso\": \"sem_limite\",\n \"tipo_desconto\": \"valor_fixo\",\n \"desconto\": \"10.00\",\n \"tipos_pagamentos\": [\n \"D\"\n ]\n },\n {\n \"gerador_cupom_id\": 2,\n \"codigo_pattern\": \"NATAL{00}\",\n \"data_hora_inicio\": \"2026-05-01T00:00:00Z\",\n \"data_hora_final\": \"2026-06-01T23:59:59Z\",\n \"limite_de_uso\": \"ate_n_vezes_por_passageiro\",\n \"limite_de_uso_individual\": 3,\n \"tipo_desconto\": \"percentual\",\n \"desconto\": \"15\",\n \"valor_maximo\": \"20.00\",\n \"tipos_pagamentos\": [\n \"C\",\n \"B\"\n ],\n \"cliente_id\": 83983,\n \"area_id\": 239,\n \"local_aplicacao\": \"D\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"cupons": [
{
"id": 4210,
"codigo": "DESCONTO10"
},
{
"id": 4211,
"codigo": "NATAL37"
}
]
}
}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.
Body
Cupons a criar, de 1 a 100. Cada item segue o body do POST /cupons, com cliente_id (um cliente) no lugar de cliente_ids.
1 - 100 elementsShow child attributes
Show child attributes
Response
Cupons criados, na ordem enviada
The response is of type object.
