FX Data

Integração via API

Documentação oficial para consumo e envio de dados da plataforma FX Data.

Visão Geral

A API FX Data permite integração segura e escalável para consulta e envio de dados analíticos processados pela plataforma FX Data Intelligence.

1. Autenticação

Endpoint: POST https://api.login.fxdata.com.br/api/authenticate

{
  "username": "SEU_USUARIO",
  "password": "SUA_SENHA"
}
{
  "success": true,
  "token": "JWT_TOKEN"
}

3. Consulta de Dados

Métricas Disponíveis

O campo de Granularity define como os dados são agregados ao longo do período selecionado.


Exemplo – Entrantes
{
  "company": "ID_CLIENTE",
  "filter": ["ID_ESTABELECIMENTO"],
  "queries": [{
    "alias": "entrace_flow_day",
    "metric": "entrace_flow",
    "by_establishment": true,
    "period": {
      "from": "2025-01-01 00:00:00",
      "to": "2025-01-01 23:59:59"
    },
    "granularity": "day"
  }]
}
Exemplo – Passantes
{
  "company": "ID_CLIENTE",
  "filter": ["ID_ESTABELECIMENTO"],
  "queries": [{
    "alias": "vitrine_flow_hour",
    "metric": "vitrine_flow",
    "by_establishment": true,
    "period": {
      "from": "2025-01-01 08:00:00",
      "to": "2025-01-01 22:00:00"
    },
    "granularity": "hour"
  }]
}
Exemplo – Conversão
{
  "company": "ID_CLIENTE",
  "filter": ["ID_ESTABELECIMENTO"],
  "queries": [{
    "alias": "conversion_month",
    "metric": "conversion",
    "by_establishment": true,
    "period": {
      "from": "2025-01-01 00:00:00",
      "to": "2025-01-31 23:59:59"
    },
    "granularity": "month"
  }]
}
Exemplo – Cupons
{
  "company": "ID_CLIENTE",
  "filter": ["ID_ESTABELECIMENTO"],
  "queries": [{
    "alias": "purchase_day",
    "metric": "purchase",
    "by_establishment": true,
    "period": {
      "from": "2025-01-01 00:00:00",
      "to": "2025-01-01 23:59:59"
    },
    "granularity": "day"
  }]
}
Exemplo – Circulação
{
  "company": "ID_CLIENTE",
  "filter": ["ID_ESTABELECIMENTO"],
  "queries": [{
    "alias": "movement_total",
    "metric": "movement",
    "aggregate": "sum",
    "by_establishment": true,
    "period": {
      "from": "2025-01-01 00:00:00",
      "to": "2025-01-31 23:59:59"
    },
    "granularity": "day"
  }]
}
Exemplo – Banheiro / Provador
{
  "company": "ID_CLIENTE",
  "filter": ["ID_ESTABELECIMENTO"],
  "queries": [{
    "alias": "fitting_room_flow_day",
    "metric": "fitting_room_flow",
    "by_fitting_room_type": true,
    "period": {
      "from": "2025-01-01 00:00:00",
      "to": "2025-01-01 23:59:59"
    },
    "granularity": "day"
  }]
}
Exemplo – Perfil do Cliente
{
  "company": "N189",
  "filter": ["N1330"],
  "queries": [{
    "alias": "client_profile_flow",
    "metric": "client_profile_flow",
    "by_establishment": true,
    "by_device": false,
    "by_ambient": false,
    "by_gender_type": true,
    "aggregate": "seg",
    "period": {
      "from": "2025-11-14 00:00:00",
      "to": "2025-12-15 16:13:05"
    },
    "granularity": "day"
  }]
}

Exemplo em Python – Coleta Periódica de Entrantes (entrace_flow)

O exemplo abaixo demonstra como autenticar na API FX Data e consultar o fluxo de entrantes (entrace_flow) automaticamente de X em X minutos, possibilitando integração com ferramentas de BI.

import requests
import time
from datetime import datetime, timedelta

API_BASE_URL = "https://api.login.fxdata.com.br/api"
USERNAME = "SEU_USUARIO"
PASSWORD = "SUA_SENHA"

COMPANY_ID = "ID_CLIENTE"
ESTABLISHMENT_ID = "ID_ESTABELECIMENTO"

POLL_INTERVAL = 300  # segundos (5 minutos)
GRANULARITY = "hour"

def authenticate():
    response = requests.post(
        f"{API_BASE_URL}/authenticate",
        json={"username": USERNAME, "password": PASSWORD},
        timeout=10
    )
    response.raise_for_status()
    return response.json()["token"]

def get_entrace_flow(token, start_time, end_time):
    headers = {"Authorization": f"Token {token}"}
    payload = {
        "company": COMPANY_ID,
        "filter": [ESTABLISHMENT_ID],
        "queries": [{
            "alias": "entrace_flow_bi",
            "metric": "entrace_flow",
            "by_establishment": True,
            "period": {
                "from": start_time.strftime("%Y-%m-%d %H:%M:%S"),
                "to": end_time.strftime("%Y-%m-%d %H:%M:%S")
            },
            "granularity": GRANULARITY
        }]
    }

    response = requests.post(
        f"{API_BASE_URL}/data",
        json=payload,
        headers=headers,
        timeout=15
    )
    response.raise_for_status()
    return response.json()

def run():
    token = authenticate()
    last_time = datetime.utcnow() - timedelta(hours=1)

    while True:
        now = datetime.utcnow()
        data = get_entrace_flow(token, last_time, now)

        # Aqui o cliente pode salvar em banco, CSV ou enviar ao BI
        print(data)

        last_time = now
        time.sleep(POLL_INTERVAL)

if __name__ == "__main__":
    run()

Suporte Técnico

Email: suporte@fxdata.com.br