Saltar para o conteúdo principal
A Twenty implementa OAuth 2.0 com código de autorização + PKCE para aplicações voltadas ao utilizador e credenciais de cliente para acesso servidor a servidor. Os clientes são registados dinamicamente via RFC 7591 — sem configuração manual num painel.

Quando usar OAuth

CenárioMétodo de autenticação
Scripts internos, automatizaçãoChave de API
Aplicação externa atuando em nome de um utilizadorOAuth — Código de Autorização
Servidor a servidor, sem contexto de utilizadorOAuth — Credenciais do Cliente
Aplicação Twenty com extensões de UIAplicações (OAuth é tratado automaticamente)

Registar um cliente

A Twenty suporta registo dinâmico de clientes conforme RFC 7591. Sem necessidade de configuração manual — registe programaticamente:
POST /oauth/register
Content-Type: application/json

{
  "client_name": "My Integration",
  "redirect_uris": ["https://myapp.com/callback"],
  "grant_types": ["authorization_code"],
  "token_endpoint_auth_method": "client_secret_post"
}
Resposta:
{
  "client_id": "abc123",
  "client_secret": "secret456",
  "client_name": "My Integration",
  "redirect_uris": ["https://myapp.com/callback"]
}
Guarde o client_secret com segurança — não poderá ser recuperado mais tarde.

Escopos

EscopoAcesso
apiAcesso total de leitura/escrita às APIs Core e Metadata
perfilLeia as informações do perfil do utilizador autenticado
Solicite escopos como uma cadeia separada por espaços: scope=api profile

Fluxo de Código de Autorização

Use este fluxo quando a sua aplicação atuar em nome de um utilizador da Twenty.

1. Redirecione o utilizador para autorizar

GET /oauth/authorize?
  client_id=YOUR_CLIENT_ID&
  response_type=code&
  redirect_uri=https://myapp.com/callback&
  scope=api&
  state=random_state_value&
  code_challenge=CHALLENGE&
  code_challenge_method=S256
ParâmetroObrigatórioDescrição
client_idSimO seu ID de cliente registado
response_typeSimDeve ser code
redirect_uriSimDeve corresponder a um URI de redirecionamento registado
scopeNãoEscopos separados por espaços (predefinido para api)
estadoRecomendadoCadeia aleatória para prevenir ataques CSRF
code_challengeRecomendadoDesafio PKCE (hash SHA-256 do verificador, codificado em base64url)
code_challenge_methodRecomendadoDeve ser S256 ao usar PKCE
O utilizador vê um ecrã de consentimento e aprova ou nega o acesso.

2. Trate o callback

Após a autorização, a Twenty redireciona de volta para o seu redirect_uri:
https://myapp.com/callback?code=AUTH_CODE&state=random_state_value
Verifique se state corresponde ao que enviou.

3. Troque o código por tokens

POST /oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&
code=AUTH_CODE&
redirect_uri=https://myapp.com/callback&
client_id=YOUR_CLIENT_ID&
client_secret=YOUR_CLIENT_SECRET&
code_verifier=YOUR_PKCE_VERIFIER
Resposta:
{
  "access_token": "eyJhbG...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "refresh_token": "dGhpcyBpcyBh..."
}

4. Use o token de acesso

GET /rest/companies
Authorization: Bearer ACCESS_TOKEN

5. Atualize quando expirar

POST /oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&
refresh_token=YOUR_REFRESH_TOKEN&
client_id=YOUR_CLIENT_ID&
client_secret=YOUR_CLIENT_SECRET

Fluxo de Credenciais do Cliente

Para integrações servidor a servidor sem interação do utilizador:
POST /oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&
client_id=YOUR_CLIENT_ID&
client_secret=YOUR_CLIENT_SECRET&
scope=api
O token retornado tem acesso ao nível do espaço de trabalho, não vinculado a nenhum utilizador específico.

Descoberta do servidor

A Twenty publica a sua configuração OAuth num endpoint padrão de descoberta:
GET /.well-known/oauth-authorization-server
Isto retorna todos os endpoints, tipos de concessão suportados, escopos e capacidades — útil para criar clientes OAuth genéricos.

Resumo de endpoints da API

EndpointFinalidade
/.well-known/oauth-authorization-serverDescoberta de metadados do servidor
/oauth/registerRegisto dinâmico de cliente
/oauth/authorizeAutorização do utilizador
/oauth/tokenTroca e atualização de tokens
AmbienteURL base
Nuvemhttps://api.twenty.com
Auto-hospedadohttps://{your-domain}

OAuth vs Chaves de API

Chaves APIOAuth
ConfiguraçãoGerar em ConfiguraçõesRegistar um cliente, implementar o fluxo
Contexto do utilizadorNenhum (nível de espaço de trabalho)Permissões de um utilizador específico
Melhor paraScripts, ferramentas internasAplicações externas, integrações multiutilizador
Rotação de tokensManualAutomática via tokens de atualização
Acesso baseado em escoposAcesso total à APIGranular por escopos