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

# List refunds

> Paginated list of refund orders, newest first (`id` descending). A refund order is the money side of a
channel (e.g. Shopify) or manual refund under a sales order: total refunded, tax, shipping, the refund
date and the refunded lines. Refunds that have no customer return (for example a shipping-only refund)
are included.

Each refund carries `return_ids`, the customer returns created from it; the matching returns in
`GET /returns` carry `refund_id` and the same money fields. Superseded copies of a refund (Luminous
rebuilds the refund-order row whenever the channel changes the refund) are excluded.

`refund_shipping` and `refunded_at` are `null` for refunds synced before refund capture was enabled for
the tenant.

For detailed information about the filtering system and available operators,
refer to the [Filter System Documentation](/filters).

## Available Filters
### Integer Filters
- `sales_order_id`: The sales order the refund belongs to

### DateTime Filters
- `refunded_at`: When the channel recorded the refund
- `created_at`: When the refund order was created in Luminous
- `updated_at`: When the refund order was last updated

## Examples
```
# Refunds for a sales order
?sales_order_id=12345

# Refunds recorded since a date
?refunded_at[gte]=2026-01-01
```




## OpenAPI

````yaml /api-reference/build.yaml get /refunds
openapi: 3.0.0
info:
  title: Luminous API
  version: 1.0.0
  description: API documentation for Luminous
servers:
  - url: https://{companyName}.api.joinluminous.com/external/api/v1
    variables:
      companyName:
        default: companyName
        description: Your company-specific subdomain
security: []
tags:
  - name: Products
    description: Get and manage products
  - name: Pricing
    description: Manage price schedules, levels, and customizations
  - name: BOMs
    description: Manage Bills of Materials (BOMs)
  - name: Labels
    description: Label rendering via Labelary ZPL service
  - name: Companies
    description: Manage business accounts and their associated data
  - name: Contacts
    description: Manage contact information for individuals
  - name: Suppliers
    description: Manage suppliers (factories) — vendors used on purchase orders
  - name: Supplier SKUs
    description: Manage per-supplier SKU and unit-cost overrides for products
  - name: Locations
    description: Manage warehouses and locations
  - name: Inventory
    description: Get and adjust product stock levels
  - name: Lots
    description: Create, update, and delete product lots (batches)
  - name: Transfer Orders
    description: Manage transfer orders
  - name: Fulfillment Orders
    description: Manage fulfillment orders and picklists
  - name: Freight
    description: >-
      Freightview LTL freight — quotes, booking and documents for fulfillment
      orders
  - name: Fulfillment Priority Lists
    description: Configure fulfillment routing priority lists
  - name: Purchase Orders
    description: Get and modify purchase orders
  - name: Supplier Portal
    description: >-
      Read a supplier's response to a purchase order and control the one-click
      portal link
  - name: Receiving Reports
    description: Manage receiving reports
  - name: Payment Obligations
    description: Manage payment obligations for purchase orders
  - name: Sales Orders
    description: Manage sales orders and sales order shipments
  - name: Purgatory
    description: >-
      Inspect and resolve non-posted sales orders in the purgatory staging
      workflow
  - name: PickFlow Warehouse
    description: >-
      Warehouse-floor lookups for PickFlow — barcode resolution, bin and product
      stock, bin search, and receivables
  - name: PickFlow Shipping
    description: >-
      Provider-agnostic shipping rates, services, packages, and label purchase
      for PickFlow
  - name: Cycle Counts
    description: >-
      Create, drive, and post PickFlow cycle counts — batches, per-warehouse
      sessions, and CSV import/export
  - name: Print Stations
    description: List paired print stations and enqueue print jobs to them
  - name: Invoices
    description: Get and manage invoices
  - name: Work Orders
    description: >-
      Manage work orders — production lifecycle, steps, materials, links,
      shipments, and comments
  - name: Production Batches
    description: Group and manage work orders as production batches
  - name: Bills
    description: >-
      Accounts payable bill management, payments, attachments, allocations, and
      variance
  - name: Prepayments
    description: Manage vendor prepayments and applications
  - name: Vendor Credits
    description: Manage vendor credits and applications
  - name: Vendor Returns
    description: Manage vendor returns and credit generation
  - name: Customer Returns
    description: Manage customer returns (sales returns), receiving, and restock behavior
  - name: Stock Snapshot
    description: Point-in-time stock snapshots with export support
  - name: Consumption
    description: Consumption reports and exports
  - name: Inventory Aging
    description: Cost-layer-based inventory aging reports
  - name: Bills Reports
    description: Accounts payable bills aging reports
  - name: Forecast
    description: Materialized forecast data
  - name: Reports
    description: Close the books, inventory discrepancy, transaction COGS, and EDI reports
  - name: Tags
    description: Add/remove tags across various resources
  - name: Custom Fields
    description: Get and set custom fields across various resources
  - name: Currency
    description: Currency configuration, exchange rates, and conversion
  - name: Drive
    description: >
      Browse, upload, tag and manage files in your Luminous Drive. An API token
      sees the shared

      drive only, never My Files or restricted folders and files. Every write
      and download made

      through the API is recorded in the file's activity log (`GET
      /file-cabinet/files/{id}/activity`)

      with `actor_kind: api_token`.
  - name: Integration Mappings
    description: Manage integration mappings for external systems
  - name: Integration Field Mappings
    description: Manage field-level mappings between Luminous and external systems
  - name: Automations
    description: Create, test, and inspect automation rules and their runs
paths:
  /refunds:
    get:
      tags:
        - Customer Returns
      summary: List refunds
      description: >
        Paginated list of refund orders, newest first (`id` descending). A
        refund order is the money side of a

        channel (e.g. Shopify) or manual refund under a sales order: total
        refunded, tax, shipping, the refund

        date and the refunded lines. Refunds that have no customer return (for
        example a shipping-only refund)

        are included.


        Each refund carries `return_ids`, the customer returns created from it;
        the matching returns in

        `GET /returns` carry `refund_id` and the same money fields. Superseded
        copies of a refund (Luminous

        rebuilds the refund-order row whenever the channel changes the refund)
        are excluded.


        `refund_shipping` and `refunded_at` are `null` for refunds synced before
        refund capture was enabled for

        the tenant.


        For detailed information about the filtering system and available
        operators,

        refer to the [Filter System Documentation](/filters).


        ## Available Filters

        ### Integer Filters

        - `sales_order_id`: The sales order the refund belongs to


        ### DateTime Filters

        - `refunded_at`: When the channel recorded the refund

        - `created_at`: When the refund order was created in Luminous

        - `updated_at`: When the refund order was last updated


        ## Examples

        ```

        # Refunds for a sales order

        ?sales_order_id=12345


        # Refunds recorded since a date

        ?refunded_at[gte]=2026-01-01

        ```
      operationId: listRefunds
      parameters:
        - in: query
          name: page
          schema:
            type: integer
            minimum: 1
        - in: query
          name: per_page
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 15
        - in: query
          name: limit
          schema:
            type: integer
            minimum: 1
            maximum: 100
          description: Alias for `per_page`, used when `per_page` is not supplied.
        - in: query
          name: sales_order_id
          schema:
            type: integer
          description: Filter by the sales order the refund belongs to
        - in: query
          name: refunded_at
          schema:
            type: string
            format: date-time
          description: Filter by refund date
        - in: query
          name: created_at
          schema:
            type: string
            format: date-time
          description: Filter by creation date
        - in: query
          name: updated_at
          schema:
            type: string
            format: date-time
          description: Filter by last update date
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      description: >
                        A refund order under a sales order — a channel (e.g.
                        Shopify) or manual refund, with or without a

                        linked customer return. Money fields are the amount
                        refunded, as positive numbers.
                      properties:
                        id:
                          type: integer
                          description: >-
                            Refund order ID. Luminous rebuilds the refund-order
                            row whenever the channel changes the refund, so this
                            can change; use `external_refund_id` as the stable
                            key.
                        sales_order_id:
                          type: integer
                          description: ID of the sales order the refund belongs to.
                        order_number:
                          type: string
                          nullable: true
                          description: >-
                            Order number carried on the refund order (the sales
                            order's number).
                        external_refund_id:
                          type: string
                          nullable: true
                          description: >-
                            The source system's refund identifier (e.g. the
                            Shopify refund ID). Stable across rebuilds of the
                            refund-order row.
                        order_status:
                          type: string
                          nullable: true
                        refund_total:
                          type: number
                          description: Total amount refunded, as a positive number.
                        refund_tax:
                          type: number
                          description: Tax refunded, as a positive number.
                        refund_shipping:
                          type: number
                          nullable: true
                          description: >-
                            Shipping refunded. `null` for refunds synced before
                            refund capture was enabled for the tenant.
                        refunded_at:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            When the channel recorded the refund. `null` for
                            refunds synced before refund capture was enabled for
                            the tenant.
                        currency_code:
                          type: string
                          nullable: true
                        return_ids:
                          type: array
                          description: >-
                            IDs of the active customer returns created from this
                            refund. Empty for a refund with no return.
                          items:
                            type: integer
                        created_at:
                          type: string
                          format: date-time
                        updated_at:
                          type: string
                          format: date-time
                        items:
                          type: array
                          description: >-
                            Refunded lines. A refund that moves money without
                            lines (e.g. a shipping-only refund) has an empty
                            array.
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                              sales_order_item_id:
                                type: integer
                                nullable: true
                                description: >-
                                  The sales-order line this refund line was
                                  matched to, or `null` when unmatched.
                              sku:
                                type: string
                                nullable: true
                              quantity:
                                type: number
                              refund_amount:
                                type: number
                                description: >-
                                  Money refunded for this line (quantity × unit
                                  price), as a positive number rounded to cents.
                              tax_amount:
                                type: number
                                description: >-
                                  Tax refunded on this line, as a positive
                                  number.
                  meta:
                    type: object
                    additionalProperties: true
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
      security:
        - BearerAuth: []
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Authenticate using a bearer token. To create a token, navigate to
        /settings/api-tokens and click Create API Token.

````

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