> [!CAUTION]
> É **estritamente proibido** utilizar notificações SMS para fins promocionais/de marketing. Devem ser utilizadas apenas para fins de notificação, como [SMS transacional](https://www.bulkgate.com/pt/centro-de-ajuda/informacoes-gerais/diferenca-sms-promocional-e-transacional/).

## URL da API

URL utilizado para enviar pedidos HTTP:

```url
https://portal.bulkgate.com/api/1.0/advanced/transactional
```

> [!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/advanced/transactional 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**        |       -        |
| number            | Número do destinatário	                                                                                                                                                                                                                                                                                                                                                 |  **Sim** ou `admin`  |       -        |
| admin             | Número do administrador BulkGate que recebe a notificação. [Mais informações](https://www.bulkgate.com/pt/documentacao/advanced-api/advanced-transactional-notificacoes-para-administradores/)                                                                                                                                                                                                                                                        | **Sim** ou `number`  |       -        |
| text              | Texto da mensagem SMS (máx. 612 caracteres, ou 268 caracteres se o Unicode estiver ativado), codificação UTF-8. É possível adicionar ao modelo variáveis do array `variables` (outro parâmetro) `Olá <first_name> <last_name> ....`	                                                                                                                  |       **Sim**        |       -        |
| variables         | Array associativo para adicionar variáveis ao texto, por exemplo: `{"first_name": "John", "last_name": "Doe"}`                                                                                                                                                                                                                                                                |          Não          |      `[]`      |
| 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 remetente](#tipo-de-remetente-sender-id)                                                                                                                                                                                                                                                                                                        |          Não          |   `gSystem`    |
| sender_id_value   | Valor do remetente - `gOwn` (p. ex. "420 777 777 777"), `gText` (p. ex. "BulkGate"), `gProfile` (p. ex. "423"), `gMobile` ou `gPush` [(CHAVE)](https://www.bulkgate.com/pt/centro-de-ajuda/mobile-connect/instalacao-do-mobile-connect/)                                                                                                                                                                                        |          Não          |     `null`     |
| country           | Indique os números dos destinatários em formato internacional (com prefixo, p. ex. `420`), ou adicione o [código do país](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) (`777777777` + `CZ` = `420777777777`). Consulte o exemplo de pedido com o país. Se o valor for **`null`**, será utilizado o fuso horário que definiu para completar a informação |          Não          |     `null`     |
| schedule          | Agende a data e a hora de envio em [unix timestamp](https://en.wikipedia.org/wiki/Unix_time) ou [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).                                                                                                                                                                                                           |          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 serão removidas se o intervalo entre elas for inferior a 5 min. Com **`off`**, nenhum duplicado é removido.                                                                                                                  |          Não          |     `off`      |
| tag               | Etiqueta da mensagem para posterior pesquisa pelo utilizador.                                                                                                                                                                                                                                                                                                               |          Não          |       -        |

### Tipo de remetente `sender_id`

| VALOR| SIGNIFICADO|
|:--- |:---|
|`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 de perfil BulkGate](https://www.bulkgate.com/pt/centro-de-ajuda/sms/perfil-de-remetente/)|
| `<int>` |ID de perfil BulkGate| 

## Exemplo de pedido

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

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",  	
	"number": "420777777777",
	"unicode": true,
	"text": "Olá, <first_name> <last_name>",
	"variables": {"first_name": "John", "last_name": "Doe"},
	"sender_id": "gText",
	"sender_id_value": "BulkGate",
	"country": "pt",
	"schedule": "2018-05-14T18:30:00-01:00"
}
```

## Resposta

**Em caso de sucesso:**

```json
{
    "data": {
        "status": "accepted",
        "sms_id": "tmpde1bcd4b1d1",
        "part_id": [
            "tmpde1bcd4b1d1_1",
            "tmpde1bcd4b1d1"
        ],
        "number": "420777777777"
    }
}
```

Em que:

- **part_ID** é o array de ID das partes da mensagem longa original, que foi dividida por exceder 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 erros](https://www.bulkgate.com/pt/documentacao/administracao-da-api/tipos-de-erro-api/) 
- **code** representa o código de erro HTTP
- **detail** contém informações adicionais sobre o erro

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