## URL de la API
URL a la que se envían las solicitudes HTTP:
```url
https://portal.bulkgate.com/api/1.0/address-book/add
```

> [!NOTE]
> Si la solicitud no llega a su destino, repítala en el [servidor de respaldo](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/servidor-de-respaldo/) `backup1.bulkgate.com`.


## Métodos HTTP admitidos

- `POST` - `application/json`

```http
POST /api/1.0/address-book/add HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json
```

## Tabla de parámetros

| NOMBRE DEL PARÁMETRO | VALOR | OBLIGATORIO | VALOR PREDETERMINADO |
|:------------------|:----------------------------------------------------------------|:----------|:----------------------------|
| application_id    | [ID de aplicación](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/administracion-api/)                   | **Sí**   | -                           |
| application_token | [Token de aplicación](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/tokens-de-api/)                       | **Sí**   | -                           |
| groups            | Array de ID de los grupos a los que se añadirán los contactos             | **No**    | -                           |
| group_name        | El contacto se añadirá a un nuevo grupo con el nombre `group_name` | **No**    | -                           |
| data              | Datos del contacto                                             | **Sí**   | [Objeto de datos](#objeto-de-datos) |
| category          | Agenda de contactos con la que se trabaja. De forma predeterminada, la agenda principal de la cuenta. | No       | `main`                      |
| duplicity_action  | Qué hacer con un contacto que ya existe: `restrict` (rechazar), `skip` (omitir), `update` (completar los campos vacíos), `rewrite` (sobrescribir).  | No       | `restrict`                 |

## Objeto de datos

| NOMBRE DEL PARÁMETRO | VALOR | OBLIGATORIO | VALOR PREDETERMINADO |
|:---------------|:--------------------------------------------------------------------------------------------------------------------------------|:----------|:--------------|
| type           | Tipo de contacto (persona/empresa)                                                                                              | **No**    | -             |
| phone_mobile   | Número de teléfono principal                                                                                                    | **No**    | -             |
| title_before   | Título antes del nombre                                                                                                         | **No**    | -             |
| first_name     | Nombre                                                                                                                          | **No**    | -             |
| last_name      | Apellidos                                                                                                                       | **No**    | -             |
| title_after    | Título después del nombre                                                                                                       | **No**    | -             |
| gender         | male / female / transgender / agender / non_binary / unknown            | **No**    | unknown       |
| company_name   | Nombre de su empresa                                                                                                            | **No**    | -             |
| email          | Correo electrónico                                                                                                              | **No**    | -             |
| url            | URL de su sitio web                                                                                                             | **No**    | -             |
| street1        | Dirección (línea 1)                                                                                                             | **No**    | -             |
| street2        | Dirección (línea 2)                                                                                                             | **No**    | -             |
| city           | Ciudad                                                                                                                          | **No**    | -             |
| zip            | Código postal                                                                                                                   | **No**    | -             |
| state          | Estado o provincia                                                                                                              | **No**    | -             |
| country        | [Código de país en formato ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) | **No**    | `null`        |
| company_number | Número de identificación de la empresa                                                                                          | **No**    | -             |
| company_vat    | NIF/CIF (número de IVA) de la empresa                                                                                            | **No**    | -             |
| note           | Nota                                                                                                                            | **No**    | -             |
| custom_field_0 | Campo personalizado                                                                                                             | **No**    | -             |
| custom_field_1 | Campo personalizado                                                                                                             | **No**    | -             |
| custom_field_2 | Campo personalizado                                                                                                             | **No**    | -             |
| custom_field_3 | Campo personalizado                                                                                                             | **No**    | -             |
| custom_field_4 | Campo personalizado                                                                                                             | **No**    | -             |
| custom_field_5 | Campo personalizado                                                                                                             | **No**    | -             |
| custom_field_6 | Campo personalizado                                                                                                             | **No**    | -             |
| custom_field_7 | Campo personalizado                                                                                                             | **No**    | -             |
| custom_field_8 | Campo personalizado                                                                                                             | **No**    | -             |
| custom_field_9 | Campo personalizado                                                                                                             | **No**    | -             |

## Ejemplo de solicitud

```http-json
POST /api/1.0/address-book/add HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
	"groups": [1, 2],
	"group_name": "Talos 1",
	"data": {
	     "first_name": "Morgan",
	     "last_name": "Yu",
	     "phone_mobile": "123456789",
	     "street1": "Crew's quarters",
	     "street2": "Executive suite",
	     "country": "Talos 1",
	     "email": "morganyu@talos.com"
	}
}
```

## Respuesta

**En caso de éxito:**
```json
{
    "data": {
        "message": "contact_has_been_added",
        "groups": [1,2,3]
    }
}
```


**En caso de error:**
```json
{
    "type": "contact_with_this_phone_number_already_exists",
    "code": 400,
    "error": "Contact with this phone number already exists",
    "detail": null
}
```

```json
{
    "type": "invalid_phone_mobile",
    "code": 400,
    "error": "Invalid phone mobile",
    "detail": null
}
```

```json
{
    "type": "group_not_found",
    "code": 400,
    "error": "Group not found",
    "detail": null
}
```

Donde:

- **type** y **error** (descripción del error) se encuentran en la [tabla de tipos de error](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/tipos-de-error/)
- **code** representa el código de error HTTP
- **detail** es información adicional sobre el error
