## URL da API

O URL utilizado para enviar os pedidos HTTP:

```url
https://portal.bulkgate.com/api/1.0/simple/promotional
```

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

- `GET`
- `POST` - `application/x-www-form-urlencoded`
- `POST` - `application/json`

Consulte os [métodos do pedido](https://www.bulkgate.com/pt/documentacao/simple-api/simple-promotional-metodos/) para ver exemplos de cada um.

## Tabela de parâmetros

| NOME DO PARÂMETRO | VALOR | OBRIGATÓRIO | VALOR PREDEFINIDO |
|:------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------|:--------------|
| application_id    | [Identificador da aplicação](https://www.bulkgate.com/pt/documentacao/administracao-da-api/administracao-de-apis/) | **Sim**    | -             | 
| application_token | [Token de autenticação da aplicação](https://www.bulkgate.com/pt/documentacao/administracao-da-api/tokens-de-api/) | **Sim**    | -             |
| number            | Números dos destinatários separados por `;` (ponto e vírgula) | **Sim**    | -             |
| text              | Texto da mensagem SMS (máx. 612 caracteres ou 268 caracteres se for utilizado Unicode), codificação UTF-8 | **Sim**    | -             |
| unicode           | `Yes`/`true`/`1` para SMS Unicode, `no`/`false`/`0` para SMS de 7 bits | Não         | `false`       |
| sender_id         | ID do remetente, consulte [tipo de ID do remetente](#tipo-de-id-do-remetente-sender-id) | Não         | `gSystem`     |
| sender_id_value   | Valor do remetente - `gOwn` (por exemplo, "420 777 777 777"), `gText` (por exemplo, "BulkGate"), `gProfile` (por exemplo, "423"), `gMobile` ou `gPush` [(KEY)](https://www.bulkgate.com/pt/centro-de-ajuda/mobile-connect/instalacao-do-mobile-connect/) |            |               |
| country           | Indique os números dos destinatários em formato internacional (com indicativo, por exemplo `420`) ou acrescente o [código do país](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) (`775123456` + `CZ` = `420775123456`). Consulte o exemplo de pedido com país. Se for **`null`**, é utilizado o fuso horário definido para completar a informação | Não         | `null`        |
| schedule          | Agende a data/hora de envio em [unix timestamp](https://en.wikipedia.org/wiki/Unix_time) ou [ISO 8601.](https://en.wikipedia.org/wiki/ISO_8601) Veja os exemplos abaixo. O valor `now` envia a mensagem imediatamente, tal como a omissão do parâmetro. | Não         | Agora           |
| duplicates_check  | Selecione **`on`** para evitar o envio de mensagens duplicadas para o mesmo número de telefone. As mensagens com o mesmo texto enviadas para o mesmo número são removidas. Com **`off`**, nenhum duplicado é removido. Os duplicados são removidos **apenas dentro de um único lote**, não entre pedidos. | Não         | `off`         |
| tag               | Etiqueta da mensagem para posterior pesquisa pelo utilizador. | Não         | -             |

### Tipo de ID do remetente `sender_id`

| VALOR      | DESCRIÇÃO                                                          |
|:-----------|:---------------------------------------------------------------------|
| `gSystem`  | Número do sistema | 
| `gShort`   | Short Code | 
| `gText`    | Remetente de texto | 
| `gMobile`  | [Mobile Connect](https://www.bulkgate.com/pt/centro-de-ajuda/mobile-connect/instalacao-do-mobile-connect/) |
| `gPush`    | Mobile Connect push - Envia uma notificação para a aplicação Mobile Connect |
| `gOwn`     | Número próprio (requer verificação do número) | 
| `gProfile` | [ID do perfil BulkGate](https://www.bulkgate.com/pt/centro-de-ajuda/sms/perfil-de-remetente/) |
| `<int>`    | ID do perfil BulkGate | 

## Exemplos de pedidos

**Exemplo de um pedido completo:**

```url
https://portal.bulkgate.com/api/1.0/simple/promotional
    ?application_id=451
    &application_token=NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj
    &number=420777777777;420775123456;606123456
    &text=test_sms
    &unicode=yes
    &sender_id=gText
    &sender_id_value=BulkGate
    &country=cz
    &schedule=2018-05-14T18:30:00-01:00
```

**Exemplo de pedido com país:**

```url
https://portal.bulkgate.com/api/1.0/simple/promotional
    ?application_id=451
    &application_token=NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj
    &number=606123456;420777777777
    &text=test_sms
    &country=cz
```

**Exemplo de pedido com ISO 8601:**

```url
https://portal.bulkgate.com/api/1.0/simple/promotional
    ?application_id=451
    &application_token=NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj
    &number=420775123456;420606123456
    &text=test_sms
    &schedule=2018-05-14T18:30:00-01:00
```

**Exemplo de pedido com unix timestamp:**

```url
https://portal.bulkgate.com/api/1.0/simple/promotional
    ?application_id=451
    &application_token=NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj
    &number=420775123456;420606123456
    &text=test_sms
    &schedule=1526992636
```

**Exemplo de pedido POST JSON:**

```http-json
POST /api/1.0/simple/promotional HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
    "application_id": 451,
    "application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
    "number": "420777777777;420775123456;606123456",
    "text": "test_sms",
    "unicode": true,
    "sender_id": "gText",
    "sender_id_value": "BulkGate",
    "country": "cz",
    "schedule": "2018-05-14T18:30:00-01:00"
}
```

## Resposta

**Em caso de sucesso:**

```json
{
  "data": {
    "total": {
      "status": {
        "sent": 0,
        "accepted": 0,
        "scheduled": 2,
        "error": 1
      }
    },
    "response": [
      {
        "status": "scheduled",
        "sms_id": "idfkvqrp-0",
        "part_id": [
                    "idfkvqrp-0_1",
                    "idfkvqrp-0_2",
                    "idfkvqrp-0"
                ],
        "number": "420775123456"
      },
      {
        "status": "scheduled",
        "sms_id": "idfkvqrp-1",
        "part_id": [
                    "idfkvqrp-1_1",
                    "idfkvqrp-1_2",
                    "idfkvqrp-1"
                ],
        "number": "420606123456"
      },
      {
        "status": "error",
        "code": 9,
        "error": "Invalid phone number",
        "number": "44771447678"
      }
    ]
  }
}
```

Em que:

- **part_ID** é o array de IDs das partes da mensagem longa original, que foi dividida por não cumprir o limite de 160 caracteres de uma única mensagem. Mais informações [aqui](https://www.bulkgate.com/pt/centro-de-ajuda/sms/concatenacao-de-mensagens/).

**Em caso de erro:**

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

```json
{
    "type": "unknown_identity",
    "code": 401,
    "error": "Unknown identity / unauthorized / empty application_id",
    "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** é uma informação adicional sobre o erro

Consulte todos os tipos de erro da Simple API e da Advanced API [aqui](https://www.bulkgate.com/pt/documentacao/administracao-da-api/tipos-de-erro-api/).
