API v2.4 (LTS) Status: Operational Enterprise Grade

Hub de Integração CourtexID

Documentação técnica definitiva para arquitetura de soluções, engenharia de dados e integração de sistemas. Construa o futuro do varejo com nossas APIs robustas.

Visão Geral da Plataforma

A plataforma CourtexID oferece uma suíte completa de ferramentas programáticas para orquestrar a inteligência de varejo híbrido.

Projetada para escala enterprise, nossa arquitetura suporta alta concorrência, consistência eventual para dados distribuídos e rigorosos padrões de segurança bancária. Com latência média de 50ms e disponibilidade de 99.95%, garantimos que sua operação nunca pare.

Arquitetura Escalável

Infraestrutura cloud-native com auto-scaling horizontal, capaz de processar milhões de requisições simultâneas.

Segurança Multinível

Criptografia end-to-end, autenticação OAuth 2.0, e compliance com LGPD, GDPR e PCI DSS.

Performance Otimizada

Cache distribuído, CDN global e otimização de queries para resposta em milissegundos.

Padrões e Convenções Globais

Para garantir a previsibilidade na integração, adotamos padrões estritos em toda a nossa superfície de API e troca de arquivos.

Codificação

Todo o tráfego e arquivos são codificados estritamente em UTF-8. Não suportamos outras codificações para garantir a consistência internacional.

Datas e Horários

Timestamps no formato ISO 8601, sempre em UTC (ex: 2025-12-27T14:30:00Z). Evite timezones locais para prevenir inconsistências.

Moeda e Valores

Valores monetários representados em inteiros (centavos) com código ISO 4217 (ex: BRL). Para valores não monetários, use decimal com precisão de 4 casas.

Geolocalização

Coordenadas no padrão WGS 84 (Latitude/Longitude decimal). Precisão de 6 casas decimais para localização precisa de pontos de venda.

Política de Versionamento

Nossa API é versionada via URL. A versão atual é v2. Mudanças que não quebram a compatibilidade (adicionar novos campos de resposta) são aplicadas imediatamente. Mudanças que quebram a compatibilidade resultarão no lançamento de v3 com 12 meses de depreciação da versão anterior.

Estrutura de Versionamento

Utilizamos versionamento semântico com três componentes principais:

Componente Exemplo Descrição
Major v2 Mudanças que quebram compatibilidade. Requer migração.
Minor v2.4 Novas funcionalidades que mantêm compatibilidade.
Patch v2.4.1 Correções de bugs e melhorias de segurança.

Segurança e Autenticação

A segurança é "First-Class Citizen" na CourtexID. Utilizamos Bearer Tokens opacos com alta entropia para autenticação.

Exemplo de Header HTTP Obrigatório
Authorization: Bearer sk_live_51MxPq2LkY7hM8nJ9... [256-bit hash]
Content-Type: application/json
Accept: application/json
X-API-Version: 2024-12-27
Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000

Arquitetura de Segurança

Nossa arquitetura de segurança implementa múltiplas camadas de proteção:

Autenticação Multi-fator

Suporte a MFA para acesso administrativo. Tokens com validade de 24h e refresh automático.

Criptografia em Repouso

Dados criptografados com AES-256. Chaves gerenciadas por AWS KMS com rotação automática.

POST
/v1/auth/token

Renove tokens de acesso usando refresh tokens (JWT com 24h de validade).

{
  "refresh_token": "rt_live_7x9y8z...",
  "grant_type": "refresh_token"
}
Response Example:
{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "bearer",
  "expires_in": 86400,
  "refresh_token": "rt_live_n3w_r3fr3sh_t0k3n",
  "scope": "audits:read products:read"
}

Segurança de Rede (IP Whitelisting)

Para clientes Enterprise, oferecemos a funcionalidade de IP Whitelisting. Você pode restringir o uso das suas API Keys a um conjunto específico de endereços IP estáticos ou faixas CIDR.

Benefícios do Whitelisting:
  • Prevenção de acesso não autorizado de IPs desconhecidos
  • Redução do risco de credential stuffing attacks
  • Auditoria granular de acesso por origem geográfica

Objeto: Audit (Varejo Físico)

Este é o objeto central da plataforma. Ele encapsula a verdade de campo ("ground truth") coletada por nossos agentes.

Atributo Tipo Obrigatório Descrição Exemplo
id string Sim Identificador único (prefixo aud_) aud_7s8x9y0z
store_context object Sim Dados aninhados da loja CNPJ, Bandeira, Canal
metrics.osa float Sim On-Shelf Availability (0.0 a 1.0) 0.95
metrics.sos float Sim Share of Shelf (visão computacional) 0.28
validation.gps_delta integer Condicional Diferença em metros (GPS loja vs dispositivo) 12
raw_evidence array Condicional Links assinados para fotos S3 Presigned URLs
Exemplo Completo do Objeto Audit
{
  "id": "aud_7s8x9y0z",
  "store_context": {
    "cnpj": "12.345.678/0001-90",
    "name": "Supermercado Central",
    "channel": "Hipermercado",
    "geo": {
      "lat": -23.5505,
      "lng": -46.6333
    }
  },
  "metrics": {
    "osa": 0.95,
    "sos": 0.28,
    "price_compliance": 0.98
  },
  "collected_at": "2025-12-27T14:30:00Z",
  "agent_id": "agt_12345",
  "validation": {
    "gps_delta": 12,
    "photo_match_score": 0.96
  }
}

Fluxo de Auditoria

Entenda o ciclo completo de uma auditoria física:

01

Agendamento

Definição de lojas, produtos e frequência via API ou interface web.

02

Execução

Agente visita o ponto de venda, coleta dados via aplicativo móvel.

03

Validação

Sistema valida GPS, qualidade das fotos e consistência dos dados.

04

Processamento

IA analisa imagens, calcula métricas e gera insights.

05

Disponibilização

Dados disponíveis via API, webhooks e relatórios em tempo real.

Endpoint: Listar Auditorias

GET
/v1/audits

Recupera auditorias com filtragem avançada por múltiplos critérios.

Parâmetros de Query:
Parâmetro Tipo Descrição
status string Filtra por status: pending, in_progress, completed, failed
created[gte] datetime Data de criação maior ou igual à especificada
store_id string Filtra por ID específico da loja
expand[] array Expande relações: store_context, agent_details
curl -G https://api.courtex.id/v1/audits \
  -d "status=completed" \
  -d "created[gte]=2025-01-01T00:00:00Z" \
  -d "expand[]=store_context" \
  -H "Authorization: Bearer sk_live_..."
import requests

headers = {
    "Authorization": "Bearer sk_live_...",
    "Accept": "application/json"
}

params = {
    "status": "completed",
    "created[gte]": "2025-01-01T00:00:00Z",
    "expand[]": ["store_context"]
}

response = requests.get(
    "https://api.courtex.id/v1/audits",
    headers=headers,
    params=params
)
const audits = await courtex.audits.list({
  status: 'completed',
  created: { gte: '2025-01-01T00:00:00Z' },
  expand: ['store_context']
});

Webhooks & Event-Driven Architecture

Nossa infraestrutura de webhooks permite que você construa reações em tempo real com latência subsegundo.

Eventos em Tempo Real

Receba notificações instantâneas de auditorias completas, mudanças de preço e rupturas de estoque.

Segurança HMAC

Cada payload é assinado com HMAC-SHA256 para verificação de integridade.

Retry Automático

Política de retry com backoff exponencial até 72 horas.

Verificação de Assinatura (HMAC-SHA256)

Para garantir a autenticidade dos webhooks, cada payload é assinado digitalmente. O hash é enviado no header X-Courtex-Signature.

Validação de Assinatura - Node.js
const crypto = require('crypto');

function verifyWebhookSignature(payload, signature, secret) {
    const hmac = crypto.createHmac('sha256', secret);
    const computedSignature = `sha256=${hmac.update(payload).digest('hex')}`;
    
    // Comparação de tempo constante para evitar timing attacks
    return crypto.timingSafeEqual(
        Buffer.from(computedSignature),
        Buffer.from(signature)
    );
}

// Exemplo de uso
const isValid = verifyWebhookSignature(
    req.rawBody,
    req.headers['x-courtex-signature'],
    process.env.WEBHOOK_SECRET
);

Política de Retry (Exponential Backoff)

Se o seu servidor retornar qualquer código diferente de 2xx (ou se der timeout após 10s), tentaremos reenviar o evento.

Tentativa Delay Status HTTP Aceito Ação em Caso de Falha
1 Imediata 200-299 Tentar novamente
2 30 segundos 200-299 Tentar novamente
3 5 minutos 200-299 Tentar novamente
4 1 hora 200-299 Tentar novamente
5+ 6 horas 200-299 Desativar webhook após 72h

Tipos de Eventos Suportados

Auditoria Completa

audit.completed - Disparado quando uma auditoria física é finalizada e validada.

Mudança de Preço

price.updated - Detectada alteração de preço em monitoramento digital.

Ruptura de Estoque

stock.out - Produto fora de estoque em e-commerce monitorado.

Alerta de Qualidade

quality.alert - Problemas detectados na qualidade da auditoria.

Engenharia de Dados: Ingestão via SFTP

Para cargas de dados massivas (Data Warehousing, ML Training), oferecemos um pipeline de dados gerenciado via SFTP.

Configuração SFTP
Host: sftp.data.courtex.id
Porta: 2222
Autenticação: Chave SSH RSA 4096-bit
Protocolo: SFTP v3
Conexões Máximas: 10 simultâneas
Transferência: Até 1 Gbps dedicado
Timeout: 300 segundos
Compressão: Opcional (gzip)

Esquema de Diretórios

A estrutura de pastas segue particionamento temporal (Hive-style) para otimizar consultas em ferramentas de big data.

Estrutura de Diretórios
/
├── inbound/                  # Seus arquivos de entrada
│   └── catalog_updates/     # Atualizações de catálogo
│       └── tenant_id=ACME/
│           └── date=2025-12-27/
│               └── products.csv
│
├── outbound/                # Nossos arquivos processados
│   ├── audits/              # Dados de auditoria
│   │   └── tenant_id=ACME/
│   │       └── year=2025/month=12/day=27/
│   │           ├── part-00000.snappy.parquet
│   │           └── _SUCCESS
│   │
│   └── digital_insights/    # Insights digitais
│       └── tenant_id=ACME/
│           └── year=2025/month=12/day=27/
│               └── pricing_data.jsonl.gz
│
└── logs/                    # Logs de processamento
    ├── success/             # Processamentos bem-sucedidos
    └── errors/              # Erros com detalhes para debug

Formatos de Arquivo Suportados

CSV/TSV

Delimitado por vírgula ou tab. Header obrigatório. Encoding UTF-8.

JSON/JSONL

JSON Lines para processamento paralelo. Compressão gzip suportada.

Parquet

Otimizado para analytics. Snappy compression. Schema evolution suportado.

Processamento de Dados

O pipeline processa arquivos de forma idempotente com as seguintes garantias:

01

Upload

Arquivo enviado para diretório inbound com nome único.

02

Validação

Checagem de schema, encoding e integridade dos dados.

03

Processamento

Transformação, enriquecimento e particionamento.

04

Disponibilização

Dados disponíveis em outbound dentro de 15 minutos.

05

Notificação

Webhook enviado com status do processamento.

Níveis de Serviço (SLAs) e Suporte

Clientes Enterprise possuem acesso a níveis de serviço garantidos contratualmente com suporte 24/7.

Sev 1 (Crítico)

API indisponível ou perda total de funcionalidade de coleta.

< 30 minutos
Resposta 24/7
Sev 2 (Alto)

Degradação de performance ou falha em webhooks.

< 2 horas
Horário Comercial
Sev 3 (Normal)

Dúvidas de integração ou bugs menores.

< 1 dia útil
Suporte Prioritário

Canais de Suporte Enterprise

Slack Connect

Canal dedicado com nossa equipe de engenharia. Resposta em menos de 15 minutos durante horário comercial.

Email Prioritário

enterprise-support@courtex.id - Tickets triados automaticamente por severidade.

Suporte Telefônico

Disponível para incidentes Sev 1 e Sev 2. Número fornecido no onboarding.

Portal de Status

Monitoramento em tempo real de todos os serviços em status.courtex.id.

Gestão de Incidentes

Seguimos um processo estruturado para gestão de incidentes baseado no ITIL:

01

Detecção

Monitoramento proativo detecta anomalias antes do cliente.

02

Triagem

Classificação automática por severidade e impacto.

03

Resposta

Engenheiros on-call acionados conforme SLA.

04

Resolução

Correção aplicada e validada em ambiente staging.

05

Post-Mortem

Análise detalhada e plano de prevenção.

Pronto para Integrar?

Comece a construir com nossas APIs robustas e transforme dados em decisões estratégicas.