Emitir e consultar CT-e
Emitir CT-e
POST https://apifiscal.weesy.com.br/v1/cte
Abrir na referência interativaEnvia um CT-e para autorização na SEFAZ com todos os dados do frete. A resposta só confirma que recebemos; o resultado (autorizado ou rejeitado) chega depois pelo webhook ou consultando o CT-e.
Não duplica: o idIntegracao identifica o CT-e no seu sistema. Mandou de novo o mesmo idIntegracao com o mesmo corpo? Devolvemos o CT-e que já existe (200), sem emitir outro. Se o CT-e anterior foi rejeitado, mandar o mesmo idIntegracao com o corpo corrigido reenvia o CT-e com os dados novos (200, mesmo id). Em qualquer outra situação, corpo diferente com o mesmo idIntegracao responde 409.
Os dados da empresa (razão social, endereço, inscrição estadual, regime) vêm do cadastro da Weesy — não vão no corpo.
Exemplo de chamada
cURL
curl --request POST \
--url "https://apifiscal.weesy.com.br/v1/cte" \
--header "Authorization: Bearer $WEESY_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"idIntegracao": "frete-10432",
"cnpjEmitente": "21664333000195",
"ambiente": "homologacao",
"serie": "1",
"naturezaOperacao": "PRESTACAO DE SERVICO DE TRANSPORTE",
"tomador": {
"papel": 0
},
"remetente": {
"cpfCnpj": "11222333000181",
"inscricaoEstadual": "111222333444",
"nome": "EMPRESA EXEMPLO LTDA",
"endereco": {
"cep": "01001000",
"logradouro": "Rua Exemplo",
"numero": "100",
"bairro": "Centro",
"codigoIbge": "3550308"
}
},
"destinatario": {
"cpfCnpj": "12345678000195",
"inscricaoEstadual": "9012345678",
"nome": "CLIENTE EXEMPLO LTDA",
"endereco": {
"cep": "80010000",
"logradouro": "Avenida Exemplo",
"numero": "200",
"bairro": "Centro",
"codigoIbge": "4106902"
}
},
"origem": {
"codigoIbge": "3550308"
},
"destino": {
"codigoIbge": "4106902"
},
"documentosTransportados": [
{
"chaveNfe": "35261011222333000181550010000456781000456789"
}
],
"valores": {
"valorTotalServico": 850,
"valorReceber": 850,
"componentes": [
{
"nome": "FRETE PESO",
"valor": 800
},
{
"nome": "PEDAGIO",
"valor": 50
}
]
},
"carga": {
"valor": 15800,
"produtoPredominante": "MATERIAL DE CONSTRUCAO",
"quantidades": [
{
"unidade": "01",
"tipoMedida": "PESO BRUTO",
"quantidade": 1250.5
}
]
},
"impostos": {
"cfop": "6353",
"icms": {
"cst": "00",
"baseCalculo": 850,
"aliquota": 12,
"valor": 102
}
},
"rodoviario": {
"rntrc": "12345678"
},
"observacoes": {
"informacoesComplementares": "Entregar em horário comercial."
}
}'Node.js
const resposta = await fetch("https://apifiscal.weesy.com.br/v1/cte", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.WEESY_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"idIntegracao": "frete-10432",
"cnpjEmitente": "21664333000195",
"ambiente": "homologacao",
"serie": "1",
"naturezaOperacao": "PRESTACAO DE SERVICO DE TRANSPORTE",
"tomador": {
"papel": 0
},
"remetente": {
"cpfCnpj": "11222333000181",
"inscricaoEstadual": "111222333444",
"nome": "EMPRESA EXEMPLO LTDA",
"endereco": {
"cep": "01001000",
"logradouro": "Rua Exemplo",
"numero": "100",
"bairro": "Centro",
"codigoIbge": "3550308"
}
},
"destinatario": {
"cpfCnpj": "12345678000195",
"inscricaoEstadual": "9012345678",
"nome": "CLIENTE EXEMPLO LTDA",
"endereco": {
"cep": "80010000",
"logradouro": "Avenida Exemplo",
"numero": "200",
"bairro": "Centro",
"codigoIbge": "4106902"
}
},
"origem": {
"codigoIbge": "3550308"
},
"destino": {
"codigoIbge": "4106902"
},
"documentosTransportados": [
{
"chaveNfe": "35261011222333000181550010000456781000456789"
}
],
"valores": {
"valorTotalServico": 850,
"valorReceber": 850,
"componentes": [
{
"nome": "FRETE PESO",
"valor": 800
},
{
"nome": "PEDAGIO",
"valor": 50
}
]
},
"carga": {
"valor": 15800,
"produtoPredominante": "MATERIAL DE CONSTRUCAO",
"quantidades": [
{
"unidade": "01",
"tipoMedida": "PESO BRUTO",
"quantidade": 1250.5
}
]
},
"impostos": {
"cfop": "6353",
"icms": {
"cst": "00",
"baseCalculo": 850,
"aliquota": 12,
"valor": 102
}
},
"rodoviario": {
"rntrc": "12345678"
},
"observacoes": {
"informacoesComplementares": "Entregar em horário comercial."
}
}),
});
console.log(resposta.status, await resposta.text());Python
import os
import requests
resposta = requests.post(
"https://apifiscal.weesy.com.br/v1/cte",
headers={"Authorization": f"Bearer {os.environ['WEESY_TOKEN']}"},
json={
"idIntegracao": "frete-10432",
"cnpjEmitente": "21664333000195",
"ambiente": "homologacao",
"serie": "1",
"naturezaOperacao": "PRESTACAO DE SERVICO DE TRANSPORTE",
"tomador": {
"papel": 0,
},
"remetente": {
"cpfCnpj": "11222333000181",
"inscricaoEstadual": "111222333444",
"nome": "EMPRESA EXEMPLO LTDA",
"endereco": {
"cep": "01001000",
"logradouro": "Rua Exemplo",
"numero": "100",
"bairro": "Centro",
"codigoIbge": "3550308",
},
},
"destinatario": {
"cpfCnpj": "12345678000195",
"inscricaoEstadual": "9012345678",
"nome": "CLIENTE EXEMPLO LTDA",
"endereco": {
"cep": "80010000",
"logradouro": "Avenida Exemplo",
"numero": "200",
"bairro": "Centro",
"codigoIbge": "4106902",
},
},
"origem": {
"codigoIbge": "3550308",
},
"destino": {
"codigoIbge": "4106902",
},
"documentosTransportados": [
{
"chaveNfe": "35261011222333000181550010000456781000456789",
},
],
"valores": {
"valorTotalServico": 850,
"valorReceber": 850,
"componentes": [
{
"nome": "FRETE PESO",
"valor": 800,
},
{
"nome": "PEDAGIO",
"valor": 50,
},
],
},
"carga": {
"valor": 15800,
"produtoPredominante": "MATERIAL DE CONSTRUCAO",
"quantidades": [
{
"unidade": "01",
"tipoMedida": "PESO BRUTO",
"quantidade": 1250.5,
},
],
},
"impostos": {
"cfop": "6353",
"icms": {
"cst": "00",
"baseCalculo": 850,
"aliquota": 12,
"valor": 102,
},
},
"rodoviario": {
"rntrc": "12345678",
},
"observacoes": {
"informacoesComplementares": "Entregar em horário comercial.",
},
},
timeout=30,
)
print(resposta.status_code, resposta.text)PHP
<?php
$corpo = <<<'JSON'
{
"idIntegracao": "frete-10432",
"cnpjEmitente": "21664333000195",
"ambiente": "homologacao",
"serie": "1",
"naturezaOperacao": "PRESTACAO DE SERVICO DE TRANSPORTE",
"tomador": {
"papel": 0
},
"remetente": {
"cpfCnpj": "11222333000181",
"inscricaoEstadual": "111222333444",
"nome": "EMPRESA EXEMPLO LTDA",
"endereco": {
"cep": "01001000",
"logradouro": "Rua Exemplo",
"numero": "100",
"bairro": "Centro",
"codigoIbge": "3550308"
}
},
"destinatario": {
"cpfCnpj": "12345678000195",
"inscricaoEstadual": "9012345678",
"nome": "CLIENTE EXEMPLO LTDA",
"endereco": {
"cep": "80010000",
"logradouro": "Avenida Exemplo",
"numero": "200",
"bairro": "Centro",
"codigoIbge": "4106902"
}
},
"origem": {
"codigoIbge": "3550308"
},
"destino": {
"codigoIbge": "4106902"
},
"documentosTransportados": [
{
"chaveNfe": "35261011222333000181550010000456781000456789"
}
],
"valores": {
"valorTotalServico": 850,
"valorReceber": 850,
"componentes": [
{
"nome": "FRETE PESO",
"valor": 800
},
{
"nome": "PEDAGIO",
"valor": 50
}
]
},
"carga": {
"valor": 15800,
"produtoPredominante": "MATERIAL DE CONSTRUCAO",
"quantidades": [
{
"unidade": "01",
"tipoMedida": "PESO BRUTO",
"quantidade": 1250.5
}
]
},
"impostos": {
"cfop": "6353",
"icms": {
"cst": "00",
"baseCalculo": 850,
"aliquota": 12,
"valor": 102
}
},
"rodoviario": {
"rntrc": "12345678"
},
"observacoes": {
"informacoesComplementares": "Entregar em horário comercial."
}
}
JSON;
$contexto = stream_context_create(["http" => [
"method" => "POST",
"header" => implode("\r\n", ["Authorization: Bearer " . getenv("WEESY_TOKEN"), "Content-Type: application/json"]),
"content" => $corpo,
"ignore_errors" => true, // lê o corpo também nas respostas de erro
]]);
$resposta = file_get_contents("https://apifiscal.weesy.com.br/v1/cte", false, $contexto);
echo $http_response_header[0], PHP_EOL, $resposta, PHP_EOL;C#
using System.Net.Http.Headers;
using System.Text;
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("WEESY_TOKEN"));
var corpo = """
{
"idIntegracao": "frete-10432",
"cnpjEmitente": "21664333000195",
"ambiente": "homologacao",
"serie": "1",
"naturezaOperacao": "PRESTACAO DE SERVICO DE TRANSPORTE",
"tomador": {
"papel": 0
},
"remetente": {
"cpfCnpj": "11222333000181",
"inscricaoEstadual": "111222333444",
"nome": "EMPRESA EXEMPLO LTDA",
"endereco": {
"cep": "01001000",
"logradouro": "Rua Exemplo",
"numero": "100",
"bairro": "Centro",
"codigoIbge": "3550308"
}
},
"destinatario": {
"cpfCnpj": "12345678000195",
"inscricaoEstadual": "9012345678",
"nome": "CLIENTE EXEMPLO LTDA",
"endereco": {
"cep": "80010000",
"logradouro": "Avenida Exemplo",
"numero": "200",
"bairro": "Centro",
"codigoIbge": "4106902"
}
},
"origem": {
"codigoIbge": "3550308"
},
"destino": {
"codigoIbge": "4106902"
},
"documentosTransportados": [
{
"chaveNfe": "35261011222333000181550010000456781000456789"
}
],
"valores": {
"valorTotalServico": 850,
"valorReceber": 850,
"componentes": [
{
"nome": "FRETE PESO",
"valor": 800
},
{
"nome": "PEDAGIO",
"valor": 50
}
]
},
"carga": {
"valor": 15800,
"produtoPredominante": "MATERIAL DE CONSTRUCAO",
"quantidades": [
{
"unidade": "01",
"tipoMedida": "PESO BRUTO",
"quantidade": 1250.5
}
]
},
"impostos": {
"cfop": "6353",
"icms": {
"cst": "00",
"baseCalculo": 850,
"aliquota": 12,
"valor": 102
}
},
"rodoviario": {
"rntrc": "12345678"
},
"observacoes": {
"informacoesComplementares": "Entregar em horário comercial."
}
}
""";
using var resposta = await http.PostAsync(
"https://apifiscal.weesy.com.br/v1/cte",
new StringContent(corpo, Encoding.UTF8, "application/json"));
Console.WriteLine($"{(int)resposta.StatusCode} {await resposta.Content.ReadAsStringAsync()}");Corpo da requisição
| Campo | Tipo | Descrição | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| idIntegracao obrigatório | string | Um código seu para este CT-e (o número do pedido ou do frete, por exemplo). Precisa ser único por empresa: é ele que impede emitir o mesmo CT-e duas vezes. | ||||||||||||||||||||||||||||
| cnpjEmitente obrigatório | string | CNPJ da transportadora que emite o CT-e, só dígitos. | ||||||||||||||||||||||||||||
| ambiente obrigatório | string | Onde o documento é emitido.
O ambiente | ||||||||||||||||||||||||||||
| serie obrigatório | string | Série do CT-e (de | ||||||||||||||||||||||||||||
| naturezaOperacao obrigatório | string | Descrição da operação, em texto. | ||||||||||||||||||||||||||||
| tipoCte | integer | Tipo do CT-e — código oficial
| ||||||||||||||||||||||||||||
| tipoServico | integer | Tipo do serviço — código oficial
| ||||||||||||||||||||||||||||
| origem obrigatório | object | Cidade onde o frete começa. | ||||||||||||||||||||||||||||
| origem. obrigatório | string | Código IBGE da cidade (7 dígitos). Para destino fora do Brasil, use | ||||||||||||||||||||||||||||
| destino obrigatório | object | Cidade onde o frete termina. | ||||||||||||||||||||||||||||
| destino. obrigatório | string | Código IBGE da cidade (7 dígitos). Para destino fora do Brasil, use | ||||||||||||||||||||||||||||
| documentosTransportados obrigatório | array de object | As NF-e da mercadoria. Um CT-e pode levar várias NF-e. | ||||||||||||||||||||||||||||
| documentosTransportados[] obrigatório | string | Chave de acesso da NF-e da mercadoria (44 dígitos, está no DANFE e no XML). | ||||||||||||||||||||||||||||
| documentosTransportados[] | string | PIN da SUFRAMA, só quando a mercadoria vai para a Zona Franca de Manaus com benefício. | ||||||||||||||||||||||||||||
| documentosTransportados[] | string (date) | Data prevista de entrega desta NF-e. | ||||||||||||||||||||||||||||
| valores obrigatório | object | |||||||||||||||||||||||||||||
| valores. obrigatório | number | Valor total do frete. | ||||||||||||||||||||||||||||
| valores. obrigatório | number | Quanto a transportadora vai receber de fato (normalmente igual ao total). | ||||||||||||||||||||||||||||
| valores. | array de object | Como o total se divide. Opcional. | ||||||||||||||||||||||||||||
| valores. obrigatório | string | Nome curto do componente. | ||||||||||||||||||||||||||||
| valores. obrigatório | number | Valor em reais, como número com 2 casas decimais (ex. | ||||||||||||||||||||||||||||
| carga obrigatório | object | A mercadoria transportada. | ||||||||||||||||||||||||||||
| carga. obrigatório | number | Valor da mercadoria — normalmente a soma das NF-e (total da nota). | ||||||||||||||||||||||||||||
| carga. | number | Valor para averbação do seguro, quando diferente do valor da carga. | ||||||||||||||||||||||||||||
| carga. | string | O produto que mais pesa na carga. Padrão | ||||||||||||||||||||||||||||
| carga. | string | Outras características da carga (ex. | ||||||||||||||||||||||||||||
| carga. | array de object | |||||||||||||||||||||||||||||
| carga. obrigatório | string | Unidade de medida — código oficial
| ||||||||||||||||||||||||||||
| carga. obrigatório | string | O que foi medido, em texto livre. | ||||||||||||||||||||||||||||
| carga. obrigatório | number | Quantidade, até 4 casas decimais. | ||||||||||||||||||||||||||||
| impostos obrigatório | object | |||||||||||||||||||||||||||||
| impostos. obrigatório | string | CFOP do frete. Começa com 5 se o frete fica dentro do estado, 6 se vai para outro estado e 7 se vai para o exterior (ex. | ||||||||||||||||||||||||||||
| impostos. obrigatório | object | ICMS do frete. Os valores vêm da sua apuração — a Weesy não calcula imposto. | ||||||||||||||||||||||||||||
| impostos. obrigatório | string | Código de situação tributária do ICMS no CT-e (CST). Peça ao contador.
| ||||||||||||||||||||||||||||
| impostos. | boolean |
| ||||||||||||||||||||||||||||
| impostos. | number | Valor em reais, como número com 2 casas decimais (ex. | ||||||||||||||||||||||||||||
| impostos. | number | Só com CST | ||||||||||||||||||||||||||||
| impostos. | number | Alíquota do ICMS em percentual ( | ||||||||||||||||||||||||||||
| impostos. | number | Valor em reais, como número com 2 casas decimais (ex. | ||||||||||||||||||||||||||||
| impostos. | number | Crédito outorgado/presumido, quando houver. | ||||||||||||||||||||||||||||
| impostos. | number | Valor em reais, como número com 2 casas decimais (ex. | ||||||||||||||||||||||||||||
| impostos. | string | Código do benefício fiscal da UF (cBenef), quando houver. | ||||||||||||||||||||||||||||
| impostos. | object | Grupo do IBS/CBS da reforma tributária (NT 2026.002). Peça os códigos ao contador. | ||||||||||||||||||||||||||||
| impostos. obrigatório | string | CST do IBS/CBS (3 dígitos). | ||||||||||||||||||||||||||||
| impostos. obrigatório | string | Classificação tributária do IBS/CBS (6 dígitos). | ||||||||||||||||||||||||||||
| impostos. | number | Valor aproximado dos tributos (Lei da Transparência), quando você calcula. | ||||||||||||||||||||||||||||
| impostos. | number | Valor total do documento com IBS/CBS (vTotDFe), quando exigido. | ||||||||||||||||||||||||||||
| impostos. | string | Texto de interesse do fisco que vai no XML. | ||||||||||||||||||||||||||||
| rodoviario obrigatório | object | |||||||||||||||||||||||||||||
| rodoviario. obrigatório | string | Número do RNTRC da transportadora na ANTT (8 dígitos). Está no cadastro da ANTT e no CRLV dos veículos. | ||||||||||||||||||||||||||||
| observacoes | object | |||||||||||||||||||||||||||||
| observacoes. | string | Observações livres que aparecem no DACTE. | ||||||||||||||||||||||||||||
| observacoes. | array de object | Campos de uso livre do contribuinte (par nome/valor). | ||||||||||||||||||||||||||||
| observacoes. obrigatório | string | |||||||||||||||||||||||||||||
| observacoes. obrigatório | string | |||||||||||||||||||||||||||||
| tomador obrigatório | object | Quem paga o frete. Se for uma das partes já informadas, basta o | ||||||||||||||||||||||||||||
| tomador. obrigatório | integer | Quem paga o frete (o "tomador do serviço") — código oficial
| ||||||||||||||||||||||||||||
| tomador. | string | CPF (11 números) ou CNPJ (14 posições), sem pontuação. | ||||||||||||||||||||||||||||
| tomador. | string | |||||||||||||||||||||||||||||
| tomador. | string | |||||||||||||||||||||||||||||
| tomador. | string (email) | |||||||||||||||||||||||||||||
| tomador. | string | |||||||||||||||||||||||||||||
| tomador. | object | Endereço para enviar. Não precisa mandar cidade nem UF — tiramos do código IBGE. | ||||||||||||||||||||||||||||
| tomador. obrigatório | string | CEP do endereço, sem pontuação. | ||||||||||||||||||||||||||||
| tomador. obrigatório | string | Tipo e nome do logradouro. | ||||||||||||||||||||||||||||
| tomador. obrigatório | string | Número do endereço. Sem número? Mande | ||||||||||||||||||||||||||||
| tomador. | string | Complemento do endereço, quando aplicável. | ||||||||||||||||||||||||||||
| tomador. obrigatório | string | Bairro do endereço. | ||||||||||||||||||||||||||||
| tomador. obrigatório | string | Código IBGE do município do endereço. | ||||||||||||||||||||||||||||
| remetente obrigatório | object | Quem envia a mercadoria (normalmente o emitente da NF-e). | ||||||||||||||||||||||||||||
| remetente. obrigatório | string | CPF (11 números) ou CNPJ (14 posições), sem pontuação. | ||||||||||||||||||||||||||||
| remetente. | string | Inscrição estadual, só dígitos, ou | ||||||||||||||||||||||||||||
| remetente. obrigatório | string | Razão social (empresa) ou nome completo (pessoa). | ||||||||||||||||||||||||||||
| remetente. | string | |||||||||||||||||||||||||||||
| remetente. | string | Só dígitos, com DDD. | ||||||||||||||||||||||||||||
| remetente. | string (email) | |||||||||||||||||||||||||||||
| remetente. | string | Inscrição na SUFRAMA, só para destinatário na Zona Franca de Manaus com benefício fiscal. | ||||||||||||||||||||||||||||
| remetente. obrigatório | object | Endereço para enviar. Não precisa mandar cidade nem UF — tiramos do código IBGE. | ||||||||||||||||||||||||||||
| remetente. obrigatório | string | CEP do endereço, sem pontuação. | ||||||||||||||||||||||||||||
| remetente. obrigatório | string | Tipo e nome do logradouro. | ||||||||||||||||||||||||||||
| remetente. obrigatório | string | Número do endereço. Sem número? Mande | ||||||||||||||||||||||||||||
| remetente. | string | Complemento do endereço, quando aplicável. | ||||||||||||||||||||||||||||
| remetente. obrigatório | string | Bairro do endereço. | ||||||||||||||||||||||||||||
| remetente. obrigatório | string | Código IBGE do município do endereço. | ||||||||||||||||||||||||||||
| destinatario obrigatório | object | Quem recebe a mercadoria (normalmente o destinatário da NF-e). | ||||||||||||||||||||||||||||
| destinatario. obrigatório | string | CPF (11 números) ou CNPJ (14 posições), sem pontuação. | ||||||||||||||||||||||||||||
| destinatario. | string | Inscrição estadual, só dígitos, ou | ||||||||||||||||||||||||||||
| destinatario. obrigatório | string | Razão social (empresa) ou nome completo (pessoa). | ||||||||||||||||||||||||||||
| destinatario. | string | |||||||||||||||||||||||||||||
| destinatario. | string | Só dígitos, com DDD. | ||||||||||||||||||||||||||||
| destinatario. | string (email) | |||||||||||||||||||||||||||||
| destinatario. | string | Inscrição na SUFRAMA, só para destinatário na Zona Franca de Manaus com benefício fiscal. | ||||||||||||||||||||||||||||
| destinatario. obrigatório | object | Endereço para enviar. Não precisa mandar cidade nem UF — tiramos do código IBGE. | ||||||||||||||||||||||||||||
| destinatario. obrigatório | string | CEP do endereço, sem pontuação. | ||||||||||||||||||||||||||||
| destinatario. obrigatório | string | Tipo e nome do logradouro. | ||||||||||||||||||||||||||||
| destinatario. obrigatório | string | Número do endereço. Sem número? Mande | ||||||||||||||||||||||||||||
| destinatario. | string | Complemento do endereço, quando aplicável. | ||||||||||||||||||||||||||||
| destinatario. obrigatório | string | Bairro do endereço. | ||||||||||||||||||||||||||||
| destinatario. obrigatório | string | Código IBGE do município do endereço. | ||||||||||||||||||||||||||||
| expedidor | object | Quem entrega a carga à transportadora, quando não é o remetente. Opcional. | ||||||||||||||||||||||||||||
| expedidor. obrigatório | string | CPF (11 números) ou CNPJ (14 posições), sem pontuação. | ||||||||||||||||||||||||||||
| expedidor. | string | Inscrição estadual, só dígitos, ou | ||||||||||||||||||||||||||||
| expedidor. obrigatório | string | Razão social (empresa) ou nome completo (pessoa). | ||||||||||||||||||||||||||||
| expedidor. | string | |||||||||||||||||||||||||||||
| expedidor. | string | Só dígitos, com DDD. | ||||||||||||||||||||||||||||
| expedidor. | string (email) | |||||||||||||||||||||||||||||
| expedidor. | string | Inscrição na SUFRAMA, só para destinatário na Zona Franca de Manaus com benefício fiscal. | ||||||||||||||||||||||||||||
| expedidor. obrigatório | object | Endereço para enviar. Não precisa mandar cidade nem UF — tiramos do código IBGE. | ||||||||||||||||||||||||||||
| expedidor. obrigatório | string | CEP do endereço, sem pontuação. | ||||||||||||||||||||||||||||
| expedidor. obrigatório | string | Tipo e nome do logradouro. | ||||||||||||||||||||||||||||
| expedidor. obrigatório | string | Número do endereço. Sem número? Mande | ||||||||||||||||||||||||||||
| expedidor. | string | Complemento do endereço, quando aplicável. | ||||||||||||||||||||||||||||
| expedidor. obrigatório | string | Bairro do endereço. | ||||||||||||||||||||||||||||
| expedidor. obrigatório | string | Código IBGE do município do endereço. | ||||||||||||||||||||||||||||
| recebedor | object | Quem recebe a carga da transportadora, quando não é o destinatário. Opcional. | ||||||||||||||||||||||||||||
| recebedor. obrigatório | string | CPF (11 números) ou CNPJ (14 posições), sem pontuação. | ||||||||||||||||||||||||||||
| recebedor. | string | Inscrição estadual, só dígitos, ou | ||||||||||||||||||||||||||||
| recebedor. obrigatório | string | Razão social (empresa) ou nome completo (pessoa). | ||||||||||||||||||||||||||||
| recebedor. | string | |||||||||||||||||||||||||||||
| recebedor. | string | Só dígitos, com DDD. | ||||||||||||||||||||||||||||
| recebedor. | string (email) | |||||||||||||||||||||||||||||
| recebedor. | string | Inscrição na SUFRAMA, só para destinatário na Zona Franca de Manaus com benefício fiscal. | ||||||||||||||||||||||||||||
| recebedor. obrigatório | object | Endereço para enviar. Não precisa mandar cidade nem UF — tiramos do código IBGE. | ||||||||||||||||||||||||||||
| recebedor. obrigatório | string | CEP do endereço, sem pontuação. | ||||||||||||||||||||||||||||
| recebedor. obrigatório | string | Tipo e nome do logradouro. | ||||||||||||||||||||||||||||
| recebedor. obrigatório | string | Número do endereço. Sem número? Mande | ||||||||||||||||||||||||||||
| recebedor. | string | Complemento do endereço, quando aplicável. | ||||||||||||||||||||||||||||
| recebedor. obrigatório | string | Bairro do endereço. | ||||||||||||||||||||||||||||
| recebedor. obrigatório | string | Código IBGE do município do endereço. |
Frete de São Paulo para Curitiba, pago pelo remetente
{
"idIntegracao": "frete-10432",
"cnpjEmitente": "21664333000195",
"ambiente": "homologacao",
"serie": "1",
"naturezaOperacao": "PRESTACAO DE SERVICO DE TRANSPORTE",
"tomador": {
"papel": 0
},
"remetente": {
"cpfCnpj": "11222333000181",
"inscricaoEstadual": "111222333444",
"nome": "EMPRESA EXEMPLO LTDA",
"endereco": {
"cep": "01001000",
"logradouro": "Rua Exemplo",
"numero": "100",
"bairro": "Centro",
"codigoIbge": "3550308"
}
},
"destinatario": {
"cpfCnpj": "12345678000195",
"inscricaoEstadual": "9012345678",
"nome": "CLIENTE EXEMPLO LTDA",
"endereco": {
"cep": "80010000",
"logradouro": "Avenida Exemplo",
"numero": "200",
"bairro": "Centro",
"codigoIbge": "4106902"
}
},
"origem": {
"codigoIbge": "3550308"
},
"destino": {
"codigoIbge": "4106902"
},
"documentosTransportados": [
{
"chaveNfe": "35261011222333000181550010000456781000456789"
}
],
"valores": {
"valorTotalServico": 850,
"valorReceber": 850,
"componentes": [
{
"nome": "FRETE PESO",
"valor": 800
},
{
"nome": "PEDAGIO",
"valor": 50
}
]
},
"carga": {
"valor": 15800,
"produtoPredominante": "MATERIAL DE CONSTRUCAO",
"quantidades": [
{
"unidade": "01",
"tipoMedida": "PESO BRUTO",
"quantidade": 1250.5
}
]
},
"impostos": {
"cfop": "6353",
"icms": {
"cst": "00",
"baseCalculo": 850,
"aliquota": 12,
"valor": 102
}
},
"rodoviario": {
"rntrc": "12345678"
},
"observacoes": {
"informacoesComplementares": "Entregar em horário comercial."
}
}Respostas
- 200: Mesmo idIntegracao com o mesmo corpo (devolve o CT-e já recebido) ou correção de um CT-e rejeitado.
- 201: Recebido. Ainda não está autorizado — acompanhe pelo webhook ou por GET /cte/{id}.
- 400: Algum dado está errado ou faltando. A lista erros diz qual campo e o que corrigir (code = validacao). (formato de erro)
- 401: Token ausente, errado ou revogado (credencialinvalida). Confira o cabeçalho Authorization. (formato de erro)
- 403: ambientenaoliberado — no período de teste grátis, o token de API tentando emitir em producao. (formato de erro)
- 404: empresanaoencontrada — o cnpjEmitente não está cadastrado ou não é uma empresa da sua conta. (formato de erro)
- 409: - idintegracaoreutilizado — esse idIntegracao já foi usado com outros dados. O CT-e existente vem em existente. - empresasemcertificado ou certificadovencido — envie um certificado A1 válido. (formato de erro)
- 429: Muitas chamadas em pouco tempo (limiteexcedido). Espere os segundos de Retry-After e tente de novo. (formato de erro)
- 500: Erro do nosso lado (errointerno). Tente de novo; se continuar, mande o traceId para o suporte. (formato de erro)
Campos da resposta 200
| Campo | Tipo | Descrição | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| id obrigatório | string | O | ||||||||||||||||||||||||
| idIntegracao obrigatório | string | O código seu que veio na emissão. | ||||||||||||||||||||||||
| status obrigatório | string | Situação do CT-e. A lista pode crescer: trate valor desconhecido sem quebrar.
A carta de correção não muda o | ||||||||||||||||||||||||
| ambiente obrigatório | string | Onde o documento é emitido.
O ambiente | ||||||||||||||||||||||||
| empresa obrigatório | object | |||||||||||||||||||||||||
| empresa. obrigatório | string | CNPJ sem pontos, barra ou traço (14 posições). Já aceita o CNPJ com letras, que começa a valer em 2026. | ||||||||||||||||||||||||
| empresa. obrigatório | string | |||||||||||||||||||||||||
| empresa. | string | Sigla do estado, em maiúsculas. Valores: | ||||||||||||||||||||||||
| serie obrigatório | string | |||||||||||||||||||||||||
| numero | string ou null | Número do CT-e. Vazio até a Weesy montar o XML. | ||||||||||||||||||||||||
| chaveAcesso | string ou null | |||||||||||||||||||||||||
| protocolo | string ou null | Protocolo de autorização da SEFAZ. | ||||||||||||||||||||||||
| autorizadoEm | string (date-time) ou null | |||||||||||||||||||||||||
| cfop | string | |||||||||||||||||||||||||
| tomador | object | |||||||||||||||||||||||||
| tomador. | integer | Quem paga o frete (o "tomador do serviço") — código oficial
| ||||||||||||||||||||||||
| tomador. | string | CPF (11 números) ou CNPJ (14 posições), sem pontuação. | ||||||||||||||||||||||||
| tomador. | string | |||||||||||||||||||||||||
| remetente | object | |||||||||||||||||||||||||
| remetente. obrigatório | string | CPF (11 números) ou CNPJ (14 posições), sem pontuação. | ||||||||||||||||||||||||
| remetente. obrigatório | string | |||||||||||||||||||||||||
| destinatario | object | |||||||||||||||||||||||||
| destinatario. obrigatório | string | CPF (11 números) ou CNPJ (14 posições), sem pontuação. | ||||||||||||||||||||||||
| destinatario. obrigatório | string | |||||||||||||||||||||||||
| expedidor | object ou null | |||||||||||||||||||||||||
| expedidor. | string | CPF (11 números) ou CNPJ (14 posições), sem pontuação. | ||||||||||||||||||||||||
| expedidor. | string | |||||||||||||||||||||||||
| recebedor | object ou null | |||||||||||||||||||||||||
| recebedor. | string | CPF (11 números) ou CNPJ (14 posições), sem pontuação. | ||||||||||||||||||||||||
| recebedor. | string | |||||||||||||||||||||||||
| origem | object | Identificação do município por código IBGE, nome e UF. | ||||||||||||||||||||||||
| origem. obrigatório | string | Código IBGE do município. | ||||||||||||||||||||||||
| origem. | string | Nome do município. | ||||||||||||||||||||||||
| origem. | string | Sigla da unidade federativa. | ||||||||||||||||||||||||
| destino | object | Identificação do município por código IBGE, nome e UF. | ||||||||||||||||||||||||
| destino. obrigatório | string | Código IBGE do município. | ||||||||||||||||||||||||
| destino. | string | Nome do município. | ||||||||||||||||||||||||
| destino. | string | Sigla da unidade federativa. | ||||||||||||||||||||||||
| documentosTransportados | array de object | |||||||||||||||||||||||||
| documentosTransportados[] obrigatório | string | Chave de acesso de 44 dígitos — o "RG" do documento fiscal na SEFAZ. | ||||||||||||||||||||||||
| valores | object | |||||||||||||||||||||||||
| valores. obrigatório | number | Valor total do frete. | ||||||||||||||||||||||||
| valores. obrigatório | number | Quanto a transportadora vai receber de fato (normalmente igual ao total). | ||||||||||||||||||||||||
| valores. | array de object | Como o total se divide. Opcional. | ||||||||||||||||||||||||
| valores. obrigatório | string | Nome curto do componente. | ||||||||||||||||||||||||
| valores. obrigatório | number | Valor em reais, como número com 2 casas decimais (ex. | ||||||||||||||||||||||||
| carga | object | |||||||||||||||||||||||||
| carga. | number | Valor em reais, como número com 2 casas decimais (ex. | ||||||||||||||||||||||||
| carga. | string | |||||||||||||||||||||||||
| sefaz | object | Última resposta da SEFAZ, como ela mandou. Útil para entender uma rejeição. | ||||||||||||||||||||||||
| sefaz. | integer ou null | Código de resposta da SEFAZ (ex. | ||||||||||||||||||||||||
| sefaz. | string ou null | Texto da SEFAZ que explica o código. | ||||||||||||||||||||||||
| sefaz. | string ou null | Número do protocolo da SEFAZ, quando houver. | ||||||||||||||||||||||||
| eventos | array de object | Cancelamentos e cartas de correção, do mais antigo para o mais novo. | ||||||||||||||||||||||||
| eventos[] obrigatório | string |
| ||||||||||||||||||||||||
| eventos[] obrigatório | integer | Número do evento desse tipo no CT-e (a 1ª carta de correção é 1, a 2ª é 2...). | ||||||||||||||||||||||||
| eventos[] obrigatório | string |
| ||||||||||||||||||||||||
| eventos[] | string ou null | Só no cancelamento. | ||||||||||||||||||||||||
| eventos[] | array de object | Só na carta de correção. | ||||||||||||||||||||||||
| eventos[] obrigatório | string | Grupo do XML onde está o campo (ex. | ||||||||||||||||||||||||
| eventos[] obrigatório | string | Nome da tag a corrigir dentro do grupo (ex. | ||||||||||||||||||||||||
| eventos[] obrigatório | string | O valor correto. | ||||||||||||||||||||||||
| eventos[] | string | Só quando o grupo se repete no XML — qual ocorrência corrigir (começa em | ||||||||||||||||||||||||
| eventos[] | string ou null | Protocolo do evento na SEFAZ, quando registrado. | ||||||||||||||||||||||||
| eventos[] | object | Última resposta da SEFAZ, como ela mandou. Útil para entender uma rejeição. | ||||||||||||||||||||||||
| eventos[] | integer ou null | Código de resposta da SEFAZ (ex. | ||||||||||||||||||||||||
| eventos[] | string ou null | Texto da SEFAZ que explica o código. | ||||||||||||||||||||||||
| eventos[] | string ou null | Número do protocolo da SEFAZ, quando houver. | ||||||||||||||||||||||||
| eventos[] obrigatório | string (date-time) | Data e hora no horário de Brasília (ex. | ||||||||||||||||||||||||
| eventos[] | string (date-time) ou null | |||||||||||||||||||||||||
| historico | array de object | Por onde o CT-e passou, em ordem. | ||||||||||||||||||||||||
| historico[] obrigatório | string | Situação do CT-e. A lista pode crescer: trate valor desconhecido sem quebrar.
A carta de correção não muda o | ||||||||||||||||||||||||
| historico[] obrigatório | string (date-time) | Data e hora em UTC, terminada em | ||||||||||||||||||||||||
| historico[] | string ou null | |||||||||||||||||||||||||
| links obrigatório | object | |||||||||||||||||||||||||
| links. obrigatório | string | |||||||||||||||||||||||||
| links. | string ou null | Vazio até autorizar. | ||||||||||||||||||||||||
| links. | string ou null | Vazio até autorizar. | ||||||||||||||||||||||||
| criadoEm obrigatório | string (date-time) | Data e hora em UTC, terminada em | ||||||||||||||||||||||||
| atualizadoEm obrigatório | string (date-time) | Data e hora em UTC, terminada em |