curl --request POST \
--url https://{globale_api_domain}/Return/GetReturnDocuments \
--header 'Content-Type: application/json' \
--data '
{
"ProviderCode": "Loop",
"OrderId": "GE314856569TS",
"Email": "shopper@example.com",
"MerchantRMANumber": "RM132",
"ShippingCost": 10,
"CurrencyCode": "USD",
"ReturnShippingTypeId": 2,
"ReturnShippingMethodId": null,
"ReturnedProducts": [
{
"ProductCode": "DKB500680.M8",
"CartItemId": null,
"ReturnQuantity": 1,
"MerchantReturnReasonCode": "",
"MerchantReturnReasonDescription": "Return Reason from GRD request for product 1"
},
{
"ProductCode": "B7ECS.C8",
"CartItemId": "1",
"ReturnQuantity": 1,
"MerchantReturnReasonCode": "TTT",
"MerchantReturnReasonDescription": "Return Reason from GRD request for product 2"
}
]
}
'import requests
url = "https://{globale_api_domain}/Return/GetReturnDocuments"
payload = {
"ProviderCode": "Loop",
"OrderId": "GE314856569TS",
"Email": "shopper@example.com",
"MerchantRMANumber": "RM132",
"ShippingCost": 10,
"CurrencyCode": "USD",
"ReturnShippingTypeId": 2,
"ReturnShippingMethodId": None,
"ReturnedProducts": [
{
"ProductCode": "DKB500680.M8",
"CartItemId": None,
"ReturnQuantity": 1,
"MerchantReturnReasonCode": "",
"MerchantReturnReasonDescription": "Return Reason from GRD request for product 1"
},
{
"ProductCode": "B7ECS.C8",
"CartItemId": "1",
"ReturnQuantity": 1,
"MerchantReturnReasonCode": "TTT",
"MerchantReturnReasonDescription": "Return Reason from GRD request for product 2"
}
]
}
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({
ProviderCode: 'Loop',
OrderId: 'GE314856569TS',
Email: 'shopper@example.com',
MerchantRMANumber: 'RM132',
ShippingCost: 10,
CurrencyCode: 'USD',
ReturnShippingTypeId: 2,
ReturnShippingMethodId: null,
ReturnedProducts: [
{
ProductCode: 'DKB500680.M8',
CartItemId: null,
ReturnQuantity: 1,
MerchantReturnReasonCode: '',
MerchantReturnReasonDescription: 'Return Reason from GRD request for product 1'
},
{
ProductCode: 'B7ECS.C8',
CartItemId: '1',
ReturnQuantity: 1,
MerchantReturnReasonCode: 'TTT',
MerchantReturnReasonDescription: 'Return Reason from GRD request for product 2'
}
]
})
};
fetch('https://{globale_api_domain}/Return/GetReturnDocuments', 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}/Return/GetReturnDocuments",
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([
'ProviderCode' => 'Loop',
'OrderId' => 'GE314856569TS',
'Email' => 'shopper@example.com',
'MerchantRMANumber' => 'RM132',
'ShippingCost' => 10,
'CurrencyCode' => 'USD',
'ReturnShippingTypeId' => 2,
'ReturnShippingMethodId' => null,
'ReturnedProducts' => [
[
'ProductCode' => 'DKB500680.M8',
'CartItemId' => null,
'ReturnQuantity' => 1,
'MerchantReturnReasonCode' => '',
'MerchantReturnReasonDescription' => 'Return Reason from GRD request for product 1'
],
[
'ProductCode' => 'B7ECS.C8',
'CartItemId' => '1',
'ReturnQuantity' => 1,
'MerchantReturnReasonCode' => 'TTT',
'MerchantReturnReasonDescription' => 'Return Reason from GRD request for product 2'
]
]
]),
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}/Return/GetReturnDocuments"
payload := strings.NewReader("{\n \"ProviderCode\": \"Loop\",\n \"OrderId\": \"GE314856569TS\",\n \"Email\": \"shopper@example.com\",\n \"MerchantRMANumber\": \"RM132\",\n \"ShippingCost\": 10,\n \"CurrencyCode\": \"USD\",\n \"ReturnShippingTypeId\": 2,\n \"ReturnShippingMethodId\": null,\n \"ReturnedProducts\": [\n {\n \"ProductCode\": \"DKB500680.M8\",\n \"CartItemId\": null,\n \"ReturnQuantity\": 1,\n \"MerchantReturnReasonCode\": \"\",\n \"MerchantReturnReasonDescription\": \"Return Reason from GRD request for product 1\"\n },\n {\n \"ProductCode\": \"B7ECS.C8\",\n \"CartItemId\": \"1\",\n \"ReturnQuantity\": 1,\n \"MerchantReturnReasonCode\": \"TTT\",\n \"MerchantReturnReasonDescription\": \"Return Reason from GRD request for product 2\"\n }\n ]\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}/Return/GetReturnDocuments")
.header("Content-Type", "application/json")
.body("{\n \"ProviderCode\": \"Loop\",\n \"OrderId\": \"GE314856569TS\",\n \"Email\": \"shopper@example.com\",\n \"MerchantRMANumber\": \"RM132\",\n \"ShippingCost\": 10,\n \"CurrencyCode\": \"USD\",\n \"ReturnShippingTypeId\": 2,\n \"ReturnShippingMethodId\": null,\n \"ReturnedProducts\": [\n {\n \"ProductCode\": \"DKB500680.M8\",\n \"CartItemId\": null,\n \"ReturnQuantity\": 1,\n \"MerchantReturnReasonCode\": \"\",\n \"MerchantReturnReasonDescription\": \"Return Reason from GRD request for product 1\"\n },\n {\n \"ProductCode\": \"B7ECS.C8\",\n \"CartItemId\": \"1\",\n \"ReturnQuantity\": 1,\n \"MerchantReturnReasonCode\": \"TTT\",\n \"MerchantReturnReasonDescription\": \"Return Reason from GRD request for product 2\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{globale_api_domain}/Return/GetReturnDocuments")
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 \"ProviderCode\": \"Loop\",\n \"OrderId\": \"GE314856569TS\",\n \"Email\": \"shopper@example.com\",\n \"MerchantRMANumber\": \"RM132\",\n \"ShippingCost\": 10,\n \"CurrencyCode\": \"USD\",\n \"ReturnShippingTypeId\": 2,\n \"ReturnShippingMethodId\": null,\n \"ReturnedProducts\": [\n {\n \"ProductCode\": \"DKB500680.M8\",\n \"CartItemId\": null,\n \"ReturnQuantity\": 1,\n \"MerchantReturnReasonCode\": \"\",\n \"MerchantReturnReasonDescription\": \"Return Reason from GRD request for product 1\"\n },\n {\n \"ProductCode\": \"B7ECS.C8\",\n \"CartItemId\": \"1\",\n \"ReturnQuantity\": 1,\n \"MerchantReturnReasonCode\": \"TTT\",\n \"MerchantReturnReasonDescription\": \"Return Reason from GRD request for product 2\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"IsSuccess": true,
"Data": {
"OrderId": "GE314856569TS",
"MerchantOrderId": "314856569",
"GlobaleRmaNumber": "371104",
"ReturnTrackingDetails": {
"TrackingNumber": "1ZXXXXXXXXXXXXXXXX",
"TrackingURL": "https://wwwapps.ups.com/tracking/tracking.cgi?tracknum=1ZX&requester=ST/",
"IsQrLabel": "false",
"IsTrackable": true
},
"ReturnDocuments": [
{
"DocumentTypeCode": "ShippingLabel",
"DocumentTypeName": "Shipping Label",
"DocumentData": "AQCkosNhECNeAACYzH/NIA5NgtHU2QAAAABJRU5ErkJggg==",
"URL": "https://[MerchantDomain]/url"
}
]
}
}Get return documents (Merchant to Global-e)
Generates a Global-e RMA and returns the required return documents (label, return note, commercial invoice) with tracking details.
curl --request POST \
--url https://{globale_api_domain}/Return/GetReturnDocuments \
--header 'Content-Type: application/json' \
--data '
{
"ProviderCode": "Loop",
"OrderId": "GE314856569TS",
"Email": "shopper@example.com",
"MerchantRMANumber": "RM132",
"ShippingCost": 10,
"CurrencyCode": "USD",
"ReturnShippingTypeId": 2,
"ReturnShippingMethodId": null,
"ReturnedProducts": [
{
"ProductCode": "DKB500680.M8",
"CartItemId": null,
"ReturnQuantity": 1,
"MerchantReturnReasonCode": "",
"MerchantReturnReasonDescription": "Return Reason from GRD request for product 1"
},
{
"ProductCode": "B7ECS.C8",
"CartItemId": "1",
"ReturnQuantity": 1,
"MerchantReturnReasonCode": "TTT",
"MerchantReturnReasonDescription": "Return Reason from GRD request for product 2"
}
]
}
'import requests
url = "https://{globale_api_domain}/Return/GetReturnDocuments"
payload = {
"ProviderCode": "Loop",
"OrderId": "GE314856569TS",
"Email": "shopper@example.com",
"MerchantRMANumber": "RM132",
"ShippingCost": 10,
"CurrencyCode": "USD",
"ReturnShippingTypeId": 2,
"ReturnShippingMethodId": None,
"ReturnedProducts": [
{
"ProductCode": "DKB500680.M8",
"CartItemId": None,
"ReturnQuantity": 1,
"MerchantReturnReasonCode": "",
"MerchantReturnReasonDescription": "Return Reason from GRD request for product 1"
},
{
"ProductCode": "B7ECS.C8",
"CartItemId": "1",
"ReturnQuantity": 1,
"MerchantReturnReasonCode": "TTT",
"MerchantReturnReasonDescription": "Return Reason from GRD request for product 2"
}
]
}
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({
ProviderCode: 'Loop',
OrderId: 'GE314856569TS',
Email: 'shopper@example.com',
MerchantRMANumber: 'RM132',
ShippingCost: 10,
CurrencyCode: 'USD',
ReturnShippingTypeId: 2,
ReturnShippingMethodId: null,
ReturnedProducts: [
{
ProductCode: 'DKB500680.M8',
CartItemId: null,
ReturnQuantity: 1,
MerchantReturnReasonCode: '',
MerchantReturnReasonDescription: 'Return Reason from GRD request for product 1'
},
{
ProductCode: 'B7ECS.C8',
CartItemId: '1',
ReturnQuantity: 1,
MerchantReturnReasonCode: 'TTT',
MerchantReturnReasonDescription: 'Return Reason from GRD request for product 2'
}
]
})
};
fetch('https://{globale_api_domain}/Return/GetReturnDocuments', 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}/Return/GetReturnDocuments",
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([
'ProviderCode' => 'Loop',
'OrderId' => 'GE314856569TS',
'Email' => 'shopper@example.com',
'MerchantRMANumber' => 'RM132',
'ShippingCost' => 10,
'CurrencyCode' => 'USD',
'ReturnShippingTypeId' => 2,
'ReturnShippingMethodId' => null,
'ReturnedProducts' => [
[
'ProductCode' => 'DKB500680.M8',
'CartItemId' => null,
'ReturnQuantity' => 1,
'MerchantReturnReasonCode' => '',
'MerchantReturnReasonDescription' => 'Return Reason from GRD request for product 1'
],
[
'ProductCode' => 'B7ECS.C8',
'CartItemId' => '1',
'ReturnQuantity' => 1,
'MerchantReturnReasonCode' => 'TTT',
'MerchantReturnReasonDescription' => 'Return Reason from GRD request for product 2'
]
]
]),
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}/Return/GetReturnDocuments"
payload := strings.NewReader("{\n \"ProviderCode\": \"Loop\",\n \"OrderId\": \"GE314856569TS\",\n \"Email\": \"shopper@example.com\",\n \"MerchantRMANumber\": \"RM132\",\n \"ShippingCost\": 10,\n \"CurrencyCode\": \"USD\",\n \"ReturnShippingTypeId\": 2,\n \"ReturnShippingMethodId\": null,\n \"ReturnedProducts\": [\n {\n \"ProductCode\": \"DKB500680.M8\",\n \"CartItemId\": null,\n \"ReturnQuantity\": 1,\n \"MerchantReturnReasonCode\": \"\",\n \"MerchantReturnReasonDescription\": \"Return Reason from GRD request for product 1\"\n },\n {\n \"ProductCode\": \"B7ECS.C8\",\n \"CartItemId\": \"1\",\n \"ReturnQuantity\": 1,\n \"MerchantReturnReasonCode\": \"TTT\",\n \"MerchantReturnReasonDescription\": \"Return Reason from GRD request for product 2\"\n }\n ]\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}/Return/GetReturnDocuments")
.header("Content-Type", "application/json")
.body("{\n \"ProviderCode\": \"Loop\",\n \"OrderId\": \"GE314856569TS\",\n \"Email\": \"shopper@example.com\",\n \"MerchantRMANumber\": \"RM132\",\n \"ShippingCost\": 10,\n \"CurrencyCode\": \"USD\",\n \"ReturnShippingTypeId\": 2,\n \"ReturnShippingMethodId\": null,\n \"ReturnedProducts\": [\n {\n \"ProductCode\": \"DKB500680.M8\",\n \"CartItemId\": null,\n \"ReturnQuantity\": 1,\n \"MerchantReturnReasonCode\": \"\",\n \"MerchantReturnReasonDescription\": \"Return Reason from GRD request for product 1\"\n },\n {\n \"ProductCode\": \"B7ECS.C8\",\n \"CartItemId\": \"1\",\n \"ReturnQuantity\": 1,\n \"MerchantReturnReasonCode\": \"TTT\",\n \"MerchantReturnReasonDescription\": \"Return Reason from GRD request for product 2\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{globale_api_domain}/Return/GetReturnDocuments")
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 \"ProviderCode\": \"Loop\",\n \"OrderId\": \"GE314856569TS\",\n \"Email\": \"shopper@example.com\",\n \"MerchantRMANumber\": \"RM132\",\n \"ShippingCost\": 10,\n \"CurrencyCode\": \"USD\",\n \"ReturnShippingTypeId\": 2,\n \"ReturnShippingMethodId\": null,\n \"ReturnedProducts\": [\n {\n \"ProductCode\": \"DKB500680.M8\",\n \"CartItemId\": null,\n \"ReturnQuantity\": 1,\n \"MerchantReturnReasonCode\": \"\",\n \"MerchantReturnReasonDescription\": \"Return Reason from GRD request for product 1\"\n },\n {\n \"ProductCode\": \"B7ECS.C8\",\n \"CartItemId\": \"1\",\n \"ReturnQuantity\": 1,\n \"MerchantReturnReasonCode\": \"TTT\",\n \"MerchantReturnReasonDescription\": \"Return Reason from GRD request for product 2\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"IsSuccess": true,
"Data": {
"OrderId": "GE314856569TS",
"MerchantOrderId": "314856569",
"GlobaleRmaNumber": "371104",
"ReturnTrackingDetails": {
"TrackingNumber": "1ZXXXXXXXXXXXXXXXX",
"TrackingURL": "https://wwwapps.ups.com/tracking/tracking.cgi?tracknum=1ZX&requester=ST/",
"IsQrLabel": "false",
"IsTrackable": true
},
"ReturnDocuments": [
{
"DocumentTypeCode": "ShippingLabel",
"DocumentTypeName": "Shipping Label",
"DocumentData": "AQCkosNhECNeAACYzH/NIA5NgtHU2QAAAABJRU5ErkJggg==",
"URL": "https://[MerchantDomain]/url"
}
]
}
}Body
Sets the language of the Combined Return Note. CultureCode must be provided in IETF BCP 47 language tag format (for example, en-US, fr-FR, or de-DE). The note is translated into the language specified by CultureCode. If CultureCode is missing, empty, or unsupported, the note defaults to English. Supported cultures: all languages supported by the product. Translated: static text and labels in the note. Not translated: merchant-specific and dynamic content, such as addresses, SKUs, and prices. Provider support: Not all return providers support translation by default — it is currently enabled for ReturnGO. To receive translated return notes, providers must include their provider code in the ProviderCode parameter and ensure their CSM has added them to the translation allow-list.

