**Version: 202601**

# List refund records

**GET** `/openapi/2026-01/orders/refund_records`

Returns refund records across all orders, paginated via cursor and filtered by order IDs, refund record IDs, status, sort field/direction, and create/ update time ranges.

## Request

**Query Parameters**

- `cursor` string

  Cursor for pagination
- `page_size` int32

  Page size (1-100, default 10)
- `page` int32

  Page number (1-based). Mutually exclusive with cursor
- `order_ids` string[]

  Filter by order IDs. Up to 10 IDs are supported. Example: ?order\_ids=1001&order\_ids=1002
- `refund_order_ids` string[]

  Filter by refund record IDs. Up to 20 IDs are supported. Example: ?refund\_order\_ids=2001&refund\_order\_ids=2002
- `refund_statuses` string[]

  Filter by refund status.

  *   pending: refund in progress.
  *   finished: refund completed.
  *   failed: refund failed. Example: ?refund\_statuses=pending&refund\_statuses=finished
- `sort_by` string

  Field used to sort the result list:

  *   `created_at`: sort by creation time
  *   `updated_at`: sort by last update time
- `sort_direction` string

  Sort direction:

  *   `desc`: descending order
  *   `asc`: ascending order
- `created_at_start` string

  Filter records created at or after this time (e.g., 2018-11-02T12:30:10Z)
- `created_at_end` string

  Filter records created at or before this time (e.g., 2018-11-02T12:30:10Z)
- `updated_at_start` string

  Filter records last updated at or after this time (e.g., 2018-11-02T12:30:10Z)
- `updated_at_end` string

  Filter records last updated at or before this time (e.g., 2018-11-02T12:30:10Z)

## Responses

**200**

OK

**application/json**

**Schema | Example**

**Schema**

- `code` string

  error code
- `message` string

  error message
- `data` object

  - `records` object[]

    List of refund records

    *   Array \[

    - `id` string

      Refund record ID
    - `refund_price` string

      Refund price
    - `refund_shipping` string

      Shipping refund
    - `refund_shipping_tax` string

      Refund Shipping Tax
    - `refund_method` string

      Refund method
    - `refund_status` string

      Refund status:

      *   `pending`: refund in progress
      *   `finished`: refund completed
      *   `failed`: refund failed
    - `note` string

      Note
    - `created_at` string

      Time when the refund record was created (e.g., 2018-11-02T12:30:10Z)
    - `updated_at` string

      Time when the refund record was last updated (e.g., 2018-11-02T12:30:10Z)
    - `refund_line_items` object[]

      List of refund line items

      *   Array \[

      - `line_item_id` string

        ID of the order line item being refunded
      - `refund_quantity` int32

        Refund quantity
      - `tax` string

        Tax
      - `discount` string

        Discount
      - `sub_total` string

        Subtotal
      - `total` string

        Total
      - `delete_quantity` int32

        Delete quantity
      *   \]
    - `payment_details` object[]

      Payment details

      *   Array \[

      - `id` string

        Refund record ID
      - `payment_line_id` string

        Payment line ID
      - `payment_channel` string

        Payment channel
      - `payment_method` string

        Payment method
      - `refund_price` string

        Refund price
      - `refund_status` string

        Refund status:

        *   `pending`: refund in progress
        *   `finished`: refund completed
        *   `failed`: refund failed
      - `finished_at` string

        Time when the refund was completed
      *   \]
    - `additional_total` string

      Additional total
    - `additional_prices` object[]

      Additional prices

      *   Array \[

      - `name` string

        Name of the additional charge
      - `price` string

        Amount of the additional charge
      - `biz_id` string

        Business ID
      - `fee_title` string

        Custom Charge Name
      *   \]
    - `refund_tip` string

      Tip refund amount
    - `order_id` string

      Order ID
    *   \]
  - `cursor` string

    Cursor for pagination
  - `has_more` boolean

    Whether there are more records

```json
{
  "code": "string",
  "message": "string",
  "data": {
    "records": [
      {
        "id": "string",
        "refund_price": "string",
        "refund_shipping": "string",
        "refund_shipping_tax": "string",
        "refund_method": "string",
        "refund_status": "string",
        "note": "string",
        "created_at": "string",
        "updated_at": "string",
        "refund_line_items": [
          {
            "line_item_id": "string",
            "refund_quantity": 0,
            "tax": "string",
            "discount": "string",
            "sub_total": "string",
            "total": "string",
            "delete_quantity": 0
          }
        ],
        "payment_details": [
          {
            "id": "string",
            "payment_line_id": "string",
            "payment_channel": "string",
            "payment_method": "string",
            "refund_price": "string",
            "refund_status": "string",
            "finished_at": "string"
          }
        ],
        "additional_total": "string",
        "additional_prices": [
          {
            "name": "string",
            "price": "string",
            "biz_id": "string",
            "fee_title": "string"
          }
        ],
        "refund_tip": "string",
        "order_id": "string"
      }
    ],
    "cursor": "string",
    "has_more": true
  }
}
```
