Fulfill Order
curl --request POST \
--url https://api.launchmystore.io/api/v1/orders/:orderId/fulfillments.json \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tracking_number": "<string>",
"tracking_company": "<string>",
"tracking_url": "<string>",
"status": "<string>",
"service_id": "<string>",
"notify_customer": true,
"line_items": [
{
"id": "<string>",
"quantity": 123
}
]
}
'import requests
url = "https://api.launchmystore.io/api/v1/orders/:orderId/fulfillments.json"
payload = {
"tracking_number": "<string>",
"tracking_company": "<string>",
"tracking_url": "<string>",
"status": "<string>",
"service_id": "<string>",
"notify_customer": True,
"line_items": [
{
"id": "<string>",
"quantity": 123
}
]
}
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({
tracking_number: '<string>',
tracking_company: '<string>',
tracking_url: '<string>',
status: '<string>',
service_id: '<string>',
notify_customer: true,
line_items: [{id: '<string>', quantity: 123}]
})
};
fetch('https://api.launchmystore.io/api/v1/orders/:orderId/fulfillments.json', 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/api/v1/orders/:orderId/fulfillments.json",
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([
'tracking_number' => '<string>',
'tracking_company' => '<string>',
'tracking_url' => '<string>',
'status' => '<string>',
'service_id' => '<string>',
'notify_customer' => true,
'line_items' => [
[
'id' => '<string>',
'quantity' => 123
]
]
]),
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/api/v1/orders/:orderId/fulfillments.json"
payload := strings.NewReader("{\n \"tracking_number\": \"<string>\",\n \"tracking_company\": \"<string>\",\n \"tracking_url\": \"<string>\",\n \"status\": \"<string>\",\n \"service_id\": \"<string>\",\n \"notify_customer\": true,\n \"line_items\": [\n {\n \"id\": \"<string>\",\n \"quantity\": 123\n }\n ]\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://api.launchmystore.io/api/v1/orders/:orderId/fulfillments.json")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tracking_number\": \"<string>\",\n \"tracking_company\": \"<string>\",\n \"tracking_url\": \"<string>\",\n \"status\": \"<string>\",\n \"service_id\": \"<string>\",\n \"notify_customer\": true,\n \"line_items\": [\n {\n \"id\": \"<string>\",\n \"quantity\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.launchmystore.io/api/v1/orders/:orderId/fulfillments.json")
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 \"tracking_number\": \"<string>\",\n \"tracking_company\": \"<string>\",\n \"tracking_url\": \"<string>\",\n \"status\": \"<string>\",\n \"service_id\": \"<string>\",\n \"notify_customer\": true,\n \"line_items\": [\n {\n \"id\": \"<string>\",\n \"quantity\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": 123,
"state": "<string>",
"message": "<string>",
"data.fulfillment": {
"fulfillmentId": "<string>",
"orderId": "<string>",
"status": "<string>",
"serviceId": "<string>",
"trackingNumber": "<string>",
"trackingCompany": "<string>",
"trackingUrl": "<string>",
"lineItems": [
{}
],
"notifyCustomer": true,
"createdAt": "<string>",
"updatedAt": "<string>"
}
}Orders
Fulfill Order
Create a fulfillment for an order
POST
/
api
/
v1
/
orders
/
:orderId
/
fulfillments.json
Fulfill Order
curl --request POST \
--url https://api.launchmystore.io/api/v1/orders/:orderId/fulfillments.json \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tracking_number": "<string>",
"tracking_company": "<string>",
"tracking_url": "<string>",
"status": "<string>",
"service_id": "<string>",
"notify_customer": true,
"line_items": [
{
"id": "<string>",
"quantity": 123
}
]
}
'import requests
url = "https://api.launchmystore.io/api/v1/orders/:orderId/fulfillments.json"
payload = {
"tracking_number": "<string>",
"tracking_company": "<string>",
"tracking_url": "<string>",
"status": "<string>",
"service_id": "<string>",
"notify_customer": True,
"line_items": [
{
"id": "<string>",
"quantity": 123
}
]
}
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({
tracking_number: '<string>',
tracking_company: '<string>',
tracking_url: '<string>',
status: '<string>',
service_id: '<string>',
notify_customer: true,
line_items: [{id: '<string>', quantity: 123}]
})
};
fetch('https://api.launchmystore.io/api/v1/orders/:orderId/fulfillments.json', 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/api/v1/orders/:orderId/fulfillments.json",
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([
'tracking_number' => '<string>',
'tracking_company' => '<string>',
'tracking_url' => '<string>',
'status' => '<string>',
'service_id' => '<string>',
'notify_customer' => true,
'line_items' => [
[
'id' => '<string>',
'quantity' => 123
]
]
]),
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/api/v1/orders/:orderId/fulfillments.json"
payload := strings.NewReader("{\n \"tracking_number\": \"<string>\",\n \"tracking_company\": \"<string>\",\n \"tracking_url\": \"<string>\",\n \"status\": \"<string>\",\n \"service_id\": \"<string>\",\n \"notify_customer\": true,\n \"line_items\": [\n {\n \"id\": \"<string>\",\n \"quantity\": 123\n }\n ]\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://api.launchmystore.io/api/v1/orders/:orderId/fulfillments.json")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tracking_number\": \"<string>\",\n \"tracking_company\": \"<string>\",\n \"tracking_url\": \"<string>\",\n \"status\": \"<string>\",\n \"service_id\": \"<string>\",\n \"notify_customer\": true,\n \"line_items\": [\n {\n \"id\": \"<string>\",\n \"quantity\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.launchmystore.io/api/v1/orders/:orderId/fulfillments.json")
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 \"tracking_number\": \"<string>\",\n \"tracking_company\": \"<string>\",\n \"tracking_url\": \"<string>\",\n \"status\": \"<string>\",\n \"service_id\": \"<string>\",\n \"notify_customer\": true,\n \"line_items\": [\n {\n \"id\": \"<string>\",\n \"quantity\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": 123,
"state": "<string>",
"message": "<string>",
"data.fulfillment": {
"fulfillmentId": "<string>",
"orderId": "<string>",
"status": "<string>",
"serviceId": "<string>",
"trackingNumber": "<string>",
"trackingCompany": "<string>",
"trackingUrl": "<string>",
"lineItems": [
{}
],
"notifyCustomer": true,
"createdAt": "<string>",
"updatedAt": "<string>"
}
}Fulfill Order
Creates a fulfillment record for an order, marking items as shipped. You can fulfill all items at once or create partial fulfillments.Request
curl -X POST "https://api.launchmystore.io/api/v1/orders/ord_abc123/fulfillments.json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"tracking_number": "1Z999AA10123456784",
"tracking_company": "UPS",
"tracking_url": "https://ups.com/track?num=1Z999AA10123456784",
"notify_customer": true,
"line_items": [
{
"id": "li_xyz789",
"quantity": 2
}
]
}'
const response = await fetch('https://api.launchmystore.io/api/v1/orders/ord_abc123/fulfillments.json', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
tracking_number: '1Z999AA10123456784',
tracking_company: 'UPS',
tracking_url: 'https://ups.com/track?num=1Z999AA10123456784',
notify_customer: true,
line_items: [
{
id: 'li_xyz789',
quantity: 2
}
]
})
});
Path Parameters
The unique order ID
Body Parameters
Tracking number for the shipment
Shipping carrier name (e.g., “UPS”, “FedEx”, “USPS”, “DHL”)
Full tracking URL
Initial fulfillment status. One of
pending, open, success,
cancelled, error, failure. A shipped state (success) advances the
order to shipped / partial based on the line items covered.Fulfillment service ID associated with this fulfillment.
Whether to send a shipping notification email to the customer. Only sent
when the fulfillment moves the order into a
shipped/partial state.Response
On success (201 Created) the created fulfillment is returned under
data.fulfillment.
HTTP status (
201 on success).success or error.Human-readable message, or
null on success.The created fulfillment object.
Show Fulfillment Object
Show Fulfillment Object
Unique fulfillment ID
Associated order ID
Fulfillment status:
pending, open, success, cancelled, error, failureFulfillment service ID, or
nullTracking number
Shipping carrier
Tracking URL
The line items submitted for this fulfillment (
[] when fulfilling the whole order)Whether the customer was notified
Creation timestamp (ISO 8601)
Last update timestamp (ISO 8601)
Example Response
{
"status": 201,
"state": "success",
"message": null,
"data": {
"fulfillment": {
"fulfillmentId": "9f1c2e4a-...",
"orderId": "ord_abc123",
"status": "success",
"serviceId": null,
"trackingNumber": "1Z999AA10123456784",
"trackingCompany": "UPS",
"trackingUrl": "https://ups.com/track?num=1Z999AA10123456784",
"lineItems": [
{
"id": "li_xyz789",
"quantity": 2
}
],
"notifyCustomer": true,
"createdAt": "2024-01-25T10:00:00Z",
"updatedAt": "2024-01-25T10:00:00Z"
}
},
"count": null,
"pagination": null
}
Tracking Company
tracking_company is stored verbatim as the carrier label — there is no
fixed list of accepted values and no carrier normalization. Send the
carrier name you want shown (e.g. "UPS", "FedEx") and, where useful,
the full tracking_url.
Error Codes
| Status | Description |
|---|---|
400 | Invalid request body (e.g. a line item missing id/quantity, or a malformed tracking_url) |
401 | Invalid or missing access token |
403 | App doesn’t have the write_orders scope |
404 | Order with the specified ID does not exist |
500 | Unexpected server error while creating the fulfillment |
⌘I