Update Parcel Status
curl --request POST \
--url https://{globale_api_domain}/orders/{orderId}/parcels/{parcelCode}/statuses \
--header 'Content-Type: application/json' \
--data '
{
"merchantParcelStatusCode": "Delivered"
}
'import requests
url = "https://{globale_api_domain}/orders/{orderId}/parcels/{parcelCode}/statuses"
payload = { "merchantParcelStatusCode": "Delivered" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({merchantParcelStatusCode: 'Delivered'})
};
fetch('https://{globale_api_domain}/orders/{orderId}/parcels/{parcelCode}/statuses', 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://{globale_api_domain}/orders/{orderId}/parcels/{parcelCode}/statuses",
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([
'merchantParcelStatusCode' => 'Delivered'
]),
CURLOPT_HTTPHEADER => [
"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://{globale_api_domain}/orders/{orderId}/parcels/{parcelCode}/statuses"
payload := strings.NewReader("{\n \"merchantParcelStatusCode\": \"Delivered\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://{globale_api_domain}/orders/{orderId}/parcels/{parcelCode}/statuses")
.header("Content-Type", "application/json")
.body("{\n \"merchantParcelStatusCode\": \"Delivered\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{globale_api_domain}/orders/{orderId}/parcels/{parcelCode}/statuses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"merchantParcelStatusCode\": \"Delivered\"\n}"
response = http.request(request)
puts response.read_body{
"Success": true
}Update parcel status (Merchant to Global-e)
Notify Global-e of a parcel’s status change. The notification is handled asynchronously until the new parcel status is successfully updated.
POST
/
orders
/
{orderId}
/
parcels
/
{parcelCode}
/
statuses
Update Parcel Status
curl --request POST \
--url https://{globale_api_domain}/orders/{orderId}/parcels/{parcelCode}/statuses \
--header 'Content-Type: application/json' \
--data '
{
"merchantParcelStatusCode": "Delivered"
}
'import requests
url = "https://{globale_api_domain}/orders/{orderId}/parcels/{parcelCode}/statuses"
payload = { "merchantParcelStatusCode": "Delivered" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({merchantParcelStatusCode: 'Delivered'})
};
fetch('https://{globale_api_domain}/orders/{orderId}/parcels/{parcelCode}/statuses', 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://{globale_api_domain}/orders/{orderId}/parcels/{parcelCode}/statuses",
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([
'merchantParcelStatusCode' => 'Delivered'
]),
CURLOPT_HTTPHEADER => [
"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://{globale_api_domain}/orders/{orderId}/parcels/{parcelCode}/statuses"
payload := strings.NewReader("{\n \"merchantParcelStatusCode\": \"Delivered\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://{globale_api_domain}/orders/{orderId}/parcels/{parcelCode}/statuses")
.header("Content-Type", "application/json")
.body("{\n \"merchantParcelStatusCode\": \"Delivered\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{globale_api_domain}/orders/{orderId}/parcels/{parcelCode}/statuses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"merchantParcelStatusCode\": \"Delivered\"\n}"
response = http.request(request)
puts response.read_body{
"Success": true
}The update status request is issued by the merchant to notify of a parcel’s status change. The notification is received by Global-e and handled asynchronously until the new parcel status is successfully updated. In case of a failure to update, the merchant will not be asked to retry.
If the status update to the new status requested by the merchant is not allowed, or if the parcel has not yet been created, manual intervention by Global-e will be required.
Prerequisites
When using this call for the Buy-Online-Pick-In-Store (BOPIS) procedure, theUpdateParcelStatus call is initiated by the merchant following the issue of the UpdateOrderDispatchV2 call.
Error codes
The following error code may be returned in the response.| # | Code | Error Message | Description |
|---|---|---|---|
| 1 | B001 | Order ID not found | The Order ID provided by the merchant does not exist. |
Path Parameters
The Global-e order ID.
The parcel code for which a status update is required.
Body
application/json
Parcel status to be modified by the merchant.
Example:
"Delivered"
Response
200 - application/json
Status update accepted. Check the Success field; on failure, Error carries the message (and is omitted from the JSON when the call succeeds).

