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

# Search billing transactions

> The buyer's invoices and charges: one row per Paddle transaction, newest first, wherever their workspaces are. Filter by status, origin, collection_mode, currency or a billed_at window; locate one by invoice_number. include subscription / owner / team. Read-only, append-only. page_size 0 returns the counts only.

Contract:
- MCP tool `search_billing_transactions`, registry package `mcp.id/billing_transactions`, mount `id.billing`.
- Operation `search`, response envelope `search`.
- Flags: read only.



## OpenAPI

````yaml /api-reference/id/openapi.yaml post /api/billing-transactions/search
openapi: 3.0.3
info:
  title: 'GetSales public contract: gs.service.id'
  description: >-
    The identity service: the signed-in account, its workspaces and their
    members, the sessions and the gtm-api workspaces a team reaches; the API
    keys, OAuth clients and standing consents; the Paddle billing of the pool a
    buyer holds (catalog, subscriptions, transactions, payment methods); the
    partner's surface (white label brands, their clients, the shares handed to
    workspaces, the certificates behind the brand domains); and the notification
    feed.


    GENERATED. This document is projected from the Zod MCP tool registry in
    `product/mcp/gs.mcp` (one tool per public endpoint, 1:1). Do not edit it by
    hand; edit the tool definition and regenerate with `pnpm openapi:public`.


    Surface: the public `/api` contract of `gs.service.id`, 88 operations. This
    is the only OpenAPI document the platform publishes. Internal (`/internal`)
    and health endpoints are deliberately absent: they are not part of any
    contract, they can change without notice, and the service source is their
    only description.


    Conventions:

    - Auth is a bearer JWT, optionally narrowed by the `Team-SID` header.

    - Every success body is an MCP envelope: `success: true` plus one typed
    `operation` shape (`search`, `get`, `create`, `update`, `delete`, `metrics`,
    `group_by`, `action`), and a `meta` block with `trace_id` for support.

    - Every failure is the same `McpError` envelope with a code from a fixed
    16-code taxonomy, so a client maps errors once.

    - Lists page with `page_size` (0 to 500, default 50) plus an opaque forward
    `cursor`; `page_size: 0` returns counts only.

    - On `GET` and `DELETE`, object-valued query parameters (`filter`, `sort`)
    travel as JSON text and array-valued ones repeat as `name[]=value`.

    - The MCP-only `_meta` field (usage analytics) never reaches the backend and
    is not part of this contract.
  version: '1.0'
  contact:
    name: GetSales
    url: https://getsales.io
    email: support@getsales.io
  license:
    name: Proprietary
    url: https://getsales.io/terms
servers:
  - url: https://beta.getsales.io/id/v1
    description: >-
      Production (the gateway path on the beta ring; the origin is provisioned
      per DEPLOY_MAP.md)
security:
  - BearerJwt: []
    TeamSid: []
tags:
  - name: api_keys
    description: Registry package `mcp.id/api_keys`, served on MCP mount `id.access`.
  - name: billing_payment_methods
    description: >-
      Registry package `mcp.id/billing_payment_methods`, served on MCP mount
      `id.billing`.
  - name: billing_products
    description: >-
      Registry package `mcp.id/billing_products`, served on MCP mount
      `id.billing`.
  - name: billing_subscriptions
    description: >-
      Registry package `mcp.id/billing_subscriptions`, served on MCP mount
      `id.billing`.
  - name: billing_transactions
    description: >-
      Registry package `mcp.id/billing_transactions`, served on MCP mount
      `id.billing`.
  - name: credit_lots
    description: Registry package `mcp.id/credit_lots`, served on MCP mount `id.billing`.
  - name: credit_transactions
    description: >-
      Registry package `mcp.id/credit_transactions`, served on MCP mount
      `id.billing`.
  - name: gtm_connections
    description: >-
      Registry package `mcp.id/gtm_connections`, served on MCP mount
      `id.identity`.
  - name: notifications
    description: >-
      Registry package `mcp.id/notifications`, served on MCP mount
      `id.notifications`.
  - name: oauth_authorizations
    description: >-
      Registry package `mcp.id/oauth_authorizations`, served on MCP mount
      `id.access`.
  - name: oauth_clients
    description: Registry package `mcp.id/oauth_clients`, served on MCP mount `id.access`.
  - name: sessions
    description: Registry package `mcp.id/sessions`, served on MCP mount `id.identity`.
  - name: ssl_certificates
    description: >-
      Registry package `mcp.id/ssl_certificates`, served on MCP mount
      `id.partner`.
  - name: subscription_allocations
    description: >-
      Registry package `mcp.id/subscription_allocations`, served on MCP mount
      `id.partner`.
  - name: team_members
    description: Registry package `mcp.id/team_members`, served on MCP mount `id.identity`.
  - name: teams
    description: Registry package `mcp.id/teams`, served on MCP mount `id.identity`.
  - name: user_profiles
    description: >-
      Registry package `mcp.id/user_profiles`, served on MCP mount
      `id.identity`.
  - name: users
    description: Registry package `mcp.id/users`, served on MCP mount `id.identity`.
  - name: whitelabel_clients
    description: >-
      Registry package `mcp.id/whitelabel_clients`, served on MCP mount
      `id.partner`.
  - name: whitelabels
    description: Registry package `mcp.id/whitelabels`, served on MCP mount `id.partner`.
  - name: workspace_profiles
    description: >-
      Registry package `mcp.id/workspace_profiles`, served on MCP mount
      `id.identity`.
paths:
  /api/billing-transactions/search:
    post:
      tags:
        - billing_transactions
      summary: Search billing transactions
      description: >-
        The buyer's invoices and charges: one row per Paddle transaction, newest
        first, wherever their workspaces are. Filter by status, origin,
        collection_mode, currency or a billed_at window; locate one by
        invoice_number. include subscription / owner / team. Read-only,
        append-only. page_size 0 returns the counts only.


        Contract:

        - MCP tool `search_billing_transactions`, registry package
        `mcp.id/billing_transactions`, mount `id.billing`.

        - Operation `search`, response envelope `search`.

        - Flags: read only.
      operationId: search_billing_transactions
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchBillingTransactionsRequest'
      responses:
        '200':
          description: '`search` success envelope.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchBillingTransactionsResponse'
        4XX:
          $ref: '#/components/responses/McpClientError'
        5XX:
          $ref: '#/components/responses/McpServerError'
components:
  schemas:
    SearchBillingTransactionsRequest:
      type: object
      description: Request body of `search_billing_transactions`.
      properties:
        filter:
          type: object
          properties:
            sid:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
              additionalProperties: false
              description: Transaction sid(s).
            owner_user_sid:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
              additionalProperties: false
              description: The buyer.
            team_sid:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: The notified workspace.
            subscription_sid:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: One subscription's charges.
            paddle_transaction_id:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
              additionalProperties: false
              description: Paddle's id.
            invoice_number:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: Locate one invoice; is_null false = the rows with a PDF.
            status:
              type: object
              properties:
                eq:
                  type: string
                  enum:
                    - billed
                    - paid
                    - completed
                    - past_due
                    - canceled
                ne:
                  type: string
                  enum:
                    - billed
                    - paid
                    - completed
                    - past_due
                    - canceled
                in:
                  type: array
                  items:
                    type: string
                    enum:
                      - billed
                      - paid
                      - completed
                      - past_due
                      - canceled
                nin:
                  type: array
                  items:
                    type: string
                    enum:
                      - billed
                      - paid
                      - completed
                      - past_due
                      - canceled
              additionalProperties: false
              description: billed | paid | completed | past_due | canceled.
            origin:
              type: object
              properties:
                eq:
                  type: string
                  enum:
                    - subscription_charge
                    - subscription_update
                    - one_time
                ne:
                  type: string
                  enum:
                    - subscription_charge
                    - subscription_update
                    - one_time
                in:
                  type: array
                  items:
                    type: string
                    enum:
                      - subscription_charge
                      - subscription_update
                      - one_time
                nin:
                  type: array
                  items:
                    type: string
                    enum:
                      - subscription_charge
                      - subscription_update
                      - one_time
              additionalProperties: false
              description: subscription_charge | subscription_update | one_time.
            collection_mode:
              type: object
              properties:
                eq:
                  type: string
                  enum:
                    - automatic
                    - manual
                ne:
                  type: string
                  enum:
                    - automatic
                    - manual
                in:
                  type: array
                  items:
                    type: string
                    enum:
                      - automatic
                      - manual
              additionalProperties: false
              description: automatic | manual.
            currency:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
              additionalProperties: false
              description: ISO 4217.
            billed_at:
              type: object
              properties:
                gte:
                  type: string
                lte:
                  type: string
                gt:
                  type: string
                lt:
                  type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: ISO 8601 bounds.
            created_at:
              type: object
              properties:
                gte:
                  type: string
                lte:
                  type: string
                gt:
                  type: string
                lt:
                  type: string
              additionalProperties: false
              description: ISO 8601 bounds.
          description: >-
            Field filters, ANDed: {field: {eq | ne | in | nin | gte | lte | gt |
            lt | is_null}}; q inside it is free text. Omit for every row.
        include:
          type: array
          items:
            type: string
            enum:
              - subscription
              - owner
              - team
          description: Relations to attach to every item; omit for the bare rows.
        sort:
          type: object
          properties:
            field:
              type: string
              enum:
                - billed_at
                - created_at
                - total
              description: The column to order by.
            direction:
              type: string
              enum:
                - asc
                - desc
              description: asc or desc; default desc.
          required:
            - field
          description: One column and its direction; omit for the default order.
        page_size:
          type: integer
          minimum: 0
          maximum: 500
          description: 0..500, default 50; 0 = counts only, 1 = the first row.
        cursor:
          type: string
          nullable: true
          description: pagination.next_cursor of the previous page.
    SearchBillingTransactionsResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - true
        operation:
          type: string
          enum:
            - search
        items:
          type: array
          items:
            type: object
            properties:
              item:
                type: object
                properties:
                  sid:
                    type: string
                    description: Transaction sid (bl_tx_...).
                  owner_user_sid:
                    type: string
                    description: The buyer (us_mb_...).
                  team_sid:
                    type: string
                    nullable: true
                    description: >-
                      The workspace notified of it at ingestion (the first
                      allocated one); null when none.
                  subscription_sid:
                    type: string
                    nullable: true
                    description: >-
                      The subscription charged (bl_sb_...); attached on a later
                      event when the charge came first.
                  paddle_transaction_id:
                    type: string
                    description: Paddle's id (txn_...).
                  status:
                    type: string
                    enum:
                      - billed
                      - paid
                      - completed
                      - past_due
                      - canceled
                    description: >-
                      billed, paid, completed, past_due or canceled, as Paddle
                      reports it.
                  origin:
                    type: string
                    enum:
                      - subscription_charge
                      - subscription_update
                      - one_time
                    description: >-
                      subscription_charge (a period's charge, the first checkout
                      included), subscription_update (a proration), one_time.
                  collection_mode:
                    type: string
                    enum:
                      - automatic
                      - manual
                    description: automatic = charged to the card; manual = invoiced.
                  invoice_number:
                    type: string
                    nullable: true
                    description: >-
                      Paddle's invoice number; the rows that carry one have a
                      PDF.
                  total:
                    type: string
                    description: The total as a decimal string in currency.
                  tax:
                    type: string
                    nullable: true
                    description: The tax part as a decimal string; null when unknown.
                  currency:
                    type: string
                    description: ISO 4217.
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        price_sid:
                          type: string
                          nullable: true
                          description: >-
                            The price charged (bl_pc_...); null when Paddle
                            named one we do not mirror.
                        product_sid:
                          type: string
                          nullable: true
                          description: The product (bl_pr_...).
                        product_type:
                          type: string
                          enum:
                            - plan
                            - addon
                            - credits_pack
                          description: plan | addon | credits_pack.
                        quantity:
                          type: integer
                          description: Units charged.
                        unit_amount:
                          type: string
                          description: The unit price as a decimal string.
                        paddle_price_id:
                          type: string
                          nullable: true
                          description: Paddle's price id.
                      required:
                        - price_sid
                        - product_sid
                        - product_type
                        - quantity
                        - unit_amount
                        - paddle_price_id
                    description: The frozen line items of the charge.
                  billed_at:
                    type: string
                    nullable: true
                    description: ISO 8601 UTC; null until billed.
                  created_at:
                    type: string
                    description: ISO 8601 UTC.
                  updated_at:
                    type: string
                    description: ISO 8601 UTC.
                required:
                  - sid
                  - owner_user_sid
                  - team_sid
                  - subscription_sid
                  - paddle_transaction_id
                  - status
                  - origin
                  - collection_mode
                  - invoice_number
                  - total
                  - tax
                  - currency
                  - items
                  - billed_at
                  - created_at
                  - updated_at
              included:
                type: object
                additionalProperties: {}
            required:
              - item
              - included
        pagination:
          type: object
          properties:
            next_cursor:
              type: string
              nullable: true
            has_more:
              type: boolean
            total_count:
              type: integer
              nullable: true
          required:
            - next_cursor
            - has_more
            - total_count
        applied_filters:
          type: object
          additionalProperties: {}
        includes:
          type: array
          items:
            type: string
        meta:
          type: object
          properties:
            trace_id:
              type: string
              description: UUID v7; same 128-bit value as the X-Trace-Id header.
            span_id:
              type: string
              pattern: ^[0-9a-f]{16}$
              description: 16 hex chars, root span of this request.
            timestamp:
              type: string
              description: ISO 8601 UTC (Y-m-dTH:i:sZ), response time.
            duration_ms:
              type: integer
              minimum: 0
              description: Server-side wall clock.
            team_sid:
              type: string
              nullable: true
              description: >-
                The team this call ran in (the token team, or the team_sid
                override). Null when unauthenticated; absent from pre-2026-08-20
                backends.
            actor_type:
              type: string
              nullable: true
              description: >-
                user | agent | api_key | system. Null when unauthenticated;
                absent from pre-2026-08-20 backends.
          required:
            - trace_id
            - span_id
            - timestamp
            - duration_ms
        counts:
          type: object
          properties:
            total_count:
              type: number
              description: Transactions matching the filter.
            groups:
              type: object
              additionalProperties: {}
              description: >-
                status, origin, collection_mode and currency: the count per
                value.
          required:
            - total_count
            - groups
      required:
        - success
        - operation
        - items
        - pagination
        - applied_filters
        - includes
        - meta
    McpError:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - validation_failed
                - nothing_to_update
                - not_found
                - relation_not_found
                - invalid_transition
                - limit_exceeded
                - payment_required
                - duplicate_rejected
                - conflict
                - delete_blocked
                - unauthorized
                - forbidden
                - rate_limited
                - internal_error
                - service_unavailable
                - not_implemented
            message:
              type: string
            recoverable:
              type: boolean
            suggestion:
              type: string
            field_errors:
              type: object
              additionalProperties:
                type: array
                items:
                  type: object
                  properties:
                    rule:
                      type: string
                    message:
                      type: string
                  required:
                    - rule
                    - message
            blockers:
              type: array
              items:
                type: object
                properties:
                  type:
                    type: string
                    description: >-
                      Machine-readable blocker type (active_flow, pending_tasks,
                      …).
                  severity:
                    type: string
                    enum:
                      - hard
                      - soft
                    description: >-
                      hard = external action required; soft = acknowledge is
                      enough.
                  description:
                    type: string
                  entity_sid:
                    type: string
                    nullable: true
                  count:
                    type: integer
                  resolution:
                    type: string
                    description: 'Hard: tool name to call. Soft: code for acknowledge[].'
                  resolution_hint:
                    type: string
                required:
                  - type
                  - severity
                  - description
                  - entity_sid
                  - resolution
                  - resolution_hint
            context:
              type: object
              additionalProperties: {}
          required:
            - code
            - message
            - recoverable
        meta:
          type: object
          properties:
            trace_id:
              type: string
              description: UUID v7; same 128-bit value as the X-Trace-Id header.
            span_id:
              type: string
              pattern: ^[0-9a-f]{16}$
              description: 16 hex chars, root span of this request.
            timestamp:
              type: string
              description: ISO 8601 UTC (Y-m-dTH:i:sZ), response time.
            duration_ms:
              type: integer
              minimum: 0
              description: Server-side wall clock.
            team_sid:
              type: string
              nullable: true
              description: >-
                The team this call ran in (the token team, or the team_sid
                override). Null when unauthenticated; absent from pre-2026-08-20
                backends.
            actor_type:
              type: string
              nullable: true
              description: >-
                user | agent | api_key | system. Null when unauthenticated;
                absent from pre-2026-08-20 backends.
          required:
            - trace_id
            - span_id
            - timestamp
            - duration_ms
      required:
        - success
        - error
  responses:
    McpClientError:
      description: >-
        MCP error envelope. `error.code` is one of validation_failed,
        nothing_to_update, not_found, relation_not_found, invalid_transition,
        limit_exceeded, payment_required, duplicate_rejected, conflict,
        delete_blocked, unauthorized, forbidden, rate_limited, not_implemented.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/McpError'
    McpServerError:
      description: >-
        MCP error envelope with `error.code` internal_error or
        service_unavailable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/McpError'
  securitySchemes:
    BearerJwt:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Access token issued by gs.service.id. Its `access_identity` claim
        carries `team_sid`, `actor_sid` and `actor_type`, and that team scope is
        authoritative.
    TeamSid:
      type: apiKey
      in: header
      name: Team-SID
      description: >-
        Team scope for tokens that do not carry one. Ignored when the token
        already names a team.

````

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