> ## Documentation Index
> Fetch the complete documentation index at: https://docs.suasofia.online/llms.txt
> Use this file to discover all available pages before exploring further.

# Atualizar Lead

> Atualize um lead existente em suas campanhas.

Atualize um lead fornecendo o ID do lead e os campos que deseja modificar. Apenas os campos fornecidos na solicitação serão atualizados.

## Parâmetros de Caminho

<ParamField path="id" type="integer" required>
  O ID do lead a ser atualizado
</ParamField>

## Parâmetros do Corpo

<ParamField body="campaign_id" type="integer" optional>
  O ID da campanha para atribuir o lead
</ParamField>

<ParamField body="phone_number" type="string" optional>
  O número de telefone do lead (será formatado para E164)
</ParamField>

<ParamField body="status" type="string" optional>
  O status do lead. Deve ser um de: `created`, `completed`, `reached-max-retries`
</ParamField>

<ParamField body="variables" type="object" optional>
  Variáveis personalizadas para mesclar com as variáveis existentes do lead
</ParamField>

## Resposta

<ResponseField name="message" type="string">
  Mensagem de sucesso indicando que o lead foi atualizado
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X PUT "https://suasofia.online/api/user/leads/123" \
    -H "Authorization: Bearer SEU_TOKEN_API" \
    -H "Content-Type: application/json" \
    -d '{
      "campaign_id": 456,
      "phone_number": "+1234567890",
      "variables": {
        "name": "João Silva",
        "company": "Acme Corp"
      }
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json Success Response theme={null}
  {
    "message": "Lead atualizado com sucesso"
  }
  ```

  ```json Error Response - Lead Not Found theme={null}
  {
    "message": "Lead não encontrado"
  }
  ```

  ```json Error Response - Campaign Not Found theme={null}
  {
    "message": "Campanha não encontrada"
  }
  ```

  ```json Error Response - Invalid Phone Number theme={null}
  {
    "message": "Número de telefone inválido"
  }
  ```

  ```json Error Response - Validation Failed theme={null}
  {
    "message": "Validação falhou",
    "errors": {
      "campaign_id": ["A campanha selecionada não existe"],
      "status": ["Este status é atribuído automaticamente e não pode ser definido manualmente"],
      "variables": ["Variáveis devem ser um array"]
    }
  }
  ```

  ```json Error Response - Invalid Fields theme={null}
  {
    "message": "Campos inválidos: invalid_field, another_invalid_field"
  }
  ```
</ResponseExample>

## Observações

* O lead deve pertencer ao usuário autenticado
* Se estiver atualizando a campanha, a nova campanha também deve pertencer ao usuário autenticado
* Os números de telefone são automaticamente formatados e validados
* As variáveis são mescladas com as variáveis existentes (não substituídas)
* Apenas campos permitidos podem ser atualizados: `campaign_id`, `phone_number`, `status`, `variables`
* O campo `status` tem valores restritos para integridade dos dados
