Altera um contato (todos os campos)
Troca todos os campos do contrato; nulo limpa. O que está fora do contrato (RG, nascimento,
inscrições, observação, campos personalizados, anexos) fica como está. Para alterar só
alguns, use PATCH. Exige o papel Editor ou um papel com permissão de editar
Contatos.
accessTokenAuthorizationBearer <token>Access token (mda_…) obtido em POST /auth/token. Vale 1 hora.
id*integerapplication/json- body
nome*stringlength <= 200razao_social*|length <= 200tipo_pessoa*TipoPessoa"fisica""juridica"tipo_contato*TipoContato"cliente""fornecedor""ambos"categoria_id*|Categoria de contato do workspace; nulo remove. Inexistente responde 422.
documento*|CPF (pessoa física) ou CNPJ (jurídica, aceita o alfanumérico), com ou sem pontuação; validado.
email*|length <= 200telefones*array<>items <= 3endereco*|Os campos ausentes ficam vazios; nulo apaga o endereço.
status*StatusCadastroinactive: desativado no app, segue nos lançamentos antigos.
"active""inactive"O contato alterado.
application/json- response
id*integernome*stringrazao_social*string|nulltipo_pessoa*TipoPessoa"fisica""juridica"tipo_contato*TipoContato"cliente""fornecedor""ambos"status*StatusCadastroinactive: desativado no app, segue nos lançamentos antigos.
"active""inactive"categoria*|A categoria de contato (o agrupamento que a área define), não a de lançamento.
documento*|CPF ou CNPJ, só letras e números (o CNPJ pode ter letras desde 2026).
email*string|nulltelefones*array<string>Até três, como foram digitados.
endereco*|Nulo quando o contato não tem endereço nenhum.
curl -X PUT "https://example.com/contatos/0" \ -H "Content-Type: application/json" \ -d '{ "nome": "string", "razao_social": "string", "tipo_pessoa": "fisica", "tipo_contato": "cliente", "categoria_id": 0, "documento": "string", "email": "string", "telefones": [ "string" ], "endereco": {}, "status": "active" }'{ "id": 9120, "nome": "Mercado Bom Preço", "razao_social": "Bom Preço Comércio de Alimentos Ltda", "tipo_pessoa": "fisica", "tipo_contato": "cliente", "status": "active", "categoria": { "id": 0, "nome": "Atacado" }, "documento": "12ABC34501DE35", "email": "string", "telefones": [ "(11) 3333-4444" ], "endereco": { "logradouro": "string", "numero": "string", "complemento": "string", "bairro": "string", "cidade": "string", "uf": "string", "cep": "string" }}Exclui um contato DELETE
Exclui o contato. `destino_id` leva para outro contato os lançamentos, agendas e regras que o usavam; sem destino, eles ficam sem contato. Contato com proposta comercial não é excluído (422). O destino deve pertencer ao mesmo workspace e ser diferente do excluído. Exige o papel **Editor** ou um papel com permissão de excluir Contatos. A exclusão é definitiva.
Totais por categoria GET
Soma por categoria, com a categoria de cima em `categoria_pai`. É a tela Totais por categoria; com `intervalo`, a Evolução por categoria. Sem `tipo`, receita e despesa. Exige a permissão de ver Totais por categoria, Evolução por categoria, Despesas/Receitas por categoria da visão geral ou Lançamentos por categoria.