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

# List donations

> Return a paginated list of individual donations for the authenticated group, with optional server-side filters on donation date, creation date, amount, contact, and donation price. Ordered by donation date (newest first) by default. Maximum limit is 1000.

Query donations directly without fetching whole bundles.

**Date range:** `date_from`/`date_to` (donation date) or `created_from`/`created_to`.

**Contacts / prices:** repeat or comma-separate `contact_id` and `donation_price_id`.

Each donation carries `amount` (cents) and `contact_id`, so monthly totals and unique-donor counts are a direct sum/dedupe over one page set.


## OpenAPI

````yaml /src/autogen/donation-membership-transaction-openapi3.0.yaml get /v1/donations
openapi: 3.1.0
info:
  description: >-
    This OpenAPI 3.1 specification describes the public API of the Qomon
    platform. It is generated from the code and serves both as documentation for
    API consumers and as a contract for future development.
  title: Qomon API Reference
  version: 0.0.1
servers:
  - description: Production
    url: https://incoming.qomon.app
security:
  - bearerAuth: []
tags:
  - description: >-
      Create, read, update, and delete transaction bundles. A bundle is a single
      payment event grouping one or more transactions with optional donations
      and memberships.
    name: Transaction bundles
  - description: >-
      Read individual transactions (the payment legs of a bundle) with
      server-side filtering by date, amount, status, payment method and
      campaign, plus a contact's full transaction history.
    name: Transactions
  - description: >-
      List donations directly, filtered by donation date, contact, price or
      amount — without fetching whole bundles.
    name: Donations
  - description: >-
      List memberships directly, filtered by start/end/creation date, contact,
      price or amount.
    name: Memberships
  - description: >-
      Read-only configuration resources: transaction settings, statuses,
      donation and membership prices, and code campaigns.
    name: Settings and configuration
paths:
  /v1/donations:
    get:
      tags:
        - Donations
      summary: List donations
      description: >-
        Return a paginated list of individual donations for the authenticated
        group, with optional server-side filters on donation date, creation
        date, amount, contact, and donation price. Ordered by donation date
        (newest first) by default. Maximum limit is 1000.
      operationId: list-donations
      parameters:
        - description: Maximum number of items to return.
          explode: false
          in: query
          name: limit
          schema:
            default: 20
            description: Maximum number of items to return.
            format: int64
            maximum: 1000
            minimum: 1
            type: integer
        - description: Number of items to skip.
          explode: false
          in: query
          name: offset
          schema:
            default: 0
            description: Number of items to skip.
            format: int64
            minimum: 0
            type: integer
        - description: Only donations on or after this date (donation date, RFC 3339).
          explode: false
          in: query
          name: date_from
          schema:
            description: Only donations on or after this date (donation date, RFC 3339).
            format: date-time
            type: string
        - description: Only donations on or before this date (donation date, RFC 3339).
          explode: false
          in: query
          name: date_to
          schema:
            description: Only donations on or before this date (donation date, RFC 3339).
            format: date-time
            type: string
        - description: Only donations created on or after this date (RFC 3339).
          explode: false
          in: query
          name: created_from
          schema:
            description: Only donations created on or after this date (RFC 3339).
            format: date-time
            type: string
        - description: Only donations created on or before this date (RFC 3339).
          explode: false
          in: query
          name: created_to
          schema:
            description: Only donations created on or before this date (RFC 3339).
            format: date-time
            type: string
        - description: Minimum amount in cents (inclusive).
          explode: false
          in: query
          name: amount_min
          schema:
            description: Minimum amount in cents (inclusive).
            format: int64
            minimum: 0
            type: integer
        - description: Maximum amount in cents (inclusive).
          explode: false
          in: query
          name: amount_max
          schema:
            description: Maximum amount in cents (inclusive).
            format: int64
            minimum: 0
            type: integer
        - description: Filter by one or more contact IDs (repeat or comma-separate).
          explode: false
          in: query
          name: contact_id
          schema:
            description: Filter by one or more contact IDs (repeat or comma-separate).
            items:
              format: int64
              minimum: 0
              type: integer
            type:
              - array
              - 'null'
        - description: >-
            Filter by one or more donation price IDs. See GET
            /v1/donation_prices.
          explode: false
          in: query
          name: donation_price_id
          schema:
            description: >-
              Filter by one or more donation price IDs. See GET
              /v1/donation_prices.
            items:
              format: int64
              minimum: 0
              type: integer
            type:
              - array
              - 'null'
        - description: Sort column.
          explode: false
          in: query
          name: sort
          schema:
            default: date
            description: Sort column.
            enum:
              - created_at
              - date
              - amount
            type: string
        - description: Sort direction.
          explode: false
          in: query
          name: order
          schema:
            default: desc
            description: Sort direction.
            enum:
              - asc
              - desc
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusListEnvelopeDonation'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Error
components:
  schemas:
    StatusListEnvelopeDonation:
      additionalProperties: true
      properties:
        data:
          items:
            $ref: '#/components/schemas/Donation'
          type:
            - array
            - 'null'
        status:
          description: Operation result.
          examples:
            - success
          type: string
        total:
          description: Total number of matching items.
          format: int64
          type: integer
      required:
        - status
        - data
        - total
      type: object
    ErrorModel:
      additionalProperties: true
      properties:
        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
      type: object
    Donation:
      additionalProperties: true
      properties:
        CreatedAt:
          description: Creation timestamp.
          format: date-time
          type: string
        UpdatedAt:
          description: Last update timestamp.
          format: date-time
          type: string
        affectation:
          description: Optional affectation code.
          type: string
        amount:
          default: 0
          description: Amount in cents.
          examples:
            - 2500
          format: int64
          minimum: 0
          type: integer
        amount_initial:
          description: Initial amount in cents.
          examples:
            - 2500
          format: int64
          minimum: 0
          type: integer
        comment:
          description: Optional comment.
          type: string
        contact:
          $ref: '#/components/schemas/ContactForTransaction'
          description: Associated contact.
        contact_id:
          description: Contact ID - required for donations.
          format: int64
          minimum: 0
          type: integer
        currency:
          description: Currency code.
          examples:
            - eur
          type: string
        date:
          description: Donation date (ISO 8601 format).
          format: date-time
          type: string
        donation_price_id:
          description: Donation price ID (must exist in group's donation prices).
          format: int64
          minimum: 0
          type: integer
        id:
          description: Donation ID (for updates, omit for new donations).
          format: int64
          minimum: 0
          type: integer
      required:
        - amount
        - date
        - contact_id
      type: object
    ErrorDetail:
      additionalProperties: true
      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
    ContactForTransaction:
      additionalProperties: true
      properties:
        firstname:
          description: Contact first name.
          type: string
        group_id:
          description: ID of the group the contact belongs to.
          format: int64
          minimum: 0
          readOnly: true
          type: integer
        id:
          description: Unique identifier.
          format: int64
          minimum: 0
          type: integer
        membership_code:
          description: Membership code.
          type: string
        membership_number:
          description: Membership number.
          format: int64
          minimum: 0
          type: integer
        surname:
          description: Contact surname.
          type: string
      required:
        - id
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: opaque
      description: >-
        OAuth2 access token. Pass the token in the Authorization header as
        `Bearer <token>`. The token is looked up in Redis to resolve the caller
        identity.
      scheme: bearer
      type: http

````