curl --request POST \
--url https://{companyName}.api.joinluminous.com/external/api/v1/sales-orders/{salesOrderId}/refresh \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"reset_skip_inventory": false,
"delete_all_shipments": false
}
'import requests
url = "https://{companyName}.api.joinluminous.com/external/api/v1/sales-orders/{salesOrderId}/refresh"
payload = {
"reset_skip_inventory": False,
"delete_all_shipments": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({reset_skip_inventory: false, delete_all_shipments: false})
};
fetch('https://{companyName}.api.joinluminous.com/external/api/v1/sales-orders/{salesOrderId}/refresh', 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/sales-orders/{salesOrderId}/refresh",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'reset_skip_inventory' => false,
'delete_all_shipments' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{companyName}.api.joinluminous.com/external/api/v1/sales-orders/{salesOrderId}/refresh"
payload := strings.NewReader("{\n \"reset_skip_inventory\": false,\n \"delete_all_shipments\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{companyName}.api.joinluminous.com/external/api/v1/sales-orders/{salesOrderId}/refresh")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"reset_skip_inventory\": false,\n \"delete_all_shipments\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{companyName}.api.joinluminous.com/external/api/v1/sales-orders/{salesOrderId}/refresh")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"reset_skip_inventory\": false,\n \"delete_all_shipments\": false\n}"
response = http.request(request)
puts response.read_body{
"data": {
"success": true,
"message": "Order refresh job dispatched. Processing runs asynchronously on the order-refresh queue.",
"sales_order_id": 12345,
"order_number": "SO-1001"
}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Refresh a sales order
Dispatch a background refresh for a single active sales order — the same pipeline
used by the admin order:refresh Artisan command. The job pulls shipping updates,
recalculates quantities, deletes unpushed fulfillment orders, and auto-generates
new ones.
The endpoint validates and queues the work, then returns immediately; the refresh
itself runs asynchronously on the order-refresh queue.
Only active sales orders (status > 0) can be refreshed. Requests targeting
completed, cancelled, or deleted orders return 404.
curl --request POST \
--url https://{companyName}.api.joinluminous.com/external/api/v1/sales-orders/{salesOrderId}/refresh \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"reset_skip_inventory": false,
"delete_all_shipments": false
}
'import requests
url = "https://{companyName}.api.joinluminous.com/external/api/v1/sales-orders/{salesOrderId}/refresh"
payload = {
"reset_skip_inventory": False,
"delete_all_shipments": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({reset_skip_inventory: false, delete_all_shipments: false})
};
fetch('https://{companyName}.api.joinluminous.com/external/api/v1/sales-orders/{salesOrderId}/refresh', 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/sales-orders/{salesOrderId}/refresh",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'reset_skip_inventory' => false,
'delete_all_shipments' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{companyName}.api.joinluminous.com/external/api/v1/sales-orders/{salesOrderId}/refresh"
payload := strings.NewReader("{\n \"reset_skip_inventory\": false,\n \"delete_all_shipments\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{companyName}.api.joinluminous.com/external/api/v1/sales-orders/{salesOrderId}/refresh")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"reset_skip_inventory\": false,\n \"delete_all_shipments\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{companyName}.api.joinluminous.com/external/api/v1/sales-orders/{salesOrderId}/refresh")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"reset_skip_inventory\": false,\n \"delete_all_shipments\": false\n}"
response = http.request(request)
puts response.read_body{
"data": {
"success": true,
"message": "Order refresh job dispatched. Processing runs asynchronously on the order-refresh queue.",
"sales_order_id": 12345,
"order_number": "SO-1001"
}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Authorizations
Authenticate using a bearer token. To create a token, navigate to /settings/api-tokens and click Create API Token.
Path Parameters
Sales order ID
Body
When true, the order's skip_inventory flag is set to false before
the refresh runs, so fulfillment-order creation can take place.
When true, the refresh job deletes all existing shipments (including
pushed ones) before regenerating fulfillment orders. Use with care.
Response
Refresh job dispatched
Show child attributes
Show child attributes