Identity and authorization
- Every command is authenticated as you, with an OAuth access token issued to your Qonto user. There is no shared API key and no impersonation.
- The CLI is a public OAuth client. It holds no client secret, and the program contains none: the sign-in is bound to the running CLI with PKCE, so an intercepted authorization code is useless to anyone else.
- A command cannot exceed your role or your organization’s price plan. If your role does not allow an action, the API refuses it and the CLI shows the error.
- A command is also limited to the scopes you granted when you signed in.
--helpon any command shows the scope it needs.
What the CLI cannot do
The CLI’s OAuth client is only registered for the scopes its commands need, so no session it opens can go further, whatever the command line. The CLI does not give access to:- Payments: SEPA transfers, internal transfers, and international transfers. The SEPA commands only list transfers, recurring and bulk transfers, and beneficiaries.
- Beneficiary management: adding, trusting, or removing beneficiaries.
- Approving or declining requests. The CLI can create a transfer request or a card request; an approver then reviews it in Qonto, with their own Strong Customer Authentication.
- SEPA direct debits, webhooks, terminals, and insurance contracts.
- Opening or closing accounts.
Credentials
- The session is stored in your operating system’s credential store (macOS Keychain, Windows Credential Manager, or a Secret Service on Linux). See Where the session is kept.
- It is written to a plain file only if you pass
--store-cleartext(or setQONTO_CLI_STORE_CLEARTEXT=1), for machines that cannot have a credential store. The CLI prints a warning when it does, and never falls back to that file on its own. - A token passed in
QONTO_CLI_ACCESS_TOKENis used for that command and never saved. - The CLI only sends your session to the Qonto API it was signed in for. If its endpoints are changed to point elsewhere, it refuses to present the stored token and tells you why.
-vlogs the method, path, status, size, and duration of each request. It never logs tokens.qonto auth logoutrevokes the session’s tokens at Qonto before deleting them locally.
Data handling
- The CLI talks to the Qonto API and nothing else, apart from the daily version check, which sends no token and nothing about your account. It collects no telemetry.
- What a command returns is printed on your machine. Where it goes next is up to you: a file, a spreadsheet, or an AI agent’s conversation. If an AI agent runs the CLI, the output is sent to the agent’s provider; read Using the CLI with AI agents first.
- When printing tables, the CLI escapes control characters found in API values, such as terminal escape sequences in a transaction label or a supplier name, which people outside your organization can choose. They cannot rewrite your screen or change your terminal. JSON and YAML output is escaped too.
Sensitive data in responses
Some responses contain short-lived download links (statements, attachments, invoice files) or give access to card details (qonto cards data-view). Treat them like credentials: anyone holding the link can use it until it expires. Do not paste them in chats or tickets.
Strong Customer Authentication
Actions that PSD2 classifies as sensitive require Strong Customer Authentication. The CLI cannot bypass it: the command waits until you approve in the Qonto app, and does nothing if you decline. See Strong Customer Authentication.Rate limits
The CLI is subject to the same rate limits as the Business API. See Rate limitations.--all on a large collection makes one request per page, so filter where you can.
The program you install
-
The installers download from
https://mcp.qonto.com/cli/, check the SHA-256 of every archive against the release’schecksums.txt, and refuse to install on a mismatch. -
On macOS, the program is signed with Qonto’s Apple Developer ID and notarized by Apple. You can check it yourself:
The first authority line should read
Developer ID Application: Qonto (JRP77N2W97). - The CLI warns you when a newer version is available and stops working once a version is past its support date, so you do not keep running a version that is no longer maintained.
Revoking access
Withdraw the CLI’s access at any time from the connected apps section of your Qonto account. Every session, on every machine, stops working and has to go through the consent screen again.qonto auth logout does the same for the machine you run it on.