Recursos da API
Cotações
Cote fretes informando produtos e CEP de destino na API Frete Barato.
Os fretes podem ser calculados informando uma lista de produtos e seus respectivos parâmetros, montando pacotes conforme os limites de cada serviço 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 uma cotação é necessário fazer a chamada ao endpoint informando o customer_id, que identifica o cliente solicitante e seu respectivo CEP de origem.
Endpoint
https://admin.fretebarato.com/{{plataforma}}/price/v1/json/{{customer_id}}
Solicite uma cotação
curl -X POST "https://admin.fretebarato.com/{{plataforma}}/price/v1/json/{{customer_id}}" \
-H "Authorization: Bearer xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-H "User-Agent: MinhaAplicacao ([email protected])" \
-d '{
"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
}
]
}'
$url = "https://admin.fretebarato.com/{{plataforma}}/price/v1/json/{{customer_id}}";
$payload = array(
"zipcode" => "83324130",
"amount" => 543.23,
"skus" => array(
array(
"sku" => "77214501",
"price" => 21.0382,
"quantity" => 10,
"length" => 8,
"width" => 3,
"height" => 2,
"weight" => 0.035
),
array(
"sku" => "77214601",
"price" => 24.9374,
"quantity" => 10,
"length" => 9,
"width" => 6,
"height" => 3,
"weight" => 0.055
)
)
);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type: application/json",
"User-Agent: MinhaAplicacao ([email protected])"
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($payload));
$response = curl_exec($curl);
curl_close($curl);
{
"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
}
]
}
{
"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"
}
]
}
Headers
| Key | Value |
|---|---|
Authorization | Bearer {{token}} |
Content-Type | application/json |
User-Agent | Aplicação (e-mail para contato técnico) |
Parâmetros do payload
| Parâmetro | Tipo | Obrigatório | Observação |
|---|---|---|---|
zipcode | Numérico | Sim | CEP de destino. Deve conter exatamente 8 caracteres numéricos |
amount | Numérico | Sim | Valor total dos produtos. Pode conter até 2 casas decimais |
skus | Array | Sim | Lista de produtos com quantity, length, width, height e weight |
Detalhe do array skus
| Parâmetro | Tipo | Obrigatório | Observação |
|---|---|---|---|
sku | String | Sim | Identificador do produto |
price | Numérico | Sim | Preço unitário do produto |
quantity | Numérico | Sim | Pode conter apenas números naturais |
length | Numérico | Sim | Comprimento em cm. Apenas números naturais |
width | Numérico | Sim | Largura em cm. Apenas números naturais |
height | Numérico | Sim | Altura em cm. Apenas números naturais |
weight | Numérico | Sim | Peso em kg. Pode conter até 3 casas decimais |
Parâmetros do response
| Parâmetro | Tipo | Comportamento |
|---|---|---|
name | String | Retorna o nome da transportadora |
service | String | 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 | Numé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 | Identificador único da cotação retornada |
time_payload | String | Retorna o tempo de carregamento dos parâmetros na API, com até duas casas decimais |
Trate os erros
| Response | Tipo | Quando ocorre |
|---|---|---|
400 | Bad Request | Payload inválido ou atributos incompletos |
401 | Unauthorized | Falha de autenticação |
403 | Forbidden | Acesso negado ao recurso |
404 | Not Found | Recurso não encontrado |
405 | Method Not Allowed | Método HTTP não permitido |
406 | Not Acceptable | JSON inválido no corpo da requisição |
Exemplos de erro
{
"message": "Invalid attributes",
"code": 400
}
{
"message": "Authentication failure",
"code": 401
}
{
"message": "Access denied",
"code": 403
}
{
"message": "No results found",
"code": 404
}
{
"message": "Method Not Allowed",
"code": 405
}
{
"message": "Invalid Params (JSON)",
"code": 406
}

