Skip to main content
Every command follows the same shape:
For example qonto transactions list, qonto cards lock <card-id>, or qonto client-invoices send <invoice-id>. Resources with sub-resources nest one level further, such as qonto transactions attachments list <transaction-id>.

Finding your way

The CLI documents itself:
--help on a command shows the API endpoint it calls, the OAuth scope it needs, and one flag per API parameter, with the allowed values when the API defines them:
The command reference lists every command and links to its page in the API reference.

Output

On a terminal, results are printed as a table (or, for a single item, one field per line). When the output goes anywhere else (a pipe, a file, a script, an AI agent), it is the API’s JSON, unchanged.
Informational messages, warnings, and errors go to standard error, so they never mix with the data on standard output. A few examples:

Filters

List commands take the API’s query parameters as flags: --status, --side, --settled-at-from, --updated-at-to, and so on. Flags marked (repeatable) in --help accept several values, either repeated or comma-separated:
Dates follow the API: ISO 8601 date-times (2026-01-01T00:00:00Z) or dates (2026-01-01), as described on each flag.
qonto transactions list needs a bank account. Without --bank-account-id or --iban, the CLI uses your main account and says so on standard error.

Pagination

List commands return one page at a time, like the API. You can choose which one with --page and --per-page, or pass --all to follow every page and get one JSON document with all the items:
With --all, a large collection means many API calls. Narrow it with filters (a date range, a status) where you can, see Rate limitations.

Creating and changing things

Write commands take the fields of the request as flags:
For larger requests, pass the whole JSON body with --body, inline, from a file with @, or from standard input with -. Flags you add override the matching keys in the body.
Some requests only exist as a body, because their shape depends on a type field (cards, clients, payment links, card limits). Their --help says so, and the fields are described in the API reference. Uploads take a file path:
Commands whose endpoint supports idempotent requests (they have an --idempotency-key flag) send a new key automatically each time. To retry one safely after a network error, pass your own key and reuse it on the retry.

Strong Customer Authentication

Some actions, such as creating a physical card, require Strong Customer Authentication (SCA). When the API asks for it, the command waits and tells you what to do:
Once you approve, the CLI sends the request again and prints the result. If you decline, or do not answer within 15 minutes, the command stops with an error and the action is not executed. Choose how you authenticate with --sca-method (or the sca_method setting, see Configuration): If no device is paired with your Qonto account, the command tells you to pair one in the Qonto app first.

Troubleshooting a command

-v (--verbose) logs one line per HTTP request to standard error, with the method, the path, the response status, the size, and the time taken:
It never logs tokens, so you can share those lines when asking for help.

Exit codes