Introducao

Base URL, autenticacao, formato de resposta, codigos de status e limites da API.

Base URL

Homologacao
https://apihml.revvotech.com.br
Producao
https://api.revvotech.com.br

Autenticacao

Todas as requisicoes (exceto login) devem incluir o header Authorization com um token JWT valido.

Authorization: Bearer <seu_token>

O token e obtido atraves do endpoint POST /api/User/Login. Caso o token esteja ausente ou invalido, a API retorna 401 Unauthorized.

Formato de Resposta

Todas as respostas seguem a estrutura JSON padrao abaixo:

// Sucesso { "isSuccess": true, "errors": null, "type": 200, "data": { ... } } // Erro { "isSuccess": false, "errors": ["Descricao do erro"], "type": 400 }
Importante

Sempre verifique o campo isSuccess antes de acessar data. Mesmo com status HTTP 200, o campo pode indicar falha logica.

Codigos de Status HTTP

Codigo Status Descricao
200 OK Requisicao bem-sucedida.
201 Created Recurso criado com sucesso.
400 Bad Request Dados invalidos ou ausentes no corpo da requisicao.
401 Unauthorized Token ausente, invalido ou expirado.
403 Forbidden Sem permissao para acessar este recurso.
404 Not Found Recurso nao encontrado.
429 Too Many Requests Rate limit excedido. Maximo de 60 req/min por token.
500 Server Error Erro interno do servidor.

Rate Limiting

A API permite no maximo 60 requisicoes por minuto por token. Ao exceder esse limite, voce recebera 429 Too Many Requests. Aguarde antes de tentar novamente.

Login

Autentica o usuario e retorna um token JWT para acesso aos endpoints protegidos.

POST /api/User/Login
● Publica

Request Body

Campo Tipo Descricao
email* string Email do usuario cadastradoObrigatorio.
passWord* string Senha do usuario (case-sensitive)Obrigatorio.

Exemplo de Request

{ "email": "usuario@exemplo.com", "passWord": "minhasenha123" }

Response (200)

{ "isSuccess": true, "errors": null, "type": 200, "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "refreshToken": "string", "expiration": "900s" } }

Status Codes

200
400
500

Exemplos

curl https://apihml.revvotech.com.br/api/User/Login \
  -X POST \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "usuario@exemplo.com",
    "passWord": "minhasenha123"
  }'
$ch = curl_init('https://apihml.revvotech.com.br/api/User/Login');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode([
        'email' => 'usuario@exemplo.com',
        'passWord' => 'minhasenha123'
    ]),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => false
]);

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

if ($data['isSuccess']) {
    $token = $data['data']['token'];
    echo "Token obtido: " . $token;
}
const response = await fetch('https://apihml.revvotech.com.br/api/User/Login', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    email: 'usuario@exemplo.com',
    passWord: 'minhasenha123'
  })
});

const data = await response.json();

if (data.isSuccess) {
  const token = data.data.token;
  console.log('Token obtido:', token);
  localStorage.setItem('revvo_token', token);
}

Buscar Empresas

Consulta empresas cadastradas com filtros e paginacao.

POST /api/Company/GetByFilter
● Autenticacao obrigatoria

Request Body

Campo Tipo Descricao
page integer Numero da paginaOpcional.
pageSize integer Itens por paginaOpcional.
filterString string Busca por nome ou CNPJOpcional.
active boolean Filtrar apenas ativasOpcional.
companyId uuid ID especifico da empresaOpcional.

Exemplo de Request

{ "page": 1, "pageSize": 10, "filterString": "Auto Center", "active": true }

Exemplo de Resposta

{ "isSuccess": true, "errors": null, "type": 200, "data": [ { "id": "uuid", "name": "string", "cnpj": "string", "email": "string", "phone": "string?", "site": "string", "faceBook": "string?", "twitter": "string?", "instagram": "string?", "linkedin": "string?", "tikTok": "string?", "workWithUs": "string?", "whatsAppPhrase": "string?", "active": boolean, "isRevvoCompany": boolean, "logoURL": "string", "favIconURL": "string", "address": { "id": "uuid", "cep": "string", "city": "string", "street": "string", "numberAddress": long?, "state": "string", "district": "string", "complement": "string?" } } ], "pagedInfo": { "page": int, "pageSize": int, "totalPages": int, "totalItems": int, "hasNext": boolean, "hasPrevious": boolean } }

Status Codes

200
401
403
404
500

Exemplos

curl https://apihml.revvotech.com.br/api/Company/GetByFilter \
  -X POST \
  -H 'Authorization: Bearer SEU_TOKEN_AQUI' \
  -H 'Content-Type: application/json' \
  -d '{
    "page": 1,
    "pageSize": 10,
    "active": true,
    "filterString": "revenda"
  }'
const token = localStorage.getItem('revvo_token');

const response = await fetch('https://apihml.revvotech.com.br/api/Company/GetByFilter', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    page: 1,
    pageSize: 10,
    active: true,
    filterString: "revenda"
  })
});

const data = await response.json();

if (data.isSuccess) {
  console.log(`Encontradas ${data.data.length} empresas`);
  console.log('Paginacao:', data.pagedInfo);
}
$ch = curl_init('https://apihml.revvotech.com.br/api/Company/GetByFilter');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer SEU_TOKEN_AQUI',
        'Content-Type: application/json'
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'page' => 1,
        'pageSize' => 10,
        'active' => true,
        'filterString' => 'revenda'
    ]),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => false
]);

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

if ($data['isSuccess']) {
    foreach ($data['data'] as $company) {
        echo "ID: {$company['id']} - {$company['name']}\n";
    }
}

Buscar Veiculos com Filtros

Busca veiculos aplicando filtros como marca, ano, preco e estilo com paginacao.

POST /api/PreOwnedVehicle/GetByFilter
● Autenticacao obrigatoria

Request Body

Campo Tipo Descricao
page integer Numero da paginaPadrao: 1
pageSize integer Itens por paginaPadrao: 10, max: 100
sortBy string Campo de ordenacao"originalPrice", "model", "mileage"
sortDesc boolean Ordenacao decrescentePadrao: false
style enum Estilo do veiculo (0-15)Ver Enumerações
filterString string Busca textual (modelo, marca, descricao)
brandValue integer ID numerico da marca
initialYear integer Ano inicial (inclusive)
finalYear integer Ano final (inclusive)
initialPrice double Preco minimo
finalPrice double Preco maximo
companyId uuid Filtrar por empresa especifica

Exemplo de Request

{ "page": 1, "pageSize": 10, "sortBy": "originalPrice", "sortDesc": true, "brandValue": 25, "initialYear": 2020, "finalYear": 2024, "initialPrice": 50000.00, "finalPrice": 150000.00 }

Exemplo de Resposta

{ "isSuccess": true, "errors": null, "type": 200, "data": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "modelLabel": "Civic", "mileage": 32000, "originalPrice": 95000.00, "promotionalPrice": null, "formattedOriginalPrice": "95.000,00", "formattedPromotionalPrice": null, "style": "Sedan", "brandLabel": "Honda", "active": true } ], "pagedInfo": { "page": 1, "pageSize": 10, "totalPages": 1, "totalItems": 1, "hasNext": false, "hasPrevious": false } }

Status Codes

200
401
403
404
500

Exemplos

Criar Veiculo

Cadastra um novo veiculo no sistema com dados completos, especificacoes tecnicas e imagens.

POST /api/PreOwnedVehicle
● Autenticacao obrigatoria

Dados Principais

CampoTipoDescricao
companyId*uuidID da empresa proprietaria.
vehicleType*intFixo: 1 (Car).
originalPrice*decimalPreco original.Maior que zero.
promotionalPricedecimal?Preco promocional.Opcional. Maior que zero e menor que originalPrice.
mileage*longQuilometragem.Nao pode ser negativa.
mainColor*stringCor principal.Max. 50 caracteres.
description*stringDescricao detalhada.Max. 3000 caracteres.
yearProduction*intAno de fabricacao.Deve ser ≤ modelYear.
modelYear*intAno do modelo.
plate*stringPlaca do veiculo.Max. 8 caracteres.
chassisstring?Numero do chassi.Max. 17 caracteres.
renavamstring?Numero do RENAVAM.
fipeCodestring?Codigo FIPE.
fuelTankCapacitydecimal?Capacidade do tanque (litros).
condition*enum?Condicao.1=New, 2=PreOwned
conservationStateenum?Conservacao.1=Excellent, 2=Good, 3=Average
specificationsstring?Especificacoes gerais (texto).Max. 3000 caracteres.
securitystring?Itens de seguranca.Max. 3000 caracteres.
technologystring?Itens de tecnologia.Max. 3000 caracteres.
storeCNPJstring?CNPJ da loja.14 digitos. CNPJ valido.

Objetos — brand*, model*, version*

CampoTipoDescricao
brand.label*stringNome da marca.Max. 300 caracteres.
brand.value*intID FIPE da marca.Maior que 0.
model.label*stringNome do modelo.Max. 300 caracteres.
version.label*stringNome da versao.Obrigatorio para carros. Max. 50 caracteres.

vehicleSpecifications — Carro

CampoTipoDescricao
brakeType*enumTipo de freio.0=DiscAndDisc, 1=DiscAndDrum, 2=DrumAndDisc, 3=DrumAndDrum
fuelType*enum?Combustivel.1=Flex, 2=Gasoline, 3=Diesel, 4=Ethanol, 5=Electric, 6=Hybrid, 7=GNV
doors*enum?Numero de portas.1 a 6
bodyType*enum?Carroceria.1=Hatch, 2=Sedan, 3=SUV, 4=Pickup, 5=Van, 6=Caminhao, 7=Conversivel
transmission*enum?Transmissao.1=Manual, 2=Automatico, 3=Automatizado, 4=CVT, 5=SemiAutomatico
engineSizedecimal?Cilindrada do motor (litros).
powerint?Potencia (cv).
torquedecimal?Torque (kgfm).
tractionControlenum?Tracao.0=Dianteira, 1=Traseira, 2=Integral, 3=4x4
seatingCapacityint?Capacidade de passageiros.
trunkCapacityint?Porta-malas (litros).

Objetos Comuns — images[]*, advancedSettings, accessories

CampoTipoDescricao
images[].base64Image*stringImagem em Base64.
images[].order*intOrdem de exibicao.
images[].altTextImagestringTexto alternativo (SEO).
advancedSettings.metaTitlestring?Titulo SEO.
advancedSettings.metaDescriptionstring?Descricao SEO.
advancedSettings.socialTitlestring?Título para redes sociais.
advancedSettings.socialDescriptionstring?Descrição para redes sociais.
advancedSettings.friendlyURLstring?URL amigavel (slug).
advancedSettings.base64ImagestringImagem social em Base64.
accessoriesuuid[]?Lista de IDs de acessorios.

Exemplo de Request

{ "companyId": "550e8400-e29b-41d4-a716-446655440000", "vehicleType": 1, "originalPrice": 95000.00, "mileage": 32000, "mainColor": "Prata", "description": "Honda Civic EXL 2.0 completo.", "yearProduction": 2022, "modelYear": 2023, "plate": "XYZ4H56", "condition": 2, "conservationState": 1, "brand": { "label": "Honda", "value": 25, "vehicleType": 1 }, "model": { "label": "Civic", "value": 2831 }, "version": { "label": "EXL 2.0", "value": 9012 }, "vehicleSpecifications": { "brakeType": 0, "fuelType": 1, "doors": 4, "engineSize": 2.0, "power": 155, "transmission": 4, "bodyType": 2, "tractionControl": 0, "seatingCapacity": 5, "trunkCapacity": 519 }, "specifications": "Direcao eletrica, ar condicionado digital...", "security": "6 airbags, freios ABS, controle de estabilidade...", "technology": "Central multimidia 9 pol, Android Auto, Apple CarPlay...", "images": [ { "base64Image": "data:image/jpeg;base64,/9j/4AAQ...", "order": 0, "altTextImage": "Foto frontal" } ], "advancedSettings": { "metaTitle": "Honda Civic EXL 2023", "metaDescription": "Honda Civic EXL 2.0 completo com baixa km.", "socialTitle": "Honda Civic EXL 2023", "socialDescription": "Honda Civic EXL 2.0 completo com baixa km.", "friendlyURL": "honda-civic-exl-2023", "base64Image": "data:image/jpeg;base64,/9j/4AAQ..." }, "accessories": [ "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "b2c3d4e5-f6a7-8901-bcde-f12345678901" ] }

Exemplo de Resposta

{ "isSuccess": true, "errors": null, "type": 200 "data": { "id": "uuid", } }

Dados Principais

CampoTipoDescricao
companyId*uuidID da empresa proprietaria.
vehicleType*intFixo: 2 (Motorcycle).
originalPrice*decimalPreco original.Maior que zero.
promotionalPricedecimal?Preco promocional.Opcional. Maior que zero e menor que originalPrice.
mileage*longQuilometragem.Nao pode ser negativa.
mainColor*stringCor principal.Max. 50 caracteres.
description*stringDescricao detalhada.Max. 3000 caracteres.
yearProduction*intAno de fabricacao.Deve ser ≤ modelYear.
modelYear*intAno do modelo.
plate*stringPlaca do veiculo.Max. 8 caracteres.
chassisstring?Numero do chassi.Max. 17 caracteres.
renavamstring?Numero do RENAVAM.
fipeCodestring?Codigo FIPE.
fuelTankCapacitydecimal?Capacidade do tanque (litros).
condition*enum?Condicao.1=New, 2=PreOwned
conservationStateenum?Conservacao.1=Excellent, 2=Good, 3=Average
specificationsstring?Especificacoes gerais (texto).Max. 3000 caracteres.
securitystring?Itens de seguranca.Max. 3000 caracteres.
technologystring?Itens de tecnologia.Max. 3000 caracteres.
storeCNPJstring?CNPJ da loja.14 digitos. CNPJ valido.

Objetos — brand*, model*

Motos nao utilizam o objeto version.

CampoTipoDescricao
brand.label*stringNome da marca.Max. 300 caracteres.
brand.value*intID FIPE da marca.Maior que 0.
model.label*stringNome do modelo.Max. 300 caracteres.
model.value*intID FIPE do modelo.Maior que 0.

vehicleSpecifications — Motocicleta

CampoTipoDescricao
brakeType*enumTipo de freio.0=DiscAndDisc, 1=DiscAndDrum, 2=DrumAndDisc, 3=DrumAndDrum
fuelType*enum?Combustivel.1=Flex, 2=Gasoline, 3=Diesel, 4=Ethanol, 5=Electric, 6=Hybrid, 7=GNV
cylinder**floatCilindradas.Obrigatorio. Maior que 0.
style*enum?Estilo da moto.Ver VehicleStyleTypeEnum (0-15).
motorTypeenum?Tipo do motor.0=2Tempos, 1=4Tempos, 2=Eletrico
refrigerationTypeenum?Refrigeracao.0=Ar, 1=Liquido
feedTypeenum?Alimentacao.0=Carburador, 1=InjecaoEletronica
starTypeenum?Tipo de partida.0=Eletrico, 1=Pedal, 2=PedalEEletrico
marchenum?Marchas.0=Two, 1=Three, 2=Four, 3=Five, 4=Six, 5=Seven, 6=Eight, 7=Automatic

Objetos Comuns — images[]*, advancedSettings, accessories

CampoTipoDescricao
images[].base64Image*stringImagem em Base64.
images[].order*intOrdem de exibicao.
images[].altTextImagestringTexto alternativo (SEO).
advancedSettings.metaTitlestring?Titulo SEO.
advancedSettings.metaDescriptionstring?Descricao SEO.
advancedSettings.socialTitlestring?Título para redes sociais.
advancedSettings.socialDescriptionstring?Descrição para redes sociais.
advancedSettings.friendlyURLstring?URL amigavel (slug).
advancedSettings.base64ImagestringImagem social em Base64.
accessoriesuuid[]?Lista de IDs de acessorios.

Exemplo de Request

{ "companyId": "550e8400-e29b-41d4-a716-446655440000", "vehicleType": 2, "originalPrice": 25000.00, "promotionalPrice": 23000.00, "mileage": 15000, "mainColor": "Vermelha", "description": "Honda CB 600F Hornet em excelente estado.", "yearProduction": 2020, "modelYear": 2021, "plate": "ABC1D23", "chassis": "9C2JC50001R000001", "condition": 2, "conservationState": 1, "brand": { "label": "HONDA", "value": 80, "vehicleType": 2 }, "model": { "label": "CB 600F HORNET", "value": 3921 }, "vehicleSpecifications": { "brakeType": 0, "fuelType": 2, "cylinder": 600.0, "style": 5, "motorType": 1, "refrigerationType": 1, "feedType": 1, "starType": 0, "march": 4 }, "specifications": "Motor 4 cilindros em linha, DOHC 16 valvulas...", "security": "Freios ABS, sensor de inclinacao...", "technology": "Painel digital LCD, iluminacao full LED...", "images": [ { "base64Image": "data:image/jpeg;base64,/9j/4AAQ...", "order": 0, "altTextImage": "Foto frontal" }, { "base64Image": "data:image/jpeg;base64,/9j/4AAQ...", "order": 1, "altTextImage": "Foto lateral" } ], "advancedSettings": { "metaTitle": "Honda CB 600F Hornet 2021", "metaDescription": "CB 600F Hornet em excelente estado.", "socialTitle": "Honda CB 600F Hornet 2021", "socialDescription": "CB 600F Hornet em excelente estado.", "friendlyURL": "honda-cb-600f-hornet-2021", "base64Image": "data:image/jpeg;base64,/9j/4AAQ..." }, "accessories": [ "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ] }

Exemplo de Resposta

{ "isSuccess": true, "errors": null, "type": 200 "data": { "id": "uuid", } }

Status Codes

201
400
401
403
500

Atualizar Veiculo

Atualiza informacoes de um veiculo existente, incluindo especificacoes, imagens e configuracoes avancadas.

PUT /api/PreOwnedVehicle
● Autenticacao obrigatoria
Diferenças em relação ao Create

O endpoint de Update utiliza os mesmos campos base do Create, com as seguintes diferencas:

  • id (Guid) — obrigatorio para identificar o veiculo
  • advancedSettings — obrigatorio e inclui campo id
  • vehicleSpecifications — inclui campo id
  • companyId — não é enviado no Update
  • images — não é enviado no Update (gerênciadas separadamente)

Campos Exclusivos do Update

Campo Tipo Descricao
id* uuid ID do veiculo a ser atualizado.Obrigatorio.

Dados Principais

Mesmos campos do Create

Todos os campos da secao "Dados Principais" do endpoint Create sao aceitos aqui, exceto companyId. Consulte a secao Criar Veiculo para detalhes de cada campo.

Objetos — advancedSettings*

Campo Tipo Descricao
advancedSettings.id* uuid ID do registro de configuracoes avancadas.
advancedSettings.metaTitle string? Titulo para SEO (meta tag).
advancedSettings.metaDescription string? Descricao para SEO (meta tag).
advancedSettings.socialTitle string? Titulo para compartilhamento social.
advancedSettings.socialDescription string? Descricao para compartilhamento social.
advancedSettings.friendlyURL string? URL amigavel (slug).
advancedSettings.base64Image string? Imagem social em Base64.Opcional no Update (nullable).

Objetos — vehicleSpecifications

Campo Tipo Descricao
vehicleSpecifications.id uuid ID do registro de especificacoes.

Os demais campos de vehicleSpecifications sao os mesmos do endpoint Create (brakeType, fuelType, doors, engineSize, etc.).

Status Codes

200
400
401
403
500

Exemplo

{ "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "originalPrice": 26000.00, "promotionalPrice": 24000.00, "mileage": 16000, "mainColor": "Vermelha", "description": "Honda CB 600F Hornet - revisoes em dia", "yearProduction": 2020, "modelYear": 2021, "plate": "ABC1D23", "vehicleType": 2, "condition": 2, "conservationState": 1, "brand": { "label": "HONDA", "value": 80, "vehicleType": 2 }, "model": { "label": "CB 600F HORNET", "value": 3921 }, "vehicleSpecifications": { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "brakeType": 0, "fuelType": 2, "cylinder": 600.0, "style": 5, "motorType": 1, "refrigerationType": 1, "feedType": 1, "starType": 0, "march": 4 }, "advancedSettings": { "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "metaTitle": "Honda CB 600F Hornet 2020", "metaDescription": "Compre sua Honda Hornet seminova", "friendlyURL": "honda-cb-600f-hornet-2020" }, "accessories": ["c3d4e5f6-a7b8-9012-cdef-123456789012"] }

Ativar Veiculo

Ativa um veiculo previamente desativado.

PATCH /api/PreOwnedVehicle/Activate?preOwnedVehicleId={id}
● Autenticacao obrigatoria

Query Parameters

Campo Tipo Descricao
preOwnedVehicleId* uuid ID do veiculo a ser ativado

Exemplo de Request

PATCH /api/PreOwnedVehicle/Activate?preOwnedVehicleId=550e8400-e29b-41d4-a716-446655440000
Authorization: Bearer SEU_TOKEN_AQUI

Exemplo de Resposta

{ "isSuccess": true, "errors": null, "type": 200 }

Status Codes

200
401
403
500

Desativar Veiculo

Desativa um veiculo sem remove-lo do sistema.

PATCH /api/PreOwnedVehicle/Deactivate?preOwnedVehicleId={id}
● Autenticacao obrigatoria

Query Parameters

Campo Tipo Descricao
preOwnedVehicleId* uuid ID do veiculo a ser desativado

Exemplo de Request

PATCH /api/PreOwnedVehicle/Deactivate?preOwnedVehicleId=550e8400-e29b-41d4-a716-446655440000
Authorization: Bearer SEU_TOKEN_AQUI

Exemplo de Resposta

{ "isSuccess": true, "errors": null, "type": 200 }

Status Codes

200
401
403
500

Excluir Veiculo

Remove permanentemente um veiculo do sistema.

DELETE /api/PreOwnedVehicle?preOwnedVehicleId={id}
● Autenticacao obrigatoria
Atencao

Esta operacao e irreversivel. O veiculo sera removido permanentemente do sistema.

Query Parameters

Campo Tipo Descricao
preOwnedVehicleId* uuid ID do veiculo a ser excluido

Exemplo de Request

DELETE /api/PreOwnedVehicle?preOwnedVehicleId=550e8400-e29b-41d4-a716-446655440000
Authorization: Bearer SEU_TOKEN_AQUI

Exemplo de Resposta

{ "isSuccess": true, "errors": null, "type": 200 }

Status Codes

200
401
403
500

Listar Lojas (Simplificado)

Retorna a lista simplificada de lojas vinculadas ao usuario autenticado, com filtros opcionais por empresa e CNPJ.

GET /api/StoreManagement/GetStoresSimplified
● Autenticacao obrigatoria

Query Parameters

Campo Tipo Descricao
companyId uuid? Filtra lojas de uma empresa especifica.Opcional.
cnpj string? Filtra por CNPJ da loja.Opcional.

Response — ReturnStoreManagementGetAllDTO[]

Campo Tipo Descricao
id uuid ID da loja.
name string Nome da loja.
address string Endereco da loja.
city string Cidade da loja.
phone string Telefone da loja.
active boolean Se a loja esta ativa.
slug string Slug da loja (URL amigavel).
cnpj string? CNPJ da loja.

Exemplo de Request

GET /api/StoreManagement/GetStoresSimplified
Authorization: Bearer SEU_TOKEN_AQUI

Exemplo de Resposta

{ "isSuccess": true, "errors": null, "type": 200, "data": [ { "id": "uuid", "name": "string", "address": "string", "city": "string", "phone": "string", "active": boolean, "slug": "string", "cnpj": "string?" }, ... ] }

Exemplo de Request filtrando pela empresa

GET /api/StoreManagement/GetStoresSimplified?companyId=550e8400-e29b-41d4-a716-446655440000
Authorization: Bearer SEU_TOKEN_AQUI

Exemplo de Resposta

{ "isSuccess": true, "errors": null, "type": 200, "data": [ { "id": "uuid", "name": "string", "address": "string", "city": "string", "phone": "string", "active": boolean, "slug": "string", "cnpj": "string?" }, ... ] }

Exemplo de Request filtrando pelo CNPJ

GET /api/StoreManagement/GetStoresSimplified?cnpj=70572921000104
Authorization: Bearer SEU_TOKEN_AQUI

Exemplo de Resposta

{ "isSuccess": true, "errors": null, "type": 200, "data": [ { "id": "uuid", "name": "string", "address": "string", "city": "string", "phone": "string", "active": boolean, "slug": "string", "cnpj": "string?" } ] }

Status Codes

200
400
401
403
500

Marcas de Veiculos

Lista as marcas de veiculos disponiveis com seus respectivos IDs baseados na tabela FIPE.

POST /api/Brand/GetAllBrands
● Autenticacao obrigatoria

Request Body

Campo Tipo Descricao
vehicleType* integer Tipo do veiculo 1 = Automoveis, 2 = Motocicletas, 3 = Caminhoes e Micro-onibus

Exemplo de Request

{ "vehicleType": 2 }

Exemplo de Resposta

{ "isSuccess": true, "errors": [], "type": 200, "data": [ { "label": "HONDA", "value": 80 }, { "label": "YAMAHA", "value": 101 }, ... ] }

Status Codes

200
400
401
403
500

Marcas Populares — Motocicletas (vehicleType: 2)

Value Label
80Honda
101Yamaha
99Suzuki
85Kawasaki
67BMW
77Harley-Davidson
74Ducati
100Triumph
87KTM
192Royal Enfield

Marcas Populares — Automoveis (vehicleType: 1)

Value Label
23GM - Chevrolet
59VW - VolksWagen
21Fiat
56Toyota
26Hyundai
29Jeep
48Renault
25Honda
43Nissan
22Ford
IDs variam por tipo de veiculo

A mesma marca (ex: Honda) possui IDs distintos para motos (80) e carros (25). Sempre use o value retornado pela API para o vehicleType correto.

Exemplos

# Marcas de motocicletas
curl https://apihml.revvotech.com.br/api/Brand/GetAllBrands \
  -X POST \
  -H 'Authorization: Bearer SEU_TOKEN_AQUI' \
  -H 'Content-Type: application/json' \
  -d '{ "vehicleType": 2 }'

# Marcas de automoveis
curl https://apihml.revvotech.com.br/api/Brand/GetAllBrands \
  -X POST \
  -H 'Authorization: Bearer SEU_TOKEN_AQUI' \
  -H 'Content-Type: application/json' \
  -d '{ "vehicleType": 1 }'
const getBrands = async (vehicleType) => {
  const response = await fetch('https://apihml.revvotech.com.br/api/Brand/GetAllBrands', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${token}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ vehicleType })
  });

  const data = await response.json();
  if (data.isSuccess) return data.data;
};

// Motocicletas
const motos = await getBrands(2);
// Automoveis
const carros = await getBrands(1);

Listar acessórios

Retorna a lista de acessórios disponíveis, com filtro pelo tipo de veículo.

GET /api/VehicleAccessories/GetAll
● Autenticacao obrigatória

Query Parameters

Campo Tipo Descrição
vehicleType* integer Tipo do veiculo 1 = Automóveis, 2 = Motocicletas

Response — ReturnVehicleAccessoriesDTO[]

Campo Tipo Descrição
id uuid ID do acessório.
accessoryName string Nome do acessório.

Exemplo de Request

GET /api/VehicleAccessories/GetAll?vehicleType=1
Authorization: Bearer SEU_TOKEN_AQUI

Exemplo de Resposta

{ "isSuccess": true, "errors": null, "type": 200, "data": [ { "id": "uuid", "accessoryName": "string", }, ... ] }

Status Codes

200
400
401
403
500

Schemas de Dados

Estruturas de dados utilizadas pela API.

Result (Base)
{ "isSuccess": boolean, "errors": string[] | null, "type": integer }
PagedInfo
{ "page": integer, "pageSize": integer, "totalCount": integer, "totalPages": integer }
BrandDTO
{ "label": "string", "value": integer, "vehicleType": VehicleTypeFipeEnum }
ModelAndVersionDTO
{ "label": "string" | null, "value": integer | null }
CreateImageAltTextDTO
{ "base64Image": "string", "order": integer, "altTextImage": "string" }
VehicleSpecificationsDTO
{ "brakeType": enum, "fuelType": enum?, "doors": enum?, "engineSize": decimal?, "power": int?, "torque": decimal?, "tractionControl": enum?, "seatingCapacity": int?, "trunkCapacity": int?, "cylinder": float?, "style": enum?, "motorType": enum?, "refrigerationType": enum?, "feedType": enum?, "starType": enum?, "march": enum?, "bodyType": enum?, "transmission": enum? }
CreateAdvancedSettingsDTO
{ "metaTitle": "string?", "metaDescription": "string?", "socialTitle": "string?", "socialDescription": "string?", "friendlyURL": "string?", "base64Image": "string" }
UpdateAdvancedSettingsDTO
{ "id": "uuid", "metaTitle": "string?", "metaDescription": "string?", "socialTitle": "string?", "socialDescription": "string?", "friendlyURL": "string?", "base64Image": "string?" }
Login Response
{ "token": "string (JWT)", "refreshToken": "string", "expiration": "string" }

Enumerações

Valores possiveis para campos enum da API.

VehicleTypeFipeEnum
1 Car (Carro)
2 Motorcycle (Moto)
3 Truck (Caminhao)
4 Utility (Utilitario)
5 Heavy (Pesado)
6 Nautical (Nautico)
VehicleConditionStateEnum
1 New (Novo)
2 Used (Usado)
3 PreOwned (Seminovo)
4 ZeroKm (Zero KM)
VehicleConservationStateEnum
1 Excellent (Excelente)
2 Good (Bom)
3 Average (Medio)
VehicleFuelTypeEnum
1 Flex
2 Gasoline (Gasolina)
3 Diesel
4 Ethanol (Etanol)
5 Electric (Eletrico)
6 Hybrid (Hibrido)
7 GNV
VehicleTransmissionEnum
1 Manual
2 Automatic (Automatico)
3 Automated (Automatizado)
4 CVT
5 SemiAutomatic
VehicleBodyTypeEnum
1 Hatchback
2 Sedan
3 SUV
4 Pickup
5 Van
6 Truck (Caminhao)
7 Convertible (Conversivel)
TractionControlEnum
0 FrontWheelDrive (Dianteira)
1 RearWheelDrive (Traseira)
2 AllWheelDrive (Integral)
3 FourWheelDrive (4x4)
NumberDoorsEnum
1 1 Porta
2 2 Portas
3 3 Portas
4 4 Portas
5 5 Portas
6 6 Portas
VehicleStyleTypeEnum
0 Ciclomotor
1 Custom
2 Eletrica
3 Esportiva
4 Mini Cross
5 Naked
6 Off-Road
7 Quadriciclo
8 Scooter
9 Street
10 Supermoto
11 Touring
12 Dupla Proposta
13 Trial
14 Triciclo
15 Utilitaria
MotorTypeEnum
0 2 Tempos
1 4 Tempos
2 Eletrico
RefrigerationTypeEnum
0 Ar
1 Liquido
StartVehicleTypeEnum
0 Eletrico
1 Pedal
2 Pedal e Eletrico
BrakeVehicleTypeEnum
0 Disco e Disco
1 Disco e Tambor
2 Tambor e Disco
3 Tambor e Tambor
FeedVehicleTypeEnum
0 Carburador
1 Injecao Eletronica
QntMarchEnum
0 Two (2 Marchas)
1 Three (3 Marchas)
2 Four (4 Marchas)
3 Five (5 Marchas)
4 Six (6 Marchas)
5 Seven (7 Marchas)
6 Eight (8 Marchas)
7 Automatic
HTTP Status Codes
200 OK
201 Created
204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
429 Too Many Requests
500 Internal Server Error