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
string
required
The unique order ID
Body Parameters
string
Tracking number for the shipment
string
Shipping carrier name (e.g., “UPS”, “FedEx”, “USPS”, “DHL”)
string
Full tracking URL
string
default:"pending"
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.string
Fulfillment service ID associated with this fulfillment.
boolean
default:"true"
Whether to send a shipping notification email to the customer. Only sent
when the fulfillment moves the order into a
shipped/partial state.array
Response
On success (201 Created) the created fulfillment is returned under
data.fulfillment.
integer
HTTP status (
201 on success).string
success or error.string
Human-readable message, or
null on success.object
The created fulfillment object.
Show Fulfillment Object
Show Fulfillment Object
string
Unique fulfillment ID
string
Associated order ID
string
Fulfillment status:
pending, open, success, cancelled, error, failurestring
Fulfillment service ID, or
nullstring
Tracking number
string
Shipping carrier
string
Tracking URL
array
The line items submitted for this fulfillment (
[] when fulfilling the whole order)boolean
Whether the customer was notified
string
Creation timestamp (ISO 8601)
string
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