> For the complete documentation index, see [llms.txt](https://outboundpro.gitbook.io/api-v1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://outboundpro.gitbook.io/api-v1/contact/excluir-contato.md).

# Excluir contato

## Excluir contato (soft delete)

> Marca o contato como deletado (\`emso\_excluido = 'S'\`). \*\*Não remove fisicamente\*\*\
> — auditoria e contadores de scoring são preservados.\
> \
> Após deletar, o contato \*\*não aparece\*\* em listagens nem detalhes (\`404\`).\
> \
> \### Quando usar\
> \- \*\*Limpeza pós-validação\*\* — telefone/email validados como inválidos pelo cliente\
> &#x20; e ele decide remover do registro.\
> \- \*\*GDPR/LGPD compliance\*\* — usuário final pediu pra ser removido da base do cliente,\
> &#x20; sistema replica essa ação no OutboundPro.\
> \- \*\*Conflito comercial\*\* — descobriu que esse contato não é mais decisor, remove\
> &#x20; pra não ficar na lista de prospecção.\
> \
> \### Quando NÃO usar\
> \- \*\*Pra "pausar" prospecção\*\* — use \`/contact/toggle-save\` que não deleta o registro.\
> \- \*\*Pra remover empresa toda\*\* — esse endpoint é por \*\*contato individual\*\*.\
> \
> \### Cuidados\
> \- \*\*Não é desfazível via API\*\* — uma vez deletado, só recuperação manual no banco.\
> \- \*\*Históricos preservados\*\* — créditos consumidos antes da deleção não voltam,\
> &#x20; relatórios de uso continuam contando o trabalho feito.\
> \
> \### Casos de uso reais\
> \- \*\*Salesforce trigger\*\*: quando contato é deletado no Salesforce, replica\
> &#x20; via API pra manter sincronia.\
> \- \*\*Bot de qualificação\*\*: bot detecta que contato respondeu "não trabalho mais\
> &#x20; aqui" no e-mail → marca contato como deletado.<br>

```json
{"openapi":"3.0.3","info":{"title":"OutboundPro API","version":"2.0.0"},"tags":[{"name":"Contact","description":"**Sócios e contatos de empresas** (`emp_socio` no banco interno).\nOperações completas: listar, criar, editar, marcar como principal,\ninferir e verificar e-mails, verificar WhatsApp, buscar dados privados\n(com créditos), e listar outras empresas onde o contato é sócio.\n\n### Conceitos chave\n- **Contato principal** (`is_primary_contact`): cada empresa tem 1 contato\n  marcado como principal. `set-primary` automaticamente despromove o anterior.\n- **Prospectado** (`is_prospected`): flag de \"este contato vai entrar no\n  funil de prospecção\". Marcar/desmarcar via `toggle-save`.\n- **Inferência de e-mail**: gera candidato a e-mail baseado em nome do contato\n  + domínio do website da empresa (ex.: `joao.silva@empresa.com.br`),\n  com score de confiança. **Não envia teste** — apenas predição.\n- **Verificação de e-mail**: probe DNS + SMTP nos e-mails cadastrados, retorna\n  `status` (1=pending, 2=valid, 3=invalid).\n- **Verificação de WhatsApp**: testa cada número, retorna `whatsapp: true/false`\n  + `whatsapp_name` e `whatsapp_photo` se disponível.\n- **Dados privados** (`find-private-data`): **consome créditos pagos**, busca\n  telefones/emails em serviços externos (Unitfour Intouch, etc.). Verifique\n  saldo antes.\n\n### Performance\nEndpoint `contact/list` sem filtro varre toda a tabela `empresa_socio` —\nuse `lead_id` ou `lead_hash` para escopo restrito (recomendado).\n"}],"servers":[{"url":"https://app.outboundpro.com.br/api","description":"Produção"}],"security":[{"TokenAuth":[]}],"components":{"securitySchemes":{"TokenAuth":{"type":"apiKey","in":"header","name":"Token","description":"Chave privada do cliente (`cli_chave_privada`). Formato UUID v4\n(36 caracteres com hífens). Aceita header em qualquer case\n(`Token`, `token`, `TOKEN`).\n"}},"responses":{"Unauthorized":{"description":"Token ausente, inválido ou cliente inativo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"NotFound":{"description":"Recurso não encontrado. Pode ser por:\n- ID inexistente.\n- ID existe **em outro cliente** (isolamento de tenant retorna 404, não 403).\n- Recurso foi deletado/soft-deleted.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"schemas":{"ErrorResponse":{"type":"object","required":["response"],"properties":{"response":{"type":"string","enum":["error"]},"mensagem":{"type":"string","description":"Descrição do erro em pt-BR. Família Contact usa `message` (legado)."},"message":{"type":"string","description":"Equivalente inglês de `mensagem`, usado pela família Contact."}}}}},"paths":{"/contact/delete":{"delete":{"tags":["Contact"],"summary":"Excluir contato (soft delete)","operationId":"contactDelete","description":"Marca o contato como deletado (`emso_excluido = 'S'`). **Não remove fisicamente**\n— auditoria e contadores de scoring são preservados.\n\nApós deletar, o contato **não aparece** em listagens nem detalhes (`404`).\n\n### Quando usar\n- **Limpeza pós-validação** — telefone/email validados como inválidos pelo cliente\n  e ele decide remover do registro.\n- **GDPR/LGPD compliance** — usuário final pediu pra ser removido da base do cliente,\n  sistema replica essa ação no OutboundPro.\n- **Conflito comercial** — descobriu que esse contato não é mais decisor, remove\n  pra não ficar na lista de prospecção.\n\n### Quando NÃO usar\n- **Pra \"pausar\" prospecção** — use `/contact/toggle-save` que não deleta o registro.\n- **Pra remover empresa toda** — esse endpoint é por **contato individual**.\n\n### Cuidados\n- **Não é desfazível via API** — uma vez deletado, só recuperação manual no banco.\n- **Históricos preservados** — créditos consumidos antes da deleção não voltam,\n  relatórios de uso continuam contando o trabalho feito.\n\n### Casos de uso reais\n- **Salesforce trigger**: quando contato é deletado no Salesforce, replica\n  via API pra manter sincronia.\n- **Bot de qualificação**: bot detecta que contato respondeu \"não trabalho mais\n  aqui\" no e-mail → marca contato como deletado.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer"}}}}}},"responses":{"200":{"description":"Contato deletado.","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string","enum":["success"]},"message":{"type":"string"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
```
