Pular para o conteúdo principal

Autenticação

Um token vale para um produto só: os produtos não compartilham credenciais. Um token do Gateway Bancário não autentica no Faturamento Automático, e o contrário também. Autentique-se em cada produto que for usar.

Os tokens vêm da Conta Kobana (account.kobana.com.br). O aud de cada um é a URL da API do produto — por isso o token de um não serve para outro.

Qual método usar​

SituaçãoUse
Você, no seu terminalLogin pelo navegador
Um script ou um agente de IA na sua máquinaO login já feito (as credenciais salvas valem) ou KOBANA_<PRODUTO>_TOKEN
Um servidor, contêiner ou CI, sem navegadorCredenciais exportadas ou KOBANA_<PRODUTO>_TOKEN
Uma aplicação, sem pessoa (só no banking)Client credentials: --client-id e --client-secret

Login pelo navegador (OAuth + PKCE)​

kobana billing auth login
kobana kadu auth login

O login segue a forma de todo comando, kobana <produto> auth login. O navegador abre na Conta Kobana, você aprova, e o CLI guarda o token. Quando ele vence, o CLI o renova sozinho com o refresh token.

O comando lista os escopos que o produto publica (lidos na hora do login) e, em seguida, os níveis de acesso, que valem para todos os recursos escolhidos:

NívelLibera
readLeitura
writeCriação e alteração
deleteExclusão
importImportação em volume
exportExportação em volume

Um nível não implica outro: DELETE exige delete, e importar exige import.

# Escopos sem perguntar (fora de um terminal, o padrão é todos os recursos + read)
kobana billing auth login --scopes "billing/customers,billing/plans,read,write"

# Client credentials — só no banking (token de aplicação, sem pessoa)
kobana banking auth login --client-id <ID> --client-secret <SECRET>

kobana billing auth status # quem sou eu, até quando vale
kobana billing auth export # imprime o JSON das credenciais
kobana billing auth logout

As credenciais ficam uma por produto e ambiente (~/.config/kobana/credentials-<produto>-<ambiente>.enc), criptografadas com AES-256-GCM. A chave fica no keyring do sistema (Keychain no macOS, por exemplo), com arquivo como alternativa.

Token por variável de ambiente​

Para scripts e CI, exporte o token do produto:

export KOBANA_FINANCE_TOKEN=...
kobana finance payables list
ProdutoVariável
bankingKOBANA_BANKING_TOKEN
financeKOBANA_FINANCE_TOKEN
billingKOBANA_BILLING_TOKEN
inboxKOBANA_INBOX_TOKEN
dunningKOBANA_DUNNING_TOKEN
dashboardsKOBANA_DASHBOARDS_TOKEN
kaduKOBANA_KADU_TOKEN ou KADU_TOKEN

No banking, o token de API de Integrações › API › Token de API, na interface da Kobana, também serve.

Servidores e CI​

Onde não há navegador, faça o login numa máquina que tenha um e leve as credenciais:

# Na sua máquina
kobana billing auth login
kobana billing auth export > credentials.json

# No servidor
export KOBANA_CREDENTIALS_FILE=/caminho/credentials.json
kobana billing invoices list

O arquivo é o que auth export imprime, precisa do campo product e vale só para esse produto (e para o environment do arquivo, se houver). Trate-o como um segredo: guarde-o no cofre do CI, não no repositório. Se o token vencer, o CLI o renova com o refresh token do arquivo.

Mais simples ainda, quando você já tem o token: guarde-o como segredo do CI e exporte KOBANA_<PRODUTO>_TOKEN no job.

# GitHub Actions
- run: kobana billing invoices list --page-all --fields "id,status"
env:
KOBANA_BILLING_TOKEN: ${{ secrets.KOBANA_BILLING_TOKEN }}

Ordem de resolução​

PrioridadeFonteConfiguração
1Token do produtoKOBANA_<PRODUTO>_TOKEN
2Arquivo de credenciaisKOBANA_CREDENTIALS_FILE
3Credenciais salvaskobana <produto> auth login

Espaço de trabalho (X-Workspace-Id)​

No finance, toda rota age sobre um espaço de trabalho, escolhido pelo cabeçalho X-Workspace-Id; sem ele a API responde 400 WORKSPACE_REQUIRED. No dashboards e no dunning o cabeçalho é opcional enquanto a organização tem um único workspace.

O CLI preenche o cabeçalho com KOBANA_WORKSPACE_ID. Para trocar de espaço numa chamada só, passe-o em --params, que tem precedência:

export KOBANA_WORKSPACE_ID=uuid-do-espaco
kobana finance payables list
kobana finance payables list --params '{"X-Workspace-Id": "outro-uuid"}'

Ambientes​

O padrão é produção. Troque com --env ou KOBANA_ENVIRONMENT:

kobana banking charge pix list --env sandbox
export KOBANA_ENVIRONMENT=sandbox
kobana billing auth login --env sandbox

Os tokens são diferentes em cada ambiente. Os hosts de cada produto estão em Produtos. --env sandbox num produto sem sandbox termina com erro, para nunca mandar um teste para produção.