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

# Crear contacto

> Crear un nuevo contacto manualmente.

## Endpoint

```
POST /api/contacts
```

Creá un nuevo contacto manualmente.

## Headers

<ParamField header="Authorization" type="string" required>
  Bearer token con tu API key. Formato: `Bearer sk_live_xxx`
</ParamField>

<ParamField header="Content-Type" type="string" required>
  Siempre `application/json`
</ParamField>

## Request Body

<ParamField body="email" type="string">
  Email del contacto. Debe ser un email válido o string vacío.
</ParamField>

<ParamField body="phoneNumber" type="string">
  Número de teléfono con código de país (ej: `+5491123456789`)
</ParamField>

<ParamField body="firstName" type="string">
  Nombre del contacto
</ParamField>

<ParamField body="lastName" type="string">
  Apellido del contacto
</ParamField>

<ParamField body="conversationId" type="string">
  ID de conversación existente para vincular el contacto
</ParamField>

<ParamField body="instagramId" type="string">
  ID de Instagram del usuario
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://app.horneross.com/api/contacts \
    -H "Authorization: Bearer sk_live_xxx" \
    -H "Content-Type: application/json" \
    -d '{
      "email": "nuevo@ejemplo.com",
      "firstName": "Carlos",
      "lastName": "López",
      "phoneNumber": "+5491198765432"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://app.horneross.com/api/contacts', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer sk_live_xxx',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      email: 'nuevo@ejemplo.com',
      firstName: 'Carlos',
      lastName: 'López',
      phoneNumber: '+5491198765432',
    }),
  });

  const contact = await response.json();
  console.log('Contacto creado:', contact.id);
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      'https://app.horneross.com/api/contacts',
      headers={
          'Authorization': 'Bearer sk_live_xxx',
          'Content-Type': 'application/json',
      },
      json={
          'email': 'nuevo@ejemplo.com',
          'firstName': 'Carlos',
          'lastName': 'López',
          'phoneNumber': '+5491198765432'
      }
  )

  contact = response.json()
  print(f'Contacto creado: {contact["id"]}')
  ```
</RequestExample>

## Response

<ResponseField name="id" type="string" required>
  ID único del contacto creado
</ResponseField>

<ResponseField name="email" type="string">
  Email del contacto
</ResponseField>

<ResponseField name="phoneNumber" type="string">
  Número de teléfono
</ResponseField>

<ResponseField name="firstName" type="string">
  Nombre
</ResponseField>

<ResponseField name="lastName" type="string">
  Apellido
</ResponseField>

<ResponseField name="organizationId" type="string" required>
  ID de la organización
</ResponseField>

<ResponseField name="createdAt" type="string" required>
  Fecha de creación (ISO 8601)
</ResponseField>

<ResponseExample>
  ```json 200 - Success theme={null}
  {
    "id": "contact_new789",
    "email": "nuevo@ejemplo.com",
    "phoneNumber": "+5491198765432",
    "firstName": "Carlos",
    "lastName": "López",
    "instagramId": null,
    "organizationId": "org_xyz",
    "createdAt": "2024-01-21T16:00:00Z",
    "updatedAt": "2024-01-21T16:00:00Z"
  }
  ```

  ```json 400 - Bad Request theme={null}
  {
    "error": {
      "code": "BAD_REQUEST",
      "message": "Email inválido"
    }
  }
  ```
</ResponseExample>

## Vincular a conversación

Para vincular un contacto a una conversación existente:

```javascript theme={null}
const response = await fetch('https://app.horneross.com/api/contacts', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sk_live_xxx',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    email: 'cliente@ejemplo.com',
    firstName: 'Ana',
    conversationId: 'conv_xyz123', // Vincular a conversación
  }),
});
```
