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

# List transactions

> Returns a paginated list of billing transactions for the authenticated account within the requested date range.



## OpenAPI

````yaml https://wavix.github.io/wavix-openapi/wavix-api.yaml get /v1/billing/transactions
openapi: 3.1.0
info:
  title: Wavix APIs
  description: >-
    Wavix provides robust APIs that let you integrate voice and text messaging
    features directly into your app. Send text, place calls, and access detailed
    reports  programmatically.
  termsOfService: https://wavix.com/terms-and-conditions
  license:
    name: MIT
    identifier: MIT
  contact:
    name: Wavix
    url: https://wavix.com
    email: support@wavix.com
  version: '1.0'
servers:
  - url: https://api.wavix.com
    description: https://api.wavix.com
    variables: {}
security:
  - bearerAuth: []
tags:
  - name: SIP trunks
    description: SIP trunks
  - name: Buy
    description: Numbers
  - name: Cart
    description: Numbers
  - name: My numbers
    description: Numbers
  - name: Billing
    description: Billing, transactions, and invoices
  - name: Profile
    description: Account profile and customer information
  - name: CDRs
    description: Call detail records and call history
  - name: Speech Analytics
    description: Call transcription and speech analytics
  - name: SMS and MMS
    description: Messaging
  - name: Number Validator
    description: Phone number validation
  - name: Link shortener
    description: Short link and click metrics
  - name: 2FA
    description: Two-factor authentication
  - name: 10DLC
    description: 10DLC Campaigns and Brands
  - name: API Keys
    description: API key management
  - name: Call webhooks
    description: Webhook configuration for call events
  - name: Call control
    description: Programmable Voice
  - name: Call streaming
    description: Real-time call audio streaming over WebSocket
  - name: Call recording
    description: Call recording
  - name: Sub-accounts
    description: Sub-account management
  - name: Voice campaigns
    description: Outbound voice campaigns
  - name: Wavix Embeddable
    description: WebRTC embeddable widget
paths:
  /v1/billing/transactions:
    get:
      tags:
        - Billing
      summary: List transactions
      description: >-
        Returns a paginated list of billing transactions for the authenticated
        account within the requested date range.
      operationId: billing_transactions_list
      parameters:
        - name: from_date
          in: query
          description: Start of the date range to query, in `YYYY-MM-DD` format. Inclusive.
          required: true
          style: form
          explode: true
          schema:
            type: string
            format: date
            example: '2023-08-01'
        - name: to_date
          in: query
          description: End of the date range to query, in `YYYY-MM-DD` format. Inclusive.
          required: true
          style: form
          explode: true
          schema:
            type: string
            format: date
            example: '2023-08-31'
        - name: type
          in: query
          description: Filters transactions by type. Accepts a `TransactionType` value.
          style: form
          explode: true
          schema:
            allOf:
              - $ref: '#/components/schemas/TransactionType'
        - name: details_contains
          in: query
          description: Filters transactions whose `details` contain the given substring.
          style: form
          explode: true
          schema:
            type: string
            example: monthly
        - name: payments
          in: query
          description: >-
            When `true`, returns only account top-up transactions. Defaults to
            all transaction types.
          style: form
          explode: true
          schema:
            type: boolean
            example: true
        - name: page
          in: query
          description: Page number to retrieve. Default `1`.
          style: form
          explode: true
          schema:
            type: integer
            format: int32
            example: 1
        - name: per_page
          in: query
          description: Number of records to return per page. Default `25`.
          style: form
          explode: true
          schema:
            type: integer
            format: int32
            example: 25
      responses:
        '200':
          description: Returns a paginated list of billing transactions.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/BillingTransactionListResponse'
                  - example:
                      is_empty: false
                      transactions:
                        - id: 24789389
                          amount: -0.99
                          balance_after: 309.0601
                          date: '2023-08-29T14:48:38.000Z'
                          details: Monthly fee for 16419252149
                          status: Committed
                          type: 3
                          show_invoice: false
                      pagination:
                        current_page: 1
                        per_page: 25
                        total: 1
                        total_pages: 1
              examples:
                default:
                  value:
                    is_empty: false
                    transactions:
                      - id: 24789389
                        amount: -0.99
                        balance_after: 309.0601
                        date: '2023-08-29T14:48:38.000Z'
                        details: Monthly fee for 16419252149
                        status: Committed
                        type: 3
                        show_invoice: false
                    pagination:
                      current_page: 1
                      per_page: 25
                      total: 1
                      total_pages: 1
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '403':
          $ref: '#/components/responses/ForbiddenErrorResponse'
        '503':
          description: Returns when the billing service is temporarily unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
      deprecated: false
      security:
        - bearerAuth:
            - billing:read
components:
  schemas:
    TransactionType:
      title: TransactionType
      enum:
        - 0
        - 2
        - 3
        - 6
        - 11
        - 14
        - 15
        - 19
        - 20
        - 23
        - 24
        - 25
        - 26
        - 29
        - 30
        - 31
        - 32
        - 33
        - 34
        - 35
        - 36
        - 37
        - 38
        - 39
        - 40
        - 41
        - 42
        - 43
        - 44
        - 45
        - 46
        - 47
        - 48
        - 49
        - 50
        - 51
        - 52
        - 53
        - 54
        - 55
        - 56
        - 57
        - 58
        - 59
        - 60
      type: integer
      description: |-
        Transaction type:
          * 0   - Payment adjustment
          * 2   - Phone number activation fee
          * 3   - Phone number monthly fees
          * 6   - Phone number forwarding
          * 11  - PSTN forwarding fee
          * 14  - Outbound call
          * 15  - Outbound SMS
          * 19  - Credit card payment
          * 20  - Payment fee
          * 23  - Porting fee
          * 24  - Inbound SMS
          * 25  - Admin payment
          * 26  - Subscription payment
          * 29  - Number validator
          * 30  - Call recording
          * 31  - Storage charge
          * 32  - Campaign builder
          * 33  - Voicemail detection
          * 34  - Sender ID registration
          * 35  - Sender ID monthly fee
          * 36  - 2FA
          * 37  - IVR
          * 38  - E911 activation
          * 39  - Outbound MMS
          * 40  - Inbound MMS
          * 41  - Call transcription
          * 42  - 10DLC Brand registration
          * 43  - 10DLC Campaign registration
          * 44  - Phone number order
          * 45  - Adjustment in
          * 46  - URL shortener
          * 47  - 10DLC Brand update
          * 48  - 10DLC Brand appeal
          * 49  - Audio transcription
          * 50  - 10DLC Brand vetting
          * 51  - 10DLC Brand vetting appeal
          * 52  - Outbound SMS carrier fee
          * 53  - Inbound SMS carrier fee
          * 54  - Outbound MMS carrier fee
          * 55  - Inbound MMS carrier fee
          * 57  - Outbound SMS segment
          * 58  - Inbound SMS segment
          * 59  - Outbound MMS segment
          * 60  - Inbound MMS segment
    BillingTransactionListResponse:
      title: BillingTransactionListResponse
      required:
        - is_empty
        - transactions
        - pagination
      type: object
      additionalProperties: false
      properties:
        is_empty:
          type: boolean
          description: Indicates whether there are no transactions.
          example: false
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/FinancialTransaction'
          description: List of transactions.
          example:
            - id: 24789389
              amount: -0.99
              balance_after: 309.0601
              date: '2023-08-29T14:48:38.000Z'
              details: Monthly fee for 16419252149
              status: Committed
              type: 3
              show_invoice: false
        pagination:
          $ref: '#/components/schemas/Pagination'
    ValidationErrorResponse:
      title: ValidationErrorResponse
      type: object
      properties:
        success:
          type: boolean
          description: >-
            Indicates whether the request was successful. Always `false` for
            this error.
          example: false
        message:
          type: string
          description: >-
            Human-readable description naming the missing or invalid request
            parameter.
          example: Missing or invalid parameter <param_name>
    FinancialTransaction:
      title: FinancialTransaction
      required:
        - id
        - date
        - amount
        - balance_after
        - details
        - status
        - type
        - show_invoice
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: Transaction ID.
          format: int64
          example: 24789389
        date:
          type: string
          description: Creation date and time in ISO 8601 format.
          format: date-time
          example: '2023-08-29T14:48:38.000Z'
        amount:
          type: number
          format: float
          description: Transaction amount. Negative values decrease balance.
          example: -0.99
        balance_after:
          type: number
          format: float
          description: Account balance after the transaction.
          example: 309.0601
        details:
          type: string
          description: Transaction details.
          example: Monthly fee for 16419252149
        status:
          $ref: '#/components/schemas/TransactionStatus'
        type:
          $ref: '#/components/schemas/TransactionType'
        show_invoice:
          type: boolean
          description: |-
            Indicates whether a transaction receipt is available. Receipts
             are available only for transaction types 0, 8, 9, 19, 23, and 25.
          example: false
      description: Financial transaction.
      example:
        id: 24789389
        date: '2023-08-29T14:48:38.000Z'
        amount: -0.99
        balance_after: 309.0601
        details: Monthly fee for 16419252149
        status: Committed
        type: 3
        show_invoice: false
    Pagination:
      title: Pagination
      required:
        - current_page
        - per_page
        - total
        - total_pages
      type: object
      additionalProperties: false
      properties:
        current_page:
          type: integer
          description: Current page number.
          format: int32
          example: 2
        per_page:
          type: integer
          description: Number of records per page.
          format: int32
          example: 25
        total:
          type: integer
          description: Total number of records.
          format: int32
          example: 101
        total_pages:
          type: integer
          description: Total number of pages.
          format: int32
          example: 5
    ForbiddenErrorResponse:
      title: ForbiddenErrorResponse
      type: object
      properties:
        success:
          type: boolean
          description: >-
            Indicates whether the request was successful. Always `false` for
            this error.
          example: false
        message:
          type: string
          description: Human-readable description of why access is forbidden.
          example: The service is not provisioned for your account.
    TransactionStatus:
      title: TransactionStatus
      enum:
        - Created
        - Pending
        - Committed
        - Reverted
      type: string
      description: >-
        Current status of the transaction. One of `Created` (the transaction was
        created but not yet processed), `Pending` (the transaction is being
        processed), `Committed` (the transaction was applied to the balance), or
        `Reverted` (the transaction was rolled back).
  responses:
    BadRequestErrorResponse:
      description: Request failed. Missing or invalid parameter <param_name>
      headers: {}
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationErrorResponse'
    ForbiddenErrorResponse:
      description: Request failed. The feature is disabled for your account.
      headers: {}
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ForbiddenErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        Wavix API key. Pass as `Authorization: Bearer <api_key>`. Keys support
        per-resource scopes (none / read / write). See [Restricted keys and
        scopes](https://docs.wavix.com/api-reference/authentication#restricted-keys-and-scopes).

````