Skip to content

Eventos APP

Endpoint para registro de usuários e eventos de aplicativos móveis.

📥 Collection Postman

Baixar Collection - APP Events

URLs

MétodoURLAçãoDescrição
POST/api/v1/app/registeruserCadastrarRegistra ID de dispositivo no FanID existente
POST/api/v1/app/eventCadastrarAdiciona eventos usando User ID

Produção:

{connect-producao}/api/v1/app

Homologação:

{connect-homologacao}/api/v1/app

Autenticação

Todas as requisições requerem um token de acesso obtido no endpoint de Security. O token deve ser enviado no header AccessToken.

AccessToken: {seu_token}

Sobre a Autenticação

O token de acesso deve ser obtido através do endpoint de Security usando client_credentials. Consulte a seção Obter Token para mais detalhes.


1. Registrar Usuário do App

Associa um ID de dispositivo (userId) a um FanID existente, identificado por CPF ou Email.

Requisição

Endpoint: POST {connect-producao}/api/v1/app/registeruser

Headers:

AccessToken: {access_token}
Content-Type: application/json

Body - Identificação por Email

json
{
  "userId": "abc123def345",
  "document": "email@provider.net",
  "documentType": 4,
  "appName": "APPNAME",
  "appPlatform": "android"
}

Body - Identificação por CPF

json
{
  "userId": "abc123def345",
  "document": "22701153840",
  "documentType": 1,
  "appName": "APPNAME",
  "appPlatform": "android"
}

Campos do Body

CampoTipoObrigatórioDescrição
userIdstringSimID único do dispositivo/usuário no app
documentstringSimCPF ou Email do usuário (sem formatação)
documentTypenumberSimTipo do documento (ver tabela abaixo)
appNamestringSimNome do aplicativo
appPlatformstringSimPlataforma: android ou ios

Tipos de Documento (documentType)

CódigoTipoExemplo
1CPF22701153840 (sem pontos ou traços)
4Emailusuario@exemplo.com

Resposta de Sucesso

Status: 201 Created

json
{
  "header": {
    "codigo": 1,
    "msg": "Usuário registrado com sucesso"
  }
}

Possíveis Erros

CódigoMensagemDescrição
400Documento inválidoCPF ou Email não encontrado
400userId já registradoO userId já está associado a outro usuário
401Token inválidoToken de acesso inválido ou expirado

2. Registrar Eventos

Registra eventos de uso do aplicativo associados a um userId previamente registrado.

Requisição

Endpoint: POST {connect-producao}/api/v1/app/event

Headers:

AccessToken: {access_token}
Content-Type: application/json

Body

json
{
  "userId": "abc123def345",
  "eventName": "first_access",
  "eventValue": null,
  "eventDate": "2025-07-29T03:00:02.135Z",
  "appName": "APPNAME"
}

Campos do Body

CampoTipoObrigatórioDescrição
userIdstringSimID único do dispositivo (registrado anteriormente)
eventNamestringSimNome do evento
eventValuestring/nullNãoValor associado ao evento
eventDatedatetimeSimData/hora do evento (ISO 8601)
appNamestringSimNome do aplicativo

Exemplos de Eventos

Primeiro Acesso

json
{
  "userId": "abc123def345",
  "eventName": "first_access",
  "eventValue": null,
  "eventDate": "2025-07-29T03:00:02.135Z",
  "appName": "APPNAME"
}

Acesso a uma Página/Rota

json
{
  "userId": "abc123def345",
  "eventName": "page_access",
  "eventValue": "/wallet",
  "eventDate": "2025-07-29T03:05:15.000Z",
  "appName": "APPNAME"
}

Compra no App

json
{
  "userId": "abc123def345",
  "eventName": "purchase",
  "eventValue": "{\"productId\": \"123\", \"value\": 99.90}",
  "eventDate": "2025-07-29T03:10:00.000Z",
  "appName": "APPNAME"
}

Login no App

json
{
  "userId": "abc123def345",
  "eventName": "login",
  "eventValue": "biometric",
  "eventDate": "2025-07-29T03:00:00.000Z",
  "appName": "APPNAME"
}

Eventos Sugeridos

EventoDescriçãoeventValue
first_accessPrimeiro acesso ao appnull
loginLogin realizadoMétodo (biometric, password, etc)
logoutLogout realizadonull
page_accessAcesso a página/rotaCaminho da rota
purchaseCompra realizadaJSON com detalhes
shareConteúdo compartilhadoTipo de conteúdo
notification_openNotificação abertaID da notificação

Dica

Use o campo eventValue para armazenar dados adicionais do evento. Para dados complexos, use JSON string.

Resposta de Sucesso

Status: 201 Created

json
{
  "header": {
    "codigo": 1,
    "msg": "Evento registrado com sucesso"
  }
}

Possíveis Erros

CódigoMensagemDescrição
400userId não encontradoO userId não foi registrado anteriormente
401Token inválidoToken de acesso inválido ou expirado

Exemplo de Implementação Completa

javascript
class FanbaseAppEvents {
  constructor(accessToken, connectUrl, appName) {
    this.accessToken = accessToken;
    this.connectUrl = connectUrl;
    this.appName = appName;
  }

  async registrarUsuario(userId, document, documentType, platform) {
    const response = await fetch(`${this.connectUrl}/api/v1/app/registeruser`, {
      method: 'POST',
      headers: {
        'AccessToken': this.accessToken,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        userId,
        document,
        documentType,
        appName: this.appName,
        appPlatform: platform
      })
    });

    if (!response.ok) {
      throw new Error(`Erro ${response.status}: ${response.statusText}`);
    }

    return await response.json();
  }

  async registrarEvento(userId, eventName, eventValue = null) {
    const response = await fetch(`${this.connectUrl}/api/v1/app/event`, {
      method: 'POST',
      headers: {
        'AccessToken': this.accessToken,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        userId,
        eventName,
        eventValue: typeof eventValue === 'object' ? JSON.stringify(eventValue) : eventValue,
        eventDate: new Date().toISOString(),
        appName: this.appName
      })
    });

    if (!response.ok) {
      throw new Error(`Erro ${response.status}: ${response.statusText}`);
    }

    return await response.json();
  }
}

// Exemplo de uso
const fanbase = new FanbaseAppEvents(
  accessToken,
  '{connect-producao}',
  'MeuApp'
);

// Registrar usuário por email
await fanbase.registrarUsuario(
  'device-123456',
  'usuario@exemplo.com',
  4, // Email
  'android'
);

// Registrar evento de primeiro acesso
await fanbase.registrarEvento('device-123456', 'first_access');

// Registrar acesso a uma página
await fanbase.registrarEvento('device-123456', 'page_access', '/home');

// Registrar compra
await fanbase.registrarEvento('device-123456', 'purchase', {
  productId: '123',
  value: 99.90,
  quantity: 1
});

Fluxo Recomendado

mermaid
sequenceDiagram
    participant App
    participant Fanbase
    
    App->>Fanbase: 1. Obter Token (Security)
    Fanbase-->>App: access_token
    
    App->>Fanbase: 2. Registrar Usuário
    Note right of App: userId + CPF/Email
    Fanbase-->>App: Sucesso
    
    loop A cada evento
        App->>Fanbase: 3. Registrar Evento
        Fanbase-->>App: Sucesso
    end
  1. Obter Token - Autenticar com Security usando client_credentials
  2. Registrar Usuário - Associar userId do dispositivo ao FanID (uma vez)
  3. Registrar Eventos - Enviar eventos de uso conforme acontecem no app

Documentação da API Fanbase