Preço de bomba, preço do app (promoção vigente) e agenda semanal de descontos por posto e combustível.
Autenticação em todos os exemplos: veja Autenticação. Teste no navegador pelo Swagger ou importe a coleção do Postman.
| Endpoint | Métodos | Para que serve |
|---|---|---|
precoBomba |
GET, PUT | Preço de bomba dos combustíveis do posto |
precoAplicativo |
GET | Preço do app (promoção vigente) por combustível |
agendaPosto |
GET, PUT | Agenda de descontos do posto: desconto normal |
agendaPostoExtra |
GET, PUT | Agenda de descontos do posto: desconto extra até um limite de litros |
Preço de bomba dos combustíveis do posto. Consulta e atualiza o preço de bomba (sem desconto) por combustível do posto. É a base dos descontos do app: as promoções da agenda são calculadas sobre ele.
/v1/terceiro/precoBombaPreço de bomba atual por combustível
Perfis: App, Rede, Posto, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_tx_estabelecimento |
integer | não | Posto (aceita também id_estabelecimento ou id_posto). No acesso de posto (CNPJ do posto) é fixado pelo acesso e não precisa ser enviado; nos acessos de app e rede é obrigatório na prática (sem ele não há resultado). |
id_comb |
integer | não | Um combustível (aceita id_produto). Sem ele, todos os combustíveis ativos. |
curl -s -X GET "$BASE/v1/terceiro/precoBomba?$AUTH"
Resposta:
{
"data": [
{
"id_comb": 1,
"nome_comb": "GASOLINA COMUM",
"preco_bomba": 6.09,
"data_hora_atu": "2026-11-12 06:00:00"
}
],
"status": "ok"
}
Erros específicos: 401 — credencial inválida.; 403 — sem permissão ou id_tx_estabelecimento diferente do acesso..
/v1/terceiro/precoBombaAtualiza o preço de bomba de um combustível
Grava um novo preço de bomba quando o valor é diferente do atual. Com posto ou combustível ausente, valor negativo ou valor igual ao atual, nada é feito e a resposta é ok mesmo assim.
Perfis: App, Rede, Posto, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_tx_estabelecimento |
integer | não | Posto (aceita também id_estabelecimento ou id_posto). No acesso de posto (CNPJ do posto) é fixado pelo acesso e não precisa ser enviado; nos acessos de app e rede é obrigatório na prática (sem ele não há resultado). |
id_comb |
integer | sim | Combustível (aceita id_produto). |
valor |
number | sim | Novo preço por litro (aceita preco_bomba). Ponto como separador decimal. |
curl -s -X PUT "$BASE/v1/terceiro/precoBomba?$AUTH&id_comb=1&valor=6.09"
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {validation: {...}}: valor recusado pela validação do cadastro de preço..
Preço do app (promoção vigente) por combustível. Preço com desconto do app que vale agora no posto (promoção ativa no momento). Não mostra o desconto extra por limite de litros nem o preço de convênio.
/v1/terceiro/precoAplicativoPromoções vigentes do posto
Perfis: App, Rede, Posto, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_tx_estabelecimento |
integer | não | Posto (aceita também id_estabelecimento ou id_posto). No acesso de posto (CNPJ do posto) é fixado pelo acesso e não precisa ser enviado; nos acessos de app e rede é obrigatório na prática (sem ele não há resultado). |
id_comb |
integer | não | Um combustível (aceita id_produto). |
curl -s -X GET "$BASE/v1/terceiro/precoAplicativo?$AUTH"
Resposta:
{
"data": [
{
"id_comb": 1,
"nome_comb": "GASOLINA COMUM",
"preco_aplicativo": 5.89,
"data_hora_inicio": "2026-11-12 08:00:00",
"data_hora_fim": "2026-11-12 11:59:59"
}
],
"status": "ok"
}
Erros específicos: 401 — credencial inválida.; 403 — sem permissão ou id_tx_estabelecimento diferente do acesso..
Agenda de descontos do posto: desconto normal. A agenda define o desconto do app por posto, combustível, dia da semana e faixa de 4 horas (00:00, 04:00, 08:00, 12:00, 16:00 e 20:00). Uma rotina cria a promoção de cada faixa uns 10 minutos antes de ela começar, com preço = preço de bomba − desconto, e só para postos com a agenda ligada (cadastro do posto); alteração feita durante uma faixa vale a partir da próxima. dia_da_semana: 0 = domingo … 6 = sábado. Escopo pelo acesso: posto, só o próprio; rede, os postos da rede; app, os postos do app. Posto fora do escopo: o GET volta vazio e o PUT recebe 403.
/v1/terceiro/agendaPostoAgenda da semana (7 dias × 6 faixas)
Perfis: App, Rede, Posto, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_posto |
string | sim | Posto, ou lista de postos separados por vírgula (ex.: 10,11). Com vários postos, um valor só aparece quando é igual em todos (senão 0). No acesso de posto, sem ele vale o posto do acesso. |
id_comb |
integer | sim | Combustível (aceita id_produto). |
curl -s -X GET "$BASE/v1/terceiro/agendaPosto?$AUTH&id_posto=10&id_comb=1"
Resposta:
{
"data": [
{
"id_promocao_agenda": 501,
"dia_da_semana": 0,
"hora_inicial": "00:00:00",
"hora_final": "03:59:59",
"valor": 0.2,
"valor_secundario": 0.3,
"limite_litros": 50,
"valor_bomba": 6.09,
"produto": "GASOLINA COMUM"
}
],
"status": "ok"
}
Erros específicos: 401 — credencial inválida.; 403 — sem permissão..
/v1/terceiro/agendaPostoGrava o desconto normal
Grava o desconto normal (R$ por litro) de um dia + faixa, ou, sem dia_da_semana, de todas as 42 faixas da semana. Não mexe no desconto extra.
Perfis: App, Rede, Posto, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_posto |
string | sim | Posto ou lista separada por vírgula (grava em todos). No acesso de posto, sem ele vale o posto do acesso. |
id_comb |
integer | sim | Combustível (aceita id_produto). |
valor |
number | sim | Desconto normal em R$ por litro (0 ou mais; 0 = sem desconto). |
dia_da_semana |
integer | não | 0 (domingo) a 6 (sábado). Ausente = a semana inteira (todas as faixas). |
hora |
string | não | Início da faixa: 00:00, 04:00, 08:00, 12:00, 16:00 ou 20:00. Obrigatório com dia_da_semana. |
curl -s -X PUT "$BASE/v1/terceiro/agendaPosto?$AUTH&id_posto=10&id_comb=1&valor=0.2"
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {valor: 'O desconto normal não pode ser negativo'}.; 400 — {id_produto: 'Inválido'}: combustível ausente.; 400 — {hora: 'Inválido'}: dia_da_semana informado com hora fora das 6 faixas.; 400 — {id_posto: 'Inválido'}: lista de postos com valor não numérico.; 400 — {registro: 'Falha ao alterar'}: não gravou em algum posto..
Agenda de descontos do posto: desconto extra até um limite de litros. A agenda define o desconto do app por posto, combustível, dia da semana e faixa de 4 horas (00:00, 04:00, 08:00, 12:00, 16:00 e 20:00). Uma rotina cria a promoção de cada faixa uns 10 minutos antes de ela começar, com preço = preço de bomba − desconto, e só para postos com a agenda ligada (cadastro do posto); alteração feita durante uma faixa vale a partir da próxima. dia_da_semana: 0 = domingo … 6 = sábado. O desconto extra (valor_secundario) vale para os primeiros limite_litros do abastecimento; acima do limite vale o desconto normal. Escopo pelo acesso: posto, só o próprio; rede, os postos da rede; app, os postos do app. Posto fora do escopo: o GET volta vazio e o PUT recebe 403.
/v1/terceiro/agendaPostoExtraAgenda da semana (a mesma consulta de agendaPosto)
Perfis: App, Rede, Posto, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_posto |
string | sim | Posto, ou lista de postos separados por vírgula (ex.: 10,11). Com vários postos, um valor só aparece quando é igual em todos (senão 0). No acesso de posto, sem ele vale o posto do acesso. |
id_comb |
integer | sim | Combustível (aceita id_produto). |
curl -s -X GET "$BASE/v1/terceiro/agendaPostoExtra?$AUTH&id_posto=10&id_comb=1"
Resposta:
{
"data": [
{
"id_promocao_agenda": 501,
"dia_da_semana": 0,
"hora_inicial": "00:00:00",
"hora_final": "03:59:59",
"valor": 0.2,
"valor_secundario": 0.3,
"limite_litros": 50,
"valor_bomba": 6.09,
"produto": "GASOLINA COMUM"
}
],
"status": "ok"
}
Erros específicos: 401 — credencial inválida.; 403 — sem permissão..
/v1/terceiro/agendaPostoExtraGrava o desconto extra e o limite de litros
Grava o desconto extra e o limite de litros de um dia + faixa, ou, sem dia_da_semana, de todas as faixas da semana. Não mexe no desconto normal.
Perfis: App, Rede, Posto, Cliente, Pessoa
Parâmetros (query)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id_posto |
string | sim | Posto ou lista separada por vírgula. No acesso de posto, sem ele vale o posto do acesso. |
id_comb |
integer | sim | Combustível (aceita id_produto). |
valor_secundario |
number | sim | Desconto extra em R$ por litro (0 = sem desconto extra). |
limite_litros |
number | não | Litros com o desconto extra; obrigatório (> 0) quando valor_secundario > 0. |
dia_da_semana |
integer | não | 0 (domingo) a 6 (sábado). Ausente = a semana inteira. |
hora |
string | não | 00:00, 04:00, 08:00, 12:00, 16:00 ou 20:00. Obrigatório com dia_da_semana. |
curl -s -X PUT "$BASE/v1/terceiro/agendaPostoExtra?$AUTH&id_posto=10&id_comb=1&valor_secundario=0.3"
Resposta:
{
"status": "ok"
}
Erros específicos: 400 — {valor_secundario: 'O desconto extra e o limite não podem ser negativos'}.; 400 — {limite_litros: 'Informe um limite maior que zero para o desconto extra'}.; 400 — {id_produto: 'Inválido'}, {hora: 'Inválido'}, {id_posto: 'Inválido'} ou {registro: 'Falha ao alterar'} (como em agendaPosto)..