Update Order
curl --request PUT \
--url https://api.launchmystore.io/orders/update/:orderId \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"status": "<string>",
"courierName": "<string>",
"trackingNumber": "<string>",
"digitaldata": "<string>",
"deliveryDate": "<string>",
"restock": true,
"staffId": "<string>",
"notes": "<string>",
"products": [
{}
],
"clientName": "<string>",
"email": "<string>",
"mobileNumber": "<string>",
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"pinCode": "<string>"
}
'import requests
url = "https://api.launchmystore.io/orders/update/:orderId"
payload = {
"status": "<string>",
"courierName": "<string>",
"trackingNumber": "<string>",
"digitaldata": "<string>",
"deliveryDate": "<string>",
"restock": True,
"staffId": "<string>",
"notes": "<string>",
"products": [{}],
"clientName": "<string>",
"email": "<string>",
"mobileNumber": "<string>",
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"pinCode": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
status: '<string>',
courierName: '<string>',
trackingNumber: '<string>',
digitaldata: '<string>',
deliveryDate: '<string>',
restock: true,
staffId: '<string>',
notes: '<string>',
products: [{}],
clientName: '<string>',
email: '<string>',
mobileNumber: '<string>',
address: '<string>',
city: '<string>',
state: '<string>',
country: '<string>',
pinCode: '<string>'
})
};
fetch('https://api.launchmystore.io/orders/update/:orderId', 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://api.launchmystore.io/orders/update/:orderId",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'status' => '<string>',
'courierName' => '<string>',
'trackingNumber' => '<string>',
'digitaldata' => '<string>',
'deliveryDate' => '<string>',
'restock' => true,
'staffId' => '<string>',
'notes' => '<string>',
'products' => [
[
]
],
'clientName' => '<string>',
'email' => '<string>',
'mobileNumber' => '<string>',
'address' => '<string>',
'city' => '<string>',
'state' => '<string>',
'country' => '<string>',
'pinCode' => '<string>'
]),
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://api.launchmystore.io/orders/update/:orderId"
payload := strings.NewReader("{\n \"status\": \"<string>\",\n \"courierName\": \"<string>\",\n \"trackingNumber\": \"<string>\",\n \"digitaldata\": \"<string>\",\n \"deliveryDate\": \"<string>\",\n \"restock\": true,\n \"staffId\": \"<string>\",\n \"notes\": \"<string>\",\n \"products\": [\n {}\n ],\n \"clientName\": \"<string>\",\n \"email\": \"<string>\",\n \"mobileNumber\": \"<string>\",\n \"address\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"country\": \"<string>\",\n \"pinCode\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.launchmystore.io/orders/update/:orderId")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"status\": \"<string>\",\n \"courierName\": \"<string>\",\n \"trackingNumber\": \"<string>\",\n \"digitaldata\": \"<string>\",\n \"deliveryDate\": \"<string>\",\n \"restock\": true,\n \"staffId\": \"<string>\",\n \"notes\": \"<string>\",\n \"products\": [\n {}\n ],\n \"clientName\": \"<string>\",\n \"email\": \"<string>\",\n \"mobileNumber\": \"<string>\",\n \"address\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"country\": \"<string>\",\n \"pinCode\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.launchmystore.io/orders/update/:orderId")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"status\": \"<string>\",\n \"courierName\": \"<string>\",\n \"trackingNumber\": \"<string>\",\n \"digitaldata\": \"<string>\",\n \"deliveryDate\": \"<string>\",\n \"restock\": true,\n \"staffId\": \"<string>\",\n \"notes\": \"<string>\",\n \"products\": [\n {}\n ],\n \"clientName\": \"<string>\",\n \"email\": \"<string>\",\n \"mobileNumber\": \"<string>\",\n \"address\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"country\": \"<string>\",\n \"pinCode\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": 123,
"state": "<string>",
"message": "<string>",
"data": {}
}Orders
Update Order
Update an existing order
PUT
/
orders
/
update
/
:orderId
Update Order
curl --request PUT \
--url https://api.launchmystore.io/orders/update/:orderId \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"status": "<string>",
"courierName": "<string>",
"trackingNumber": "<string>",
"digitaldata": "<string>",
"deliveryDate": "<string>",
"restock": true,
"staffId": "<string>",
"notes": "<string>",
"products": [
{}
],
"clientName": "<string>",
"email": "<string>",
"mobileNumber": "<string>",
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"pinCode": "<string>"
}
'import requests
url = "https://api.launchmystore.io/orders/update/:orderId"
payload = {
"status": "<string>",
"courierName": "<string>",
"trackingNumber": "<string>",
"digitaldata": "<string>",
"deliveryDate": "<string>",
"restock": True,
"staffId": "<string>",
"notes": "<string>",
"products": [{}],
"clientName": "<string>",
"email": "<string>",
"mobileNumber": "<string>",
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"pinCode": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
status: '<string>',
courierName: '<string>',
trackingNumber: '<string>',
digitaldata: '<string>',
deliveryDate: '<string>',
restock: true,
staffId: '<string>',
notes: '<string>',
products: [{}],
clientName: '<string>',
email: '<string>',
mobileNumber: '<string>',
address: '<string>',
city: '<string>',
state: '<string>',
country: '<string>',
pinCode: '<string>'
})
};
fetch('https://api.launchmystore.io/orders/update/:orderId', 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://api.launchmystore.io/orders/update/:orderId",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'status' => '<string>',
'courierName' => '<string>',
'trackingNumber' => '<string>',
'digitaldata' => '<string>',
'deliveryDate' => '<string>',
'restock' => true,
'staffId' => '<string>',
'notes' => '<string>',
'products' => [
[
]
],
'clientName' => '<string>',
'email' => '<string>',
'mobileNumber' => '<string>',
'address' => '<string>',
'city' => '<string>',
'state' => '<string>',
'country' => '<string>',
'pinCode' => '<string>'
]),
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://api.launchmystore.io/orders/update/:orderId"
payload := strings.NewReader("{\n \"status\": \"<string>\",\n \"courierName\": \"<string>\",\n \"trackingNumber\": \"<string>\",\n \"digitaldata\": \"<string>\",\n \"deliveryDate\": \"<string>\",\n \"restock\": true,\n \"staffId\": \"<string>\",\n \"notes\": \"<string>\",\n \"products\": [\n {}\n ],\n \"clientName\": \"<string>\",\n \"email\": \"<string>\",\n \"mobileNumber\": \"<string>\",\n \"address\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"country\": \"<string>\",\n \"pinCode\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.launchmystore.io/orders/update/:orderId")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"status\": \"<string>\",\n \"courierName\": \"<string>\",\n \"trackingNumber\": \"<string>\",\n \"digitaldata\": \"<string>\",\n \"deliveryDate\": \"<string>\",\n \"restock\": true,\n \"staffId\": \"<string>\",\n \"notes\": \"<string>\",\n \"products\": [\n {}\n ],\n \"clientName\": \"<string>\",\n \"email\": \"<string>\",\n \"mobileNumber\": \"<string>\",\n \"address\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"country\": \"<string>\",\n \"pinCode\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.launchmystore.io/orders/update/:orderId")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"status\": \"<string>\",\n \"courierName\": \"<string>\",\n \"trackingNumber\": \"<string>\",\n \"digitaldata\": \"<string>\",\n \"deliveryDate\": \"<string>\",\n \"restock\": true,\n \"staffId\": \"<string>\",\n \"notes\": \"<string>\",\n \"products\": [\n {}\n ],\n \"clientName\": \"<string>\",\n \"email\": \"<string>\",\n \"mobileNumber\": \"<string>\",\n \"address\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"country\": \"<string>\",\n \"pinCode\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": 123,
"state": "<string>",
"message": "<string>",
"data": {}
}Update Order
Updates an existing order. This is a merchant-scoped endpoint authenticated with a merchant session (JWT). The same capability is also available through theupdate_order MCP tool.
There is also
PATCH /orders/update-signle-order/:orderId for lighter
single-order field updates. Both accept the same body shape.Request
curl -X PUT "https://api.launchmystore.io/orders/ORDER_ID/update" \
-H "Authorization: Bearer YOUR_MERCHANT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "shipped",
"courierName": "BlueDart",
"trackingNumber": "TRK123456789",
"notes": "Updated shipping instructions"
}'
const response = await fetch('https://api.launchmystore.io/orders/ORDER_ID/update', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_MERCHANT_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
status: 'shipped',
courierName: 'BlueDart',
trackingNumber: 'TRK123456789',
notes: 'Updated shipping instructions'
})
});
The route is
PUT /orders/update/:orderId — the orderId path segment is
the order’s ID.Path Parameters
string
required
The unique order ID.
Body Parameters
The body is a partial order — every field is optional and only the supplied fields are changed. Key fields:string
Order status. One of
pending, confirmed, shipped, delivered,
canceled, returned, exchange.string
Carrier / courier name for the shipment.
string
Tracking number for the shipment.
string
Digital delivery payload (keys / file URLs) for digital orders.
string
Delivery date (ISO-8601).
boolean
When
true on a return/cancel update, stock is incremented back for every
non-custom line item that had stock deducted (idempotent).string
Staff member who performed the action (recorded for audit).
string
Order notes.
array
Replacement order line items (each item carries
productId, quantity,
varientId, pricing, etc.).string
Customer name for the shipping/contact details.
string
Customer email address.
string
Customer phone number.
string
Street address.
string
City.
string
State / province.
string
Country.
string
Postal / ZIP code.
Response
The platform returns the standard response envelope.data is the updated
order object.
integer
HTTP status code.
string
Result state (
success, error).string
Optional message (may be
null).object
The updated order object.
Example Response
{
"status": 200,
"state": "success",
"message": null,
"data": {
"orderId": "b8b0f1a2-3c4d-4e5f-9a0b-1c2d3e4f5a6b",
"status": "shipped",
"courierName": "BlueDart",
"trackingNumber": "TRK123456789",
"notes": "Updated shipping instructions",
"shippedDate": "2024-01-25T16:00:00.000Z",
"updatedAt": "2024-01-25T16:00:00.000Z"
}
}
Notes
- Status transitions are guarded: an order already
deliveredorcanceledcannot have its status changed. - Setting
paymentMethodto a cash/offline method moves the order topaid. - Use
restock: trueon a cancel/return to return inventory to stock.
Error Codes
| Status | State | Description |
|---|---|---|
401 | error | Invalid or missing authentication |
404 | error | Order with the specified ID does not exist |
400 | error | Invalid request body, or status change blocked (e.g. delivered/canceled order) |
⌘I