Pular para o conteúdo principal

Como Criar um Novo Anúncio

Este guia explica como criar um novo anúncio de veículo através da API.

Endpoint

POST /v3/inventory/{dealer_id}

Autenticação

Este endpoint requer autenticação via JWT. Inclua o token no header:

Authorization: Bearer {access_token}

Parâmetros de URL

ParâmetroTipoDescrição
dealer_idintegerID da loja onde o anúncio será criado

Campos Obrigatórios

Para criar um anúncio, você precisa enviar os seguintes campos no corpo da requisição:

CampoTipoDescrição
categoryintegerID da categoria do veículo (1=Automóvel, 2=Motocicleta, 3=Caminhão, 4=Implemento)
version_detail_idintegerID da versão detalhada do veículo (obtido através do endpoint /catalog/versions/{model_id})
colorintegerID da cor do veículo (obtido através do endpoint /catalog/color)
make_yearintegerAno de fabricação do veículo
model_yearintegerAno do modelo do veículo
kmintegerQuilometragem do veículo (0 se for zero km)
priceintegerPreço do veículo em reais (número inteiro, sem centavos)
descriptionstringDescrição do anúncio

Campos Condicionais

CampoTipoCondição
license_platestringObrigatório se is_new for false

Campos Opcionais

CampoTipoDescrição
is_newbooleanIndica se o veículo é zero km (padrão: false)
notestringObservações adicionais
youtube_urlstringURL do vídeo do YouTube
chassistringNúmero do chassi
alienatedbooleanIndica se o veículo está alienado
licensedbooleanIndica se o veículo está licenciado
only_ownerbooleanIndica se é único dono
tax_payedbooleanIndica se o IPVA está pago
accept_exchangebooleanIndica se aceita troca
factory_warrantybooleanIndica se possui garantia de fábrica
extended_warrantybooleanIndica se possui garantia estendida
inspectionbooleanIndica se possui laudo cautelar
pwdbooleanIndica se é PCD (Pessoa com Deficiência)
reviews_at_the_dealershipbooleanIndica se revisões foram feitas na concessionária
address_idintegerID do endereço da loja (usa o primeiro se não informado)
photosarrayArray de objetos com fotos (ver estrutura abaixo)
featuresarrayArray de IDs de opcionais (obtidos através do endpoint /catalog/feature)

Campos Específicos por Categoria

Automóveis (category: 1)

CampoTipoDescrição
is_armoredbooleanIndica se o veículo é blindado
armored_levelstringNível de blindagem (I, II, IIA, III, IIIA, IV, V)
armoredintegerID do tipo de blindagem (obtido através do endpoint /catalog/armor-type)

Motocicletas (category: 2)

CampoTipoDescrição
breaksintegerID do tipo de freio (obtido através do endpoint /catalog/motorcycle/break)
engineintegerID do tipo de motor (obtido através do endpoint /catalog/motorcycle/engine-type)
engine_capacityintegerCapacidade do motor em cilindradas
gearintegerID do tipo de marcha (obtido através do endpoint /catalog/motorcycle/gear)
power_supplyintegerID do tipo de alimentação (obtido através do endpoint /catalog/motorcycle/power-supply)
refrigerationintegerID do tipo de refrigeração (obtido através do endpoint /catalog/motorcycle/cooling)
startintegerID do tipo de partida (obtido através do endpoint /catalog/motorcycle/start-type)

Caminhões (category: 3)

CampoTipoDescrição
is_armoredbooleanIndica se o veículo é blindado
armored_levelstringNível de blindagem (I, II, IIA, III, IIIA, IV, V)
armoredintegerID do tipo de blindagem (obtido através do endpoint /catalog/armor-type)
powerintegerPotência do motor
load_capacityintegerCapacidade de carga em kg
pulling_capacityintegerCapacidade de tração em kg
implementintegerID do implemento (obtido através do endpoint /catalog/truck/implement)
typeintegerID do tipo de caminhão (obtido através do endpoint /catalog/truck/type)
cabinintegerID do tipo de cabine (obtido através do endpoint /catalog/truck/cabin)
tractionintegerID do tipo de tração (obtido através do endpoint /catalog/truck/traction)
breaksintegerID do tipo de freio (obtido através do endpoint /catalog/truck/break)
suspensionintegerID do tipo de suspensão (obtido através do endpoint /catalog/truck/suspension)

Implementos (category: 4)

CampoTipoDescrição
number_of_axlesintegerNúmero de eixos do implemento

Estrutura de Fotos

O campo photos deve ser um array de objetos com a seguinte estrutura. As fotos devem ser enviadas como Base64:

{
"photos": [
{
"order": 1,
"photo_name": "foto1.jpg",
"base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD..."
},
{
"order": 2,
"photo_name": "foto2.jpg",
"base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD..."
}
]
}
CampoTipoDescrição
orderintegerOrdem da foto (opcional)
photo_namestringNome do arquivo da foto (opcional)
base64stringImagem codificada em Base64 (obrigatório para novas fotos). Pode incluir o prefixo data:image/tipo;base64, ou apenas a string Base64

Exemplo de Requisição

Exemplo: Criar Anúncio de Automóvel

{
"category": 1,
"version_detail_id": 1234,
"color": 5,
"make_year": 2023,
"model_year": 2024,
"km": 15000,
"price": 85000,
"description": "Veículo em excelente estado, único dono, revisões em dia.",
"license_plate": "ABC1234",
"is_new": false,
"only_owner": true,
"tax_payed": true,
"accept_exchange": true,
"factory_warranty": true,
"is_armored": false,
"photos": [
{
"order": 1,
"photo_name": "foto1.jpg",
"base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD..."
},
{
"order": 2,
"photo_name": "foto2.jpg",
"base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD..."
}
],
"features": [1, 5, 12, 25]
}

Exemplo: Criar Anúncio de Veículo Zero KM

{
"category": 1,
"version_detail_id": 1234,
"color": 5,
"make_year": 2024,
"model_year": 2024,
"km": 0,
"price": 95000,
"description": "Veículo zero km, lacrado de fábrica.",
"is_new": true,
"factory_warranty": true,
"photos": [
{
"order": 1,
"photo_name": "foto1.jpg",
"base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD..."
}
],
"features": [1, 5, 12, 25, 30]
}

Exemplo: Criar Anúncio de Motocicleta

{
"category": 2,
"version_detail_id": 5678,
"color": 3,
"make_year": 2023,
"model_year": 2023,
"km": 5000,
"price": 25000,
"description": "Moto em perfeito estado, revisada.",
"license_plate": "XYZ9876",
"is_new": false,
"breaks": 1,
"engine": 2,
"engine_capacity": 300,
"gear": 1,
"power_supply": 1,
"refrigeration": 1,
"start": 1,
"photos": [
{
"order": 1,
"photo_name": "moto1.jpg",
"base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD..."
}
],
"features": [10, 15]
}

Exemplo: Criar Anúncio de Caminhão

{
"category": 3,
"version_detail_id": 9012,
"color": 2,
"make_year": 2022,
"model_year": 2023,
"km": 50000,
"price": 350000,
"description": "Caminhão em excelente estado de conservação.",
"license_plate": "DEF5678",
"is_new": false,
"power": 400,
"load_capacity": 15000,
"pulling_capacity": 20000,
"implement": 1,
"type": 2,
"cabin": 1,
"traction": 1,
"breaks": 1,
"suspension": 1,
"photos": [
{
"order": 1,
"photo_name": "caminhao1.jpg",
"base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD..."
}
],
"features": [20, 25, 30]
}

Exemplo: Criar Anúncio de Implemento

{
"category": 4,
"version_detail_id": 3456,
"color": 1,
"make_year": 2023,
"model_year": 2023,
"km": 0,
"price": 120000,
"description": "Implemento novo, nunca usado.",
"is_new": true,
"number_of_axles": 3,
"photos": [
{
"order": 1,
"photo_name": "implemento1.jpg",
"base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD..."
}
],
"features": [5, 10]
}

Validações Importantes

  1. Ano de Fabricação vs Ano do Modelo: O make_year não pode ser maior que o model_year, e a diferença entre eles não pode ser maior que 1 ano.

  2. Placa: Se o veículo não for zero km (is_new: false), a placa é obrigatória e deve estar em formato válido brasileiro.

  3. Quilometragem: Se o veículo não for zero km, a quilometragem deve ser maior que 0.

  4. Preço: O preço deve ser maior que 0 e deve ser enviado como número inteiro em reais, sem centavos (ex: R$ 85.000,00 = 85000).

  5. Versão Detalhada: O version_detail_id deve existir no catálogo. Use os endpoints de catálogo para obter o ID correto.

Resposta de Sucesso

Status Code: 201 Created

A resposta retornará o objeto completo do anúncio criado, incluindo o ID gerado e todos os dados relacionados.

Possíveis Erros

400 Bad Request

Retornado quando há erros de validação nos dados enviados:

{
"license_plate": ["License plate cannot be blank for used vehicles"]
}

ou

{
"price": ["Preço deve ser maior que 0"]
}

401 Unauthorized

Retornado quando o token de autenticação não foi fornecido ou é inválido.

403 Forbidden

Retornado quando o usuário não tem permissão para criar anúncios na loja especificada.

404 Not Found

Retornado quando a loja (dealer_id) não é encontrada.

Dicas

  1. Obter IDs necessários: Antes de criar o anúncio, você precisará consultar os endpoints de catálogo para obter os IDs corretos:

    • Categoria: /catalog/category
    • Versão detalhada: /catalog/versions/{model_id}
    • Cor: /catalog/color
    • Opcionais: /catalog/feature
  2. Preço: O preço deve ser enviado como número inteiro em reais, sem centavos (ex: R$ 100,00 = 100).

  3. Fotos: As fotos devem ser enviadas como Base64 no campo base64 de cada objeto do array photos. Você pode incluir o prefixo data:image/tipo;base64, ou apenas a string Base64 pura.

  4. Categoria: Certifique-se de usar a categoria correta:

    • 1 = Automóvel
    • 2 = Motocicleta
    • 3 = Caminhão
    • 4 = Implemento