FreteBarato

Cadastro

Cadastre pedidos na API Frete Barato antes da emissão da NF-e.

O endpoint de create cadastra o pedido na Frete Barato antes de a NF-e existir. O pedido aparece no painel desde o cadastro, com o ícone do Frete Barato que identifica os pedidos criados por esta API.

O destino pode ir no cadastro. Sem esses campos, o pedido nasce sem endereço e a NF-e preenche o destino no envio da nota fiscal com o order_code. A transportadora também pode ir neste cadastro. Sem os campos de transporte, o pedido nasce sem esses dados; o preenchimento ou a mudança posterior é a edição da nota fiscal.

A resposta retorna o order_code, identificador do pedido na Frete Barato. Guarde esse valor: ele é usado na atualização de status e no envio da nota fiscal.
Endpoint
https://admin.fretebarato.com/order/create/v1/json/{{customer_id}}

Cadastre um pedido

curl -X POST "https://admin.fretebarato.com/order/create/v1/json/{{customer_id}}" \
  -H "Authorization: Bearer xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "User-Agent: MinhaAplicacao ([email protected])" \
  -d '{
    "status": "aberto",
    "numero_pedido": "PED-1001",
    "emitente_cnpj": "12.345.678/0001-99",
    "destino_nome": "Maria Silva",
    "destino_cpf": "123.456.789-09",
    "destino_endereco_telefone": "(11) 98765-4321",
    "destino_endereco_cep": "01310-100",
    "destino_endereco_uf": "SP",
    "destino_endereco_logradouro": "Avenida Paulista",
    "destino_endereco_numero": "1000",
    "destino_endereco_bairro": "Bela Vista",
    "destino_endereco_complemento": "Sala 12",
    "transporte_cnpj": "12.345.678/0001-99",
    "transporte_volume_quantidade": 2,
    "transporte_volume_peso_bruto": 1.25,
    "transporte_volume_peso_liquido": 1.1,
    "transporte_nome": "Transportadora Exemplo",
    "transporte_nome_alias": "Exemplo"
  }'

Headers

KeyValue
AuthorizationBearer {{token}}
Content-Typeapplication/json
User-AgentAplicação (e-mail para contato técnico)

Parâmetros do payload

ParâmetroTipoObrigatórioObservação
statusStringSimStatus inicial do pedido: aberto, pago ou pendente. cancelado não é aceito no cadastro; aplique-o depois, pelo status do pedido
numero_pedidoStringSimNúmero do pedido no seu sistema, de 1 a 60 caracteres. Envie como texto. Um número JSON, como 1001, responde 400 Campo [numero_pedido] inválido.
emitente_cnpjStringSim14 dígitos de um CNPJ da conta (aceita pontuação). É o emitente gravado no pedido. Razão social e nome fantasia vêm do cadastro da conta, o mesmo critério da consulta e da edição
destino_nomeStringNãoNome do destinatário, de 3 a 100 caracteres
destino_cpfStringNãoCPF do destinatário com 11 dígitos (aceita pontuação)
destino_cnpjStringNãoCNPJ do destinatário com 14 dígitos (aceita pontuação)
destino_endereco_telefoneStringNãoTelefone com DDD, de 10 ou 11 dígitos (aceita pontuação)
destino_endereco_cepStringNãoCEP com 8 dígitos (aceita 01310-100)
destino_endereco_ufStringNãoUF com 2 letras
destino_endereco_logradouroStringNãoLogradouro, de 3 a 200 caracteres
destino_endereco_numeroStringNãoNúmero do endereço, de 1 a 11 caracteres. S/N é aceito
destino_endereco_bairroStringNãoBairro, de 2 a 100 caracteres
destino_endereco_complementoStringNãoComplemento, até 200 caracteres
transporte_cnpjStringCondicionalCNPJ da transportadora com 14 dígitos (aceita pontuação)
transporte_volume_quantidadeNuméricoCondicionalQuantidade de volumes. Número inteiro a partir de 1
transporte_volume_peso_brutoNuméricoCondicionalPeso bruto maior que zero, com ponto decimal (ex: 1.25)
transporte_volume_peso_liquidoNuméricoNãoPeso líquido. Se enviado, deve ser maior que zero
transporte_nomeStringCondicionalNome da transportadora, de 3 a 200 caracteres
transporte_nome_aliasStringNãoNome alternativo da transportadora, até 200 caracteres

Um campo opcional pode ser omitido, enviado como null ou como "". Os três casos têm o mesmo efeito. Nome, logradouro, bairro e complemento são gravados com iniciais maiúsculas, a UF em maiúsculas, e CEP, telefone, CPF e CNPJ só com os dígitos.

Se vier qualquer campo de transporte preenchido, transporte_cnpj, transporte_volume_quantidade, transporte_volume_peso_bruto e transporte_nome são obrigatórios juntos. Peso líquido e alias seguem opcionais. Para cadastrar sem transportadora, omita esses campos.

Parâmetros do response

ParâmetroTipoComportamento
successBooleanIndica se a requisição foi processada com sucesso (true/false)
codeNuméricoRetorna o código HTTP da resposta
messageStringRetorna Pedido cadastrado.
data.createdBooleantrue quando o pedido foi criado nesta chamada
data.order_codeNuméricoIdentificador do pedido na Frete Barato, número inteiro. Guarde-o para o status e para o envio da NF-e. Não muda depois do vínculo
data.numero_pedidoStringNúmero do pedido enviado
data.statusStringAlias gravado: aberto, pago ou pendente
O cadastro não é idempotente. Repetir o mesmo numero_pedido responde 409 com a mensagem numero_pedido ambíguo, não altera o pedido que já existe e não aplica o transporte deste body. Guarde o order_code da primeira resposta.

Trate os erros

ResponseTipoMensagemDescrição
400Bad RequestCampo status inválido.Campo ausente, vazio, fora do tamanho ou enviado como número
400Bad RequestStatus inválido (status).status diferente de aberto, pago e pendente, inclusive cancelado
400Bad RequestCampo numero_pedido inválido.numero_pedido ausente, vazio, fora do tamanho ou enviado como número
400Bad RequestCampo destino_nome inválido.Campo de destino que não é texto ou está fora da regra. A mesma mensagem existe para os demais campos de destino
400Bad RequestEndereço do destino inválido (destino_endereco_cep).CEP sem 8 dígitos
400Bad RequestEndereço do destino inválido (destino_endereco_uf).UF com 2 caracteres que não são letras
400Bad RequestCampo transporte_cnpj inválido.Campo obrigatório do grupo de transporte ausente ou fora da regra. A mesma mensagem existe para os demais campos de transporte
400Bad RequestCNPJ do emitente é obrigatório.emitente_cnpj ausente ou sem 14 dígitos
400Bad RequestPayload inválido (JSON).JSON válido que não é um objeto (uma lista, por exemplo)
401UnauthorizedAuthentication failureFalha na autenticação: token inválido, Customer ID incorreto ou versão incorreta da API
403ForbiddenVocê não tem permissão para acessar este recurso.O CNPJ do emitente não pertence à conta
404Not FoundCustomer not foundCustomer ID sem conta associada
404Not FoundCliente não encontrado.Cadastro da conta não localizado. Fale com o suporte
406Not AcceptableInvalid Params (JSON)Estrutura JSON inválida ou malformada
409Conflictnumero_pedido ambíguoJá existe um pedido desta API na conta com o mesmo numero_pedido. Use outro número. O pedido existente não é alterado
500Internal Server ErrorMensagem variávelErro interno do servidor. A requisição pode ser reenviada

Exemplos de erro

{
  "success": false,
  "code": 400,
  "message": "Campo [numero_pedido] inválido.",
  "data": null
}
Copyright © 2026