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

# List Transactions

> List transactions for your account over a datetime window.

Defaults to the last 30 days ending now. Maximum window is 90 days.
Pass an offset-aware ISO datetime to express local time (e.g. last 6 hours).
Returns a summary of net commission (after take rate) plus a paginated list
of transactions (most recent first). Network-approved commissions appear as
pending.



## OpenAPI

````yaml get /v1/reporting/transactions
openapi: 3.1.0
info:
  title: FastAPI
  version: 0.1.0
servers:
  - url: https://api.trychannel3.com
    description: Production
security: []
paths:
  /v1/reporting/transactions:
    get:
      tags:
        - v1
      summary: List Transactions
      description: >-
        List transactions for your account over a datetime window.


        Defaults to the last 30 days ending now. Maximum window is 90 days.

        Pass an offset-aware ISO datetime to express local time (e.g. last 6
        hours).

        Returns a summary of net commission (after take rate) plus a paginated
        list

        of transactions (most recent first). Network-approved commissions appear
        as

        pending.
      operationId: list_transactions_v1_reporting_transactions_get
      parameters:
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: 'null'
            description: >-
              Inclusive start of the window (ISO 8601 datetime with optional
              offset, e.g. 2026-08-01T00:00:00-04:00). Offset-aware values are
              converted to UTC; naive values are treated as UTC.
            title: Start Date
          description: >-
            Inclusive start of the window (ISO 8601 datetime with optional
            offset, e.g. 2026-08-01T00:00:00-04:00). Offset-aware values are
            converted to UTC; naive values are treated as UTC.
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: 'null'
            description: >-
              Inclusive end of the window (ISO 8601 datetime with optional
              offset, e.g. 2026-08-01T23:59:59-04:00). Offset-aware values are
              converted to UTC; naive values are treated as UTC.
            title: End Date
          description: >-
            Inclusive end of the window (ISO 8601 datetime with optional offset,
            e.g. 2026-08-01T23:59:59-04:00). Offset-aware values are converted
            to UTC; naive values are treated as UTC.
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: Page number (1-indexed).
            default: 1
            title: Page
          description: Page number (1-indexed).
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            description: Items per page (max 100).
            default: 20
            title: Limit
          description: Items per page (max 100).
        - name: user_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Filter results to clicks or transactions for this user.
            title: User Id
          description: Filter results to clicks or transactions for this user.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionsResponse'
        '400':
          description: Invalid date range
          content:
            application/json:
              example:
                detail: Date range cannot exceed 90 days
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - Invalid or missing authentication
          content:
            application/json:
              examples:
                missing_key:
                  summary: Missing API Key
                  value:
                    detail: >-
                      Unauthorized. Missing authentication key. Make sure to
                      attach an x-api-key with your request. Need help? Reach
                      out to support@trychannel3.com.
                invalid_key:
                  summary: Invalid API Key
                  value:
                    detail: >-
                      API key was provided but is invalid. Need help? Reach out
                      to support@trychannel3.com.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment required
          content:
            application/json:
              examples:
                credits_exhausted:
                  summary: API key out of credits
                  value:
                    detail: >-
                      You have used all of your free credits. Add a payment
                      method to continue.
                mpp_challenge:
                  summary: MPP Tempo payment required
                  value:
                    detail: >-
                      Payment required. Satisfy the MPP Tempo challenge in
                      WWW-Authenticate.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                detail:
                  - loc:
                      - body
                      - query
                    msg: field required
                    type: value_error.missing
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                detail: Internal Server Error
      security:
        - APIKeyHeader: []
      x-codeSamples:
        - lang: JavaScript
          source: >-
            import Channel3 from '@channel3/sdk';


            const client = new Channel3({
              apiKey: process.env['CHANNEL3_API_KEY'], // This is the default and can be omitted
            });


            // Automatically fetches more pages as needed.

            for await (const transaction of
            client.reporting.transactions.list()) {
              console.log(transaction.id);
            }
        - lang: Python
          source: |-
            import os
            from channel3_sdk import Channel3

            client = Channel3(
                api_key=os.environ.get("CHANNEL3_API_KEY"),  # This is the default and can be omitted
            )
            page = client.reporting.transactions.list()
            page = page.items[0]
            print(page.id)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/channel3-ai/sdk-go\"\n\t\"github.com/channel3-ai/sdk-go/option\"\n)\n\nfunc main() {\n\tclient := channel3go.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tpage, err := client.Reporting.Transactions.List(context.TODO(), channel3go.ReportingTransactionListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", page)\n}\n"
        - lang: CLI
          source: |-
            channel3 reporting:transactions list \
              --api-key 'My API Key'
components:
  schemas:
    TransactionsResponse:
      properties:
        summary:
          $ref: '#/components/schemas/TransactionsSummary'
        items:
          items:
            $ref: '#/components/schemas/Transaction'
          type: array
          title: Items
        page:
          type: integer
          title: Page
          description: Current page (1-indexed).
        limit:
          type: integer
          title: Limit
          description: Page size.
        total_count:
          type: integer
          title: Total Count
          description: Total matching transactions in the date range.
        has_more:
          type: boolean
          title: Has More
          description: Whether more pages are available.
        start_date:
          type: string
          format: date-time
          title: Start Date
          description: >-
            Inclusive start of the resolved query window. Always returned with a
            UTC offset (Z); request values with other offsets are converted.
        end_date:
          type: string
          format: date-time
          title: End Date
          description: >-
            Inclusive end of the resolved query window. Always returned with a
            UTC offset (Z); request values with other offsets are converted.
      type: object
      required:
        - summary
        - items
        - page
        - limit
        - total_count
        - has_more
        - start_date
        - end_date
      title: TransactionsResponse
      description: Paginated transactions for a vendor over a date range.
    ErrorResponse:
      properties:
        detail:
          anyOf:
            - type: string
            - items:
                additionalProperties: true
                type: object
              type: array
          title: Detail
      type: object
      required:
        - detail
      title: ErrorResponse
    TransactionsSummary:
      properties:
        total_count:
          type: integer
          title: Total Count
          description: Total transactions in the date range.
        total_commission:
          type: number
          title: Total Commission
          description: Sum of vendor net commission (pending + paid) for the date range.
        pending_commission:
          type: number
          title: Pending Commission
          description: Vendor net commission still pending payout.
        paid_commission:
          type: number
          title: Paid Commission
          description: Vendor net commission already paid out.
      type: object
      required:
        - total_count
        - total_commission
        - pending_commission
        - paid_commission
      title: TransactionsSummary
      description: Aggregate transaction stats for the requested date range.
    Transaction:
      properties:
        id:
          type: string
          title: Id
          description: Transaction ID.
        order_amount:
          type: number
          title: Order Amount
          description: Order amount in the transaction currency.
        commission_amount:
          type: number
          title: Commission Amount
          description: Vendor net commission (after Channel3 take rate).
        status:
          $ref: '#/components/schemas/PublicTransactionStatus'
          description: pending (includes network-approved) or paid.
        purchased_at:
          type: string
          format: date-time
          title: Purchased At
          description: Purchase timestamp, returned with a UTC offset (Z).
        user_id:
          anyOf:
            - type: string
            - type: 'null'
          title: User Id
          description: >-
            Partner-supplied user identifier from the originating click, if
            provided.
        product:
          anyOf:
            - $ref: '#/components/schemas/ReportingProduct'
            - type: 'null'
          description: Matched product, if known.
        brand_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Brand Name
          description: Brand name, if known.
        city:
          anyOf:
            - type: string
            - type: 'null'
          title: City
          description: Purchase city, if available.
        country:
          anyOf:
            - type: string
            - type: 'null'
          title: Country
          description: Purchase country, if available.
      type: object
      required:
        - id
        - order_amount
        - commission_amount
        - status
        - purchased_at
      title: Transaction
      description: A single CPA transaction.
    PublicTransactionStatus:
      type: string
      enum:
        - pending
        - paid
      title: PublicTransactionStatus
      description: Vendor-facing transaction status (approved is surfaced as pending).
    ReportingProduct:
      properties:
        id:
          type: string
          title: Id
          description: Canonical product ID.
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Title
          description: Product title.
        image_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Image Url
          description: Product image URL.
      type: object
      required:
        - id
      title: ReportingProduct
      description: Compact product reference on click/transaction items.
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: x-api-key

````

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