# Autenticação (/authentication) Todas as operações públicas usam uma API key no esquema Bearer: ```http Authorization: Bearer vsk_live_•••••••••••• ``` As chaves pertencem ao workspace que as criou. O tenant é derivado da chave autenticada; a API ignora qualquer tentativa de informar `tenantId` no payload. ## Boas práticas [#boas-práticas] * Use uma chave por integração ou ambiente para facilitar rotação e auditoria. * Armazene a chave somente no backend, em um secret manager. * Nunca envie o segredo por query string. * Revogue imediatamente uma chave exposta e atualize a integração. * Não registre o header `Authorization` em logs ou ferramentas de observabilidade. ## Respostas de autenticação [#respostas-de-autenticação] Uma chave ausente, inválida ou revogada produz `401` com um código estável: ```json { "code": "API_KEY_INVALID", "error": "Invalid API key" } ``` Um `403` indica que a chave foi reconhecida, mas o workspace não pode executar a operação naquele momento — por acesso, assinatura ou entitlement. ## Scopes [#scopes] Escolha as permissões mínimas ao criar a chave: | Scope | Permissão | | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | | `messages:send` | Enviar mensagens e consultar a entrega | | `crm.contacts:read` / `crm.contacts:write` | Ler ou alterar contatos | | `crm.companies:read` / `crm.companies:write` | Ler ou alterar empresas | | `crm.deals:read` / `crm.deals:write` | Ler ou alterar negócios | | `crm.configuration:read` | Ler pipelines, etapas, tags e campos personalizados | | `webhooks:manage` | Gerenciar endpoints de webhook de saída: criar, atualizar, excluir, regenerar segredo, testar e reenviar entregas | Uma chave sem o scope exigido recebe `403` com o código `API_KEY_SCOPE_REQUIRED`. # Changelog (/changelog) ## 2026-10-02 — Webhooks de eventos [#2026-10-02--webhooks-de-eventos] * Seção [Webhooks de eventos](/webhooks) no portal: visão geral, primeiros passos com n8n, assinatura Standard Webhooks (Node, Python e nó Code do n8n), formato do envelope, catálogo dos 23 tipos e a tabela de retentativas/desativação. * Novo scope de API key `webhooks:manage`, para criar e gerenciar endpoints de webhook de saída sem passar pela UI. * Gestão de endpoints e entregas disponível em `/api/v1/integrations/webhooks/*` — ainda sem referência OpenAPI gerada, documentada em tabela na própria seção. ## 2026-08-27 — Portal Vensy Developers [#2026-08-27--portal-vensy-developers] * Portal público consolidado em `/docs` com busca e guias por tarefa. * Referência gerada do mesmo contrato OpenAPI usado pelo servidor. * Contrato OpenAPI público em `/api/v1/openapi.json`. * Documentação explícita de `Idempotency-Key` e `Prefer: respond-async`. * Correção do exemplo de template: variáveis agora aparecem no nível raiz do payload. * Swagger legado em `/documentation` redireciona para o novo portal. ## Versionamento [#versionamento] Endpoints estáveis permanecem sob `/api/v1`. Mudanças incompatíveis exigem uma nova versão de rota e serão anunciadas nesta página antes da remoção de um contrato suportado. # MCP (/connect-ai) A Vensy expõe um servidor MCP para Claude, Codex e ChatGPT. Você configura a URL, faz login na sua conta e autoriza o workspace. O aplicativo passa a operar com o **mesmo papel** de quem autorizou. ##