curl --request GET \
--url https://{companyName}.api.joinluminous.com/external/api/v1/refunds \
--header 'Authorization: Bearer <token>'import requests
url = "https://{companyName}.api.joinluminous.com/external/api/v1/refunds"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{companyName}.api.joinluminous.com/external/api/v1/refunds', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{companyName}.api.joinluminous.com/external/api/v1/refunds",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{companyName}.api.joinluminous.com/external/api/v1/refunds"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{companyName}.api.joinluminous.com/external/api/v1/refunds")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{companyName}.api.joinluminous.com/external/api/v1/refunds")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"sales_order_id": 123,
"order_number": "<string>",
"external_refund_id": "<string>",
"order_status": "<string>",
"refund_total": 123,
"refund_tax": 123,
"refund_shipping": 123,
"refunded_at": "2023-11-07T05:31:56Z",
"currency_code": "<string>",
"return_ids": [
123
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"items": [
{
"id": 123,
"sales_order_item_id": 123,
"sku": "<string>",
"quantity": 123,
"refund_amount": 123,
"tax_amount": 123
}
]
}
],
"meta": {}
}{
"message": "<string>"
}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.
Available Filters
Integer Filters
sales_order_id: The sales order the refund belongs to
DateTime Filters
refunded_at: When the channel recorded the refundcreated_at: When the refund order was created in Luminousupdated_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
curl --request GET \
--url https://{companyName}.api.joinluminous.com/external/api/v1/refunds \
--header 'Authorization: Bearer <token>'import requests
url = "https://{companyName}.api.joinluminous.com/external/api/v1/refunds"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{companyName}.api.joinluminous.com/external/api/v1/refunds', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{companyName}.api.joinluminous.com/external/api/v1/refunds",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{companyName}.api.joinluminous.com/external/api/v1/refunds"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{companyName}.api.joinluminous.com/external/api/v1/refunds")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{companyName}.api.joinluminous.com/external/api/v1/refunds")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"sales_order_id": 123,
"order_number": "<string>",
"external_refund_id": "<string>",
"order_status": "<string>",
"refund_total": 123,
"refund_tax": 123,
"refund_shipping": 123,
"refunded_at": "2023-11-07T05:31:56Z",
"currency_code": "<string>",
"return_ids": [
123
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"items": [
{
"id": 123,
"sales_order_item_id": 123,
"sku": "<string>",
"quantity": 123,
"refund_amount": 123,
"tax_amount": 123
}
]
}
],
"meta": {}
}{
"message": "<string>"
}Authorizations
Authenticate using a bearer token. To create a token, navigate to /settings/api-tokens and click Create API Token.
Query Parameters
x >= 11 <= x <= 100Alias for per_page, used when per_page is not supplied.
1 <= x <= 100Filter by the sales order the refund belongs to
Filter by refund date
Filter by creation date
Filter by last update date