Tudo que ajusta o comportamento da plataforma em uma tela.
Organization settings, dunning, NFe defaults, portal toggles, backup schedule, branding. Mudanças refletidas em workers e cobrança automaticamente.
Sistema

1
Organization por tenant
AES-256-GCM
GlobalSettings encryption
Versionado
em AuditLog
Real-time
aplicação imediata
Categorias de configuração
Organização
Razão social, CNPJ, endereço, contato. Vinculado à Person da organização. Aplicado em e-mails, NFe, documentos.
- Razão social, CNPJ, endereço
- Vinculado à Person
- Aplicado em e-mails e NFe
Branding
Logo (light + dark), favicon, cores primárias. Aplicado em portal, e-mails e PDFs.
- Logo light + dark
- Favicon e cores
- Portal, e-mails, PDFs
Dunning
DunningConfig — maxRetries, retryIntervalDays, gracePeriodDays, suspendAfterRetries, métodos para retry.
- maxRetries + retryIntervalDays
- gracePeriodDays
- Métodos para retry
NFe
NfeConfig — provider, política de emissão, retry, descrição padrão.
- Provider
- Política de emissão
- Retry config
Portal
PortalConfig — toggles, branding, custom domain.
- Toggles
- Branding
- Custom domain
Subscription Change
SubscriptionChangeConfig — controla item changes (allow add/remove, proration, timing).
- Add/remove items
- Proration
- Timing
Plan Change
PlanChangeConfig — allowUpgrade, allowDowngrade, proration method, timing (immediate vs end_of_period).
- allowUpgrade / allowDowngrade
- Proration method
- Immediate vs end_of_period
Backup
Backup config — frequência, retenção, storage. Worker backup executa via pg_dump.
- Frequência configurável
- Retenção
- pg_dump
Notificações
Defaults para canal + tipo. NotificationPreference por billing account herda destes defaults.
- Defaults por canal
- Herança em BillingAccount
- Override granular
API + Rate Limits
RateLimitConfig — limites GET vs mutation, por minuto e por hora.
- GET vs mutation
- Por minuto e por hora
- Configurável por org
Recursos avançados
GlobalSettings (Secrets)
Chaves sensíveis (tokens de integração, API keys de terceiros) armazenadas em GlobalSettings com valueEncrypted (AES-256-GCM).
- sensitive=true impede exibição
- Acesso apenas via service
- Soft delete preserva histórico
Backup Automático
Worker backup cria snapshot do tenant. Storage S3 com retenção configurável. RestoreLog rastreia restaurações.
- pg_dump por organização
- Download via URL assinada
- Restore com confirmação dupla
- Worker backup-cleanup (diário 03:00 UTC)
Aplicação Imediata
Mudanças refletidas no próximo ciclo dos workers (5min a 6h dependendo do job). Sem deploy necessário.
- Próximo ciclo do worker
- Sem deploy
- Real-time effect
Versionamento via AuditLog
Toda mudança em settings registra previousValues + newValues + userEmail + timestamp em AuditLog.
- previousValues + newValues
- userEmail + timestamp
- Em AuditLog
Restore Stale Detection
Worker stale-restore-check (a cada 30 min) marca restaurações cujos jobs BullMQ ficaram travados como failed.
- A cada 30 min
- Detecta jobs travados
- Mark as failed
Multi-Layer Configuration
Hierarquia: GlobalSettings (sistema) → Organization defaults → Company override → BillingAccount preference. Cada layer pode override.
- 4 camadas
- Cada layer pode override
- Hierarquia clara
LGPD: DataPurge Schedule
Configurar período de retenção de dados pessoais. Worker data-purge aplica conforme política.
- Retenção de dados pessoais
- Worker data-purge
- Política configurável
Configuração via API
Todas configurações editáveis via REST. Útil para multi-tenant automatizado.
- REST API
- Multi-tenant automatizado
- Provisionamento via código
Atualizar dunning config via API
bash
curl -X PATCH https://api.billing.kobana.com.br/v1/organizations/settings/dunning \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"max_retries": 4,
"retry_interval_days": [2, 5, 10, 20],
"grace_period_days": 15,
"suspend_after_retries": true
}'response
{
"id": "dc_xyz",
"max_retries": 4,
"retry_interval_days": [2, 5, 10, 20],
"updated_at": "2026-06-06T12:00:00Z"
}