Na maioria das integrações você não precisa pensar em tenant explicitamente. A autenticação e o roteamento já carregam o contexto do tenant, e a API filtra os dados por baixo dos panos. Esta página explica o modelo, mostra como o tenant é resolvido em cada request e documenta as poucas exceções em que o Customer aparece na sua frente.
O conceito: por que multi-tenant
A Cativa é uma plataforma multi-tenant: uma única instância da API serve milhares de comunidades diferentes, e cada uma tem os dados completamente isolados das demais. Uma chamada feita no contexto de um tenant nunca enxerga nem afeta dados de outro. Pense num prédio de apartamentos. A estrutura (elevador, encanamento, fachada) é compartilhada, mas cada apartamento tem porta e chave próprias. Ninguém entra no seu apartamento com a chave do vizinho. Na Cativa, a “estrutura” é a API e a infraestrutura; o “apartamento” é o tenant; a “chave” é a credencial que você usa.Customer e tenant são a mesma coisa
No produto, Customer e tenant são o mesmo conceito, vistos de ângulos diferentes:- Customer é o nome comercial/administrativo. Aparece em faturamento, no fluxo OIDC (
{customerName}) e no campocustomerdas respostas. - Tenant é o nome técnico. É a unidade de isolamento de dados.
makersday), que também é o subdomínio público da comunidade.
Como o tenant é resolvido em cada request
Você quase nunca envia o tenant “na mão”. O contexto é deduzido pela forma como a requisição chega. Entender isso ajuda a debugar respostas vazias ou403.
A API Key embute o tenant
A chave de parceiro segue o formato:Como descobrir o customer atual
Se você precisa saber a qual customer sua chave pertence (para logs, auditoria ou sanity check no onboarding), chameGET /auth/me. O campo customer traz o slug do tenant.
Os JSON de exemplo nesta página são ilustrativos. O schema autoritativo campo a campo fica na aba API Reference (tag Auth).
Quando você lida com o Customer explicitamente
Na maior parte das integrações o tenant é invisível. Estas são as exceções.1. Login OIDC (Sign in with Cativa)
1. Login OIDC (Sign in with Cativa)
Os endpoints SSO usam o slug do customer no path:O
customerName é o subdomínio público da comunidade. Alinhe esse valor com o admin do tenant no onboarding. Veja Login com a Cativa para o passo a passo.2. Webhooks que escutam vários tenants
2. Webhooks que escutam vários tenants
Se o mesmo endpoint recebe webhooks de mais de um tenant (comum em apps que servem várias comunidades), o payload traz Salve o mapeamento
CustomerId na raiz para você rotear.customerId -> conta_externa no onboarding do cliente. Não tente deduzir isso a cada evento. O shape de cada evento está documentado na página do webhook (ex.: user_received_badge).3. Apps cross-tenant no Marketplace OAuth
3. Apps cross-tenant no Marketplace OAuth
Se você está construindo um app estilo Zapier que conecta a Cativa a outras ferramentas e serve várias comunidades diferentes, o fluxo correto é o OAuth Marketplace:
1
Instalação
Cada comunidade (tenant) instala seu app uma vez.
2
Token por tenant
A Cativa emite um token OAuth escopado para aquele tenant.
3
Uso
Você guarda um token por tenant e usa o token certo em cada chamada.
4. Console e ferramentas administrativas da plataforma
4. Console e ferramentas administrativas da plataforma
Endpoints de operador da plataforma (
/tenants/v1/admin/...) exigem credenciais de operador e JWT de admin da plataforma. Se você é integrador externo via API Key, ignore essa categoria: ela não é exposta publicamente a parceiros.Erros comuns de contexto de tenant
403 Forbidden
403 Forbidden
A credencial é válida, mas não tem permissão para o recurso, ou você está tentando acessar dado de outro tenant. Lembre: uma chave opera só dentro do próprio tenant. Chame
GET /auth/me e confira o campo customer.Resposta 200 mas vazia ou incompleta
Resposta 200 mas vazia ou incompleta
Quase sempre é resolução de tenant errada em produção (domínio ou header
Cativa-Origin incorreto), então a API filtra e devolve o conjunto vazio daquele tenant. Confirme o subdomínio/origin da requisição.Próximos passos
Identidade e usuários
O modelo User e como ligá-lo ao seu sistema externo.
Webhooks
Como receber eventos da Cativa, incluindo o campo
CustomerId.