# Campos de contactos

## Listar los campos de contactos

`GET /v1/c/{slug}/contact-fields` · Alcances: `fields:read` · `contacts:read`

Los campos de la empresa (clave, nombre en tres idiomas, tipo, opciones). Los valores de cada contacto vienen en `fields` del contacto.

### Parámetros de la dirección

| Campo | Detalles |
|---|---|
| `slug` | El identificador de la empresa en DoneTalk (el de la clave). |

### Ejemplo de solicitud

```bash
curl -X GET "https://api.donetalk.com/v1/c/demo/contact-fields" \
  -H "Authorization: Bearer $DONETALK_KEY"
```

### Respuesta 200

```json
{
  "fields": [
    {
      "key": "cpf",
      "label": {
        "pt-BR": "CPF",
        "en": "CPF",
        "es": "CPF"
      },
      "type": "cpf",
      "options": null,
      "aiExtractable": true,
      "aiExtractionHint": null,
      "required": false,
      "sort": 1,
      "isActive": true
    }
  ]
}
```

### Errores posibles

- `401` `unauthorized`
- `403` `insufficient_scope`
- `422` `validation_failed`
- `429` `rate_limited`

## Crear un campo

`POST /v1/c/{slug}/contact-fields` · Alcances: `fields:write`

### Parámetros de la dirección

| Campo | Detalles |
|---|---|
| `slug` | El identificador de la empresa en DoneTalk (el de la clave). |

### Cuerpo de la solicitud

| Campo | Tipo | Obligatorio | Detalles |
|---|---|---|---|
| `key` | string | sí |  |
| `label` | string · object | sí |  |
| `type` | uno de `text`, `number`, `date`, `boolean`, `select`, `phone`, `email`, `cpf`, `cnpj` | sí |  |
| `options` | lista de string | no | hasta 50; null |
| `aiExtractable` | boolean | no | default `false` |
| `aiExtractionHint` | string | no | hasta 300 caracteres; null |
| `required` | boolean | no | default `false` |
| `sort` | integer | no | hasta 1000 |

### Ejemplo de solicitud

```bash
curl -X POST "https://api.donetalk.com/v1/c/demo/contact-fields" \
  -H "Authorization: Bearer $DONETALK_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "key": "plano",
  "label": "Plano",
  "type": "select",
  "options": [
    "mensal",
    "anual"
  ]
}'
```

### Respuesta 201

```json
{
  "field": {
    "key": "cpf",
    "label": {
      "pt-BR": "CPF",
      "en": "CPF",
      "es": "CPF"
    },
    "type": "cpf",
    "options": null,
    "aiExtractable": true,
    "aiExtractionHint": null,
    "required": false,
    "sort": 1,
    "isActive": true
  }
}
```

### Errores posibles

- `401` `unauthorized`
- `403` `insufficient_scope`
- `422` `validation_failed`
- `429` `rate_limited`

## Editar un campo

`PATCH /v1/c/{slug}/contact-fields/{key}` · Alcances: `fields:write`

### Parámetros de la dirección

| Campo | Detalles |
|---|---|
| `slug` | El identificador de la empresa en DoneTalk (el de la clave). |
| `key` | La clave (del campo o de la ficha). |

### Cuerpo de la solicitud

| Campo | Tipo | Obligatorio | Detalles |
|---|---|---|---|
| `label` | string · object | no |  |
| `options` | lista de string | no | hasta 50; null |
| `aiExtractable` | boolean | no |  |
| `aiExtractionHint` | string | no | hasta 300 caracteres; null |
| `required` | boolean | no |  |
| `sort` | integer | no | hasta 1000 |
| `isActive` | boolean | no |  |

### Ejemplo de solicitud

```bash
curl -X PATCH "https://api.donetalk.com/v1/c/demo/contact-fields/:key" \
  -H "Authorization: Bearer $DONETALK_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "options": [
    "mensal",
    "semestral",
    "anual"
  ]
}'
```

### Respuesta 200

```json
{
  "ok": true
}
```

### Errores posibles

- `401` `unauthorized`
- `403` `insufficient_scope`
- `422` `validation_failed`
- `429` `rate_limited`

