Frete na Pistav1.0

API Documentation

Formato Frenet-compatible — integre em minutos.
Suporte a Correios, Jadlog e transportadoras privadas via tabela.

Base URL: https://fretenapista.com

Todas as requisições devem incluir o header token com seu token de acesso. O token é gerado no painel em Integrações → Tokens.

curl
curl -X POST https://fretenapista.com/shipping/quote \
  -H "Content-Type: application/json" \
  -H "token: seu-token-aqui" \
  -d '{"RecipientCEP":"01310100","ShipmentInvoiceValue":500,"ShippingItemArray":[{"Quantity":1,"Weight":5,"Length":40,"Height":15,"Width":25}]}'
POST/shipping/quote

Calcula frete com todas as transportadoras configuradas. Retorna no formato Frenet, compatível com plataformas como Nuvemshop, Tray, WooCommerce e outras.

Headers

Content-Typestringobrigatório
application/json
tokenstringobrigatório
Seu token de autenticação

Request Body

SellerCEPstring
CEP de origem (opcional, usa o configurado no painel)
RecipientCEPstringobrigatório
CEP de destino
ShipmentInvoiceValuenumberobrigatório
Valor da nota fiscal (R$)
ShippingItemArrayarrayobrigatório
Lista de itens do pedido
ShippingItemArray[].Quantitynumberobrigatório
Quantidade do item
ShippingItemArray[].Weightnumberobrigatório
Peso em kg
ShippingItemArray[].Lengthnumberobrigatório
Comprimento em cm
ShippingItemArray[].Heightnumberobrigatório
Altura em cm
ShippingItemArray[].Widthnumberobrigatório
Largura em cm

Exemplo de Request

json
{
  "RecipientCEP": "01310100",
  "ShipmentInvoiceValue": 500,
  "ShippingItemArray": [
    {
      "Quantity": 1,
      "Weight": 5,
      "Length": 40,
      "Height": 15,
      "Width": 25
    }
  ]
}

Exemplo de Response

json
{
  "ShippingSevicesArray": [
    {
      "ServiceCode": "04014",
      "ServiceDescription": "SEDEX",
      "Carrier": "Correios",
      "ShippingPrice": 45.90,
      "DeliveryTime": 3,
      "Error": false,
      "Msg": "",
      "OriginalShippingPrice": 45.90,
      "OriginalDeliveryTime": 3
    },
    {
      "ServiceCode": "04510",
      "ServiceDescription": "PAC",
      "Carrier": "Correios",
      "ShippingPrice": 32.50,
      "DeliveryTime": 7,
      "Error": false,
      "Msg": "",
      "OriginalShippingPrice": 32.50,
      "OriginalDeliveryTime": 7
    }
  ]
}

Campos da Response

ServiceCodestring
Código do serviço da transportadora
ServiceDescriptionstring
Nome do serviço (ex: SEDEX, PAC)
Carrierstring
Nome da transportadora
ShippingPricenumber
Preço final do frete (R$) — após regras
DeliveryTimenumber
Prazo de entrega em dias úteis — após regras
Errorboolean
Indica se houve erro na cotação
Msgstring
Mensagem de erro (vazio se sem erro)
OriginalShippingPricenumber
Preço original antes das regras
OriginalDeliveryTimenumber
Prazo original antes das regras

Status Codes

200Cotação realizada com sucesso
400Dados inválidos (CEP, peso, dimensões)
401Token inválido ou ausente
POST/shipping/wake

Endpoint para integração com Wake Commerce (Frete Customizado). Recebe e responde no formato exigido pela plataforma Wake.

Exemplo de Request (Wake Format)

json
{
  "destino": "01310100",
  "valorPedido": 500,
  "produtos": [
    {
      "quantidade": 1,
      "peso": 5000,
      "comprimento": 40,
      "altura": 15,
      "largura": 25
    }
  ]
}

Exemplo de Response

json
[
  {
    "nome": "SEDEX",
    "valor": 45.90,
    "prazo": 3,
    "servico": "04014"
  },
  {
    "nome": "PAC",
    "valor": 32.50,
    "prazo": 7,
    "servico": "04510"
  }
]
GET/shipping/info

Retorna a lista de serviços de frete disponíveis para o tenant autenticado.

Headers

tokenstringobrigatório
Seu token de autenticação

Exemplo de Response

json
{
  "services": [
    { "code": "04014", "name": "SEDEX", "carrier": "Correios", "enabled": true },
    { "code": "04510", "name": "PAC", "carrier": "Correios", "enabled": true },
    { "code": "jadlog-package", "name": ".Package", "carrier": "Jadlog", "enabled": true }
  ]
}
GET/api/tracking

Consulta o rastreamento de um pedido por número do pedido ou código de rastreio.

Query Parameters

orderstring
Número do pedido
trackingstring
Código de rastreio da transportadora
refreshboolean
Força atualização do rastreio (ignora cache)

Exemplo

curl
curl "https://fretenapista.com/api/tracking?order=12345"

Exemplo de Response

json
{
  "order": "12345",
  "tracking_code": "BR123456789BR",
  "carrier": "Correios",
  "status": "em_transito",
  "events": [
    {
      "date": "2026-03-20T14:30:00Z",
      "description": "Objeto em trânsito - por favor aguarde",
      "location": "São Paulo / SP"
    },
    {
      "date": "2026-03-19T09:15:00Z",
      "description": "Objeto postado",
      "location": "Maringá / PR"
    }
  ]
}
POST/api/webhook/wake

Recebe webhooks da Wake Commerce para atualização automática de pedidos e rastreamento.

Eventos Suportados

pedido.novoevent
Novo pedido criado na Wake
pedido.situacao.alteradoevent
Situação do pedido alterada
pedido.rastreamento.alteradoevent
Código de rastreamento atualizado

Configuração

Configure a URL do webhook no painel da Wake Commerce apontando para:

https://fretenapista.com/api/webhook/wake

cURL

bash
curl -X POST https://fretenapista.com/shipping/quote \
  -H "Content-Type: application/json" \
  -H "token: seu-token-aqui" \
  -d '{
    "RecipientCEP": "01310100",
    "ShipmentInvoiceValue": 500,
    "ShippingItemArray": [{
      "Quantity": 1,
      "Weight": 5,
      "Length": 40,
      "Height": 15,
      "Width": 25
    }]
  }'

JavaScript / Fetch

javascript
const response = await fetch("https://fretenapista.com/shipping/quote", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "token": "seu-token-aqui"
  },
  body: JSON.stringify({
    RecipientCEP: "01310100",
    ShipmentInvoiceValue: 500,
    ShippingItemArray: [{
      Quantity: 1,
      Weight: 5,
      Length: 40,
      Height: 15,
      Width: 25
    }]
  })
});

const data = await response.json();
console.log(data.ShippingSevicesArray);

PHP

php
<?php
$ch = curl_init("https://fretenapista.com/shipping/quote");

$payload = json_encode([
    "RecipientCEP" => "01310100",
    "ShipmentInvoiceValue" => 500,
    "ShippingItemArray" => [[
        "Quantity" => 1,
        "Weight" => 5,
        "Length" => 40,
        "Height" => 15,
        "Width" => 25,
    ]]
]);

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $payload,
    CURLOPT_HTTPHEADER => [
        "Content-Type: application/json",
        "token: seu-token-aqui"
    ]
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
print_r($data["ShippingSevicesArray"]);

Limites por token

  • 100 requisições/minuto por token
  • Timeout: 5 segundos (endpoint Wake)
  • Timeout: 25 segundos (endpoint Frenet/quote)

Ao exceder o limite, a API retorna 429 Too Many Requests. Aguarde 60 segundos antes de tentar novamente.

200Sucesso — cotação ou consulta realizada
400Bad Request — dados inválidos ou ausentes
401Unauthorized — token inválido ou ausente
404Not Found — recurso não encontrado
429Too Many Requests — limite de requisições excedido
500Internal Server Error — erro interno do servidor

Formato de Erro

json
{
  "error": "Descrição do erro",
  "code": 400
}