Skip to main content

Qonto Public Documentation

Repository Overview

This is a Mintlify-based documentation site for Qonto’s public APIs. It contains API references, guides, SDK documentation, and developer resources.

The Two APIs

Business API authentication:
  • API Key — mostly read-only access, simpler setup
  • OAuth 2.0 — full read/write access, requires scopes, used for partner integrations acting on behalf of a user

Running Locally

mint dev automatically opens the browser. All changes to .mdx files and the bundled openapi.yml are reflected live. Always verify your changes are visible in the browser before considering work done. If mint dev fails: run mintlify install to reinstall dependencies.

NPM Scripts

mint dev vs npm run preview: mint dev runs the full Mintlify site (all .mdx pages, navigation, theme). npm run preview is Redocly-only and only shows the OpenAPI spec — use it for quick spec checks.

Repository Structure


How Mintlify Works

Mintlify renders documentation from two source types:
  1. .mdx files — prose pages, guides, or API reference pages
  2. docs.json — defines the navigation tree, theme, anchors, and which pages appear where

API Reference Pages

Each API endpoint has a minimal .mdx file that tells Mintlify which OpenAPI operation to render:
That’s it — Mintlify reads the bundled openapi.yml and generates the full reference page (parameters, request/response schemas, playground) automatically.

Adding a New Endpoint (Step-by-Step)

1. Add the OpenAPI definition

Create or edit the relevant YAML file under api-reference/business-api/components/resources/. Each resource has its own directory containing one file per operation (e.g. list.yml, create.yml, show.yml).
.github/.oas_src/business_api.yml is auto-generated — it is just an index of $ref pointers rebuilt from the component files. Never edit it directly.

2. Bundle the spec

This regenerates api-reference/business-api/openapi.yml. Check for errors — Redocly will surface $ref issues and schema problems. Validate the bundled spec:

3. Create the .mdx reference page

Create a new file under the appropriate category in api-reference/business-api/:
Content (minimal):
The value after openapi: must match the HTTP method + path exactly as defined in the spec.

4. Add the page to docs.json

Open docs.json and add your new .mdx page to the correct navigation group under the API Reference anchor:
(No .mdx extension in docs.json.)

5. Test locally

Navigate to your new page in the browser. Confirm:
  • The page renders with correct parameters and response schemas
  • The OAuth scope (if any) is shown correctly
  • The interactive playground works

Adding a New OAuth Scope

OAuth scopes are defined in:

Naming Rules (enforced)

  • Singular form only
    • bank_accounts.write
    • bank_account.write
  • Multi-word resources use snake_case
    • internal_transfer.write
    • sepa_direct_debit.read
  • Object and action separated by .
    • organization.read
    • card.write
  • Common actions: read, write, trust, or a specific verb (e.g., webhook)

How to add

In schemes.yml, add your scope under flows.authorizationCode.scopes:
Then reference the scope in your endpoint definition:

Automation

A GitHub Actions workflow (.github/workflows/detect-new-oauth-scopes.yml) automatically detects new scopes when a PR is merged to master and syncs them to the Dev Portal backend. No manual action needed after merge.

Troubleshooting