Pular para o conteúdo

Sincronizar o patrimônio

O bem entra pelo ERP (a nota de compra), ganha etiqueta, muda de mãos e de sala, um dia é baixado — e uma vez por ano alguém confere se tudo está onde o cadastro diz. A integração mantém o cadastro de bens da TAI alinhado com o do ERP e deixa um coletor ou app de leitura de código de barras fazer o inventário.

Quando usarBens comprados no ERP precisam aparecer no patrimônio; um coletor de etiquetas faz o inventário físico; a contabilidade quer os dados de aquisição e depreciação
PortaREST · Webhook (o caminho de volta) · Agente (MCP)
Você vai precisarMódulo GESTAO_PATRIMONIAL; permissão PATRIMONIO com nível de edição; token JWT
ERP ── GET /patrimonio/numero/{numero} ── POST ou PATCH /patrimonio ──▶ TAI (cadastro)
ERP ── POST /patrimonio/movimentacao/transferir ──▶ TAI (mudou de mãos)
ERP ── POST /patrimonio/{id}/baixa?motivo= ──▶ TAI (vendeu, sucateou)
coletor ── POST /patrimonio/inventario ── gerar-itens ── iniciar ──▶ TAI
── lê etiqueta ── GET /patrimonio/codigo-barras/{codigo}
── PUT /patrimonio/inventario/item/{itemId}/verificar ──▶ TAI
── PUT /patrimonio/inventario/{id}/concluir ──▶ divergências
TAI ── PATRIMONIO_TRANSFERIDO, PATRIMONIO_BAIXADO, PATRIMONIO_INVENTARIO_CONCLUIDO… ──▶ webhook ──▶ ERP
  1. Use o número de patrimônio como chave. Ele é único na conta.

    GET /patrimonio/numero/PAT-00731
    Authorization: Bearer $TAI_TOKEN

    Bem inexistente responde 200 com corpo vazio — trate o corpo, não o status. Pela etiqueta, GET /patrimonio/codigo-barras/{codigo} funciona igual.

  2. Crie o bem que ainda não existe.

    POST /patrimonio
    Content-Type: application/json
    {
    "numeroPatrimonio": "PAT-00731",
    "descricao": "Impressora multifuncional laser",
    "categoriaId": 6,
    "codigoBarras": "7891234500731",
    "numeroSerie": "BR8K2Z0931",
    "localizacao": "2º andar — sala 204",
    "departamentoId": 40,
    "responsavelId": 205,
    "centroCusto": "ADM-01",
    "valorAquisicao": 4890.00,
    "dataAquisicao": "2026-09-12",
    "fornecedor": "Papelaria Central Ltda",
    "notaFiscal": "004812",
    "dataNotaFiscal": "2026-09-12",
    "vidaUtilMeses": 60,
    "metodoDepreciacao": "LINEAR"
    }

    Sem status, o bem nasce ATIVO. As categorias da conta saem em GET /patrimonio/categoria (cada uma com vida útil e método de depreciação padrão).

  3. Atualize o que mudou no ERP. PATCH /patrimonio com o id e só os campos alterados; o PUT substitui o registro inteiro.

  4. Registre a troca de responsável ou de lugar como movimentação, não como edição — assim o histórico de custódia fica completo:

    POST /patrimonio/movimentacao/transferir?patrimonioId=1187&novoResponsavelId=233&novaLocalizacao=3º%20andar%20—%20sala%20301&observacao=Mudança%20de%20equipe

    O histórico do bem sai em GET /patrimonio/movimentacao/patrimonio/{patrimonioId}.

  5. Dê baixa quando o bem sai.

    POST /patrimonio/1187/baixa?motivo=VENDA&observacao=Vendido%20no%20leilão%20de%20outubro

    motivo aceita VENDA, DOACAO, OBSOLESCENCIA, SINISTRO, FURTO, EXTRAVIO, SUCATEAMENTO, TRANSFERENCIA_EXTERNA e OUTROS.

O bem guarda os dados que a contabilidade usa: valorAquisicao, valorResidual, valorAtual, depreciacaoAcumulada, dataInicioDepreciacao, vidaUtilMeses e metodoDepreciacao (LINEAR, SOMA_DIGITOS, SALDO_DECRESCENTE, UNIDADES_PRODUZIDAS ou SEM_DEPRECIACAO). A API grava e devolve esses campos como você os envia; ela não expõe um cálculo de depreciação mensal. Se o ERP ou a contabilidade calcula a depreciação, atualize valorAtual e depreciacaoAcumulada pelo PATCH. Os totais da conta — quantidade por status, valorTotalAquisicao, valorTotalAtual e depreciacaoAcumuladaTotal — saem em GET /patrimonio/dashboard.

  1. Crie o inventário com o escopo. Departamento, setor e categoria são filtros opcionais.

    POST /patrimonio/inventario
    Content-Type: application/json
    {
    "titulo": "Inventário anual 2026 — Administrativo",
    "departamentoId": 40,
    "dataInicioPrevista": "2026-11-03",
    "dataFimPrevista": "2026-11-07"
    }

    Ele nasce PLANEJADO.

  2. Gere os itens e inicie.

    POST /patrimonio/inventario/77/gerar-itens
    PUT /patrimonio/inventario/77/iniciar

    gerar-itens cria um item PENDENTE para cada bem ativo do escopo, com a localização esperada, e preenche totalItensEsperado. Chame uma vez por inventário.

  3. Baixe a lista para o coletor.

    GET /patrimonio/inventario/77/itens/pendentes

    Cada item traz id, patrimonioId, patrimonioNumero, patrimonioDescricao e localizacaoEsperada.

  4. A cada etiqueta lida, confirme o item.

    PUT /patrimonio/inventario/item/90412/verificar?localizacaoEncontrada=2º%20andar%20—%20sala%20204&estadoConservacao=BOM

    Se algo não confere, registre a divergência no lugar:

    PUT /patrimonio/inventario/item/90413/divergencia?tipoDivergencia=LOCALIZACAO&descricao=Encontrado%20na%20sala%20210

    tipoDivergencia: LOCALIZACAO, RESPONSAVEL, ESTADO_CONSERVACAO, NAO_LOCALIZADO, SEM_ETIQUETA, DADOS_INCORRETOS ou PATRIMONIO_NAO_CADASTRADO.

  5. Conclua e leia o resultado.

    PUT /patrimonio/inventario/77/concluir
    GET /patrimonio/inventario/77/itens/divergencias

    O inventário traz totalItensVerificados, totalDivergencias e totalPendentes.

Transferências, baixas e devoluções também acontecem na tela da TAI, pela Tali ou no termo de responsabilidade do colaborador. Para o ERP acompanhar sem consultar, crie um webhook assinando os eventos do patrimônio — ou Tudo de Patrimônio:

EventoQuandoCampos (dados)
PATRIMONIO_TRANSFERIDOUm bem mudou de responsável, departamento ou localmovimentacaoId, patrimonioId, numeroPatrimonio, colaboradorId, responsavelAnteriorId, departamentoId, localizacao
PATRIMONIO_BAIXADOUm bem foi baixadopatrimonioId, numeroPatrimonio, descricao, motivoBaixa, colaboradorId
PATRIMONIO_DEVOLVIDOUm colaborador devolveu um bem do termo deletermoItemId, termoId, patrimonioId, colaboradorId, estadoDevolucao
PATRIMONIO_MANUTENCAO_INICIADA, PATRIMONIO_MANUTENCAO_CONCLUIDAUma manutenção começou ou terminou (a conclusão traz custoReal)manutencaoId, patrimonioId, titulo, tipoManutencao
PATRIMONIO_INVENTARIO_CONCLUIDOUm inventário foi concluídoinventarioId, titulo, totalItensVerificados, totalDivergencias, colaboradorId

Uma baixa chega assim:

{
"id": "evt_73015",
"tipo": "PATRIMONIO_BAIXADO",
"descricao": "Um bem é baixado",
"versao": 1,
"ocorridoEm": "2026-10-21T17:30:48.610Z",
"empresa": { "id": 12, "nome": "Sua Empresa Ltda" },
"dados": {
"patrimonioId": 1187,
"numeroPatrimonio": "PAT-00731",
"descricao": "Impressora multifuncional laser",
"motivoBaixa": "VENDA",
"colaboradorId": 233
}
}

Case pelo numeroPatrimonio, a mesma chave da sincronização. As baixas e transferências que o próprio ERP fez pela API também voltam por aqui — compare com o que ele já registrou. Com PATRIMONIO_INVENTARIO_CONCLUIDO e totalDivergencias acima de zero, o seu sistema lê GET /patrimonio/inventario/{inventarioId}/itens/divergencias.

“Quais bens estão com a Ana Ribeiro? E quantos itens ainda faltam conferir no inventário anual do Administrativo?”

Leitura pura: o agente consulta bens por responsável e o andamento do inventário. Com escopo de escrita, ele também registra uma transferência — com sua aprovação no cliente de IA. A baixa de um bem é ato de confirmação forte e não roda por agente externo; faça-a pela API ou pela tela. Veja Escrita e segurança.

  • Número de patrimônio repetido é recusado: use-o como chave de correspondência com o ERP.
  • Corpo vazio não é erro: as buscas por número e por código de barras respondem 200 sem corpo quando não acham.
  • Datas civis (dataAquisicao, dataNotaFiscal, datas previstas) como yyyy-MM-dd. Veja Datas e formatos.
  • Fotos dos bens são upload (POST /patrimonio/{id}/foto); arquivos acima de 8 KB podem parar no firewall — veja Limites.
  • Cargas grandes: um bem por requisição, espalhadas no tempo.

Referência gerada do contrato da API em 30 de outubro de 2026. taitecnologia.com · Termos de uso · Privacidade

© 2026 T AI TECNOLOGIA LTDA