> For the complete documentation index, see [llms.txt](https://ajuda.digitalsac.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ajuda.digitalsac.io/digicrm/configuracao/integracao-comercial/exemplos-seguranca-e-erros.md).

# Exemplos, segurança e erros

Use estes cenários como testes antes de ativar a integração em produção.

### Upgrade com adicionais

1. Consulte `GET /api/tenants/{id}`.
2. Reenvie o payload completo no `PUT`.
3. Altere plano e adicionais.
4. Consulte novamente e valide.

```json
{
  "name": "Empresa Exemplo LTDA",
  "email": "contato@empresa.com.br",
  "document": "00000000000100",
  "phone": "5511999999999",
  "planId": 3,
  "additionalUsers": 10,
  "additionalChannels": 5,
  "additionalSpace": 50,
  "additionalModules": {
    "activecampaigndigicalls": true,
    "activeinternalchat": true
  }
}
```

Inclua os demais campos exigidos, como status, vencimento e recorrência.

### Remover módulo adicional

Busque o objeto atual, remova a chave e reenvie `additionalModules`. Enviar `false` equivale a não manter a liberação.

### Restringir canais

Envie `channelRules` completo. Para bloquear WABA:

```json
"waba": { "enabled": false, "limit": null }
```

### Checklist

* Expor cinco endpoints de planos, servidores e cadastro.
* Validar `CUSTOM_COMMERCIAL_TOKEN` em todas as chamadas.
* Manter IDs de planos e servidores estáveis.
* Persistir o `tenantId` retornado.
* Usar `COMPANY_TOKEN` somente no backend.
* Implementar idempotência contra cadastros duplicados.
* Reconsultar o tenant após provisionar.
* Auditar sem registrar tokens ou senhas.
* Testar upgrade, downgrade, suspensão e reativação.
* Considerar timeout de 10 segundos para consultas e 30 para cadastro.

### Erros frequentes

#### Plano não aparece

Verifique `isHidden`, formato de `plans`, token, provider, endpoint e sincronização.

#### Cadastro vai ao Perfex

Confirme `COMMERCIAL_PROVIDER=custom`, URL, endpoint e fallback desativado.

#### Tenant sem adicionais

Use `additionalUsers`, `additionalChannels`, `additionalSpace` e `additionalModules` em camelCase.

#### Módulo não liberado

Use uma das nove flags reconhecidas no plano ou em `additionalModules`.

#### Canal recusado

Envie os sete tipos, sem chaves desconhecidas. Use `null` ou inteiro maior que zero em `limit`.

#### PUT falha na validação

A atualização não é parcial. Reenvie nome, e-mail, documento, telefone e plano.

### Segurança

* HTTPS obrigatório.
* Tokens em segredo gerenciado e com rotação.
* Nunca enviar `COMPANY_TOKEN` ao navegador.
* Nunca registrar senha, Bearer ou token de servidor.
* Aplicar rate limit e auditoria.
* Não ativar fallback automático ao Perfex sem decisão explícita.

### Critério de aceite

A integração está pronta quando lista planos, escolhe o servidor padrão, recebe cadastro, cria tenant, aplica adicionais e regras, e consulta de volta o contrato efetivo.
