V2
Vendas
Nova Venda

Integração com API de Nova Venda.

Este guia explica como utilizar a API de criação de uma nova venda para as concessionárias homologadas no MOTOR de recorrência.

🔐 Autenticação

A API exige autenticação via token JWT no cabeçalho da requisição:

Authorization: Bearer {token}

📬 Endpoint

POST /sales
Content-Type: application/json
Authorization: Bearer {token}

📥 Corpo da Requisição

{
  "clientId": "string",
  "productId": 101,
  "installationId": "abc123",
  "dealershipId": 11,
  "providerId": 3,
  "externalId": null,
  "shouldChargeFee": true,
  "shouldGiveDiscount": false,
  "startChargingAt": "2025-06-01",
  "isClientFinancialResponsible": true,
  "financialResponsible": {
    "cpf": "12345678900",
    "rg": "MG123456",
    "numberOnDealership": "987654",
    "firstName": "João",
    "lastName": "Silva",
    "email": "joao@email.com",
    "birthdate": "1980-05-01",
    "enrollment": "998877",
    "phoneNumber": "11999999999"
  }
}
O campo financialResponsible só deve ser enviado se isClientFinancialResponsible for false.

🏷️ dealershipId (Concessionárias)

NomeDealershipIdTipoCompanhia
Energisa1numberENERGISA
Leste Paulista2numberCPFL
Mococa3numberCPFL
Santa Cruz4numberCPFL
Jaguari5numberCPFL
RGE6numberCPFL
RGE SUL7numberCPFL
Sul Paulista8numberCPFL
COELBA11numberNEOENERGIA
COSERN12numberNEOENERGIA
ELEKTRO13numberNEOENERGIA
PERNAMBUCO14numberNEOENERGIA

✅ Regras Importantes

  • Se isClientFinancialResponsible for false, o campo financialResponsible é obrigatório
  • Se isClientFinancialResponsible for true, o campo financialResponsible não deve ser enviado
  • O campo startChargingAt define a data de início da cobrança (opcional)

🧾 Exemplo – Sem Responsável Financeiro

{
  "clientId": "cli-001",
  "productId": 202,
  "installationId": "abc-123",
  "dealershipId": 12,
  "providerId": 3,
  "externalId": null,
  "shouldChargeFee": false,
  "isClientFinancialResponsible": true
}

🧾 Exemplo – Com Responsável Financeiro

{
  "clientId": "cli-002",
  "productId": 303,
  "installationId": "xyz-789",
  "dealershipId": 13,
  "providerId": 3,
  "externalId": null,
  "shouldChargeFee": true,
  "isClientFinancialResponsible": false,
  "financialResponsible": {
    "cpf": "12345678900",
    "rg": "SP998877",
    "numberOnDealership": "654321",
    "firstName": "Maria",
    "lastName": "Souza",
    "email": "maria@email.com",
    "birthdate": "1990-01-01",
    "enrollment": "112233",
    "phoneNumber": "11988887777"
  }
}

📤 Resposta de Sucesso

{
  "message": "Sale created successfully!",
  "saleId": "uuid-gerado-pela-api"
}

❌ Erros Comuns

CódigoMotivo
400Corpo da requisição ausente ou inválido
401Token inválido ou ausente
422Campo financialResponsible enviado indevidamente ou omitido de forma incorreta

🛠️ Suporte

Entre em contato com o time responsável pela API de vendas caso surjam dúvidas ou erros inesperados.