## URL da API
URL utilizado para enviar pedidos HTTP:
```url
https://portal.bulkgate.com/api/1.0/address-book/edit
```

> [!NOTE]
> Se o pedido não chegar ao destino, repita-o no [servidor de reserva](https://www.bulkgate.com/pt/documentacao/administracao-da-api/servidor-de-reserva/) `backup1.bulkgate.com`.

## Métodos HTTP suportados

- `POST` - `application/json`

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

## Tabela de parâmetros

| NOME DO PARÂMETRO | VALOR                                         | OBRIGATÓRIO | VALOR PREDEFINIDO           |
|:------------------|:----------------------------------------------|:------------|:----------------------------|
| application_id    | [Application ID](https://www.bulkgate.com/pt/documentacao/administracao-da-api/administracao-de-apis/) | **Sim**     | -                           | 
| application_token | [Application token](https://www.bulkgate.com/pt/documentacao/administracao-da-api/tokens-de-api/)      | **Sim**     | -                           |
| phone_number      | Número de telefone do contacto a editar.      | **Sim**     | -                           |
| data              | Dados do contacto                             | **Sim**     | [Objeto data](#objeto-data) |
| category          | A agenda de contactos com que se trabalha. Por predefinição, a principal da conta. | Não | `main` |

> [!NOTE]
> Um campo omitido não é alterado — o esquema preenche-o com `-do-not-modify-`. Para limpar um campo, envie uma string vazia.

## Objeto data

| NOME DO PARÂMETRO | VALOR                                                                                                                           | OBRIGATÓRIO | VALOR PREDEFINIDO |
|:---------------|:---------------------------------------------------------------------------------------------------------------------------------|:----------|:--------------|
| type           | Tipo de contacto (Person/Company)                                                                                                | **Não**   | -             |
| phone_mobile   | Número de telefone principal                                                                                                     | **Não**   | -             | 
| title_before   | Título antes do nome                                                                                                             | **Não**   | -             |
| first_name     | Nome próprio                                                                                                                     | **Não**   | -             |
| last_name      | Apelido                                                                                                                          | **Não**   | -             |
| title_after    | Título depois do nome                                                                                                            | **Não**   | -             |
| gender         | male / female / transgender / agender / non_binary / unknown                                                                     | **Não**   | unknown       |
| company_name   | Nome da empresa                                                                                                                  | **Não**   | -             |
| email          | E-mail                                                                                                                           | **Não**   | -             |
| url            | URL                                                                                                                              | **Não**   | -             |
| street1        | 1.ª linha da morada                                                                                                              | **Não**   | -             |
| street2        | 2.ª linha da morada                                                                                                              | **Não**   | -             |
| city           | Cidade                                                                                                                           | **Não**   | -             |
| zip            | Código postal                                                                                                                    | **Não**   | -             |
| state          | Estado/região                                                                                                                    | **Não**   | -             |
| country        | [Código do país no formato ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements). | **Não** | `null` |
| company_number | Número de registo da empresa                                                                                                     | **Não**   | -             |
| company_vat    | NIF da empresa                                                                                                                   | **Não**   | -             |
| note           | Nota                                                                                                                             | **Não**   | -             |
| custom_field_0 | Campo personalizado                                                                                                              | **Não**   | -             |
| custom_field_1 | Campo personalizado                                                                                                              | **Não**   | -             |
| custom_field_2 | Campo personalizado                                                                                                              | **Não**   | -             |
| custom_field_3 | Campo personalizado                                                                                                              | **Não**   | -             |
| custom_field_4 | Campo personalizado                                                                                                              | **Não**   | -             |
| custom_field_5 | Campo personalizado                                                                                                              | **Não**   | -             |
| custom_field_6 | Campo personalizado                                                                                                              | **Não**   | -             |
| custom_field_7 | Campo personalizado                                                                                                              | **Não**   | -             |
| custom_field_8 | Campo personalizado                                                                                                              | **Não**   | -             |
| custom_field_9 | Campo personalizado                                                                                                              | **Não**   | -             |

## Exemplo de pedido

```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"
	}
}
```


## Resposta

**Em caso de sucesso:**
```json
{
    "data": {
        "message": "contact_has_been_edited"
    }
}
```


**Em caso de erro:**
```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
}
```

Em que:

- **type** e **error** (descrição do erro) encontram-se na [tabela de tipos de erros](https://www.bulkgate.com/pt/documentacao/administracao-da-api/tipos-de-erro-api/)
- **code** representa o erro HTTP
- **detail** contém informações adicionais sobre o erro
