Manual da API · Chaves
Emite uma chave de consulta e devolve o valor uma vez (só ADMIN)
POST/v1/integracoes/chaves
Perfil ADMIN. Finalidade CONSULTA_EMBARCADOR e CONSULTA_DESTINATARIO exigem escopoCnpjs não vazio (raízes de 8 caracteres), expiraEm e limitePorMinuto. A chave só consulta. CPF nunca é exibido. PDF e canhoto só saem para quem paga o frete.
Rota de administrador. Usa a sessão do portal em Authorization: Bearer; o TMS não a chama com a chave de API.
Parâmetros
Cabeçalhos (header)
AuthorizationtextoobrigatórioSessão do administrador no portal:
Bearerseguido do token. Rota de administrador; o TMS não a chama com a chave de API.Content-TypetextoobrigatórioSempre
application/json.
Corpo (body) · application/json
nometextoobrigatóriode 1 a 120 caracteres
finalidadetexto (lista fixa)obrigatórioValores:
INTEGRACAO_TMS,CONSULTA_EMBARCADOR,CONSULTA_DESTINATARIOescopoCnpjslista de textoopcionalObrigatório e não vazio para CONSULTA_EMBARCADOR e CONSULTA_DESTINATARIO. Cada item é a raiz de 8 caracteres.
expiraEmtexto (data e hora ISO 8601)obrigatóriolimitePorMinutointeiroobrigatóriode 1 a 600
Exemplos de corpo
{
"nome": "texto",
"finalidade": "INTEGRACAO_TMS",
"escopoCnpjs": [
"texto"
],
"expiraEm": "2026-11-06T09:15:00-03:00",
"limitePorMinuto": 1
}Respostas
201application/json
Chave emitida; o valor aparece uma única vez
{
"id": "0192f3a4-5b6c-7d8e-9f01-23456789abcd",
"nome": "texto",
"finalidade": "INTEGRACAO_TMS",
"prefixo": "texto",
"escopoCnpjs": [
"texto"
],
"situacao": "ATIVA",
"expiraEm": "2026-11-06T09:15:00-03:00",
"limitePorMinuto": 1,
"ultimoUsoEm": "2026-11-06T09:15:00-03:00",
"chave": "texto"
}Campos da resposta (10)
Campos
idtexto (uuid)obrigatórionometextoobrigatóriofinalidadetexto (lista fixa)obrigatórioValores:
INTEGRACAO_TMS,CONSULTA_EMBARCADOR,CONSULTA_DESTINATARIOprefixotextoobrigatórioescopoCnpjslista de textoopcionalsituacaotexto (lista fixa)obrigatórioValores:
ATIVA,REVOGADA,EXPIRADAexpiraEmtexto (data e hora ISO 8601)obrigatóriolimitePorMinutointeiroobrigatórioultimoUsoEmtexto (data e hora ISO 8601) ou nuloopcionalchavetextoobrigatórioValor completo, exibido uma única vez. Não registrar em log.
409application/problem+json
Módulo de chaves de consulta não habilitado para a conta (MODULO_NAO_HABILITADO, no campo codigo).
{
"type": "https://veltra.com.br/problemas/validacao",
"title": "Requisição inválida",
"status": 400,
"detail": "O campo cpf é obrigatório",
"instance": "https://exemplo.com.br/webhook-veltra",
"codigo": "TERMO_NAO_ACEITO"
}Campos da resposta (6)
Campos
typetextoobrigatóriotitletextoobrigatóriostatusinteiroobrigatóriodetailtextoopcionalinstancetextoopcionalcodigotextoopcionalCódigo estável do problema para o cliente decidir o tratamento (ex.: TERMO_NAO_ACEITO, RETENCAO_MENOR_QUE_MINIMA, REAUTENTICACAO_NECESSARIA). Ausente quando o erro não tem código próprio.
Erroapplication/problem+json
Erro no formato RFC 9457 (application/problem+json)
{
"type": "https://veltra.com.br/problemas/validacao",
"title": "Requisição inválida",
"status": 400,
"detail": "O campo cpf é obrigatório",
"instance": "https://exemplo.com.br/webhook-veltra",
"codigo": "TERMO_NAO_ACEITO"
}Campos da resposta (6)
Campos
typetextoobrigatóriotitletextoobrigatóriostatusinteiroobrigatóriodetailtextoopcionalinstancetextoopcionalcodigotextoopcionalCódigo estável do problema para o cliente decidir o tratamento (ex.: TERMO_NAO_ACEITO, RETENCAO_MENOR_QUE_MINIMA, REAUTENTICACAO_NECESSARIA). Ausente quando o erro não tem código próprio.