> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qonto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Security and limits

The Qonto CLI uses the same OAuth model as any app you connect to Qonto. This page covers what it can reach, where your credentials live, and how the program you install is protected.

## 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](https://oauth.net/2/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. `--help` on 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.

There is no command to call an arbitrary API endpoint. For those use cases, use the [Business API](/api-reference/introduction) or the Qonto app.

## 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](/cli/authentication#where-the-session-is-kept).
* It is written to a plain file **only** if you pass `--store-cleartext` (or set `QONTO_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_TOKEN` is 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.
* `-v` logs the method, path, status, size, and duration of each request. It **never logs tokens**.
* `qonto auth logout` revokes 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](/cli/configuration#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](/cli/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](/cli/usage#strong-customer-authentication).

## Rate limits

The CLI is subject to the **same rate limits as the Business API**. See [Rate limitations](/get-started/general/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's `checksums.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:

  ```bash theme={null}
  codesign --verify --strict --verbose=2 "$(command -v qonto)"
  codesign -dv --verbose=2 "$(command -v qonto)" 2>&1 | grep Authority
  ```

  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.

## Reporting issues

Security issues should be reported at [support@qonto.com](mailto:support@qonto.com).
