Protocolo de Comunicação para Concessionárias
O Pedágio Eletrônico é uma plataforma centralizada que atua como intermediário entre concessionárias de rodovias e motoristas, facilitando o pagamento de transações de passagens em pedágios do tipo NAVI (sem tag ou AVI recusado).
Através do portal unificado (www.pedagioeletronico.com.br), motoristas podem visualizar e pagar suas pendências de múltiplas concessionárias em um único lugar, com suporte a diversos meios de pagamento (PIX, cartão de crédito, carteira digital).
Esta documentação descreve o protocolo técnico para que concessionárias de rodovias possam integrar seus sistemas ao Pedágio Eletrônico, permitindo:
A arquitetura do Pedágio Eletrônico é composta pelos seguintes componentes principais:
A integração utiliza um modelo híbrido que combina comunicação assíncrona e síncrona para otimizar performance e garantir consistência:
| Tipo | Tecnologia | Uso | Latência |
|---|---|---|---|
| Assíncrona | RabbitMQ (AMQP) | Envio de passagens e notificações de pagamento | Eventual (até 36h) |
| Síncrona | REST API (HTTP/JSON) | Lock de transações e autorizações em tempo real | Tempo real (<500ms) |
Esta seção detalha todos os tipos enumerados (enums) e estruturas de dados utilizados no protocolo de integração. Estes tipos são comuns a ambos os protocolos de comunicação: mensageria assíncrona (RabbitMQ) e REST API síncrona (HTTP).
| Valor | Descrição | Transição Permitida | Lock Ativo? |
|---|---|---|---|
PENDENTE |
Pedido criado, aguardando pagamento | PAGO, EXPIRADO, CANCELADO | ✅ Sim (15 minutos) |
PAGO |
Pedido pago com sucesso | Estado final | ❌ Não |
EXPIRADO |
Lock expirou sem pagamento (após 15min) | Estado final | ❌ Não |
CANCELADO |
Pedido cancelado manualmente (erro, fraude, etc) | Estado final | ❌ Não |
| Valor | Descrição | Quando Usar |
|---|---|---|
PENDENTE |
Transação recebida, aguardando processamento | Após envio via mensageria, antes de qualquer ação |
LOCKED |
Transação lockada em um pedido ativo | Durante os 15 minutos de lock do pedido |
PAGO |
Transação paga e liquidada com sucesso | Após receber PASSAGEM_PROCESSADA resultado=1 ou 6 |
CANCELADO |
Transação cancelada (estorno, duplicata, etc) | Após receber PASSAGEM_PROCESSADA resultado=8 |
REJEITADO |
Transação rejeitada (dados inválidos) | Após receber PASSAGEM_PROCESSADA resultado=3 |
INADIMPLENTE |
Transação virou inadimplência | Após receber PASSAGEM_PROCESSADA resultado=7 |
| Código | Nome | Descrição | Tempo Confirmação |
|---|---|---|---|
0 |
PIX | Pagamento instantâneo via PIX | Tempo real (segundos) |
1 |
Cartão de Crédito | Pagamento via cartão de crédito | Imediato (autorização) |
2 |
Carteira Digital | Saldo em carteira do Pedágio Eletrônico | Imediato |
3 |
Arrecada+ | Liquidação via parceiro externo (bancos, apps) | Variável (até 48h) |
4 |
Boleto Bancário | Pagamento via boleto | 1-3 dias úteis |
5 |
Débito em Conta | Débito automático em conta corrente | Processamento noturno |
| Código | Descrição | Exemplo |
|---|---|---|
N |
Norte | Sentido crescente da rodovia (ex: SP → RJ) |
S |
Sul | Sentido decrescente da rodovia (ex: RJ → SP) |
L |
Leste | Sentido leste da rodovia |
O |
Oeste | Sentido oeste da rodovia |
| ID | Código | Nome/Descrição | Rótulo | Nº Eixos | Rodado Duplo |
|---|---|---|---|---|---|
0 |
INDEF | Categoria indefinida | INDEF | 0 | Não |
1 |
CAT01 | Automóvel, Caminhonete e Furgão | CAT 1 | 2 | Não |
2 |
CAT02 | Caminhão (leve e Trator) e Furgão | CAT 2 | 2 | Sim |
3 |
CAT03 | Automóvel e Caminhonete com semi-reboque | CAT 3 | 3 | Sim |
4 |
CAT04 | Caminhão (c/ reboque e Trator c/ semi-reboque) | CAT 4 | 4 | Sim |
5 |
CAT05 | Caminhão (c/ reboque e Trator c/ semi reboque) | CAT 5 | 5 | Sim |
6 |
CAT06 | Caminhão (c/ reboque e Trator c/ semi-reboque) | CAT 6 | 6 | Sim |
7 |
CAT07 | Automóvel ou Caminhonete com semi-reboque | CAT 7 | 3 | Não |
8 |
CAT08 | Automóvel ou Caminhonete com reboque | CAT 8 | 4 | Não |
9 |
CAT09 | Motocicleta | CAT 9 | 1 | Não |
11 |
CAT11 | Motocicleta | CAT 11 | 1 | Não |
12 |
CAT12 | Dois eixos rodagem dupla (ônibus) | CAT 12 | 2 | Sim |
14 |
CAT14 | Tres eixos rodagem dupla (ônibus) | CAT 14 | 3 | Sim |
16-48 |
CAT16-48 | Categoria 6 + 10 a 42 eixos duplos | CAT 6+10 a 6+42 | 16-48 | Sim |
61-69 |
CAT61-69 | Categoria 6 + 1 a 9 eixos duplos | CAT 6+1 a 6+9 | 7-15 | Sim |
1731427200 = 12/11/2025 14:00:00 UTC# Passagem em 12/11/2025 às 14:30 BRT (horário de Brasília)
from datetime import datetime, timezone, timedelta
# Horário local BRT (UTC-3)
hora_brt = datetime(2025, 11, 12, 14, 30, 0)
# Converter para UTC (adicionar 3 horas)
hora_utc = hora_brt + timedelta(hours=3) # 17:30 UTC
# Gerar timestamp Unix
timestamp = int(hora_utc.timestamp()) # 1731427200
12505010000875As mensagens assíncronas são trocadas via RabbitMQ utilizando o protocolo AMQP. Este modelo é inspirado no protocolo ARTESP 001/14, adaptado para o contexto do Pedágio Eletrônico.
Direção: Concessionária → Pedágio Eletrônico
Descrição: Notifica uma transação de passagem sem tag (NAVI) detectada pela concessionária
Prazo de envio: Até 24 horas após a passagem
Fila: passagens.{concessionariaId}
{
"concessionariaId": 123,
"osaId": 0,
"sequencial": 1000,
"passagemId": "253052020300000451",
"placa": "ABC1D23",
"datahora": 1731427200,
"praca": 101,
"nomePraca": "P01 - ARUJÁ",
"pista": 3,
"sentido": "N",
"catDetectada": 2,
"catCobrada": 2,
"valor": 1250,
"reenvio": 0
}
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
concessionariaId |
Integer | Sim | Identificador único da concessionária no sistema |
osaId |
Integer | Sim | ID do Pedágio Eletrônico (sempre 0) |
sequencial |
Integer | Sim | Número sequencial da mensagem (incrementa a cada envio) |
passagemId |
String | Sim | Identificador único da passagem (imutável, usado como chave) |
placa |
String | Sim | Placa do veículo no formato Mercosul (AAA1N23) ou antigo (AAA1234) |
datahora |
Integer | Sim | Timestamp Unix UTC-0 (segundos desde 01/01/1970) |
praca |
Integer | Sim | Identificador da praça de pedágio |
nomePraca |
String | Sim | Nome descritivo da praça (exibido ao motorista) |
pista |
Integer | Sim | Número da pista onde ocorreu a passagem |
sentido |
String(1) | Sim | Sentido da via: N (Norte), S (Sul), L (Leste), O (Oeste) |
catDetectada |
Integer | Sim | Categoria detectada pelo sistema (1-9) |
catCobrada |
Integer | Sim | Categoria efetivamente cobrada (1-9) |
valor |
Integer | Sim | Valor em centavos (ex: 1250 = R$ 12,50) |
reenvio |
Integer | Sim | Contador de reenvios (0 = primeiro envio, 1+ = reenvios) |
datahora deve estar sempre em UTC-0.
Se sua concessionária opera em UTC-3 (horário de Brasília), adicione 3 horas
ao horário local antes de converter para timestamp Unix.
Direção: Pedágio Eletrônico → Concessionária
Descrição: Resposta sobre o status de processamento de uma passagem
Prazo de envio: Até 36 horas após receber a PASSAGEM
Fila: processadas.{concessionariaId}
{
"concessionariaId": 123,
"osaId": 0,
"sequencial": 2000,
"passagemId": "253052020300000451",
"resultado": 1,
"motivoNaoComp": 0,
"pagamento": 1731513600,
"valorPago": 1250,
"meioPagamento": 0
}
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
passagemId |
String | Sim | ID da passagem (mesmo enviado na mensagem PASSAGEM) |
resultado |
Integer | Sim | Código do resultado (ver tabela abaixo) |
motivoNaoComp |
Integer | Sim | Motivo quando resultado=3 (ver tabela abaixo) |
pagamento |
Integer | Não | Timestamp UTC quando foi pago (se aplicável) |
valorPago |
Integer | Não | Valor efetivamente pago em centavos |
meioPagamento |
Integer | Não | 0: PIX, 1: Cartão, 2: Carteira, 3: Arrecada+ |
| Código | Nome | Descrição | Ação da Concessionária |
|---|---|---|---|
0 |
Sem resultado | Status desconhecido ou erro no processamento | Aguardar nova notificação ou consultar via API |
1 |
Compensado | Passagem aceita e será paga | Marcar como PAGO no sistema |
2 |
Compensado outro valor | Aceita com valor diferente do enviado | Verificar campo valorPago e ajustar |
3 |
Não compensado | Rejeitada (ver motivoNaoComp) |
Analisar motivo e corrigir se necessário |
4 |
Provisionado | Em processamento pelo Pedágio Eletrônico | Aguardar nova notificação com resultado final |
5 |
Compensado previamente | Passagem já foi paga anteriormente | Verificar se já está marcada como paga |
6 |
Liquidado por outro meio | Pago em outro parceiro (ex: banco, app) | Marcar como PAGO (outro canal) |
7 |
Inadimplente | Transação virou inadimplência | Aplicar processo de cobrança padrão |
8 |
Cancelado | Transação cancelada (ex: estorno) | Cancelar no sistema interno |
sequencial para ordenar as mensagens.
Quando resultado = 3 (Não compensado), o campo motivoNaoComp indica a razão:
| Código | Descrição | Possível Causa |
|---|---|---|
0 |
Sem motivo específico | Erro genérico ou não categorizado |
400 |
Passagem inválida/duplicada | passagemId já existe no sistema |
401 |
Placa inválida | Formato incorreto (deve ser AAA1234 ou AAA1N23) |
402 |
Praça não cadastrada | praca não está configurada no sistema |
403 |
Pista inválida | Número de pista fora do range válido |
404 |
Valor inválido | Valor zerado, negativo ou muito alto |
405 |
Horário inválido | datahora no futuro ou muito antiga |
5 |
Transação repetida | Reenvio sem incrementar campo reenvio |
6 |
Passagem enviada fora do prazo | Enviada após 24h da passagem |
A concessionária deve disponibilizar os seguintes endpoints REST para que o Pedágio Eletrônico possa realizar operações em tempo real durante o processo de pagamento do motorista.
https://sandbox-api.concessionaria.com.brhttps://api.concessionaria.com.br
Authorization: Basic {token_base64}
X-Concessionaria-Id: 123
Content-Type: application/json
X-Idempotency-Key: 03d82e99-e97f-484b-99e2-65e35d9116d6
{
"concessionariaId": 123,
"passagens": [
"253052020300000451",
"253052020300000452",
"253052020300000453"
],
"placaVeiculo": "ABC1D23",
"chaveIdempotencia": "03d82e99-e97f-484b-99e2-65e35d9116d6"
}
{
"pedidoId": "PED-2025-06-00001",
"status": "PENDENTE",
"valorTotal": 3750,
"passagens": [
{
"passagemId": "253052020300000451",
"valor": 1250,
"praca": "P01 - ARUJÁ",
"data": "2025-11-12T10:30:00Z",
"status": "LOCKED"
},
{
"passagemId": "253052020300000452",
"valor": 1250,
"praca": "P02 - GUARULHOS",
"data": "2025-11-12T11:15:00Z",
"status": "LOCKED"
},
{
"passagemId": "253052020300000453",
"valor": 1250,
"praca": "P01 - ARUJÁ",
"data": "2025-11-12T14:20:00Z",
"status": "LOCKED"
}
],
"expiracaoLock": "2025-11-12T15:45:00Z",
"linkPagamento": "https://portal.pedagioeletronico.com.br/pagar/PED-2025-06-00001",
"chaveIdempotencia": "03d82e99-e97f-484b-99e2-65e35d9116d6"
}
| Status | Código | Descrição |
|---|---|---|
| 400 | PASSAGENS_VAZIAS | Array de passagens está vazio |
| 400 | PASSAGEM_NAO_ENCONTRADA | Uma ou mais passagens não existem |
| 403 | PASSAGEM_JA_PAGA | Uma ou mais passagens já foram pagas |
| 403 | PASSAGEM_LOCKED | Uma ou mais passagens estão lockadas por outro pedido |
chaveIdempotencia (UUID único) para garantir que múltiplas
requisições com a mesma chave retornem o mesmo resultado, evitando criação de pedidos duplicados.
pedidoId |
String | Identificador do pedido retornado no POST /pedidos/criar |
{
"pedidoId": "PED-2025-06-00001",
"status": "PAGO",
"valorTotal": 3750,
"dataCriacao": "2025-11-12T15:30:00Z",
"dataPagamento": "2025-11-12T15:42:00Z",
"chaveIdempotencia": "03d82e99-e97f-484b-99e2-65e35d9116d6",
"passagens": [
{
"passagemId": "253052020300000451",
"valor": 1250,
"status": "PAGO"
},
{
"passagemId": "253052020300000452",
"valor": 1250,
"status": "PAGO"
},
{
"passagemId": "253052020300000453",
"valor": 1250,
"status": "PAGO"
}
]
}
PENDENTE - Pedido criado, aguardando pagamento (lock ativo)PAGO - Pedido pago com sucessoEXPIRADO - Lock expirado sem pagamento (após 15min)CANCELADO - Pedido cancelado manualmente| Status | Código | Descrição |
|---|---|---|
| 404 | PEDIDO_NAO_ENCONTRADO | Pedido não existe no sistema |
{
"concessionariaId": 123,
"passagemId": "253052020300000451",
"pedidoId": "PED-2025-06-00001",
"valor": 1250,
"meioPagamento": 0,
"timestampPagamento": 1731513600
}
{
"autorizado": true,
"transacaoId": "TXN-2025-00001234",
"mensagem": "Transação autorizada para liquidação",
"timestamp": 1731513600
}
{
"autorizado": false,
"motivo": "TRANSACAO_JA_LIQUIDADA",
"mensagem": "Esta transação já foi paga em outro canal",
"timestamp": 1731513600
}
| Código | Descrição |
|---|---|
TRANSACAO_JA_LIQUIDADA |
Passagem já foi paga anteriormente |
PASSAGEM_NAO_ENCONTRADA |
passagemId não existe no sistema |
PEDIDO_EXPIRADO |
Lock do pedido expirou (após 15min) |
VALOR_DIVERGENTE |
Valor enviado difere do valor da passagem |
PASSAGEM_NAO_LOCKED |
Passagem não está no pedido informado |
A concessionária detecta uma passagem sem tag ou AVI recusado em uma de suas praças de pedágio. O sistema de detecção captura: placa, data/hora, valor, categoria, praça e pista.
A concessionária envia uma mensagem PASSAGEM via RabbitMQ para a fila
passagens.{concessionariaId}. Este envio deve ocorrer até 24h
após a passagem.
{
"passagemId": "253052020300000451",
"placa": "ABC1D23",
"datahora": 1731427200,
"valor": 1250,
...
}
O Pedágio Eletrônico recebe a mensagem, valida os dados e armazena a transação.
Em seguida, envia uma resposta PASSAGEM_PROCESSADA com resultado=4
(Provisionado), indicando que a transação foi aceita e está aguardando pagamento.
O motorista acessa o portal do Pedágio Eletrônico, consulta suas pendências por placa e visualiza a transação disponível para pagamento.
O Pedágio Eletrônico chama POST /api/v1/pedidos/criar na API da concessionária,
informando quais passagens o motorista deseja pagar. A concessionária "locka" essas transações
por 15 minutos, retornando um pedidoId.
O motorista preenche os dados de pagamento no portal (PIX, cartão de crédito, etc).
Para cada passagem do pedido, o Pedágio Eletrônico chama
POST /api/v1/transacoes/autorizar. A concessionária valida:
Se tudo estiver correto, retorna autorizado: true.
O Pedágio Eletrônico processa o pagamento com o gateway de pagamento. Após confirmação, marca internamente as transações como pagas.
O Pedágio Eletrônico envia mensagens PASSAGEM_PROCESSADA com resultado=1
(Compensado) via RabbitMQ para a fila processadas.{concessionariaId}.
{
"passagemId": "253052020300000451",
"resultado": 1,
"pagamento": 1731513600,
"valorPago": 1250,
"meioPagamento": 0
}
A concessionária recebe a notificação e marca a transação como PAGA em seu sistema interno, fechando o ciclo.
A autenticação utiliza o fluxo OAuth 2.0 Client Credentials. A concessionária receberá credenciais (client_id e client_secret) do Pedágio Eletrônico.
curl -X POST https://api.pedagioeletronico.com.br/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=sua_client_id" \
-d "client_secret=seu_client_secret"
Resposta:
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600
}
Inclua o token no header Authorization de todas as requisições:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
X-Concessionaria-Id: 123
Content-Type: application/json
| Parâmetro | Sandbox | Produção |
|---|---|---|
| Host | mq-sandbox.pedagioeletronico.com.br | mq.pedagioeletronico.com.br |
| Porta | 5671 (AMQPS) | 5671 (AMQPS) |
| Virtual Host | /concessionarias | /concessionarias |
| Exchange | pedagio.transacoes | pedagio.transacoes |
| Protocolo | AMQP 0.9.1 | AMQP 0.9.1 |
Cada concessionária possui filas dedicadas:
passagens.{concessionariaId} - Para enviar PASSAGEMprocessadas.{concessionariaId} - Para receber PASSAGEM_PROCESSADA{
"prefetch_count": 10,
"heartbeat": 60,
"connection_timeout": 30000,
"auto_ack": false,
"durable": true,
"persistent": true
}
auto_ack: false e só faça ACK após processar a mensagem com sucesso.
Isso garante que mensagens não sejam perdidas em caso de erro.
É crítico que os servidores da concessionária estejam sincronizados via NTP para garantir consistência nos timestamps.
ntp.usp.br - Universidade de São Pauloa.ntp.br - NTP.br (primário)b.ntp.br - NTP.br (secundário)c.ntp.br - NTP.br (terciário)# Instalar chrony
sudo apt-get install chrony
# Editar /etc/chrony/chrony.conf
server ntp.usp.br iburst
server a.ntp.br iburst
server b.ntp.br iburst
# Reiniciar serviço
sudo systemctl restart chrony
# Verificar sincronização
chronyc tracking
Para garantir estabilidade, os seguintes limites são aplicados:
| Operação | Limite | Janela |
|---|---|---|
| Mensagens PASSAGEM | 1.000 mensagens | Por minuto |
| POST /pedidos/criar | 100 requisições | Por minuto |
| POST /transacoes/autorizar | 500 requisições | Por minuto |
| GET /pedidos/:id | 200 requisições | Por minuto |
Ao exceder o limite, a resposta será:
HTTP/1.1 429 Too Many Requests
{
"error": "RATE_LIMIT_EXCEEDED",
"message": "Limite de requisições excedido",
"retry_after": 60
}
retry_after segundos antes de tentar novamente.
| Componente | URL/Host |
|---|---|
| REST API | https://sandbox-api.pedagioeletronico.com.br |
| OAuth | https://sandbox-api.pedagioeletronico.com.br/oauth/token |
| RabbitMQ | mq-sandbox.pedagioeletronico.com.br:5671 |
| Portal | https://sandbox.pedagioeletronico.com.br |
| Componente | URL/Host |
|---|---|
| REST API | https://api.pedagioeletronico.com.br |
| OAuth | https://api.pedagioeletronico.com.br/oauth/token |
| RabbitMQ | mq.pedagioeletronico.com.br:5671 |
| Portal | https://www.pedagioeletronico.com.br |
Para obter credenciais de integração:
concessionariaId - Identificador únicoclient_id e client_secret - Para OAuthApós aprovação nos testes de Sandbox, será agendado o Go-Live para ambiente de produção com acompanhamento do time técnico.
Implemente retry exponencial com backoff para mensagens que falharam:
import time
def enviar_com_retry(mensagem, max_tentativas=3):
"""
Envia mensagem com retry exponencial
"""
for tentativa in range(max_tentativas):
try:
enviar_passagem(mensagem)
return True
except Exception as e:
if tentativa < max_tentativas - 1:
# Backoff exponencial: 2^tentativa segundos
tempo_espera = 2 ** tentativa
print(f"⚠️ Tentativa {tentativa + 1} falhou. Aguardando {tempo_espera}s...")
time.sleep(tempo_espera)
else:
print(f"❌ Falha após {max_tentativas} tentativas")
# Logar erro para análise manual
raise e
Recomendações de retry por código de status:
| Status HTTP | Retry? | Estratégia |
|---|---|---|
408 Request Timeout |
✅ Sim | Retry imediato até 3x |
429 Too Many Requests |
✅ Sim | Aguardar retry_after segundos |
500 Internal Server Error |
✅ Sim | Retry com backoff exponencial |
502, 503, 504 Gateway/Service |
✅ Sim | Retry com backoff exponencial |
400 Bad Request |
❌ Não | Corrigir payload e reenviar |
401 Unauthorized |
❌ Não | Renovar token e tentar novamente |
403 Forbidden |
❌ Não | Avaliar motivo (ex: transação já paga) |
404 Not Found |
❌ Não | Verificar dados (ex: pedidoId inválido) |
Implemente o padrão Circuit Breaker para proteger sua aplicação de falhas em cascata quando a API do Pedágio Eletrônico estiver indisponível:
pybreakeropossumresilience4jRegistre em logs estruturados (JSON) as seguintes informações:
| Evento | Campos Mínimos |
|---|---|
| Envio de PASSAGEM | timestamp, passagemId, sequencial, valor, status |
| Recebimento de PASSAGEM_PROCESSADA | timestamp, passagemId, resultado, valorPago |
| Chamada REST API | timestamp, endpoint, method, statusCode, latency |
| Erros | timestamp, errorType, message, stackTrace, context |
Se você enviar a mesma passagemId duas vezes (com reenvio=0 nas duas),
a segunda mensagem será rejeitada com resultado=3 e motivoNaoComp=400
(Passagem inválida/duplicada). Se for um reenvio legítimo (ex: timeout), incremente o campo
reenvio para 1, 2, etc.
Quando o Pedágio Eletrônico chama POST /pedidos/criar, as transações especificadas
ficam "reservadas" por 15 minutos. Durante esse período:
Isso não deveria acontecer se o sistema da concessionária respeitar o lock.
Mas se acontecer, ao chamar POST /transacoes/autorizar, a concessionária deve
retornar autorizado: false com motivo: "TRANSACAO_JA_LIQUIDADA".
O Pedágio Eletrônico cancelará o pedido e não cobrará o motorista.
Tecnicamente sim, mas a mensagem pode ser rejeitada com motivoNaoComp=6
(Passagem enviada fora do prazo). O ideal é enviar assim que possível
após a passagem, de preferência em tempo real ou em lotes a cada hora.
Você receberá uma mensagem PASSAGEM_PROCESSADA com resultado=1
(Compensado) ou resultado=6 (Liquidado por outro meio). Só marque como PAGO
em seu sistema após receber essa confirmação.
Sim. Os endpoints são essenciais para o fluxo de pagamento:
POST /pedidos/criar - Cria lock e previne dupla cobrançaGET /pedidos/:id - Permite consultar status do pedidoPOST /transacoes/autorizar - Valida autorização em tempo realPara evitar problemas de precisão com números decimais, todos os valores monetários são representados em centavos (inteiro). Multiplique o valor em reais por 100:
Sim! Todos os timestamps (datahora, pagamento,
timestampPagamento) devem estar em UTC-0 (Unix timestamp).
Se sua concessionária opera em horário de Brasília (UTC-3), adicione 3 horas ao horário
local antes de converter.
Ambos significam que a transação foi paga e deve ser marcada como PAGA no seu sistema.
Use o ambiente Sandbox:
Entre em contato com o time de integração:
| Termo | Definição |
|---|---|
| AMQP | Advanced Message Queuing Protocol - Protocolo de mensageria usado pelo RabbitMQ |
| AVI | Automatic Vehicle Identification - Identificação automática por tag eletrônica |
| Backoff Exponencial | Estratégia de retry que aumenta exponencialmente o tempo de espera entre tentativas |
| Circuit Breaker | Padrão de design que previne cascata de falhas ao "abrir o circuito" após múltiplos erros |
| Compensado | Status indicando que uma transação foi aceita e será paga |
| Concessionária | Empresa responsável pela administração de rodovias e praças de pedágio |
| Idempotência | Propriedade que garante que múltiplas requisições idênticas tenham o mesmo efeito de uma única requisição |
| Lock | Reserva temporária de transações (15 minutos) para prevenir dupla liquidação |
| NAVI | Não-AVI - Passagem sem tag eletrônica ou com tag recusada |
| NTP | Network Time Protocol - Protocolo para sincronização de relógios em rede |
| OAuth 2.0 | Framework de autorização para acesso seguro a APIs |
| OSA | Operador de Sistema de Arrecadação - No caso, o Pedágio Eletrônico (ID=0) |
| Passagem | Evento de um veículo passando por uma praça de pedágio |
| Praça | Instalação de cobrança de pedágio (contém múltiplas pistas) |
| Provisionado | Status indicando que uma transação foi aceita e está em processamento |
| Rate Limiting | Limitação da taxa de requisições para proteger o sistema de sobrecarga |
| Timestamp Unix | Número de segundos desde 01/01/1970 00:00:00 UTC |
| UUID | Universally Unique Identifier - Identificador único universal (128 bits) |
Email:
integracao@pedagioeletronico.com.br
Telefone:
+55 (51) 99211-6696
Segunda a Sexta, 9h às 18h
Portal:
suporte@pedagioeletronico.com.br
Portal de Desenvolvedores:
developers.pedagioeletronico.com.br
Status da API:
status.pedagioeletronico.com.br
Entre em contato com nosso time de integração para obter suas credenciais e iniciar a homologação no ambiente Sandbox.
Solicitar Integração