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

# Search invoices

> Search for invoices by invoice number, invoice ID, or customer ID. At least one search parameter must be provided. Pagination is handled via query params (limit, offset).



## OpenAPI

````yaml https://api.salesbricks.com/api/v2/openapi.yaml post /invoices/search
openapi: 3.0.3
info:
  title: Salesbricks REST API
  version: 2.0.0
  description: API reference for external integrations
servers:
  - url: https://api.salesbricks.com/api/v2
    description: Production
  - url: https://api.staging.salesbricks.com/api/v2
    description: Staging
security:
  - ApiKeyAuth: []
tags:
  - name: Subscriptions
    description: >-
      Operations related to subscription management, including creation,
      updates, and retrieving subscription details. Subscriptions can be
      upgraded to add / remove add-ons by using the POST
      /subscriptions/{subscription_id}/upgrade endpoint and can be recasted for
      replacing the current agreement using the POST
      /subscriptions/{subscription_id}/recast endpoint
  - name: Customers
    description: >-
      Operations related to customer management, including creation, updates,
      and managing customer person objects.
  - name: Invoices
    description: Operations related to subscription's invoicing details.
  - name: Plans
    description: >-
      Operations related to listing and getting plan details including bricks in
      the plan.
  - name: Payment Methods
    description: Operations related to subscription's payment method.
paths:
  /invoices/search:
    post:
      tags:
        - Invoices
      summary: Search invoices
      description: >-
        Search for invoices by invoice number, invoice ID, or customer ID. At
        least one search parameter must be provided. Pagination is handled via
        query params (limit, offset).
      operationId: searchInvoices
      parameters:
        - name: limit
          required: false
          in: query
          description: Number of results to return per page.
          schema:
            type: integer
        - name: offset
          required: false
          in: query
          description: The initial index from which to return the results.
          schema:
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceSearchInput'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/InvoiceSearchInput'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/InvoiceSearchInput'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedInvoiceList'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
components:
  schemas:
    InvoiceSearchInput:
      type: object
      properties:
        invoice_numbers:
          type: array
          items:
            type: string
          description: List of invoice numbers to search for (e.g. '6c12021a-4')
        invoice_ids:
          type: array
          items:
            type: string
            format: uuid
          description: List of invoice UUIDs to search for
        customer_id:
          type: string
          format: uuid
          description: Filter invoices by customer ID
    PaginatedInvoiceList:
      type: object
      required:
        - count
        - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Invoice'
    ErrorResponse:
      type: object
      description: >-
        Standardizes API error responses with a consistent structure containing
        error code and message.
      properties:
        error:
          $ref: '#/components/schemas/Error'
      required:
        - error
    Invoice:
      type: object
      properties:
        invoice_id:
          type: string
          format: uuid
          description: >-
            Unique identifier for the invoice. If the id is null, this is an
            estimate
        subscription_id:
          type: string
          format: uuid
          description: ID of the subscription this invoice belongs to
        customer_id:
          type: string
          format: uuid
          description: ID of the customer who will pay this invoice
        invoice_number:
          type: string
          description: >-
            Short form identifier for the invoice. If the invoice_number is
            null, this is an estimate
        time_zone:
          type: string
          description: Invoice timezone
        due_at:
          type: string
          format: date-time
          description: The date on which this invoice is expected to be paid by.
        bill_at:
          type: string
          format: date-time
          description: >-
            The date on which this invoice will be issued and potentially
            charged.
        issued_at:
          type: string
          format: date-time
          description: The date on which this invoice was issued.
        status:
          type: string
          description: >
            Current status of the invoice. One of:


            - `MUTED` — Invoice will not be sent. Muted invoices come from
            migration cut-overs or from muting invoices in the product settings.

            - `SCHEDULED` — Scheduled to be issued on a future date.

            - `OUTSTANDING` — Issued and awaiting payment.

            - `DUE` — Payment is due.

            - `PAST_DUE` — Payment is past its due date.

            - `PAID` — Fully paid.

            - `PARTIALLY_PAID` — Partially paid, with a remaining balance.

            - `ADJUSTED` — Adjusted after issuance.

            - `CREDITED` — Settled by applying credit.

            - `UNPAID` — Unpaid.

            - `PAUSED` — Collection is paused.

            - `VOIDED` — Voided and no longer collectible.
        fully_paid_at:
          type: string
          format: date-time
          description: The date on which this invoice was fully paid.
        grand_total:
          type: integer
          description: >-
            Total amount due for this invoice. For scheduled invoices, this will
            be the expected payment amount.
        remaining_amount:
          type: integer
          description: Remaining amount for this invoice.
        currency:
          type: string
          description: The currency in which the invoice is denominated (e.g., USD, EUR).
        is_renewal_estimate:
          type: boolean
          description: >-
            This is an estimate for a renewal that has not yet closed, but is
            expected to.
        payments:
          type: array
          items:
            $ref: '#/components/schemas/Payment'
          description: >-
            The latest 10 payments made against this invoice, ordered by paid_at
            descending.
        attachments:
          type: array
          items: {}
          description: >-
            Current attachments for this invoice as a flat array. Each item
            includes 'target' field indicating invoice or subscription level.
            Sorted by unified order.
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceLineItemOutput'
          description: Line item breakdown for this invoice
      required:
        - bill_at
        - currency
        - customer_id
        - due_at
        - fully_paid_at
        - grand_total
        - invoice_id
        - invoice_number
        - is_renewal_estimate
        - issued_at
        - remaining_amount
        - status
        - subscription_id
    Error:
      type: object
      description: >-
        Represents individual error details with a standardized code and
        descriptive message.
      properties:
        code:
          enum:
            - ERR_NOT_FOUND
            - ERR_BAD_REQUEST
            - ERR_SERVER_ERROR
          type: string
          x-spec-enum-id: dc5a5d6feae1b697
          description: >-
            Error code indicating the type of error: NOT_FOUND for missing
            resources, BAD_REQUEST for invalid input, SERVER_ERROR for internal
            server issues


            * `ERR_NOT_FOUND` - ERR_NOT_FOUND

            * `ERR_BAD_REQUEST` - ERR_BAD_REQUEST

            * `ERR_SERVER_ERROR` - ERR_SERVER_ERROR
        message:
          type: string
        error_id:
          type: string
          format: uuid
          description: >-
            Correlation handle for SERVER_ERROR responses — quote this when
            contacting support; it joins to the structured server log line for
            the failure. Not present on 4xx responses.
      required:
        - code
        - message
    Payment:
      type: object
      properties:
        payment_id:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for the payment
        invoice_number:
          type: string
          nullable: true
          readOnly: true
          description: >-
            The invoice number this payment was made against, snapshotted from
            the invoice version current when the payment was recorded — it does
            not change when the invoice is later regenerated, so it may differ
            from the invoice's top-level `invoice_number`. Falls back to the
            invoice's current number when no version is linked. Join payments to
            invoices by ID, not by number.
        invoice_version_id:
          type: string
          format: uuid
          readOnly: true
          nullable: true
          description: >-
            Identifier of the invoice version this payment was made against —
            the version current when the payment was recorded. Null only when
            the invoice has no versions (it was never generated).
        paid_amount:
          type: integer
          readOnly: true
          nullable: true
          description: The amount paid
        paid_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: the date at which this payment was paid
        currency:
          type: string
          readOnly: true
          description: The currency in which the payment is denominated (e.g., USD, EUR)
        error:
          type: string
          readOnly: true
          nullable: true
          description: Any errors that occured during this payment processing
      required:
        - currency
        - error
        - invoice_number
        - invoice_version_id
        - paid_amount
        - paid_at
        - payment_id
    InvoiceLineItemOutput:
      type: object
      properties:
        brick_name:
          type: string
          description: Name of the brick
        brick_id:
          type: string
          nullable: true
          description: Unique identifier of the brick
        quantity:
          type: integer
          description: Quantity of units
        tax:
          type: integer
          description: Tax amount in minor currency units
        grand_total:
          type: integer
          description: Grand total in minor currency units
      required:
        - brick_id
        - brick_name
        - grand_total
        - quantity
        - tax
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-SALESBRICKS-KEY
      description: API key for authentication

````

## Related topics

- [Navigating Salesbricks](/quickstart-guide/navigating-salesbricks.md)
- [One-Off Invoices](/documentation/one-off-invoices.md)
- [Building an Order](/quickstart-guide/building-an-order.md)
