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

# Transaction Logs

> Retrieve paginated credit transaction logs for the authenticated organization with advanced filtering, sorting, and pagination capabilities.

This API allows you to retrieve paginated credit transaction logs for your organization with advanced filtering capabilities.

## Features

* **Date Range Filtering**: Filter transactions using start and end dates in DD-MM-YYYY format
* **Transaction Type Filtering**: Filter by specific transaction types (credit, debit, refund, purchase, deduction)
* **High Performance**: Sub-50ms response time for base queries
* **Conditional Payload Loading**: Optionally include request/response payload data
* **Flexible Pagination**: Up to 500 records per page

## Use Cases

* **View Recent Activity**: Monitor your latest credit transactions
* **Generate Reports**: Create billing and usage reports for specific date ranges
* **Audit API Usage**: Track which APIs consumed credits and when
* **Credit Analysis**: Analyze credit consumption patterns across your organization

<Note>
  By default, request and response payload data is **not included** in the
  response to optimize performance. Set `include_input=true` or
  `include_output=true` to retrieve payload data when needed.
</Note>

## Transaction Types

* **credit**: Credits added to account
* **debit**: Credits consumed by API calls
* **refund**: Credits refunded to account
* **purchase**: Credits purchased
* **deduction**: Manual credit deduction


## OpenAPI

````yaml GET /v2/credits/transactions
openapi: 3.0.0
info:
  title: KonnectNXT API Store
  description: >-
    A sample API that uses a plant store as an example to demonstrate features
    in the OpenAPI specification
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://bgv.konnectnxt.com/api
    description: Production
  - url: https://testbgv.konnectnxt.com/api
    description: QA
security:
  - bearerAuth: []
paths:
  /v2/credits/transactions:
    get:
      tags:
        - Credits
      summary: Fetch Transaction Logs
      description: >-
        Retrieve paginated credit transaction logs for the authenticated
        organization with advanced filtering, sorting, and pagination
        capabilities.
      operationId: getTransactionLogs
      parameters:
        - name: start_date
          in: query
          description: 'Filter transactions from this date (inclusive). Format: DD-MM-YYYY'
          required: false
          schema:
            type: string
            format: date
            pattern: ^\d{2}-\d{2}-\d{4}$
            example: 01-01-2024
        - name: end_date
          in: query
          description: 'Filter transactions until this date (inclusive). Format: DD-MM-YYYY'
          required: false
          schema:
            type: string
            format: date
            pattern: ^\d{2}-\d{2}-\d{4}$
            example: 31-12-2024
        - name: transaction_type
          in: query
          description: Filter by specific transaction type
          required: false
          schema:
            type: string
            enum:
              - credit
              - debit
              - refund
              - purchase
              - deduction
            example: debit
        - name: page
          in: query
          description: Page number for pagination (1-indexed)
          required: false
          schema:
            type: integer
            minimum: 1
            default: 1
            example: 1
        - name: per_page
          in: query
          description: Number of records per page
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 100
            example: 100
        - name: include_input
          in: query
          description: Include request payload data in response
          required: false
          schema:
            type: boolean
            default: false
            example: false
        - name: include_output
          in: query
          description: Include response payload data in response
          required: false
          schema:
            type: boolean
            default: false
            example: false
      responses:
        '200':
          description: Successfully retrieved transaction logs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionLogsSuccessResponse'
              examples:
                basicResponse:
                  summary: Basic response without payload
                  value:
                    status: success
                    code: 200
                    data:
                      transactions:
                        - id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                          transaction_type: debit
                          description: PAN Verification - API Call
                          credits: 5
                          opening_balance: 1000
                          closing_balance: 995
                          api_name: PAN Verification
                          user_email: user@example.com
                          created_at: '2024-01-15T14:30:00Z'
                        - id: b2c3d4e5-f6a7-8901-bcde-f12345678901
                          transaction_type: credit
                          description: Credit Purchase
                          credits: 500
                          opening_balance: 995
                          closing_balance: 1495
                          api_name: null
                          user_email: admin@example.com
                          created_at: '2024-01-15T10:00:00Z'
                      total: 150
                      current_page: 1
                      per_page: 100
                      total_pages: 2
                    credits_used: 0
                    credits_remaining: 1495
                withPayload:
                  summary: Response with input/output payload
                  value:
                    status: success
                    code: 200
                    data:
                      transactions:
                        - id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                          transaction_type: debit
                          description: PAN Verification - API Call
                          credits: 5
                          opening_balance: 1000
                          closing_balance: 995
                          api_name: PAN Verification
                          user_email: user@example.com
                          created_at: '2024-01-15T14:30:00Z'
                          input_data:
                            pan: ABCDE1234F
                            consent: 'Y'
                          output_data:
                            success: true
                            name: John Doe
                            pan_status: Valid
                      total: 45
                      current_page: 1
                      per_page: 50
                      total_pages: 1
                    credits_used: 0
                    credits_remaining: 995
                emptyResults:
                  summary: No transactions found
                  value:
                    status: success
                    code: 200
                    data:
                      transactions: []
                      total: 0
                      current_page: 1
                      per_page: 100
                      total_pages: 0
                    credits_used: 0
                    credits_remaining: 1000
        '400':
          description: Bad request - Invalid parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditErrorResponse'
              examples:
                invalidDate:
                  summary: Invalid date format
                  value:
                    status: error
                    code: 400
                    message: start_date must be in DD-MM-YYYY format (e.g., 15-01-2024)
                invalidDateRange:
                  summary: Invalid date range
                  value:
                    status: error
                    code: 400
                    message: start_date cannot be after end_date
                invalidTransactionType:
                  summary: Invalid transaction type
                  value:
                    status: error
                    code: 400
                    message: >-
                      Invalid transaction_type. Must be one of: credit, debit,
                      deduction, purchase, refund
                invalidPage:
                  summary: Invalid page number
                  value:
                    status: error
                    code: 400
                    message: page must be at least 1
                invalidPerPage:
                  summary: Invalid per_page value
                  value:
                    status: error
                    code: 400
                    message: per_page cannot exceed 500
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: Forbidden - Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditErrorResponse'
              example:
                status: error
                code: 403
                message: You do not have permission to access this resource
        '429':
          description: Too many requests - Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditErrorResponse'
              example:
                status: error
                code: 429
                message: Rate limit exceeded. Please try again later
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditErrorResponse'
              example:
                status: error
                code: 500
                message: Internal server error. Please contact support
components:
  schemas:
    TransactionLogsSuccessResponse:
      type: object
      required:
        - status
        - code
        - data
        - credits_used
        - credits_remaining
      properties:
        status:
          type: string
          enum:
            - success
          description: Response status indicator
          example: success
        code:
          type: integer
          enum:
            - 200
          description: HTTP status code
          example: 200
        data:
          $ref: '#/components/schemas/TransactionLogsData'
        credits_used:
          type: number
          format: float
          description: >-
            Credits consumed by this API call (always 0.0 for read-only
            operations)
          example: 0
        credits_remaining:
          type: number
          format: float
          description: Organization's remaining credit balance
          example: 1000
    CreditErrorResponse:
      type: object
      required:
        - status
        - code
        - message
      properties:
        status:
          type: string
          enum:
            - error
          description: Response status indicator
          example: error
        code:
          type: integer
          description: HTTP status code
          example: 400
        message:
          type: string
          description: Human-readable error message
          example: start_date must be in DD-MM-YYYY format
        errors:
          type: object
          description: Detailed field-level errors (optional)
          additionalProperties: true
          example:
            start_date:
              - Invalid date format
        data:
          type: object
          description: Additional error context (optional)
          nullable: true
          additionalProperties: true
    TransactionLogsData:
      type: object
      required:
        - transactions
        - total
        - current_page
        - per_page
        - total_pages
      properties:
        transactions:
          type: array
          description: Array of transaction records
          items:
            $ref: '#/components/schemas/Transaction'
        total:
          type: integer
          description: Total number of transactions matching filters
          example: 150
          minimum: 0
        current_page:
          type: integer
          description: Current page number (1-indexed)
          example: 1
          minimum: 1
        per_page:
          type: integer
          description: Number of records per page
          example: 100
          minimum: 1
          maximum: 500
        total_pages:
          type: integer
          description: Total number of pages available
          example: 2
          minimum: 0
    Error:
      allOf:
        - $ref: '#/components/schemas/APIBaseResponse'
    APIErrorData:
      type: object
      properties:
        data:
          type: object
          nullable: true
          example: null
    Transaction:
      type: object
      required:
        - id
        - transaction_type
        - description
        - credits
        - created_at
      properties:
        id:
          type: string
          format: uuid
          description: Unique transaction identifier
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        transaction_type:
          type: string
          enum:
            - credit
            - debit
            - refund
            - purchase
            - deduction
          description: Type of transaction
          example: debit
        description:
          type: string
          description: Human-readable transaction description
          example: PAN Verification - API Call
        credits:
          type: number
          format: float
          description: Credit amount (positive for additions, negative for deductions)
          example: 5
        opening_balance:
          type: number
          format: float
          nullable: true
          description: Credit balance before transaction
          example: 1000
        closing_balance:
          type: number
          format: float
          nullable: true
          description: Credit balance after transaction
          example: 995
        api_name:
          type: string
          nullable: true
          description: Name of API that consumed credits (null for non-API transactions)
          example: PAN Verification
        user_email:
          type: string
          format: email
          nullable: true
          description: Email of user who triggered the transaction
          example: user@example.com
        created_at:
          type: string
          format: date-time
          description: Transaction timestamp (ISO 8601 format)
          example: '2024-01-15T14:30:00Z'
        input_data:
          type: object
          nullable: true
          description: Request payload data (included only when include_input=true)
          additionalProperties: true
          example:
            pan: ABCDE1234F
            consent: 'Y'
        output_data:
          type: object
          nullable: true
          description: Response payload data (included only when include_output=true)
          additionalProperties: true
          example:
            success: true
            name: John Doe
            pan_status: Valid
    APIBaseResponse:
      type: object
      required:
        - status
        - code
        - message
      properties:
        status:
          $ref: '#/components/schemas/APIStatus'
        code:
          $ref: '#/components/schemas/HTTPCode'
        message:
          $ref: '#/components/schemas/APIMessage'
    APIStatus:
      type: string
      enum:
        - success
        - error
      description: Overall status of the API
    HTTPCode:
      type: integer
      description: HTTP status code
      example: 400
    APIMessage:
      type: string
      description: Description of the response or error
      example: Invalid request parameters
  responses:
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - $ref: '#/components/schemas/APIErrorData'
          examples:
            Missing Token:
              summary: Bearer token is missing or invalid.
              value:
                status: error
                code: 401
                message: Bearer token is missing or invalid.
                data: null
            Incorrect Token Format:
              summary: Token format is incorrect
              value:
                status: error
                code: 401
                message: Token format is incorrect
                data: null
            No Admin Found:
              summary: No admin found for this request
              value:
                status: error
                code: 401
                message: No admin user found for this organization
                data: null
            Invalid API Key:
              summary: Invalid API Key
              value:
                status: error
                code: 401
                message: Invalid API key (organization ID)
                data: null
            User not Found:
              summary: User not found
              value:
                status: error
                code: 401
                message: User not found.
                data: null
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key issued by KonnectNXT. Pass as `Authorization: Bearer
        <your_api_key>`.

````