QontoCtl
CLI e servidor MCP para a API bancária empresarial Qonto — gerencie transações, faturas, clientes, transferências e muito mais
Documentação

CLI e servidor MCP para a API bancária do Qonto.
Este projeto é oferecido por Alexey Pelykh.
Projeto não oficial. O QontoCtl é independente e não é afiliado, endossado ou suportado pela Qonto. Consulte o Aviso Legal.
O Que Ele Faz
O QontoCtl permite que assistentes de IA (Claude, etc.) interajam com a Qonto por meio do Model Context Protocol. Ele pode:
- Organizações — recuperar detalhes e configurações da organização
- Contas — listar, criar, atualizar, fechar contas bancárias; baixar certificados IBAN
- Transações — listar, pesquisar, filtrar transações bancárias; gerenciar anexos de transações
- Extratos Bancários — listar, visualizar e baixar extratos bancários
- Etiquetas — gerenciar etiquetas e categorias de transações
- Associações — visualizar membros da equipe, mostrar associação atual, convidar novos membros
- Beneficiários SEPA — listar, adicionar, atualizar, confiar/não confiar em beneficiários SEPA
- Transferências SEPA — listar, criar, cancelar transferências; baixar comprovantes; verificar beneficiários
- Transferências Internas — criar transferências entre contas da mesma organização
- Transferências em Lote — listar, visualizar e criar lotes de transferências SEPA em massa
- Transferências Recorrentes — listar, visualizar, criar, cancelar transferências recorrentes
- Transferências Internacionais (SWIFT) — criar transferências SWIFT e gerenciar beneficiários internacionais
- Cartões — listar, criar, atualizar, bloquear/desbloquear, reportar perdido/roubado, descartar cartões
- Equipes — listar e criar equipes
- Webhooks — criar e gerenciar assinaturas de webhook
- Links de Pagamento — criar, desativar e gerenciar links de pagamento com suporte Stripe
- Seguros — mostrar, criar, atualizar contratos de seguro e gerenciar documentos
- Terminais (POS) — listar Terminais Qonto e iniciar pagamentos de terminal
- Produtos — listar produtos do catálogo
- Clientes — listar, criar, atualizar, excluir clientes
- Faturas de Clientes — ciclo de vida completo: criar, atualizar, finalizar, enviar, marcar como paga, cancelar, enviar arquivos
- Cotações — criar, atualizar, excluir, enviar cotações
- Notas de Crédito — listar e visualizar notas de crédito
- Faturas de Fornecedores — listar, visualizar e criar em massa faturas de fornecedores
- Solicitações — listar solicitações da organização
- Anexos — enviar e visualizar anexos
- Faturamento Eletrônico — recuperar configurações de faturamento eletrônico
QontoCtl e o MCP oficial da Qonto
O QontoCtl é um projeto independente e não oficial — não afiliado ou endossado pela Qonto.
A Qonto oferece seu próprio servidor MCP oficial — hospedado, gratuito em todos os planos e instalável com um toque a partir do Claude, ChatGPT, Cursor e outros. Se você quiser conversar com suas finanças — "mostrar meus saldos", "gráfico dos gastos do mês passado", "rascunhar uma fatura" — é uma opção excelente e bem feita.
O QontoCtl foi criado para uma tarefa diferente: automatizar a Qonto, não apenas conversar com ela.
O MCP oficial é um assistente hospedado no qual você faz login como usuário. O QontoCtl é um kit de ferramentas local e de código aberto — um CLI, um servidor MCP e uma biblioteca — que roda na sua própria máquina com suas próprias credenciais, inclusive como conta de serviço headless.
| MCP Oficial | QontoCtl | |
|---|---|---|
| Executa headless — CI, cron, scripts, sem chat | Somente interativo | ✅ CLI + MCP + biblioteca |
| Autenticação | OAuth, por usuário | ✅ Chave de API (conta de serviço) ou OAuth |
| Executa transferências SEPA / internas / recorrentes | Prepara solicitações de aprovação | ✅ Sim, com SCA tratado* |
| Cobertura da API | Subconjunto selecionado | ✅ Abrangente |
| Auto-hospedado · suas credenciais · código aberto | Hospedado pela Qonto | ✅ AGPL-3.0, local-first |
Comparação baseada na documentação pública do MCP da Qonto em julho de 2026.
* Transferências para beneficiários não confiáveis ainda exigem sua aprovação de Autenticação Forte do Cliente, como devem. O QontoCtl lida com a continuação do SCA para que fluxos scriptados — para beneficiários confiáveis e entre suas próprias contas — sejam concluídos sem um humano no terminal.
O QontoCtl também suporta múltiplas organizações Qonto a partir de uma única configuração por meio de perfis nomeados — útil para contadores, holdings e qualquer pessoa que gerencie as contas de várias entidades.
O MCP oficial conversa com a Qonto. O QontoCtl automatiza. Muitas pessoas usarão ambos — o MCP oficial em uma janela de chat, o QontoCtl em um pipeline.
Pré-requisitos
- Node.js >= 24
- Uma conta empresarial Qonto com acesso à API
Instalação
npm install -g qontoctl
Ou execute diretamente com npx:
npx qontoctl --help
Ou instale via Homebrew:
brew install qontoctl/tap/qontoctl
Início Rápido
# 1. Install
npm install -g qontoctl
# 2. Create a profile with your Qonto API credentials
qontoctl profile add mycompany
# 3. Test the connection
qontoctl profile test --profile mycompany
# 4. List your accounts
qontoctl account list --profile mycompany
Integração MCP
O QontoCtl implementa o Model Context Protocol (MCP), permitindo que assistentes de IA interajam com sua conta Qonto por meio de linguagem natural.
Configuração do Cliente MCP
Claude Desktop
Adicione à sua configuração do Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"qontoctl": {
"command": "npx",
"args": ["qontoctl", "mcp"]
}
}
}
Claude Code
claude mcp add qontoctl -- npx qontoctl mcp
Cursor
Adicione a .cursor/mcp.json na raiz do seu projeto:
{
"mcpServers": {
"qontoctl": {
"command": "npx",
"args": ["qontoctl", "mcp"]
}
}
}
Windsurf
Adicione a ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"qontoctl": {
"command": "npx",
"args": ["qontoctl", "mcp"]
}
}
}
Apontando o MCP para um arquivo de configuração não padrão
O servidor MCP não possui flags de CLI. Para carregar credenciais de um arquivo de configuração diferente de ~/.qontoctl.yaml, defina QONTOCTL_CONFIG_FILE no bloco env do host:
{
"mcpServers": {
"qontoctl": {
"command": "npx",
"args": ["qontoctl", "mcp"],
"env": {
"QONTOCTL_CONFIG_FILE": "/abs/path/to/qontoctl.yaml",
},
},
},
}
O caminho é capturado na inicialização do servidor. Consulte docs/configuration.md para a cadeia completa de resolução.
Ferramentas MCP Disponíveis
| Ferramenta | Descrição |
|---|---|
| Organização | |
org_show | Mostra detalhes da organização, incluindo nome, slug e contas bancárias |
| Contas | |
account_list | Lista todas as contas bancárias da organização |
account_show | Mostra detalhes de uma conta bancária específica |
account_iban_certificate | Baixa o certificado IBAN em PDF de uma conta bancária |
account_create | Cria uma nova conta bancária |
account_update | Atualiza uma conta bancária existente |
account_close | Encerra uma conta bancária |
| Transações | |
transaction_list | Lista transações de uma conta bancária com filtros opcionais |
transaction_show | Mostra detalhes de uma transação específica |
transaction_attachment_list | Lista anexos de uma transação |
transaction_attachment_add | Anexa um arquivo a uma transação |
transaction_attachment_remove | Remove anexo(s) de uma transação |
| Extratos | |
statement_list | Lista extratos bancários com filtros opcionais |
statement_show | Mostra detalhes de um extrato bancário específico |
| Etiquetas | |
label_list | Lista todas as etiquetas da organização |
label_show | Mostra detalhes de uma etiqueta específica |
| Associações | |
membership_list | Lista todas as associações da organização |
membership_show | Mostra a associação do usuário autenticado atual |
membership_invite | Convida um novo membro para a organização |
| Beneficiários SEPA | |
beneficiary_list | Lista beneficiários SEPA na organização |
beneficiary_show | Mostra detalhes de um beneficiário SEPA específico |
beneficiary_add | Cria um novo beneficiário SEPA |
beneficiary_update | Atualiza um beneficiário SEPA existente |
beneficiary_trust | Confia em um ou mais beneficiários SEPA |
beneficiary_untrust | Deixa de confiar em um ou mais beneficiários SEPA |
| Transferências SEPA | |
transfer_list | Lista transferências SEPA com filtros opcionais |
transfer_show | Mostra detalhes de uma transferência SEPA específica |
transfer_create | Cria uma transferência SEPA |
transfer_cancel | Cancela uma transferência SEPA pendente |
transfer_proof | Baixa o comprovante PDF de transferência SEPA |
transfer_verify_payee | Verifica um beneficiário (Verification of Payee / VoP) |
transfer_bulk_verify_payee | Verifica beneficiários em lote (VoP) |
| Transferências Internas | |
internal_transfer_create | Cria uma transferência interna entre duas contas bancárias |
| Transferências em Lote | |
bulk_transfer_list | Lista transferências em lote |
bulk_transfer_show | Mostra detalhes de uma transferência em lote específica |
bulk_transfer_create | Cria uma transferência SEPA em lote (resolve VoP automaticamente via bulk_verify_payee) |
| Transferências Recorrentes | |
recurring_transfer_list | Lista transferências recorrentes |
recurring_transfer_show | Mostra detalhes de uma transferência recorrente específica |
| Terminais (POS) | |
terminal_list | Lista terminais Qonto vinculados à organização |
terminal_payment_create | Inicia um pagamento em um terminal (retorna 202 Accepted) |
| Produtos | |
product_list | Lista produtos do catálogo com paginação e ordenação opcionais |
| Clientes | |
client_list | Lista clientes com paginação opcional |
client_show | Mostra detalhes de um cliente específico |
client_create | Cria um novo cliente |
client_update | Atualiza um cliente existente |
client_delete | Exclui um cliente |
| Faturas de Clientes | |
client_invoice_list | Lista faturas de clientes com filtros opcionais |
client_invoice_show | Mostra detalhes de uma fatura de cliente específica |
client_invoice_create | Cria um rascunho de fatura de cliente com cliente e itens de linha |
client_invoice_update | Atualiza um rascunho de fatura de cliente |
client_invoice_delete | Exclui um rascunho de fatura de cliente |
client_invoice_finalize | Finaliza uma fatura de cliente (atribui número) |
client_invoice_send | Envia uma fatura de cliente por e-mail |
client_invoice_mark_paid | Marca uma fatura de cliente como paga |
client_invoice_unmark_paid | Desmarca o status de pago de uma fatura de cliente |
client_invoice_cancel | Cancela uma fatura de cliente finalizada |
client_invoice_upload | Envia um arquivo para uma fatura de cliente |
client_invoice_upload_show | Mostra detalhes de upload de uma fatura de cliente |
| Orçamentos | |
quote_list | Lista orçamentos com filtros opcionais |
quote_show | Mostra detalhes de um orçamento específico |
quote_create | Cria um novo orçamento com cliente e itens de linha |
quote_update | Atualiza um orçamento existente |
quote_delete | Exclui um orçamento |
quote_send | Envia um orçamento ao cliente por e-mail |
| Notas de Crédito | |
credit_note_list | Lista notas de crédito na organização |
credit_note_show | Mostra detalhes de uma nota de crédito específica |
| Faturas de Fornecedores | |
supplier_invoice_list | Lista faturas de fornecedores com filtros opcionais |
supplier_invoice_show | Mostra detalhes de uma fatura de fornecedor específica |
supplier_invoice_bulk_create | Cria faturas de fornecedores enviando arquivos |
| Solicitações | |
request_list | Lista todas as solicitações da organização |
| Sessões SCA | |
sca_session_show | Mostra o status de uma sessão SCA (waiting / allow / deny) |
sca_session_mock_decision | Simula uma decisão SCA no sandbox da Qonto (somente sandbox) |
| Anexos | |
attachment_upload | Envia um arquivo de anexo (PDF, JPEG, PNG) |
attachment_show | Mostra detalhes de um anexo específico |
| Faturamento Eletrônico | |
einvoicing_settings | Recupera as configurações de faturamento eletrônico da organização |
Exemplos de Prompts
Depois de configurado, você pode perguntar ao seu assistente de IA coisas como:
- "Mostre meus saldos de contas Qonto"
- "Liste transações recentes acima de 1000 EUR"
- "Quais foram os pagamentos com cartão do mês passado?"
- "Mostre todos os membros da equipe na minha organização"
- "Liste extratos bancários de janeiro de 2026"
- "Crie um resumo dos débitos desta semana"
Continuação SCA
Algumas operações de escrita da Qonto — criar uma transferência, modificar um cartão, aprovar uma solicitação — exigem Autenticação Forte do Cliente (SCA): o usuário precisa aprovar a solicitação no aplicativo móvel da Qonto antes que ela seja executada. O QontoCtl envolve cada ferramenta de escrita MCP protegida por SCA com um fluxo de continuação para que o cliente LLM nunca precise reimplementar a sondagem.
Como uma ferramenta envolvida se comporta
Quando uma ferramenta protegida por SCA (ex.: transfer_create, card_create, beneficiary_trust, request_approve) encontra um desafio SCA 428, o wrapper sonda a sessão SCA inline. Se o usuário aprovar dentro da janela de sondagem, a ferramenta retorna o resultado de sucesso da operação de forma transparente — o LLM nunca vê o round-trip do SCA. Se a sondagem expirar (ou estiver desabilitada), a ferramenta retorna uma resposta estruturada de SCA pendente contendo o token da sessão e instruções para continuar.
Cada ferramenta envolvida expõe dois campos de entrada opcionais para este fluxo:
wait— segundos máximos para sondar inline antes de cair para a resposta pendente.sca_session_token— vincula um desafio SCA previamente aprovado a uma nova tentativa.
O controle wait
| Valor | Comportamento |
|---|---|
30 (padrão) | Consulta por até 30 segundos e, em seguida, recorre à resposta pendente estruturada. |
1–120 | Consulta pelo número de segundos especificado (limitado a 120). |
0 ou false | Pule a consulta completamente. Retorne a resposta pendente de SCA imediatamente no primeiro 428. |
O limite superior 120 é o teto rígido imposto via Zod na fronteira de entrada. O teto prático é o tempo limite de solicitação do seu host MCP — o Claude Desktop define ≈ 60 s e o limite efetivo do Cursor é ≈ 30 s, então valores acima desses aparecerão como timeouts do lado do host antes que o wrapper resolva. Use um wait pequeno (por exemplo, 5-10) quando o LLM espera que o usuário esteja presente e disposto a aprovar imediatamente. Use wait: false (ou wait: 0) para fluxos puros de duas etapas onde o LLM e o usuário conversam fora de banda entre o desafio SCA e a nova tentativa.
Fallback de duas etapas (continuação fora de banda)
Quando a consulta não resolve, a resposta pendente de SCA contém:
- Uma mensagem voltada ao usuário:
"SCA required. The user must approve this operation on their Qonto mobile app." - Uma linha
Session token: <token>(validade do token: 15 minutos a partir da emissão). - Instruções passo a passo para continuar.
O LLM (ou o usuário) pode então:
- Consulte o status da sessão com a ferramenta
sca_session_show, passando o token capturado. Ela retornawaiting,allowoudeny. - Tente novamente a ferramenta original assim que o status for
allow, passando os mesmos parâmetros maissca_session_token: "<token>". O wrapper invoca a operação exatamente uma vez com o token vinculado — nenhuma segunda consulta acontece.
Vinculação dinâmica PSD2. O token de sessão SCA está vinculado aos parâmetros originais da solicitação (valor, beneficiário). Reutilizar um token em uma operação diferente é rejeitado pela Qonto. Reemita um desafio SCA chamando a ferramenta original novamente sempre que os parâmetros precisarem mudar.
Nova tentativa fornecida pelo chamador (sca_session_token)
Quando sca_session_token está definido em uma ferramenta de escrita encapsulada, o wrapper:
- Invoca a operação exatamente uma vez.
- Pula a consulta completamente.
- Encaminha o token via o cabeçalho
X-Qonto-Sca-Session-Token.
Este é o caminho usado pela etapa (2) do fallback de duas etapas. Também é útil quando o cliente LLM implementa sua própria cadência de consulta e só precisa que o wrapper tente novamente com uma aprovação já capturada.
Testes em sandbox
Contas sandbox não podem registrar um dispositivo pareado real, então desafios SCA em sandbox usam um fluxo mock. Após receber uma resposta pendente, simule a decisão do usuário com a ferramenta sca_session_mock_decision (somente sandbox — recusa-se a executar quando nenhum token de staging está configurado). Consulte docs/sandbox-testing.md para a configuração completa do sandbox.
Nota de migração
Versões anteriores do QontoCtl (pré-continuação SCA @qontoctl/mcp) retornavam uma resposta de texto livre no 428 sem ganchos de continuação. Chamadores que analisam essa resposta devem adotar o fluxo estruturado:
| Antes | Depois |
|---|---|
| O texto livre mencionava o endpoint SCA, mas não oferecia nenhuma forma exposta via MCP de continuar. | A resposta pendente de SCA ainda é conteúdo de texto, mas sua forma é estável: Session token: <token> é a linha canônica; sca_session_show é a API de consulta. |
| A consulta exigia acionar a API HTTP da Qonto diretamente. | Use a ferramenta MCP sca_session_show. |
| Reexecutar a operação deixava a aprovação anterior órfã. | Tente novamente a ferramenta original com o parâmetro sca_session_token capturado — a aprovação anterior está vinculada a essa nova tentativa. |
| Não havia como optar pela consulta inline — todo 428 era um beco sem saída. | Passe wait: <seconds> (1-120) para consultar inline; as ferramentas usam 30s por padrão. Passe wait: false para o fluxo explícito de duas etapas. |
O formato textual da resposta pendente é estável, então chamadores que precisam extrair o token programaticamente podem corresponder à linha Session token: — mas usar sca_session_show diretamente evita depender da prosa da resposta.
Uso da CLI
Primeiro comando a tentar quando algo não funciona:
qontoctl diagnose— uma verificação de saúde somente leitura em configuração, credenciais, escopos, metadados da organização e roteamento do host.
Comandos
| Command | Description |
|---|---|
diagnose | Verificação de saúde somente leitura (veja solução de problemas) |
org show | Mostrar detalhes da organização |
account list | Listar contas bancárias |
account show <id> | Mostrar detalhes da conta bancária |
account iban-certificate <id> | Baixar PDF do certificado IBAN |
account create | Criar uma nova conta bancária |
account update <id> | Atualizar uma conta bancária |
account close <id> | Encerrar uma conta bancária |
transaction list | Listar transações com filtros |
transaction show <id> | Mostrar detalhes da transação |
transaction attachment list <id> | Listar anexos de uma transação |
transaction attachment add <id> <file> | Anexar um arquivo a uma transação |
transaction attachment remove <id> [att-id] | Remover anexo(s) de uma transação |
statement list | Listar extratos bancários |
statement show <id> | Mostrar detalhes do extrato |
statement download <id> | Baixar PDF do extrato |
label list | Listar todas as etiquetas |
label show <id> | Mostrar detalhes da etiqueta |
membership list | Listar associações da organização |
membership show | Mostrar associação do usuário atual |
membership invite | Convidar um novo membro |
beneficiary list | Listar beneficiários SEPA |
beneficiary show <id> | Mostrar detalhes do beneficiário |
beneficiary add | Criar um novo beneficiário |
beneficiary update <id> | Atualizar um beneficiário |
beneficiary trust <id...> | Confiar em um ou mais beneficiários |
beneficiary untrust <id...> | Não confiar em um ou mais beneficiários |
transfer list | Listar transferências SEPA |
transfer show <id> | Mostrar detalhes da transferência SEPA |
transfer create | Criar uma transferência SEPA |
transfer cancel <id> | Cancelar uma transferência SEPA pendente |
transfer proof <id> | Baixar PDF do comprovante de transferência SEPA |
transfer verify-payee | Verificar um beneficiário (VoP) |
transfer bulk-verify-payee | Verificar beneficiários em massa a partir de CSV |
internal-transfer create | Criar uma transferência interna |
bulk-transfer list | Listar transferências em massa |
bulk-transfer show <id> | Mostrar detalhes da transferência em massa |
bulk-transfer create | Criar uma transferência SEPA em massa a partir de JSON |
recurring-transfer list | Listar transferências recorrentes |
recurring-transfer show <id> | Mostrar detalhes da transferência recorrente |
terminal list | Listar terminais Qonto (POS) |
terminal payment create <id> | Iniciar um pagamento em um terminal |
product list | Listar produtos do catálogo |
client list | Listar clientes |
client show <id> | Mostrar detalhes do cliente |
client create | Criar um novo cliente |
client update <id> | Atualizar um cliente |
client delete <id> | Excluir um cliente |
client-invoice list | Listar faturas de clientes |
client-invoice show <id> | Mostrar detalhes da fatura do cliente |
client-invoice create | Criar um rascunho de fatura de cliente |
client-invoice update <id> | Atualizar um rascunho de fatura de cliente |
client-invoice delete <id> | Excluir um rascunho de fatura de cliente |
client-invoice finalize <id> | Finalizar fatura de cliente e atribuir número |
client-invoice send <id> | Enviar fatura de cliente por e-mail |
client-invoice mark-paid <id> | Marcar fatura de cliente como paga |
client-invoice unmark-paid <id> | Desmarcar status de pago da fatura de cliente |
client-invoice cancel <id> | Cancelar uma fatura de cliente finalizada |
client-invoice upload <id> <file> | Enviar um arquivo para uma fatura de cliente |
client-invoice upload-show <id> <upload-id> | Mostrar detalhes do envio de uma fatura de cliente |
quote list | Listar cotações |
quote show <id> | Mostrar detalhes da cotação |
quote create | Criar uma nova cotação |
quote update <id> | Atualizar uma cotação |
quote delete <id> | Excluir uma cotação |
quote send <id> | Enviar cotação ao cliente por e-mail |
credit-note list | Listar notas de crédito |
credit-note show <id> | Mostrar detalhes da nota de crédito |
supplier-invoice list | Listar faturas de fornecedores |
supplier-invoice show <id> | Mostrar detalhes da fatura de fornecedor |
supplier-invoice bulk-create | Criar faturas de fornecedores a partir de arquivos |
einvoicing settings | Mostrar configurações de faturamento eletrônico |
request list | Listar todas as solicitações |
attachment upload <file> | Enviar um arquivo de anexo |
attachment show <id> | Mostrar detalhes do anexo |
auth setup | Configurar credenciais do cliente OAuth |
auth login | Iniciar fluxo de login OAuth |
auth status | Exibir status do token OAuth (focado; para saúde da integração completa, use diagnose) |
auth refresh | Atualizar o token de acesso OAuth |
auth revoke | Revogar consentimento OAuth e limpar tokens |
profile add <name> | Criar um perfil nomeado |
profile list | Listar todos os perfis |
profile show <name> | Mostrar detalhes do perfil (segredos ocultos) |
profile remove <name> | Remover um perfil nomeado |
profile test | Testar credenciais |
completion bash | Gerar completions bash |
completion zsh | Gerar completions zsh |
completion fish | Gerar completions fish |
mcp | Iniciar servidor MCP em stdio |
Opções Globais
| Opção | Descrição |
|---|---|
--config <path> | Caminho explícito para um arquivo de configuração (substitui --profile e QONTOCTL_CONFIG_FILE) |
-p, --profile <name> | Perfil de configuração a ser usado |
-o, --output <format> | Formato de saída: table (padrão), json, yaml, csv |
--page <number> | Buscar uma página específica de resultados |
--per-page <number> | Resultados por página |
--no-paginate | Desativar paginação automática |
--verbose | Ativar saída detalhada (verbose) |
--debug | Ativar saída de depuração (implica --verbose) |
Configuração
O QontoCtl suporta dois métodos de autenticação:
- API Key — acesso exclusivo para produção usando o slug da sua organização e a chave secreta. Suporta os endpoints listados como "API key ✔" na tabela de autenticação do Qonto (a maioria das leituras e muitas escritas — transferências internas, clientes, anexos, …). Não pode ser usado contra o sandbox do Qonto.
- OAuth 2.0 — acesso completo, incluindo endpoints exclusivos de OAuth (cartões, equipes, webhooks, faturamento eletrônico, links de pagamento, seguros, transferências internacionais, transferências recorrentes, fluxos SCA) e o sandbox do Qonto via staging-token; consulte o Guia de Configuração do App OAuth.
Formato do Perfil
Todos os arquivos de configuração usam o mesmo formato YAML:
# API Key authentication
api-key:
organization-slug: acme-corp-4821
secret-key: your-secret-key
# OAuth 2.0 authentication (see docs/oauth-setup.md)
oauth:
client-id: your-client-id
client-secret: your-client-secret
Ordem de Resolução
A CLI resolve o arquivo de configuração nesta ordem (maior prioridade primeiro):
- Flag
--config <path> - Variável de ambiente
QONTOCTL_CONFIG_FILE ~/.qontoctl/{name}.yaml(quando--profile <name>é fornecido)~/.qontoctl.yaml(padrão do diretório home)
Quando --config é fornecido junto com QONTOCTL_CONFIG_FILE ou --profile e os caminhos resolvidos divergem, --config vence e um aviso é emitido no stderr para que a substituição fique visível.
Sem descoberta no diretório atual. A CLI não verifica o diretório de trabalho em busca de
.qontoctl.yaml. Para configuração local ao repositório, use um shimdirenvque exporteQONTOCTL_CONFIG_FILE="$PWD/.qontoctl.yaml", ou passe--config ./.qontoctl.yamlexplicitamente em cada invocação.
Substituições por campo são aplicadas sobre o arquivo carregado:
- Sem
--profile: variáveis de ambienteQONTOCTL_*substituem os valores do arquivo - Com
--profile acme: variáveis de ambienteQONTOCTL_ACME_*substituem os valores do arquivo
Para a referência completa (regras de precedência por ponto de entrada, semântica de perfil, migração da descoberta CWD), consulte docs/configuration.md.
Variáveis de Ambiente
As variáveis de ambiente substituem os valores do arquivo. Elas carregam entradas (configuração estática) que a ferramenta lê, mas nunca grava de volta; o estado mutável em tempo de execução (tokens de atualização, expiração de token, escopos concedidos) vive apenas no arquivo. Consulte a nota sobre QONTOCTL_ACCESS_TOKEN abaixo.
Sem --profile:
| Variável | Descrição |
|---|---|
QONTOCTL_ORGANIZATION_SLUG | Slug da organização |
QONTOCTL_SECRET_KEY | Chave secreta da API |
QONTOCTL_CLIENT_ID | ID do cliente OAuth |
QONTOCTL_CLIENT_SECRET | Segredo do cliente OAuth |
QONTOCTL_ACCESS_TOKEN | Token de acesso OAuth (somente leitura — veja abaixo) |
QONTOCTL_ENDPOINT | Endpoint de API personalizado |
QONTOCTL_STAGING_TOKEN | Token de staging (ativa URLs do sandbox) |
Com --profile <name>, o prefixo torna-se QONTOCTL_{NAME}_ (em maiúsculas, hífens substituídos por sublinhados). Por exemplo, --profile acme lê QONTOCTL_ACME_ORGANIZATION_SLUG.
Semântica de
QONTOCTL_ACCESS_TOKEN: quando definido, o bearer fornecido pelo ambiente é usado apenas para a invocação atual. A atualização proativa de token não é tentada, e tokens atualizados não são persistidos em disco (espelhaAWS_SESSION_TOKEN). Se o token expirou, a API retorna um401; reemita o token externamente.
QONTOCTL_REFRESH_TOKENnão é suportado intencionalmente. Tokens de atualização são estado mutável em tempo de execução — cada atualização produz um novo valor que a ferramenta precisa gravar em algum lugar — e variáveis de ambiente carregam entradas, não estado. Use credenciais baseadas em arquivo (~/.qontoctl.yamlou um perfil) para fluxos OAuth que precisam de atualização, ou use variáveis de ambiente de chave de API em CI.
Modo de Depuração
As flags --verbose e --debug ativam o registro no nível de wire para o stderr:
qontoctl --verbose transaction list # request/response summaries
qontoctl --debug transaction list # full headers and response bodies
Nota de segurança:
--debugregistra corpos completos de respostas da API. Campos sensíveis conhecidos (IBAN, BIC, saldo) são automaticamente mascarados, mas as respostas ainda podem conter outros dados financeiros. Não use--debugem ambientes compartilhados nem direcione a saída de depuração para arquivos acessíveis por outras pessoas.
Aviso Legal
qontoctl é um projeto independente não afiliado, endossado ou oficialmente conectado à Qonto. Ele é executado na sua própria máquina com suas próprias credenciais.
"Qonto" e o logotipo da Qonto são marcas registradas da Olinda SAS (a empresa que opera a Qonto); qontoctl usa o nome apenas para descrever o serviço com o qual interopera.
Licença
O que AGPL significa para você
- Usar o qontoctl como ferramenta CLI ou servidor MCP não torna seu código licenciado sob AGPL. Executar a ferramenta, criar scripts em torno dela ou conectá-la aos seus aplicativos é uso normal — nenhuma obrigação de licença surge.
- Usar
@qontoctl/corecomo biblioteca (importando-o no seu código) significa que seu trabalho combinado é coberto pela AGPL-3.0. Se você distribuir esse trabalho combinado, deve disponibilizar seu código-fonte sob termos compatíveis com AGPL. - Modificar e distribuir o próprio qontoctl exige que você compartilhe suas alterações sob AGPL-3.0.
- Licenciamento comercial está disponível se a AGPL não se adequar ao seu caso de uso — entre em contato com o mantenedor.