Receita: dar baixa em atividades em lote
Marcar várias tarefas de manutenção preventiva como realizadas de uma só vez, em uma única chamada.
Pré-requisitos
- Token JWT válido (ver Autenticação).
- Os IDs das tarefas a baixar (descobertos no Passo 1).
- Base URL produção:
https://lighthousev2.lkp.app.br· sandbox:https://lighthouse.lkp.dev.br.
Os exemplos -d '{...}' abaixo são bash/POSIX. No PowerShell, use o padrão de arquivo — ver Primeiros passos → PowerShell.
Passo 1 — Listar as atividades agendadas
Encontre as tarefas pendentes para o site/período. Parâmetros obrigatórios: SelectedDate e StatusId. Envie EmpresaId conforme o contrato do endpoint (ver referência).
curl "https://lighthousev2.lkp.app.br/v1/atividades?SelectedDate=2026-06-29&StatusId=1&SiteId=456" \
-H "Authorization: Bearer SEU_TOKEN"
GET /v1/atividades exige StatusId (ex.: StatusId=1) e uma referência de data (SelectedDate + DiasAdicionais, faixa 1–40). Com um usuário escopado a uma única empresa (Administrador/Operacional — o tipo padrão de qualquer integração), a listagem funciona normalmente. (Observação técnica: tokens com acesso a múltiplas empresas simultaneamente podem encontrar erro por escopo de unidade não resolvido — não é o caso do integrador padrão, que sempre opera escopado a uma única empresa.)
Filtros opcionais relevantes: ExecutorId, AreaId, GrupoAreaId, PlanoAtividadeId, DiasAdicionais, PageIndex, PageSize (consulte a referência para a lista completa). Cada item traz seu id de tarefa.
Passo 2 — (Opcional) Conferir informações da baixa
Antes de baixar, valide os dados das tarefas selecionadas:
curl -X POST "https://lighthousev2.lkp.app.br/v2/atividades/baixa/list" \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '[101, 102, 103]'
(o corpo é a lista de IDs de tarefa).
Passo 3 — Dar baixa em lote
Esta receita usa PUT /v2/atividades/baixa (BaixaAtividadeEmLoteCommand) — contrato confirmado a partir dos nomes reais do DTO, não pela mensagem de erro (que é enganosa, ver abaixo).
PUT /v2/atividades/baixa (BaixaAtividadeEmLoteCommand) — o contrato não é intuitivo:
- O array de tarefas é
ParametrosBaixaAtividades— nãoTarefasnemtarefasIds. A mensagem de erro do backend fala em "Tarefas", mas isso é só o rótulo da mensagem; o campo do JSON éParametrosBaixaAtividades. EnviarTarefasresulta em400dizendo que a tarefa "deve ser informada" mesmo com ela preenchida. - Cada item do array:
{ "TarefaId": <int>, "Realizada": <bool> }.Realizadaprecisa sertrueexplícito — se omitir, a atividade é baixada como não realizada. - Campos de raiz obrigatórios:
SiteIdePlataforma(além deDataRealizada).
curl -X PUT "https://lighthousev2.lkp.app.br/v2/atividades/baixa" \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"SiteId": 32552,
"DataRealizada": "2026-05-15T10:00:00",
"Plataforma": 1,
"ParametrosBaixaAtividades": [
{ "TarefaId": 1030080657, "Realizada": true }
]
}'
Use POST /v2/atividades/baixa/info (body: array de IDs de tarefa) para obter a estrutura de referência antes de montar a baixa: retorna atividades[].tarefaId, aplicacaoPlanoAtividade, aplicacao.site, tempoTotalPrevisto, qrCodeObrigatorio.
Há um defeito de backend em correção: a baixa grava a plataforma a partir do token, e tokens obtidos pelo fluxo padrão de autenticação podem gerar 500 (conflito de FK de plataforma). Até a correção, a baixa em lote via API pode não completar mesmo com o payload correto acima.
PUT /v1/atividades/baixa (BaixaAtividadeCommand — tarefasIds e plataforma obrigatórios) existe como rota alternativa, com contrato próprio e incompatível — não são intercambiáveis; confira qual versão sua integração usa antes de montar o payload.
Passo 4 — (Opcional) Registrar medições e fotos
Se as atividades exigem leitura/medição ou comprovação fotográfica:
Medições — SaveMedicoesAtividadeCommand. Campos obrigatórios: tarefaId e medicoes (array de MedicaoAtividadeCommand):
curl -X POST "https://lighthousev2.lkp.app.br/v1/atividades/medicoes" \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"tarefaId": 101,
"medicoes": [
{
"tarefaMedicaoId": 10,
"atividadeMedicaoId": 20,
"valorMedicao": 42.5
}
]
}'
Fotos/Observação — SaveFotoObservacaoAtividadeCommand (nenhum campo é obrigatório, mas tarefaId é a chave de vínculo):
curl -X POST "https://lighthousev2.lkp.app.br/v1/atividades/fotosobservacao" \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"empresaId": 123,
"tarefaId": 101,
"observacao": "Lubrificação aplicada conforme plano",
"fotos": []
}'
Resumo do fluxo
listar atividades (SelectedDate+StatusId) → (conferir) → PUT baixa em lote v2 (SiteId+Plataforma+ParametrosBaixaAtividades[]) → (medições/fotos)
Dicas para IA / integração
- Consulte o Glossário de IDs e enums para os valores válidos de
statusId,plataforma,justificativaNaoRealizadoeconformidade. - A baixa em lote v2 é uma única chamada com
ParametrosBaixaAtividadescomo array — não faça um loop de chamadas individuais. Não confunda comTarefas/tarefasIds(nomes de outros contratos). - Cada item de
ParametrosBaixaAtividadesprecisa deRealizada: trueexplícito para marcar como realizada. SiteIdePlataformasão obrigatórios emPUT /v2/atividades/baixa— semSiteId,"Unidade deve ser informada".SelectedDateeStatusIdsão parâmetros obrigatórios emGET /v1/atividades— omiti-los retorna erro de validação.statusIdejustificativaNaoRealizadosão códigos de negócio: para marcar como "não realizado", informe a justificativa (consulteGET /v1/atividades/justificativas).tempoTotalé em minutos.- Endpoints de escrita afetam dados reais — teste no ambiente Sandbox.