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

# Mettre à jour un contact

> Modifiez les champs d’un contact spécifique  dans une liste. Vous pouvez modifier des champs existants ou ajouter de nouveaux champs personnalisés.

### Endpoint

<ParamField method="PUT" path="/v1/contact-groups/:id/contacts/:contactIndex" />

### Headers

<ParamField header="Authorization" type="string" required>
  Bearer token avec votre Secret Key (format: `Bearer sk_...`)
</ParamField>

### URL Parameters

<ParamField path="id" type="string" required>
  L'identifiant de la liste
</ParamField>

<ParamField path="contactIndex" type="number" required>
  L'index du contact à modifier
</ParamField>

### Body Parameters

Tous les paramètres sont optionnels. Seuls les champs fournis seront mis à jour ou ajoutés.

| Paramètre | Type   | Description                             |
| :-------- | :----- | :-------------------------------------- |
| `phone`   | string | Nouveau numéro de téléphone             |
| `name`    | string | Nouveau nom                             |
| `email`   | string | Nouvel email                            |
| `...`     | any    | N'importe quel autre champ personnalisé |

### Exemples de requêtes

<CodeGroup>
  ```bash BASH theme={null}
  curl -X PUT https://api.wachap.com/v1/contact-groups/65f1234567890abcdef12345/contacts/5 \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer token" \
    -d '{
      "name": "John Doe Updated",
      "email": "john.new@example.com",
      "company": "WaChap Inc"
    }'
  ```

  ```javascript JAVASCRIPT theme={null}
  // Exemple de mise à jour partielle
  const response = await fetch('https://api.wachap.com/v1/contact-groups/65f1234567890abcdef12345/contacts/5', {
    method: 'PUT',
    headers: {
      'Authorization': 'Bearer token',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      name: 'John Doe Updated',
      company: 'WaChap Inc'
    })
  });
  const data = await response.json();
  console.log(data);
  ```
</CodeGroup>

### Exemple de réponse

```json theme={null}
{
  "success": true,
  "message": "Contact mis à jour avec succès",
  "contactIndex": 5,
  "updatedColumns": 2,
  "addedColumns": 1
}
```

### Notes importantes

* **Modification partielle** : Seuls les champs fournis sont mis à jour
* **Nouveaux champs** : Vous pouvez ajouter n'importe quel nouveau champ personnalisé
* **Conservation** : Les champs non mentionnés restent inchangés
* **Index** : L'index du contact ne change pas

### Codes d'erreur

| Code  | Description                                            |
| :---- | :----------------------------------------------------- |
| `400` | INVALID\_DATA - Données de mise à jour requises        |
| `401` | INVALID\_SECRET\_KEY - Clé secrète invalide            |
| `404` | CONTACT\_NOT\_FOUND - Contact non trouvé à cet index   |
| `500` | UPDATE\_CONTACT\_ERROR - Erreur lors de la mise à jour |


## OpenAPI

````yaml PUT /contact-groups/{id}/contacts/{contactIndex}
openapi: 3.0.3
info:
  title: WaChap API
  version: 2.0.0
servers:
  - url: https://api.wachap.com/v1
    description: WaChap API server
security:
  - BearerAuth: []
tags:
  - name: Instances
    description: Créer et gérer des instances WhatsApp
  - name: Webhook
    description: Configuration des webhooks de réception
  - name: Messages
    description: Envoyer des messages WhatsApp
  - name: Comptes
    description: Gérer vos comptes WhatsApp connectés
  - name: SMS
    description: Service SMS de WaChap (V4) via FCM
  - name: Étiquettes WhatsApp
    description: Créer et associer des étiquettes aux conversations WhatsApp
paths:
  /contact-groups/{id}/contacts/{contactIndex}:
    put:
      tags:
        - Listes de contacts
      summary: Mettre à jour un contact
      description: Modifiez les champs d'un contact spécifique.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: contactIndex
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                phone:
                  type: string
                name:
                  type: string
      responses:
        '200':
          description: OK
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````