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

# Collect a balance's open fee debts

> Settles the balance's open fee debts oldest first from its available funds, up to maxAmount and never more than it owes, in one transaction. It charges no new fee. Without an error, it collects nothing when the balance has no available funds or is blocked, cannot send, is closing or closed, deleted, debit-direction or external, and it stops at the first debt whose fee account is blocked, cannot receive, is closing or closed, deleted, debit-direction, external, in overdraft or of another asset. When nothing is settled the response is collected 0 and no transaction is created. With X-Idempotency a retry returns the first collection; an answer that settled nothing is not kept. Without it every call is a new collection. A collection transaction cannot be reverted.



## OpenAPI

````yaml /en/openapi/v3-current/ledger.yaml post /v2/organizations/{organization_id}/ledgers/{ledger_id}/fee-debts/collect
openapi: 3.1.0
info:
  title: Midaz Ledger API
  version: 4.0.0
servers:
  - url: /
security: []
tags:
  - name: Account Block Exceptions (v2)
  - name: Account Types (v1)
  - name: Account Types (v2)
  - name: Accounts (v1)
  - name: Accounts (v2)
  - name: Asset Rates (v1)
  - name: Assets (v1)
  - name: Assets (v2)
  - name: Balances (v1)
  - name: Balances (v2)
  - name: Billing Calculate (v2)
  - name: Billing Packages (v2)
  - name: Composition (v2)
  - name: Dashboard (v1)
  - name: Dashboard (v2)
  - name: Encryption (v2)
  - name: Fee Debts (v2)
  - name: Fees (v2)
  - name: Holders (v2)
  - name: Instruments (v2)
  - name: Ledgers (v1)
  - name: Ledgers (v2)
  - name: Metadata Indexes (v1)
  - name: Metadata Indexes (v2)
  - name: Operation Routes (v1)
  - name: Operation Routes (v2)
  - name: Operations (v1)
  - name: Operations (v2)
  - name: Organizations (v1)
  - name: Organizations (v2)
  - name: Packages (v2)
  - name: Portfolios (v1)
  - name: Portfolios (v2)
  - name: Protection (v2)
  - name: Segments (v1)
  - name: Segments (v2)
  - name: Transaction Routes (v1)
  - name: Transaction Routes (v2)
  - name: Transactions (v1)
  - name: Transactions (v2)
paths:
  /v2/organizations/{organization_id}/ledgers/{ledger_id}/fee-debts/collect:
    post:
      tags:
        - Fee Debts (v2)
      summary: Collect a balance's open fee debts
      description: >-
        Settles the balance's open fee debts oldest first from its available
        funds, up to maxAmount and never more than it owes, in one transaction.
        It charges no new fee. Without an error, it collects nothing when the
        balance has no available funds or is blocked, cannot send, is closing or
        closed, deleted, debit-direction or external, and it stops at the first
        debt whose fee account is blocked, cannot receive, is closing or closed,
        deleted, debit-direction, external, in overdraft or of another asset.
        When nothing is settled the response is collected 0 and no transaction
        is created. With X-Idempotency a retry returns the first collection; an
        answer that settled nothing is not kept. Without it every call is a new
        collection. A collection transaction cannot be reverted.
      operationId: collectFeeDebtsV2
      parameters:
        - description: Organization ID (UUID)
          in: path
          name: organization_id
          required: true
          schema:
            description: Organization ID (UUID)
            type: string
        - description: Ledger ID (UUID)
          in: path
          name: ledger_id
          required: true
          schema:
            description: Ledger ID (UUID)
            type: string
        - description: >-
            Idempotency key to safely retry the collection; a retry returns the
            first collection (an answer that settled nothing is not kept),
            another request under the same key answers 409 (0084). Without it
            every call is a new collection.
          in: header
          name: X-Idempotency
          schema:
            description: >-
              Idempotency key to safely retry the collection; a retry returns
              the first collection (an answer that settled nothing is not kept),
              another request under the same key answers 409 (0084). Without it
              every call is a new collection.
            type: string
        - description: Idempotency slot TTL in seconds (default 300)
          in: header
          name: X-TTL
          schema:
            description: Idempotency slot TTL in seconds (default 300)
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeeDebtCollectInput'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeeDebtCollectOutput'
          description: OK
          headers:
            X-Idempotency-Replayed:
              schema:
                type: string
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Error
      security:
        - BearerAuth: []
components:
  schemas:
    FeeDebtCollectInput:
      additionalProperties: false
      properties:
        accountAlias:
          description: Alias of the debtor account.
          examples:
            - '@customer'
          maxLength: 100
          type: string
        balanceKey:
          description: Key of the debtor balance; absent means the default balance.
          examples:
            - default
          maxLength: 100
          type: string
        maxAmount:
          description: >-
            Most the collection may settle, greater than zero; absent means
            everything the balance owes.
          examples:
            - '150.00'
          type: string
      required:
        - accountAlias
      type: object
    FeeDebtCollectOutput:
      additionalProperties: false
      properties:
        collected:
          description: >-
            Amount settled, oldest debt first; 0 when the balance had no open
            debt, no available funds, or cannot pay a debt's fee account.
          examples:
            - '150.00'
          type: string
        transactionId:
          description: >-
            Transaction recording the settlement, absent when nothing was
            collected.
          format: uuid
          type: string
      required:
        - collected
      type: object
    Error:
      additionalProperties: true
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
        upstream:
          $ref: '#/components/schemas/Upstream'
          description: >-
            RFC 9457 extension member: the error a proxied third-party provider
            reported. Absent unless the emitting service explicitly surfaced
            one.
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    Upstream:
      additionalProperties: false
      properties:
        code:
          description: The upstream provider's own error code, verbatim.
          examples:
            - E4001
          type: string
        message:
          description: >-
            The upstream provider's own error message, verbatim (bounded, never
            its raw response body).
          examples:
            - account not found at provider
          type: string
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT bearer token issued by the identity provider.
      scheme: bearer
      type: http

````

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