Ambiente Privado e Credenciais
Esta documentação descreve as capacidades gerais da plataforma. Endpoints específicos do seu tenant
(ex: https://tenant-name.api.courtex.id) e chaves de acesso são provisionados
exclusivamente através do nosso Portal de Governança após a assinatura do contrato de integração.
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.
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.
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.
- 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 |
{
"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:
Agendamento
Definição de lojas, produtos e frequência via API ou interface web.
Execução
Agente visita o ponto de venda, coleta dados via aplicativo móvel.
Validação
Sistema valida GPS, qualidade das fotos e consistência dos dados.
Processamento
IA analisa imagens, calcula métricas e gera insights.
Disponibilização
Dados disponíveis via API, webhooks e relatórios em tempo real.
Endpoint: Listar Auditorias
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.
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.
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.
/
├── 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:
Upload
Arquivo enviado para diretório inbound com nome único.
Validação
Checagem de schema, encoding e integridade dos dados.
Processamento
Transformação, enriquecimento e particionamento.
Disponibilização
Dados disponíveis em outbound dentro de 15 minutos.
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.
API indisponível ou perda total de funcionalidade de coleta.
< 30 minutos
Resposta 24/7Degradação de performance ou falha em webhooks.
< 2 horas
Horário ComercialDúvidas de integração ou bugs menores.
< 1 dia útil
Suporte PrioritárioCanais 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:
Detecção
Monitoramento proativo detecta anomalias antes do cliente.
Triagem
Classificação automática por severidade e impacto.
Resposta
Engenheiros on-call acionados conforme SLA.
Resolução
Correção aplicada e validada em ambiente staging.
Post-Mortem
Análise detalhada e plano de prevenção.