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

> [!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/import 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    | [ID da aplicação](https://www.bulkgate.com/pt/documentacao/administracao-da-api/administracao-de-apis/) | **Sim** | - |
| application_token | [Token da aplicação](https://www.bulkgate.com/pt/documentacao/administracao-da-api/tokens-de-api/) | **Sim** | - |
| groups            | Matriz de IDs dos grupos aos quais os contactos serão adicionados | **Não** | - |
| group_name        | Os contactos importados serão adicionados a um novo grupo com este nome | **Não** | - |
| data              | Informações do contacto | **Sim** | Matriz de [objetos Data](#objeto-data) |
| category          | A agenda de contactos com que se trabalha. Por predefinição, a agenda principal da conta. | Não | `main` |
| duplicity_action  | O que fazer com um contacto que já existe — `restrict` (rejeitar), `skip` (ignorar), `update` (preencher os campos vazios), `rewrite` (substituir). | Não | `skip` |

## Objeto Data

| NOME DO PARÂMETRO | VALOR | OBRIGATÓRIO | VALOR PREDEFINIDO |
|:---------------|:--------------------------------------------------------------------------------------------------------------------------------|:----------|:--------------|
| type           | Tipo de contacto (pessoa/empresa) | **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 sua empresa | **Não** | - |
| email          | E-mail | **Não** | - |
| url            | URL do seu website | **Não** | - |
| street1        | 1.ª linha da morada | **Não** | - |
| street2        | 2.ª linha da morada | **Não** | - |
| city           | Localidade | **Não** | - |
| zip            | Código postal | **Não** | - |
| state          | Estado | **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    | Número de IVA 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/import 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": "789456123"
    },
    {
        "first_name": "Alex",
        "last_name": "Yu",
        "phone_mobile": "123456789"
    }
  ]
}
```

## Resposta

**Em caso de sucesso:**
```json
{
    "data": {
        "message": "contacts_have_been_imported",
        "imported": 3,
        "groups": [1,2,3]
    }
}
```


**Em caso de erro:**
```json
{
    "type": "no_valid_contacts_found",
    "code": 400,
    "error": "No valid contacts found",
    "detail": null
}
```

Em que:

- **type** e **error** (descrição do erro) encontram-se na [tabela de tipos de erro](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
