## URL de la API
URL utilizada para enviar las solicitudes HTTP:
```url
https://portal.bulkgate.com/api/1.0/address-book/edit
```

> [!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 compatibles

- `POST` - `application/json`

```http
POST /api/1.0/address-book/edit 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 | [Application ID](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/administracion-api/) | **Sí** | - |
| application_token | [Application token](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/tokens-de-api/) | **Sí** | - |
| phone_number | Número de teléfono del contacto que se va a editar. | **Sí** | - |
| data | Información del contacto | **Sí** | [Objeto data](#objeto-data) |
| category | La agenda de contactos con la que se trabaja. De forma predeterminada, la principal de la cuenta. | No | `main` |

> [!NOTE]
> Un campo omitido no se modifica: el esquema le asigna `-do-not-modify-`. Para vaciar un campo, envíe una cadena vacía.

## Objeto data

| NOMBRE DEL PARÁMETRO | VALOR | OBLIGATORIO | VALOR PREDETERMINADO |
|:---------------|:---------------------------------------------------------|:----------|:--------------|
| type | 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 | Apellido | **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 | **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 registro de la empresa | **No** | - |
| company_vat | NIF/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/edit HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
	"phone_number": "123456789",
	"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_edited"
    }
}
```


**En caso de error:**
```json
{
    "type": "number_not_found",
    "code": 400,
    "error": "Number not found",
    "detail": null
}
```

```json
{
    "type": "invalid_phone_number",
    "code": 400,
    "error": "Invalid phone number",
    "detail": null
}
```

```json
{
    "type": "invalid_phone_mobile",
    "code": 400,
    "error": "Invalid phone mobile",
    "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 error HTTP
- **detail** es información adicional sobre el error
