Introdução API
API Endpoint https://admin.fretebarato.com/{{plataforma}}/{{method}}/json/v1
Bem-vindo à documentação da API da Frete Barato.
A API do Frete Barato é utilizada por diversas plataformas de e-commerce. Com esta API viabilizamos a integração junto à Plataformas, Marketplaces, ERPs, Hubs, Transportadoras e empresas do ramo de transportes.
A integração com o Frete Barato é gratuita, não cobramos taxas ou mensalidades pela utilização da nossa API. Agimos dessa forma justamente para facilitar a vida de nossos usuários ao integrarem com nossos serviços, junto aos fluxos de seus sistemas.
Caso você seja um cliente Frete Barato e queira apenas utilizar os nossos serviços dentro do seu e-commerce, verifique primeiro se sua plataforma já possui integração com nosso sistema. Se ainda não possuir, entre em contato conosco para que possamos analisar a viabilidade de uma parceria para integração.
Autenticação API
# Exemplo Curl curl -X GET https://admin.fretebarato.com/{{plataforma}}/{{method}}/v1/json -H "Authorization: Bearer xxxxxxxxxxxx" curl \
$url = "https://admin.fretebarato.com/{{plataforma}}/{{method}}/v1/json"; $curl = curl_init($url); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $headers = array( "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxx", ); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
O processo de autenticação é bastante simples
O cliente necessitará apenas de sua URL de autenticação fornecida pela equipe comercial da Frete Barato, contendo o “Customer Token” (token do cliente), como o exemplo abaixo:
https://admin.fretebarato.com/{{plataforma}}/{{method}}/v1/json/{customer_id}
É de suma importância que o campo de callback seja idêntico a URL de callback de retorno da sua aplicação. Caso este campo esteja diferente, nossa API irá retornar Client invalid impedindo a autorização do aplicativo.
Também disponibilizamos um fluxograma que poderá lhe auxiliar a visualizar este processo, assim como servir de base para que você adapte da melhor maneira ao fluxo de seu sistema.
Key | Value |
---|---|
Authorization | Bearer {{token}} |
User-Agent | Aplicação (email para contato técnico) |
Cotações
# Exemplo Curl
curl
-X GET https://admin.fretebarato.com/lojaintegrada/price/v1/json/{{customer_id}}
-H "Authorization: Bearer xxxxxxxxxxxx"
curl \
curl
-X POST https://admin.fretebarato.com/lojaintegrada/price/v1/json/{{customer_id}}
-H "Authorization: Bearer xxxxxxxxxxxx"
-H "Content-Type: application/json"
-d "{"zipcode":"06652030",
"amount":125.82,
"skus":[
{"id":149353786,
"product_id":21888010,
"sku":"OC928237",
"price":129.9,
"quantity":1,
"length":1,
"width":1,
"height":1,
"weight":0.1}]
}"
# Abaixo um exemplo (Payload):
{
"zipcode": "83324130",
"amount": 543.23,
"skus": [
{
"sku": "77214501",
"price": 21.0382,
"quantity": 10,
"length": 8,
"width": 3,
"height": 2,
"weight": 0.035
},
{
"sku": "77214601",
"price": 24.9374,
"quantity": 10,
"length": 9,
"width": 6,
"height": 3,
"weight": 0.055
}]
}
# Abaixo um exemplo (Response):
{"quotes": [
{"name": "Smart2C",
"service": "Smart2C",
"price": 42.02,
"days": 6,
"quote_id": 5,
"time_payload": "17.84"
}, {
"name": "GFL",
"service": "GFL",
"price": 21.16,
"days": 2,
"quote_id": 3,
"time_payload": "17.84"
}
]
}
Os fretes podem ser calculados informando uma lista de produtos e seus respectivos parâmetros, fazendo com que sejam montados pacotes de acordo com os limites de cada serviços das transportadoras.
Os dados dos produtos devem conter suas informações unitárias, sendo que as dimensões devem ser enviadas em centímetros (cm) e o peso em quilogramas (kg).
Para solicitar cotação é necessário fazer a chamada do endpoint Authorize e customer_ID (que identifica o cliente solicitante e seu respectivo CEP de origem)
Payload:
Parâmetros
Parâmetro | Tipo | Obrigatório | Observação |
---|---|---|---|
zipcode | Numérico | Sim | Deve conter exatamente 8 caracteres numéricos |
amount | Numérico | Sim | Pode conter até 2 casas decimais |
skus | Array | Sim | quantity, lenght, width, height, weight |
Detalhe SKUS (Array)
Parâmetro | Tipo | Obrigatório | Observação |
---|---|---|---|
sku | String | Sim | |
quantity | Numérico | Sim | Pode conter apenas números naturais |
lenght | Numérico | Sim | Pode conter apenas números naturais |
width | Numérico | Sim | Pode conter apenas números naturais |
height | Numérico | Sim | Pode conter apenas números naturais |
weight | Numérico | Sim | Pode conter até 3 casas decimais |
Response:
Parâmetros
Parâmetro | Tipo | Comportamento |
---|---|---|
name | Alfanumérico | Retorna o nome da transportadora. |
service | Alfanumérico | Retorna o nome do serviço cadastrado para o cliente solicitante, dentro da transportadora (o cliente pode ter mais de um serviço cadastrado para a mesma transportadora). |
price | Alfanumérico | Retorna o preço do serviço com até duas casas decimais. |
days | Numérico | Retorna o prazo do frete em dias (apenas números naturais).. |
quote_id | Numérico | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. |
time_payload | Numérico | Retorna o tempo de carregamento dos parâmetros na API. Campo numérico com até duas casas decimais.. |
Tabela de Erros:
Response | Tipo | Mensagem |
---|---|---|
400 | bad request | |
401 | unauthorized | |
403 | forbidden | |
404 | ||
405 | method not allowed | |
406 | not acceptable |
Ocorrências
Tracking
https://admin.fretebarato.com/{{plataforma}}/tracking/v1/json/{{customer_id}}
# Abaixo um exemplo (Response):
{
"invoice": {
"nota_fiscal_id": "99999999999999999999999999999999999999999999",
"texto": "SOLICITACAO EM ROTA",
"dataOcorrencia": "2024-02-28T07:12:00",
"ocorrenciaCodigo": "02",
"dataOcorrenciaPrev": "2024-02-29T00:00:00",
"dataOcorrenciaEntrega": "2024-02-28T07:12:00",
"trackCode": "ONT000000000",
"timeline": [
{
"texto": "TRANSFERENCIA DE VOLUMES PARA ENTREGA",
"data": "2024-02-27T21:37:00",
"ocorrenciaCodigo": "32"
},
{
"texto": "RECEBIMENTO DE TRANSFERENCIA ENTRE UNIDADES",
"data": "2024-02-28T04:50:00",
"ocorrenciaCodigo": "17"
},
{
"texto": "SOLICITACAO EM ROTA",
"data": "2024-02-28T07:12:00",
"ocorrenciaCodigo": "02"
}],
"fiscal": {
"nota_fiscal_id": "99999999999999999999999999999999999999999999",
"numero": "30822",
"pedido": "54874",
"serie": "1",
"data": "2024-02-26T17:07:27"
},
"transporte": {
"cnpj": "23820639001352"
},
"destino": {
"nome": "Bruno",
"cpfcnpj": "00000000000",
"email": "contato@fretebarato.com",
"address": {
"cep": "04202010",
"uf": "sp",
"cidade": "Sao Paulo"
}
},
"emitente": {
"cnpj": "31913883000154",
"razao_social": "Frete Barato",
"nome_fantasia": "Frete Barato"
}
}
}
Payload:
Header
Key | Value |
---|---|
Authorization | Bearer {{token}} |
User-Agent | Aplicação (email para contato técnico) |
Payload (Número do pedido)
Parâmetro | Tipo | Obrigatório | Observação |
---|---|---|---|
cnpj | Numérico | Sim | Deve conter exatamente 14 caracteres numéricos |
número do pedido | Numérico | Sim |
Payload (Número Nota Fiscal)
Parâmetro | Tipo | Obrigatório | Observação |
---|---|---|---|
cnpj | Numérico | Sim | Deve conter exatamente 14 caracteres numéricos |
número nota fiscal | Numérico | Sim |
Payload (Chave Nota Fiscal)
Parâmetro | Tipo | Obrigatório | Observação |
---|---|---|---|
nota_fiscal_id (Chave) | Numérico | Sim | Deve conter exatamente 44 caracteres numéricos |
cnpj | Numérico | Não | Deve conter exatamente 14 caracteres numéricos |