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

# Get the balance

> The merchant's balance. Nothing is stored as a balance: the figures
are computed on demand from credited payments, payouts that are not
cancelled, and balance conversions. All figures are exact, each in its
own currency; nothing is converted for display.

- The top-level `available`, `pending` and `onHold` are the balance in
  `currency` (the Account Currency).
- `pending` holds credits still inside the holding period
  (`holdingDays`). `onHold` holds credits of payments under an open
  compliance inquiry; they are excluded from `available` and `pending`.
- `available` is net of every requested, scheduled or executed payout
  paid from that balance and of every conversion out of it, plus every
  conversion into it.
- `balances` lists one entry per currency: the Account Currency always
  first, then every previous Account Currency that still holds funds
  (anything available, pending or on hold, or a payment awaiting its
  credit), in the order CHF, EUR, USD, GBP. A previous-currency balance
  can be paid out (`sourceCurrency` on the payout request) or
  [converted](https://docs.qint.ch/api-reference/convert-balance) into
  the Account Currency.
- `rates` gives, for each supported currency, the units per 1 Account
  Currency unit (the Account Currency itself at `1`). The dashboard
  uses them to preview payouts in another currency; a payout or a
  conversion is always priced at the rate of its own request.

Any member of the merchant account can read it. Users with access to
several merchant accounts select one with the `X-Merchant-Id` header.


> [!NOTE]
>
> A dashboard endpoint: it uses the signed-in dashboard session, not an API key. How the balance is credited is explained in [settlement and your Account Currency](/guides/settlement.md); `balances` lists a balance per currency, including any [previous-currency balance](/guides/settlement.md#balances-in-a-previous-currency).


## OpenAPI

````yaml openapi.yaml GET /api/v1/merchant/balances
openapi: 3.1.0
info:
  title: Qint Merchant API
  version: '1.1'
  description: >
    The Qint merchant API is a server-to-server API for creating and reading

    **payment intents**. You create an intent, redirect the buyer to the
    returned

    `checkoutUrl` (Qint's hosted checkout at `checkout.qint.ch`), and get
    notified

    of status changes via [webhooks](https://docs.qint.ch/webhooks/overview).


    ### Authentication

    Every request is authenticated with a Qint-issued API key

    (`qk_live_` + 32 alphanumeric characters), sent either as

    `Authorization: Bearer qk_live_…` or as an `X-Api-Key: qk_live_…` header.

    Keys carry **Read** and/or **Write** scopes: creating intents requires

    Write, reading them requires Read. The merchant account must be approved

    before the API accepts requests.


    ### Errors

    Errors are returned as RFC 7807 `application/problem+json` documents with

    `title`, `status` and `detail` fields.


    ### Rate limits

    The merchant API is rate limited. When a limit is exceeded the API responds

    with `429 Too Many Requests` — back off and retry. Intent creation is

    retry-safe: the required `idempotencyKey` makes a retried request return

    the original intent instead of creating a duplicate.


    ### Settlement

    Every payment is credited to the merchant's balance in its **Account

    Currency** (CHF, EUR, USD or GBP; CHF by default) at the rate fixed when

    the buyer is quoted. Since 20 October 2026 a payment intent reports the

    credit as `creditAmount`, `creditCurrency` and `creditRate`; the former

    stablecoin fields `creditUsdt` and `creditAsset` are no longer returned,

    and `creditRate` changed meaning. See

    [the breaking change
    note](https://docs.qint.ch/api-reference/introduction#breaking-change-20-october-2026).


    ### Dashboard endpoints

    The endpoints tagged **Dashboard** serve the Qint dashboard. They

    authenticate with the dashboard's signed-in session, not with an API key,

    and are documented so that the balance, balance conversion and Account

    Currency rules are described in one place.
  contact:
    name: Qint support
    email: support@qint.ch
    url: https://qint.ch
servers:
  - url: https://api.qint.ch
    description: Production
security:
  - bearerAuth: []
  - apiKeyHeader: []
tags:
  - name: Payment intents
    description: Create standalone payments and read their status.
  - name: Currencies
    description: Which fiat currencies Qint currently offers for new payments.
  - name: Dashboard
    description: >
      The merchant balance, conversions of a previous-currency balance and the
      Account Currency, as used by the Qint dashboard. Signed-in dashboard
      session only; API keys are not accepted.
paths:
  /api/v1/merchant/balances:
    get:
      tags:
        - Dashboard
      summary: Get the balance
      description: |
        The merchant's balance. Nothing is stored as a balance: the figures
        are computed on demand from credited payments, payouts that are not
        cancelled, and balance conversions. All figures are exact, each in its
        own currency; nothing is converted for display.

        - The top-level `available`, `pending` and `onHold` are the balance in
          `currency` (the Account Currency).
        - `pending` holds credits still inside the holding period
          (`holdingDays`). `onHold` holds credits of payments under an open
          compliance inquiry; they are excluded from `available` and `pending`.
        - `available` is net of every requested, scheduled or executed payout
          paid from that balance and of every conversion out of it, plus every
          conversion into it.
        - `balances` lists one entry per currency: the Account Currency always
          first, then every previous Account Currency that still holds funds
          (anything available, pending or on hold, or a payment awaiting its
          credit), in the order CHF, EUR, USD, GBP. A previous-currency balance
          can be paid out (`sourceCurrency` on the payout request) or
          [converted](https://docs.qint.ch/api-reference/convert-balance) into
          the Account Currency.
        - `rates` gives, for each supported currency, the units per 1 Account
          Currency unit (the Account Currency itself at `1`). The dashboard
          uses them to preview payouts in another currency; a payout or a
          conversion is always priced at the rate of its own request.

        Any member of the merchant account can read it. Users with access to
        several merchant accounts select one with the `X-Merchant-Id` header.
      operationId: getBalance
      parameters:
        - $ref: '#/components/parameters/MerchantIdHeader'
      responses:
        '200':
          description: The balance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Balance'
        '401':
          $ref: '#/components/responses/NotSignedIn'
        '403':
          $ref: '#/components/responses/NoMerchantAccess'
      security:
        - dashboardSession: []
components:
  parameters:
    MerchantIdHeader:
      name: X-Merchant-Id
      in: header
      required: false
      description: >
        The merchant account to act on, for users with access to more than one.
        Not needed when the user belongs to a single merchant account.
      schema:
        type: string
        format: uuid
  schemas:
    Balance:
      type: object
      description: >
        The merchant balance. The top-level figures are the Account Currency
        balance; `balances` lists every currency balance.
      required:
        - currency
        - available
        - pending
        - holdingDays
        - rates
        - asOf
        - uncreditedCount
        - onHold
        - onHoldCount
        - balances
      properties:
        currency:
          $ref: '#/components/schemas/AccountCurrency'
        available:
          type: number
          description: Withdrawable now, exact, in `currency`.
          examples:
            - 1250.4
        pending:
          type: number
          description: Credits still inside the holding period, in `currency`.
          examples:
            - 93.42
        holdingDays:
          type: integer
          description: The holding period in days (1–7, default 2).
          examples:
            - 2
        rates:
          type: object
          additionalProperties:
            type: number
          description: >
            Units of each supported currency per 1 Account Currency unit; the
            Account Currency itself is `1`. For previews only: a payout or a
            conversion is priced at the rate of its own request.
          examples:
            - CHF: 1
              EUR: 1.0651
              USD: 1.2412
              GBP: 0.9278
        asOf:
          type: string
          format: date-time
          description: When the figures were computed.
        uncreditedCount:
          type: integer
          description: Settled payments still waiting for their credit (normally 0).
          examples:
            - 0
        onHold:
          type: number
          description: >
            Credits of payments under an open compliance inquiry with funds on
            hold, in `currency`. Excluded from `available` and `pending`.
          examples:
            - 0
        onHoldCount:
          type: integer
          description: How many payments are on hold.
          examples:
            - 0
        balances:
          type: array
          description: >
            One entry per currency: the Account Currency first, then every
            previous Account Currency that still holds funds, in the order CHF,
            EUR, USD, GBP.
          items:
            $ref: '#/components/schemas/CurrencyBalance'
      example:
        currency: CHF
        available: 1250.4
        pending: 93.42
        holdingDays: 2
        rates:
          CHF: 1
          EUR: 1.0651
          USD: 1.2412
          GBP: 0.9278
        asOf: '2026-10-20T18:30:00Z'
        uncreditedCount: 0
        onHold: 0
        onHoldCount: 0
        balances:
          - currency: CHF
            available: 1250.4
            pending: 93.42
            onHold: 0
            isAccountCurrency: true
          - currency: EUR
            available: 2400
            pending: 0
            onHold: 0
            isAccountCurrency: false
    AccountCurrency:
      type: string
      enum:
        - CHF
        - EUR
        - USD
        - GBP
      description: >
        The fiat currency new payments are credited in (CHF unless the merchant
        chooses otherwise). It can change at any time; a balance in a previous
        Account Currency stays in that currency. Every payment is credited in
        the Account Currency of its quote, at the rate fixed when the buyer was
        quoted.
    CurrencyBalance:
      type: object
      description: The balance in one currency. Exact figures in `currency`.
      required:
        - currency
        - available
        - pending
        - onHold
        - isAccountCurrency
      properties:
        currency:
          $ref: '#/components/schemas/AccountCurrency'
        available:
          type: number
          description: Withdrawable or convertible now, in `currency`.
          examples:
            - 2400
        pending:
          type: number
          description: Credits still inside the holding period, in `currency`.
          examples:
            - 0
        onHold:
          type: number
          description: >-
            Credits of payments on hold under a compliance inquiry, in
            `currency`.
          examples:
            - 0
        isAccountCurrency:
          type: boolean
          description: >
            `true` for the Account Currency balance, which new payments are
            credited to; `false` for a balance in a previous Account Currency.
          examples:
            - false
    Problem:
      type: object
      description: RFC 7807 problem details (`application/problem+json`).
      properties:
        type:
          type: string
          description: A URI reference identifying the problem type.
        title:
          type: string
          description: Short human-readable summary.
        status:
          type: integer
          description: The HTTP status code.
        detail:
          type: string
          description: Human-readable explanation of this occurrence.
        traceId:
          type: string
          description: Request correlation id — include it in support requests.
        code:
          type: string
          description: >
            Machine-readable error code: `amount_out_of_range`,
            `terms_acceptance_required` or `rate_unavailable` on the merchant
            API; `invalid_account_currency` on the Account Currency endpoint;
            `invalid_conversion`, `convert_same_currency`, `insufficient_funds`,
            `idempotency_key_reused`, `account_currency_changed` or
            `rate_unavailable` on the balance conversion endpoints. Absent on
            most errors, including a disabled currency, so fall back to `status`
            and `detail`.
        minChf:
          type: number
          description: Only with `amount_out_of_range` — the minimum payment in CHF.
        maxChf:
          type: number
          description: >-
            Only with `amount_out_of_range` — your effective maximum payment in
            CHF.
        amountChf:
          type: number
          description: >-
            Only with `amount_out_of_range` — the CHF equivalent of the
            submitted amount.
      example:
        type: https://tools.ietf.org/html/rfc9110#section-15.5.1
        title: An error occurred while processing your request.
        status: 400
        detail: 'currency must be one of: CHF, EUR, USD, GBP.'
        traceId: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-00
  responses:
    NotSignedIn:
      description: No signed-in dashboard session.
    NoMerchantAccess:
      description: >
        The signed-in user is not a member of this merchant account, or (for a
        change) lacks the required role.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        `Authorization: Bearer qk_live_…` — a Qint API key created in the
        dashboard under Developers → API keys.
    apiKeyHeader:
      type: apiKey
      in: header
      name: X-Api-Key
      description: >
        Alternative to the Authorization header — send the same `qk_live_…` key
        as `X-Api-Key`.
    dashboardSession:
      type: apiKey
      in: cookie
      name: qint_session
      description: >
        The signed-in session of the Qint dashboard (dashboard.qint.ch). Only
        the Dashboard endpoints use it; API keys are not accepted there.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.