API BRASPRESS

Olá, bem-vindo a central de integrações BRASPRESS, esta API é um serviço disponibilizado exclusivamente aos clientes Braspress.

Este documento informa ao setor de Tecnologia de nossos clientes, o script que deve ser executado para efetivação de uma consulta para cálculo do frete ou tracking em sua página web.

Todas as diretrizes deste documento devem ser rigorosamente seguidas para que o retorno do valor do frete esteja correto conforme tabela negociada.

IMPORTANTE: Todas as cotações são válidas até as 23h59m59s do dia em que foi realizada.


Solicitar um usuário e senha.

É importante informar que os usuários e senhas de homologação e produção são adquiridos através da filial de atendimento e seu fornecimento só será dado ao decisor de frete após análise da negociação e perfil.

Assim, seguem as orientações técnicas para integração do serviço.

Com seu usuário e senha de homologação em mãos, siga os passos abaixo:

Encode Base64 do usuário e senha.

Dependendo da linguagem ou plataforma escolhida será necessário 'encodar' seu usuário e senha e passa-los no cabeçalho da requisição Authorization: Basic Y2xpZW50ZTpjbGllbnRl. Se sua linguagem ou biblioteca já faz isso internamente ignore esse passo.

Em sistemas unix, utilize o trecho abaixo para 'encodar' seu usuário e senha.

echo -n 'user:pass' | base64

Para outros casos, utilize o site https://www.base64encode.org/ https://www.base64encode.org/

OBS: Ao fornecer a senha de homologação, já liberamos o ambiente específico e controlado para que você faça seus testes a vontade.


API de Cotação de frete

{returnType} Informar o tipo de retorno esperado, existem dois tipos: json ou xml.

Request body cotação

O corpo da requisição precisa ser no formato json. Abaixo temos detalhes de cada atributo do objeto.

Atributo Descrição Obrigatório
cnpjRemetente CNPJ do remetente - cliente precisa estar cadastrado na BRASPRESS. SIM
cnpjDestinatario CNPJ do destinatário – caso o CNPJ ou CPF do destinatário não esteja cadastrado na Braspress, será realizada a cotação com base no CEP (exceto para tipo de frete 2-FOB). SIM
cnpjConsignado CNPJ do consignatário – cliente precisa estar cadastrado na BRASPRESS (campo obrigatório para tipo de frete 3-Consignado) NÃO
modal Tipo de modal: 'R' para rodoviário, 'A' para aéreo. SIM
tipoFrete 1 para CIF (pagante é o Remetente), 2 para FOB(pagante é o destinatário) e 3 para Consignado (pagante é um terceiro). SIM
cepOrigem CEP de origem do frete. SIM
cepDestino CEP de destino do frete. SIM
vlrMercadoria Valor total da mercadoria do frete. SIM
peso Valor total do peso de todos os volumes. SIM
volumes Quantidade total de volumes SIM
cubagem Lista com as medidas de cada volume. Caso os volumes sejam iguais, especifique apenas um e adicione a quantidade no campo volumes.
Atributo Descrição Obrigatório
comprimento Comprimento do volume em metros. SIM
largura Largura do volume em metros. SIM
altura Altura do volume em metros. SIM
volumes Quantidade total de volumes. Caso os volumes tenham a mesma medida, aqui você pode especificar o valor total. SIM
SIM

Response body cotação

De acordo com o returnType escolhido, no corpo do response chegará um json ou xml, mas os atributos serão os mesmos.

Atributo Descrição
id Identificador único da cotação realizada.
prazo Quantidade de dias para previsão de entrega.
totalFrete Valor total do frete.

Response error cotação

De acordo com o returnType escolhido, se ocorrer algum erro na requisição, um objeto com detalhes do erro será enviado.

Atributo Descrição
statusCode Código do erro.
message Descrição do erro.
dateTime Data e hora do erro.
errorList Se houver mais de um erro , neste atributo teremos uma lista com detalhes de cada erro.

Exemplo de uso cotação

curl usage
curl -v -H "Authorization: Basic Y2xpZW50ZTpjbGllbnRl" -H "Content-Type: application/json" -d '{"cnpjRemetente":60701190000104,"cnpjDestinatario":30539356867,"modal":"R","tipoFrete":"1", "cepOrigem":2323000,"cepDestino":7093090,"vlrMercadoria":100.00,"peso":50.55,"volumes":100}, "cubagem":[{"altura":0.46,"largura":0.67,"comprimento":0.67,"volumes":10}]' -X POST https://hml-api.braspress.com/v1/cotacao/calcular/json
javascript usage
var authorizationBasic = 'Y2xpZW50ZTpjbGllbnRl';
$.ajax({
type: 'POST',
url: 'https://hml-api.braspress.com/v1/cotacao/calcular/json',
data: '{"cnpjRemetente":60701190000104,"cnpjDestinatario":30539356867,"modal":"R","tipoFrete":"1", "cepOrigem":2323000,"cepDestino":7093090,"vlrMercadoria":100.00,"peso":50.55,"volumes":10,"cubagem":[{"altura":0.46,"largura":0.67,"comprimento":0.67,"volumes":10}]}',
dataType: "json",
contentType: 'application/json; charset=utf-8',
xhrFields: {
withCredentials: true
},
crossDomain: true,
headers: {
'Authorization': 'Basic ' + authorizationBasic,
},
success: function (result) {
console.log(result);
},
error: function (req, status, error) {
console.log(error);
}
});

API do Tracking (minhas encomendas)

{cnpj} Informar o cnpj do remetente.

{notaFiscal} Informar o número da nota fiscal.

{numPedido} Informar o número do pedido.

{returnType} Informar o tipo de retorno esperado, pode ter dois tipos: json ou xml.

Response body tracking

De acordo com o returnType escolhido, no corpo do response chegará um json ou xml, mas os atributos serão os mesmos.

Atributo Descrição
conhecimentos Lista de conhecimentos encontrados para o cnpj e nota fiscal informados.
Atributo Descrição
numero Número do conhecimento (AWB)
origem Origem do frete
emissao Data da emissão do conhecimento.
remetente Razão social do remetente.
destinatario Razão social do destinatário.
tipoFrete Tipo do frete: CIF (pagante é o Remetente), FOB(pagante é o destinatário) e Consignado (pagante é um terceiro).
volumes Total de volumes do frete.
valorMercantil Valor da mercadoria transportada.
peso Peso total da mercadoria.
totalFrete Valor total do frete.
previsaoEntrega Data prevista da entrega.
dataEntrega Data da entrega realizada.
status Status do transporte.
cidade Cidade Destino.
uf UF Destino.
cidadeColeta Cidade de coleta da mercadoria.
ufColeta UF de coleta da mercadoria.
dataOcorrencia Data da última ocorrência.
ultimaOcorrencia Descrição da última ocorrência.
notasFiscais Notas fiscais do conhecimento
Atributo Descrição
serie Número de série da nota fiscal.
numero Número da nota fiscal.
emissao Data de emissão.
timeline(somente na v3) Linha do tempo da encomenda
Atributo Descrição
descricao Status da encomenda.
data Data do status
ocorrencias(somente na v3) Lista de ocorrências caso a encomenda tenha alguma pendencia.
Atributo Descrição
descricao Descrição do evento ocorrido na encomenda.
data Data da ocorrência

Response error tracking

De acordo com o returnType escolhido, se ocorrer algum erro na requisição, um objeto com detalhes do erro será enviado.

Atributo Descrição
statusCode Código do erro.
message Descrição do erro.
dateTime Data e hora do erro.
errorList Se houver mais de um erro , neste atributo teremos uma lista com detalhes de cada erro.

Exemplo de uso tracking

curl usage
curl -v -H "Authorization: Basic Y2xpZW50ZTpjbGllbnRl" -X GET https://hml-api.braspress.com/v1/tracking/12345678912345/12345/json
javascript usage
var authorizationBasic = 'Y2xpZW50ZTpjbGllbnRl';
$.ajax({
type: 'GET',
url: 'https://hml-api.braspress.com/v1/tracking/12345678912345/12345/json',
contentType: 'application/json; charset=utf-8',
xhrFields: {
withCredentials: true
},
crossDomain: true,
headers: {
'Authorization': 'Basic ' + authorizationBasic,
},
success: function (result) {
console.log(result);
},
error: function (req, status, error) {
console.log(error);
}
});