# API centrada no usuário

## registerUser

`POST` `https://api.pushwoosh.com/json/1.3/registerUser`

Associa um ID de Usuário externo a um dispositivo especificado.

#### Cabeçalhos da requisição

| Nome          | Obrigatório | Valor         | Descrição                                                |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | Sim      | Token `XXXX`  | [Token de Dispositivo da API](/pt/developer/api-reference/api-access-token/#device-api-token) para acessar a API de Dispositivo. Substitua `XXXX` pelo seu token real da API de Dispositivo. |

#### Corpo da requisição

| Nome        | Obrigatório | Tipo    | Descrição                                                                                                  |
| ----------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------ |
| userId      | Não       | string  | [ID de Usuário](/pt/developer/api-reference/api-identifiers/#user-id) para associar a um dispositivo. Se estiver vazio, use o hwid. |
| application | Sim      | string  | [Código da aplicação Pushwoosh](/pt/developer/api-reference/api-identifiers/#application-code)                    |
| hwid        | Sim      | string  | [HWID do Pushwoosh](/pt/developer/api-reference/api-identifiers/#hardware-id)                                     |
| tz\_offset  | Não       | integer | Deslocamento de fuso horário em segundos para o dispositivo.                                                                   |
| device\_type| Não       | integer | [Tipo de dispositivo](/pt/developer/api-reference/api-identifiers/#device-type). Veja os valores possíveis em `/registerDevice`. |

Pode ser usado posteriormente na chamada da API [`/createMessage`](/pt/developer/api-reference/messages-api/#createmessage) (o parâmetro _users_).\
Você pode chamar esta função antes de ter o token de push e antes da chamada [`/registerDevice`](/pt/developer/api-reference/device-api/#registerdevice).

#### Exemplo de requisição

```json
{
  "request": {
    "userId": "user_3078a",                     // opcional. Se estiver vazio, use o hwid
    "application": "XXXXX-XXXXX",               // obrigatório. Código da aplicação Pushwoosh
    "hwid": "8f65b16df378e7a6bece9614e1530fb2", // obrigatório. ID de hardware do dispositivo
    "tz_offset": -3600,                         // opcional. Deslocamento de fuso horário em segundos
    "device_type": 3                            // opcional. Tipo de dispositivo, veja /registerDevice
                                                //           para tipos de dispositivo
  }
}
```

#### Exemplo de resposta

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200, 
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

<Aside type="note">
Para e-mails, chame [`/registerEmailUser`](/pt/developer/api-reference/email-api/#registeremailuser).
</Aside>

## deleteUser

`POST` `https://api.pushwoosh.com/api/v2/device-api/deleteUser`

Exclui um usuário e todos os dispositivos associados ao [ID de Usuário](/pt/developer/api-reference/api-identifiers/#user-id) especificado dentro da aplicação. A requisição é processada de forma assíncrona e o endpoint retorna `200 OK` assim que a solicitação de exclusão for aceita para processamento.

#### Cabeçalhos da requisição

| Nome          | Obrigatório | Valor            | Descrição                                                |
|---------------|----------|------------------|------------------------------------------------------------|
| Authorization | Sim      | Token `XXXX`     | [Token de Dispositivo da API](/pt/developer/api-reference/api-access-token/#device-api-token) para acessar a API de Dispositivo. Substitua `XXXX` pelo seu token real da API de Dispositivo. |
| Content-Type  | Sim      | application/json |                                                            |

#### Corpo da requisição

| Nome        | Obrigatório | Tipo   | Descrição                                                                                                     |
| ----------- | -------- | ------ | --------------------------------------------------------------------------------------------------------------- |
| application | Sim      | string | [Código da aplicação Pushwoosh](/pt/developer/api-reference/api-identifiers/#application-code)                       |
| user\_id    | Sim      | string | [ID de Usuário](/pt/developer/api-reference/api-identifiers/#user-id) a ser excluído. Todos os dispositivos associados a este usuário na aplicação especificada serão removidos. |


#### Exemplo de requisição

```json
{
  "application": "XXXXX-XXXXX",   // obrigatório. Código da aplicação Pushwoosh
  "user_id": "user_3078a"         // obrigatório. ID de Usuário a ser excluído
}
```

#### Exemplo de resposta

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

##### Códigos de status

| Código de status HTTP | status\_code | Descrição                                        |
| ---------------- | ------------ | -------------------------------------------------- |
| 200              | 200          | Solicitação de exclusão aceita                            |
| 200              | 210          | Erro de argumento. Veja status\_message para mais informações. |
| 400              | N/A          | String de requisição malformada                           |
| 401              | N/A          | Token de autorização ausente ou inválido             |
| 500              | 500          | Erro interno                                     |

## postEvent

`POST` `https://api.pushwoosh.com/json/1.3/postEvent`

Dispara um evento.

#### Cabeçalhos da requisição

| Nome          | Obrigatório | Valor         | Descrição                                                |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | Sim      | Token `XXXX`  | [Token de Dispositivo da API](/pt/developer/api-reference/api-access-token/#device-api-token) para acessar a API de Dispositivo. Substitua `XXXX` pelo seu token real da API de Dispositivo. |


#### Corpo da requisição

| Nome             | Obrigatório | Tipo    | Descrição                                                                                                                                                      |
| ---------------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| hwid             | Sim      | string  | [ID de hardware do dispositivo](/pt/developer/api-reference/api-identifiers/#hardware-id) usado em uma requisição /registerDevice. Pode ser usado junto com 'userId' para identificar um usuário que disparou um evento. |
| application      | Sim      | string  | [Código da aplicação Pushwoosh](/pt/developer/api-reference/api-identifiers/#application-code)                                                                        |
| event            | Sim      | string  | [Nome do evento](/pt/developer/api-reference/api-identifiers/#event-name) exatamente como criado no Painel de Controle da Pushwoosh.                                              |
| attributes       | Sim      | object  | Objeto JSON com os atributos do evento. Deixe-o vazio se nenhum atributo precisar ser passado.                                                                       |
| timestampUTC     | Não       | integer | Timestamp em UTC.                                                                                                                                                |
| timestampCurrent | Não       | integer | Timestamp em hora local.                                                                                                                                         |
| userId           | Sim      | string  | [ID de Usuário](/pt/developer/api-reference/api-identifiers/#user-id) associado a um usuário que disparou o evento. Pode ser substituído por ou usado junto com um HWID. |
| device\_type     | Não       | integer | [Veja os valores possíveis](/pt/developer/api-reference/api-identifiers/#device-type)                                                                                    |

O nome do evento na requisição deve corresponder ao nome do evento no Painel de Controle da Pushwoosh. Note que a propriedade "attributes" pode estar vazia (mas não omitida) caso o evento não tenha atributos.

#### Exemplo de requisição

```json
{
  "request":{ 
    "hwid": "8f65b16df378e7a6bece9614e1530fb2", // obrigatório. ID de hardware do dispositivo usado em uma API /registerDevice.
                                                //           Pode ser usado junto com um userId para identificar um 
                                                //           usuário que disparou um evento.
    "application": "XXXXX-XXXXX",               // obrigatório. Código da aplicação Pushwoosh
    "event": "activityCompleted",               // obrigatório. Nome do evento exatamente como criado no Painel de Controle da Pushwoosh
    "attributes": {                             // obrigatório. Deixe vazio se nenhum atributo precisar ser passado. 
      "login": "facebook",
      "success": "yes",
      "internet": "wifi"
    },
    "timestampUTC": 1435228403,                 // opcional. Timestamp em UTC
    "timestampCurrent": 1435253603,             // opcional. Timestamp em hora local
    "userId": "someuser@user.com",              // obrigatório. Um ID de usuário que é usado para identificação de 
                                                //           usuários em múltiplos dispositivos. Pode ser substituído por
                                                //           ou usado junto com um HWID.
    "device_type": 1                            // opcional.
  }
}

```

#### Exemplo de resposta

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "code": "61BC9-84DD0"
  }
}
```
</TabItem>
</Tabs>