API Engenharia — projeto técnico, visitas e homologação
Referência de Engenharia para integrar as operações descritas abaixo.
Guia principal e downloads · Exemplos · Endpoints
Índice clicável
Projetos de engenharia — ProjetosEngenharia · Visitas técnicas — VisitaTecnica · Homologação e vistoria — HomologacaoVistoria · Status do projeto técnico — StatusProjetoEngenharia · Automações do projeto técnico — AutomacoesStatusProjetoEngenharia · Automações de visita técnica — AutomacaoStatusVisitaTecnica · Automações de homologação — AutomacoesStatusHomologacaoVistoria · Unidades consumidoras — UnidadeConsumidora · Concessionárias — Concessionaria
Como usar esta referência
API central: https://{tenant}.api.groner.app. Use API_URL com o host da empresa, sem /api. Envie Bearer. O middleware retorna o envelope Content; tabelas avançadas, downloads e 204 possuem transporte próprio. A operação e a função do usuário determinam o acesso.
Substitua tenant/token pelo ambiente autorizado e IDs de exemplo pelos cadastros reais. Os comandos são Bash; no PowerShell use curl.exe e adapte variáveis e continuação de linha.
Recursos compartilhados: a organização segue a finalidade principal da operação, não exclusividade de produto. Um client consumir um controller não significa que todas as actions desse controller sejam liberadas para aquele usuário. Consulte guard e contrato.
Exemplos de requisição e resposta
Consultar o resumo dos projetos de engenharia
Requisição completa (Bash):
curl --request GET \
--url "$API_URL/api/AbaComplementar/ProjetosEngenharia/Summary" \
--header "Authorization: Bearer $TOKEN" \
--header "Accept: application/json"Resposta ilustrativa — HTTP 200:
{
"Version": "1.0.0.0",
"StatusCode": 200,
"Message": "Requisição efetuada com suceesso.",
"Content": {
"totalProjetos": 0,
"totalAprovados": 0,
"totalPendentes": 0,
"totalCancelados": 0,
"totalReprovados": 0,
"totalAguardando": 0,
"valorTotal": 0,
"valorAguardando": 0,
"valorPendente": 0,
"valorCancelado": 0,
"valorReprovado": 0,
"valorAprovado": 0,
"totalEmAndamento": 0,
"valorEmAndamento": 0
}
}O DTO de criação de projeto de engenharia recebe ProjetoId e StatusId opcional. O status técnico é independente de StatusProjeto comercial. A criação exige negócio existente e status de engenharia configurado. Visita técnica e homologação são processos técnicos; instalação e OS têm referência própria em Serviços/OS.
Referência dos endpoints
Projetos de engenharia — ProjetosEngenharia
Uso encontrado nos clients: Groner light. Compartilhamento não amplia permissões.
GET /api/AbaComplementar/ProjetosEngenharia/{id}
path id: long.
Retorno declarado: Task<ActionResult<dynamic>>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
GET /api/AbaComplementar/ProjetosEngenharia
query projetoId: long.
Retorno declarado: Task<ActionResult<dynamic>>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
POST /api/AbaComplementar/ProjetosEngenharia
body dto: ProjetoEngenhariaInputDTO — ProjetoEngenhariaInputDTO.
Retorno declarado: Task<IActionResult>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
PUT /api/AbaComplementar/ProjetosEngenharia/{id}
path id: long; body dto: EditarPropriedadeInputDTO — EditarPropriedadeInputDTO.
Retorno declarado: Task<ActionResult<dynamic>>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
GET /api/AbaComplementar/ProjetosEngenharia/Lista
query filtro: FiltroProjetoEngenhariaInputDTO — FiltroProjetoEngenhariaInputDTO; query pagingParams: PagingParams.
Retorno declarado: Task<ActionResult<PagedList<dynamic>>>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
GET /api/AbaComplementar/ProjetosEngenharia/CardsIniciais
query filtro: FiltroProjetoEngenhariaInputDTO — FiltroProjetoEngenhariaInputDTO; query pageSize: int (padrão 10).
Retorno declarado: Task<ActionResult<List<KanbanStatusProjetoEngenhariaDTO>>>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
DELETE /api/AbaComplementar/ProjetosEngenharia/{id}
path id: long.
Retorno declarado: Task. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
GET /api/AbaComplementar/ProjetosEngenharia/Summary
query filtro: FiltroProjetoEngenhariaInputDTO — FiltroProjetoEngenhariaInputDTO.
Retorno declarado: Task<SummaryProjetoEngenhariaDTO>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
GET /api/AbaComplementar/ProjetosEngenharia/ResumoPorProjetista
query filtro: FiltroProjetoEngenhariaInputDTO — FiltroProjetoEngenhariaInputDTO.
Retorno declarado: Task<List<ResumoProjetistaProjEngDTO>>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
GET /api/AbaComplementar/ProjetosEngenharia/TabelaAvancada
query loadOptions: DataSourceLoadOptions.
Retorno declarado: Task<LoadResult>. Acesso: Acesso sujeito às regras do ambiente; use a credencial da integração e confirme a permissão desta operação.
Visitas técnicas — VisitaTecnica
Uso encontrado nos clients: Groner light, Groner os. Compartilhamento não amplia permissões.
GET /api/AbaComplementar/VisitaTecnica/{id}
path id: long.
Retorno declarado: Task<dynamic>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
POST /api/AbaComplementar/VisitaTecnica
body dto: VisitaTecnicaInputDTO — VisitaTecnicaInputDTO.
Retorno declarado: Task<ActionResult<dynamic>>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
PUT /api/AbaComplementar/VisitaTecnica
query id: long; body dto: EditarPropriedadeInputDTO — EditarPropriedadeInputDTO.
Retorno declarado: Task<ActionResult<dynamic>>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
GET /api/AbaComplementar/VisitaTecnica/Lista
query pagingParams: PagingParams; query filtro: FiltroVisitaTecnicaInputDTO — FiltroVisitaTecnicaInputDTO.
Retorno declarado: Task<PagedList<dynamic>>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
GET /api/AbaComplementar/VisitaTecnica/Summary
query filtro: FiltroVisitaTecnicaInputDTO — FiltroVisitaTecnicaInputDTO.
Retorno declarado: Task<SummaryVisitaTecnicaDTO>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
DELETE /api/AbaComplementar/VisitaTecnica/{id}
path id: long.
Retorno declarado: Task. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
GET /api/AbaComplementar/VisitaTecnica/TabelaAvancada
query loadOptions: DataSourceLoadOptions.
Retorno declarado: Task<LoadResult>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
Homologação e vistoria — HomologacaoVistoria
Uso encontrado nos clients: Groner light. Compartilhamento não amplia permissões.
GET /api/AbaComplementar/HomologacaoVistoria/{id}
path id: long.
Retorno declarado: Task<ActionResult<HomologacaoVistoriaOutputDTO>>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
GET /api/AbaComplementar/HomologacaoVistoria
query projetoId: long.
Retorno declarado: Task<ActionResult<HomologacaoVistoriaOutputDTO>>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
GET /api/AbaComplementar/HomologacaoVistoria/Lista
query query: string; query pagingParams: PagingParams.
Retorno declarado: Task<ActionResult<Safeleads.Services.PagedList<dynamic>>>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
POST /api/AbaComplementar/HomologacaoVistoria
body dto: HomologacaoVistoriaInputDTO — HomologacaoVistoriaInputDTO.
Retorno declarado: Task<IActionResult>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
PUT /api/AbaComplementar/HomologacaoVistoria/{id}
path id: long; body dto: EditarPropriedadeInputDTO — EditarPropriedadeInputDTO.
Retorno declarado: Task<ActionResult<HomologacaoVistoriaOutputDTO>>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
GET /api/AbaComplementar/HomologacaoVistoria/TabelaAvancada
query loadOptions: DataSourceLoadOptions.
Retorno declarado: Task<LoadResult>. Acesso: Bearer; perfis declarados: Administrador,Supervisor,PreVendedor,Vendedor,Gerente,Tecnico.
Status do projeto técnico — StatusProjetoEngenharia
Uso encontrado nos clients: Groner light. Compartilhamento não amplia permissões.
GET /api/StatusProjetoEngenharia
query filtro: QueryOnlyFiltroInputDTO — QueryOnlyFiltroInputDTO; query pagingParams: PagingParams.
Retorno declarado: ActionResult<PagedList<StatusProjetoEngenharia>>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Vendedor,Tecnico,Supervisor,Gerente.
GET /api/StatusProjetoEngenharia/{id}
path id: long.
Retorno declarado: ActionResult<StatusProjetoEngenharia>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Vendedor,Tecnico,Supervisor,Gerente.
POST /api/StatusProjetoEngenharia
body model: NomeInputDto — NomeInputDto.
Retorno declarado: Task<ActionResult<StatusProjetoEngenharia>>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Vendedor,Tecnico,Supervisor,Gerente.
PUT /api/StatusProjetoEngenharia/{id}
path id: long; body model: EditarPropriedadeInputDTO — EditarPropriedadeInputDTO.
Retorno declarado: Task<ActionResult<StatusProjetoEngenharia>>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Vendedor,Tecnico,Supervisor,Gerente.
DELETE /api/StatusProjetoEngenharia/{id}
path id: long.
Retorno declarado: Task. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Vendedor,Tecnico,Supervisor,Gerente.
GET /api/StatusProjetoEngenharia/Tipos
Sem parâmetros de cliente declarados na assinatura; confira transportes especiais na operação..
Retorno declarado: List<TipoStatusEnumProjetoEngenharia>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Vendedor,Tecnico,Supervisor,Gerente.
Automações do projeto técnico — AutomacoesStatusProjetoEngenharia
Uso encontrado nos clients: Groner light. Compartilhamento não amplia permissões.
GET /api/AutomacoesStatusProjetoEngenharia
query pagingParams: PagingParams.
Retorno declarado: ActionResult<PagedList<AutomacaoStatusProjetoEngenharia>>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Vendedor,Tecnico,Gerente,Supervisor.
POST /api/AutomacoesStatusProjetoEngenharia
body model: AddAutomacaoStatusProjetoEngenhariaInputDTO — AddAutomacaoStatusProjetoEngenhariaInputDTO.
Retorno declarado: Task<ActionResult<AutomacaoStatusProjetoEngenharia>>. Acesso: Bearer; perfis declarados: Administrador.
PUT /api/AutomacoesStatusProjetoEngenharia/{id}
path id: long; body model: EditarPropriedadeInputDTO — EditarPropriedadeInputDTO.
Retorno declarado: Task<ActionResult<AutomacaoStatusProjetoEngenharia>>. Acesso: Bearer; perfis declarados: Administrador.
DELETE /api/AutomacoesStatusProjetoEngenharia/{id}
path id: long.
Retorno declarado: Task. Acesso: Bearer; perfis declarados: Administrador.
Automações de visita técnica — AutomacaoStatusVisitaTecnica
Uso encontrado nos clients: Groner light. Compartilhamento não amplia permissões.
GET /api/AutomacaoStatusVisitaTecnica
Sem parâmetros de cliente declarados na assinatura; confira transportes especiais na operação..
Retorno declarado: Task<ActionResult<List<AutomacaoStatusVisitaTecnica>>>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Vendedor,Tecnico,Gerente,Supervisor.
GET /api/AutomacaoStatusVisitaTecnica/campos
Sem parâmetros de cliente declarados na assinatura; confira transportes especiais na operação..
Retorno declarado: ActionResult<List<CampoCondicaoVisitaOutputDTO>>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Vendedor,Tecnico,Gerente,Supervisor.
POST /api/AutomacaoStatusVisitaTecnica
body model: AddAutomacaoStatusVisitaTecnicaInputDTO — AddAutomacaoStatusVisitaTecnicaInputDTO.
Retorno declarado: Task<ActionResult<AutomacaoStatusVisitaTecnica>>. Acesso: Bearer; perfis declarados: Administrador.
PUT /api/AutomacaoStatusVisitaTecnica/{id}
path id: long; body model: EditarPropriedadeInputDTO — EditarPropriedadeInputDTO.
Retorno declarado: Task<ActionResult<AutomacaoStatusVisitaTecnica>>. Acesso: Bearer; perfis declarados: Administrador.
DELETE /api/AutomacaoStatusVisitaTecnica/{id}
path id: long.
Retorno declarado: Task<ActionResult>. Acesso: Bearer; perfis declarados: Administrador.
Automações de homologação — AutomacoesStatusHomologacaoVistoria
GET /api/AutomacoesStatusHomologacaoVistoria
query pagingParams: PagingParams.
Retorno declarado: ActionResult<PagedList<AutomacaoStatusHomologacaoVistoria>>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Vendedor,Tecnico,Gerente,Supervisor.
POST /api/AutomacoesStatusHomologacaoVistoria
body model: AddAutomacaoStatusHomologacaoVistoriaInputDTO — AddAutomacaoStatusHomologacaoVistoriaInputDTO.
Retorno declarado: Task<ActionResult<AutomacaoStatusHomologacaoVistoria>>. Acesso: Bearer; perfis declarados: Administrador.
PUT /api/AutomacoesStatusHomologacaoVistoria/{id}
path id: long; body model: EditarPropriedadeInputDTO — EditarPropriedadeInputDTO.
Retorno declarado: Task<ActionResult<AutomacaoStatusHomologacaoVistoria>>. Acesso: Bearer; perfis declarados: Administrador.
DELETE /api/AutomacoesStatusHomologacaoVistoria/{id}
path id: long.
Retorno declarado: Task. Acesso: Bearer; perfis declarados: Administrador.
Unidades consumidoras — UnidadeConsumidora
Uso encontrado nos clients: Groner light. Compartilhamento não amplia permissões.
POST /api/UnidadeConsumidora/{id}/AnalisarContaIA
path id: long.
Retorno declarado: Task<ActionResult<Safeleads.Models.DTO.Output.ContaEnergiaIAResultadoDTO>>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Supervisor,Vendedor,Tecnico,Gerente.
GET /api/UnidadeConsumidora/Projeto/{id}
path id: long; query filtro: QueryFiltroInputDTO — QueryFiltroInputDTO; query pagingParams: PagingParams.
Retorno declarado: ActionResult<PagedList<UnidadeConsumidora>>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Supervisor,Vendedor,Tecnico, Gerente.
GET /api/UnidadeConsumidora/{id}
path id: long.
Retorno declarado: Task<ActionResult<UnidadeConsumidora>>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Supervisor,Vendedor,Tecnico, Gerente.
POST /api/UnidadeConsumidora
body model: UnidadeConsumidoraInputDTO — UnidadeConsumidoraInputDTO.
Retorno declarado: Task<ActionResult<UnidadeConsumidora>>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Supervisor,Vendedor,Tecnico, Gerente.
PUT /api/UnidadeConsumidora/{id}
path id: long; body model: EditarPropriedadeInputDTO — EditarPropriedadeInputDTO.
Retorno declarado: Task<ActionResult<UnidadeConsumidora>>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Supervisor,Vendedor,Tecnico, Gerente.
DELETE /api/UnidadeConsumidora/{id}
path id: long.
Retorno declarado: Task. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Supervisor,Vendedor,Tecnico, Gerente.
POST /api/UnidadeConsumidora/AdicionarConsumo12Meses/{id}
path id: long; query consumo: double; query ponta: bool (padrão false).
Retorno declarado: Task<ActionResult<dynamic>>. Acesso: Acesso sujeito às regras do ambiente; use a credencial da integração e confirme a permissão desta operação.
POST /api/UnidadeConsumidora/EditarConsumo12Meses/{id}/Mes/{mes}
path id: long; path mes: int; query consumo: double; query ponta: bool (padrão false).
Retorno declarado: Task<ActionResult<dynamic>>. Acesso: Acesso sujeito às regras do ambiente; use a credencial da integração e confirme a permissão desta operação.
POST /api/UnidadeConsumidora/RemoverConsumo12Meses/{id}
path id: long; query consumo: double; query ponta: bool (padrão false).
Retorno declarado: Task<ActionResult<dynamic>>. Acesso: Acesso sujeito às regras do ambiente; use a credencial da integração e confirme a permissão desta operação.
GET /api/UnidadeConsumidora/CalcularMediaConsumo/{id}
path id: long.
Retorno declarado: Task<ActionResult<dynamic>>. Acesso: Acesso sujeito às regras do ambiente; use a credencial da integração e confirme a permissão desta operação.
PUT /api/UnidadeConsumidora/{id}/AdicionarContaEnergia/{arquivoId}
path id: long; path arquivoId: long.
Retorno declarado: Task<ActionResult<UnidadeConsumidora>>. Acesso: Acesso sujeito às regras do ambiente; use a credencial da integração e confirme a permissão desta operação.
PUT /api/UnidadeConsumidora/{id}/RemoverContaEnergia
path id: long.
Retorno declarado: Task<ActionResult<UnidadeConsumidora>>. Acesso: Acesso sujeito às regras do ambiente; use a credencial da integração e confirme a permissão desta operação.
Concessionárias — Concessionaria
Uso encontrado nos clients: Groner light, Groner monitoramento-front. Compartilhamento não amplia permissões.
GET /api/Concessionaria
query filtro: QueryFiltroInputDTO — QueryFiltroInputDTO; query pagingParams: PagingParams.
Retorno declarado: ActionResult<PagedList<Concessionaria>>. Acesso: Bearer; perfis declarados: Administrador,PreVendedor,Supervisor,Vendedor,Tecnico, Gerente.
GET /api/Concessionaria/{id}
path id: long.
Retorno declarado: Task<ActionResult<Concessionaria>>. Acesso: Bearer; perfis declarados: Administrador.
POST /api/Concessionaria
body model: ConcessionariaInputDTO — ConcessionariaInputDTO.
Retorno declarado: Task<ActionResult<Concessionaria>>. Acesso: Bearer; perfis declarados: Administrador.
POST /api/Concessionaria/AddLista
body model: List<ConcessionariaInputDTO> — ConcessionariaInputDTO.
Retorno declarado: Task<ActionResult>. Acesso: Bearer; perfis declarados: Administrador.
PUT /api/Concessionaria/{id}
path id: long; body model: EditarPropriedadeInputDTO — EditarPropriedadeInputDTO.
Retorno declarado: Task<ActionResult<Concessionaria>>. Acesso: Bearer; perfis declarados: Administrador.
DELETE /api/Concessionaria/{id}
path id: long.
Retorno declarado: Task. Acesso: Bearer; perfis declarados: Administrador.
POST /api/Concessionaria/ExcluirConcessionarias
body ids: long[].
Retorno declarado: Task<List<long>>. Acesso: Bearer; perfis declarados: Administrador.
POST /api/Concessionaria/EditarEmMassa
body body: EditarConcessionariasEmMassaInputDTO — EditarConcessionariasEmMassaInputDTO.
Retorno declarado: Task<string>. Acesso: Bearer; perfis declarados: Administrador.
Veja também
Atualizado em: 14/10/2026
Obrigado!
