_Docs/
Get StartedModulesPlatformDeployCookbookChangelogReference
_Stack
_Modules
  • Ledger
  • Numscript
  • Connectivity
    • Capabilities
    • Operations
    • Accounts
    • Payments
    • Orders
    • Conversions
    • Payment Initiation
    • Account Pools
    • Payment Service Users
    • Connectors
      • Generic Connector
        • Getting Started
        • How it Works
      • PSP Connectors
        • Adyen
        • Atlar
        • Banking Circle
        • Column
        • Currencycloud
        • Increase
        • Mangopay
        • Modulr
        • Moneycorp
        • Qonto
        • Stripe
        • Wise
        • Banking BridgeEE
        • RoutableEE
      • Exchange Connectors
        • Coinbase PrimeEE
        • FireblocksEE
        • BitstampEE
      • Open Banking
        • Getting Started with Open Banking
        • Plaid
        • Tink
        • Powens
      • Build a connector
  • WalletsEE
  • FlowsEE
  • ReconciliationEE
  1. Modules
  2. Connectivity
  3. Connectors
  4. PSP Connectors
  5. Qonto
Qonto
PSP Connectors

Qonto

Connect a Qonto organisation to Formance Connectivity to sync read-only business accounts, balances, beneficiaries, and transactions.

The Qonto connector polls a Qonto organisation and surfaces business bank accounts, balances, beneficiaries, and transactions. It is read-only: Qonto's outbound transfer and webhook surfaces require three-legged OAuth2, which the framework does not drive.

Prerequisites#

You need a Qonto organisation and an API key pair. Qonto authenticates with login:secret-key in the Authorization header; staging additionally requires a stagingToken header.

Make sure to create an API key dedicated to Formance. Doing so will improve your auditability and security and will allow you to revoke access to Formance at any time if needed.

Installation#

curl -X POST $FORMANCE_API_URL/api/payments/v3/connectors/install/qonto \
  -H "Content-Type: application/json" \
  -d @config.json
POST/api/payments/v3/connectors/install/qonto

Configuration fields#

FieldTypeRequiredDefault
apiKeystringYes
clientIDstringYes
endpointstringYes
pageSizeintegerNo25
pollingPeriodstringNo30m
stagingTokenstringNo

Production: https://thirdparty.qonto.com. Staging: https://thirdparty.staging.qonto.co with a stagingToken.

Capabilities#

  • FETCH_ACCOUNTS — bank accounts via GET /v2/organizations.
  • FETCH_BALANCES — authorized + balance per account.
  • FETCH_EXTERNAL_ACCOUNTS — beneficiaries.
  • FETCH_PAYMENTS — GET /v2/transactions, classified per direction.

Qonto exposes outbound transfer initiation and webhooks upstream, but both require three-legged OAuth2 that the framework doesn't yet drive — the connector advertises only the read capabilities.

Account model#

Every Connectivity internal account is one Qonto bank account under the organisation. GET /v2/organizations returns the whole tree at once — there's no per-account endpoint. The reference is the bank-account ID; name is the account name; defaultAsset is EUR/2 (Qonto is EUR-only). EXTERNAL accounts come from Qonto beneficiaries. See Accounts for the cross-connector model.

Asset model#

EUR-only — every balance and payment is EUR/2. Amounts are already in minor units.

Status mapping#

Qonto transaction statusPayment status
pendingPENDING
completedSUCCEEDED
declinedFAILED
reversedCANCELLED
anything elseUNKNOWN

Metadata keys#

Under com.qonto.spec/:

  • Account: iban, bic, currency, organization_slug.
  • External account: beneficiary_id, iban, bic, bank_name, trusted (boolean).
  • Payment: transaction_id, operation_type (card / transfer / direct_debit / cheque / swift_income / …), side (credit / debit), reference, note.

Workflow tree#

FetchAccounts (periodic)
  ├── FetchBalances (FromPayload — no extra API call)
  └── FetchPayments (periodic) — per account
FetchExternalAccounts (periodic)

Pagination and recovery#

1-indexed current_page + per_page (max 100). The connector persists the watermark per stream in platform-managed State.

Known gaps#

  • Outbound initiation is not implemented — Qonto's CreateTransfer API requires 3-legged OAuth2.
  • Webhooks are not implemented for the same reason.
  • Multi-organisation tenants: one connector install covers one organisation.
MoneycorpStripe
On This Page
  • Prerequisites
  • Installation
  • Configuration fields
  • Capabilities
  • Account model
  • Asset model
  • Status mapping
  • Metadata keys
  • Workflow tree
  • Pagination and recovery
  • Known gaps