Service Order
Create order
This is the key API endpoint for placing an order.
POST
/
service-order
cURL
curl --request POST \
--url https://api3.trycents.com/api/v1/common/service-order \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'fwdorigin: <fwdorigin>' \
--data '
{
"customerAddressId": 74,
"orderDelivery": {
"pickup": {
"deliveryDay": "2025-07-03",
"deliveryProvider": "OWN_DRIVER",
"windowId": 98,
"totalDeliveryCost": 0,
"courierTip": 0
},
"delivery": {
"deliveryDay": "2025-07-06",
"deliveryProvider": "ON_DEMAND",
"windowId": 101,
"totalDeliveryCost": 0,
"courierTip": 0,
"thirdPartyDeliveryId": "id from nash window"
}
},
"returnMethod": "DELIVERY",
"bagCount": 2,
"storeId": 339,
"orderServices": [
{
"servicePriceId": 23,
"serviceModifierIds": [
58
],
"serviceNotes": null
}
],
"hasDryCleaning": false,
"isHangDrySelected": true,
"turnAroundInHours": 48,
"paymentToken": "token from stripe",
"subscription": {
"interval": 2
}
}
'import requests
url = "https://api3.trycents.com/api/v1/common/service-order"
payload = {
"customerAddressId": 74,
"orderDelivery": {
"pickup": {
"deliveryDay": "2025-07-03",
"deliveryProvider": "OWN_DRIVER",
"windowId": 98,
"totalDeliveryCost": 0,
"courierTip": 0
},
"delivery": {
"deliveryDay": "2025-07-06",
"deliveryProvider": "ON_DEMAND",
"windowId": 101,
"totalDeliveryCost": 0,
"courierTip": 0,
"thirdPartyDeliveryId": "id from nash window"
}
},
"returnMethod": "DELIVERY",
"bagCount": 2,
"storeId": 339,
"orderServices": [
{
"servicePriceId": 23,
"serviceModifierIds": [58],
"serviceNotes": None
}
],
"hasDryCleaning": False,
"isHangDrySelected": True,
"turnAroundInHours": 48,
"paymentToken": "token from stripe",
"subscription": { "interval": 2 }
}
headers = {
"fwdorigin": "<fwdorigin>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
fwdorigin: '<fwdorigin>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
customerAddressId: 74,
orderDelivery: {
pickup: {
deliveryDay: '2025-07-03',
deliveryProvider: 'OWN_DRIVER',
windowId: 98,
totalDeliveryCost: 0,
courierTip: 0
},
delivery: {
deliveryDay: '2025-07-06',
deliveryProvider: 'ON_DEMAND',
windowId: 101,
totalDeliveryCost: 0,
courierTip: 0,
thirdPartyDeliveryId: 'id from nash window'
}
},
returnMethod: 'DELIVERY',
bagCount: 2,
storeId: 339,
orderServices: [{servicePriceId: 23, serviceModifierIds: [58], serviceNotes: null}],
hasDryCleaning: false,
isHangDrySelected: true,
turnAroundInHours: 48,
paymentToken: 'token from stripe',
subscription: {interval: 2}
})
};
fetch('https://api3.trycents.com/api/v1/common/service-order', 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://api3.trycents.com/api/v1/common/service-order",
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([
'customerAddressId' => 74,
'orderDelivery' => [
'pickup' => [
'deliveryDay' => '2025-07-03',
'deliveryProvider' => 'OWN_DRIVER',
'windowId' => 98,
'totalDeliveryCost' => 0,
'courierTip' => 0
],
'delivery' => [
'deliveryDay' => '2025-07-06',
'deliveryProvider' => 'ON_DEMAND',
'windowId' => 101,
'totalDeliveryCost' => 0,
'courierTip' => 0,
'thirdPartyDeliveryId' => 'id from nash window'
]
],
'returnMethod' => 'DELIVERY',
'bagCount' => 2,
'storeId' => 339,
'orderServices' => [
[
'servicePriceId' => 23,
'serviceModifierIds' => [
58
],
'serviceNotes' => null
]
],
'hasDryCleaning' => false,
'isHangDrySelected' => true,
'turnAroundInHours' => 48,
'paymentToken' => 'token from stripe',
'subscription' => [
'interval' => 2
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"fwdorigin: <fwdorigin>"
],
]);
$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://api3.trycents.com/api/v1/common/service-order"
payload := strings.NewReader("{\n \"customerAddressId\": 74,\n \"orderDelivery\": {\n \"pickup\": {\n \"deliveryDay\": \"2025-07-03\",\n \"deliveryProvider\": \"OWN_DRIVER\",\n \"windowId\": 98,\n \"totalDeliveryCost\": 0,\n \"courierTip\": 0\n },\n \"delivery\": {\n \"deliveryDay\": \"2025-07-06\",\n \"deliveryProvider\": \"ON_DEMAND\",\n \"windowId\": 101,\n \"totalDeliveryCost\": 0,\n \"courierTip\": 0,\n \"thirdPartyDeliveryId\": \"id from nash window\"\n }\n },\n \"returnMethod\": \"DELIVERY\",\n \"bagCount\": 2,\n \"storeId\": 339,\n \"orderServices\": [\n {\n \"servicePriceId\": 23,\n \"serviceModifierIds\": [\n 58\n ],\n \"serviceNotes\": null\n }\n ],\n \"hasDryCleaning\": false,\n \"isHangDrySelected\": true,\n \"turnAroundInHours\": 48,\n \"paymentToken\": \"token from stripe\",\n \"subscription\": {\n \"interval\": 2\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("fwdorigin", "<fwdorigin>")
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://api3.trycents.com/api/v1/common/service-order")
.header("fwdorigin", "<fwdorigin>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customerAddressId\": 74,\n \"orderDelivery\": {\n \"pickup\": {\n \"deliveryDay\": \"2025-07-03\",\n \"deliveryProvider\": \"OWN_DRIVER\",\n \"windowId\": 98,\n \"totalDeliveryCost\": 0,\n \"courierTip\": 0\n },\n \"delivery\": {\n \"deliveryDay\": \"2025-07-06\",\n \"deliveryProvider\": \"ON_DEMAND\",\n \"windowId\": 101,\n \"totalDeliveryCost\": 0,\n \"courierTip\": 0,\n \"thirdPartyDeliveryId\": \"id from nash window\"\n }\n },\n \"returnMethod\": \"DELIVERY\",\n \"bagCount\": 2,\n \"storeId\": 339,\n \"orderServices\": [\n {\n \"servicePriceId\": 23,\n \"serviceModifierIds\": [\n 58\n ],\n \"serviceNotes\": null\n }\n ],\n \"hasDryCleaning\": false,\n \"isHangDrySelected\": true,\n \"turnAroundInHours\": 48,\n \"paymentToken\": \"token from stripe\",\n \"subscription\": {\n \"interval\": 2\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api3.trycents.com/api/v1/common/service-order")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["fwdorigin"] = '<fwdorigin>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customerAddressId\": 74,\n \"orderDelivery\": {\n \"pickup\": {\n \"deliveryDay\": \"2025-07-03\",\n \"deliveryProvider\": \"OWN_DRIVER\",\n \"windowId\": 98,\n \"totalDeliveryCost\": 0,\n \"courierTip\": 0\n },\n \"delivery\": {\n \"deliveryDay\": \"2025-07-06\",\n \"deliveryProvider\": \"ON_DEMAND\",\n \"windowId\": 101,\n \"totalDeliveryCost\": 0,\n \"courierTip\": 0,\n \"thirdPartyDeliveryId\": \"id from nash window\"\n }\n },\n \"returnMethod\": \"DELIVERY\",\n \"bagCount\": 2,\n \"storeId\": 339,\n \"orderServices\": [\n {\n \"servicePriceId\": 23,\n \"serviceModifierIds\": [\n 58\n ],\n \"serviceNotes\": null\n }\n ],\n \"hasDryCleaning\": false,\n \"isHangDrySelected\": true,\n \"turnAroundInHours\": 48,\n \"paymentToken\": \"token from stripe\",\n \"subscription\": {\n \"interval\": 2\n }\n}"
response = http.request(request)
puts response.read_body123"Store is not found"Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Available options:
DISPATCH_API Body
application/json
Show child attributes
Show child attributes
Set returnMethod as DELIVERY if you require return delivery, otherwise specify IN_STORE_PICKUP
Available options:
IN_STORE_PICKUP, DELIVERY, null Show child attributes
Show child attributes
Use this property for recurring order
Show child attributes
Show child attributes
Response
Order successfully created
Returns the order ID
⌘I
cURL
curl --request POST \
--url https://api3.trycents.com/api/v1/common/service-order \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'fwdorigin: <fwdorigin>' \
--data '
{
"customerAddressId": 74,
"orderDelivery": {
"pickup": {
"deliveryDay": "2025-07-03",
"deliveryProvider": "OWN_DRIVER",
"windowId": 98,
"totalDeliveryCost": 0,
"courierTip": 0
},
"delivery": {
"deliveryDay": "2025-07-06",
"deliveryProvider": "ON_DEMAND",
"windowId": 101,
"totalDeliveryCost": 0,
"courierTip": 0,
"thirdPartyDeliveryId": "id from nash window"
}
},
"returnMethod": "DELIVERY",
"bagCount": 2,
"storeId": 339,
"orderServices": [
{
"servicePriceId": 23,
"serviceModifierIds": [
58
],
"serviceNotes": null
}
],
"hasDryCleaning": false,
"isHangDrySelected": true,
"turnAroundInHours": 48,
"paymentToken": "token from stripe",
"subscription": {
"interval": 2
}
}
'import requests
url = "https://api3.trycents.com/api/v1/common/service-order"
payload = {
"customerAddressId": 74,
"orderDelivery": {
"pickup": {
"deliveryDay": "2025-07-03",
"deliveryProvider": "OWN_DRIVER",
"windowId": 98,
"totalDeliveryCost": 0,
"courierTip": 0
},
"delivery": {
"deliveryDay": "2025-07-06",
"deliveryProvider": "ON_DEMAND",
"windowId": 101,
"totalDeliveryCost": 0,
"courierTip": 0,
"thirdPartyDeliveryId": "id from nash window"
}
},
"returnMethod": "DELIVERY",
"bagCount": 2,
"storeId": 339,
"orderServices": [
{
"servicePriceId": 23,
"serviceModifierIds": [58],
"serviceNotes": None
}
],
"hasDryCleaning": False,
"isHangDrySelected": True,
"turnAroundInHours": 48,
"paymentToken": "token from stripe",
"subscription": { "interval": 2 }
}
headers = {
"fwdorigin": "<fwdorigin>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
fwdorigin: '<fwdorigin>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
customerAddressId: 74,
orderDelivery: {
pickup: {
deliveryDay: '2025-07-03',
deliveryProvider: 'OWN_DRIVER',
windowId: 98,
totalDeliveryCost: 0,
courierTip: 0
},
delivery: {
deliveryDay: '2025-07-06',
deliveryProvider: 'ON_DEMAND',
windowId: 101,
totalDeliveryCost: 0,
courierTip: 0,
thirdPartyDeliveryId: 'id from nash window'
}
},
returnMethod: 'DELIVERY',
bagCount: 2,
storeId: 339,
orderServices: [{servicePriceId: 23, serviceModifierIds: [58], serviceNotes: null}],
hasDryCleaning: false,
isHangDrySelected: true,
turnAroundInHours: 48,
paymentToken: 'token from stripe',
subscription: {interval: 2}
})
};
fetch('https://api3.trycents.com/api/v1/common/service-order', 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://api3.trycents.com/api/v1/common/service-order",
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([
'customerAddressId' => 74,
'orderDelivery' => [
'pickup' => [
'deliveryDay' => '2025-07-03',
'deliveryProvider' => 'OWN_DRIVER',
'windowId' => 98,
'totalDeliveryCost' => 0,
'courierTip' => 0
],
'delivery' => [
'deliveryDay' => '2025-07-06',
'deliveryProvider' => 'ON_DEMAND',
'windowId' => 101,
'totalDeliveryCost' => 0,
'courierTip' => 0,
'thirdPartyDeliveryId' => 'id from nash window'
]
],
'returnMethod' => 'DELIVERY',
'bagCount' => 2,
'storeId' => 339,
'orderServices' => [
[
'servicePriceId' => 23,
'serviceModifierIds' => [
58
],
'serviceNotes' => null
]
],
'hasDryCleaning' => false,
'isHangDrySelected' => true,
'turnAroundInHours' => 48,
'paymentToken' => 'token from stripe',
'subscription' => [
'interval' => 2
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"fwdorigin: <fwdorigin>"
],
]);
$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://api3.trycents.com/api/v1/common/service-order"
payload := strings.NewReader("{\n \"customerAddressId\": 74,\n \"orderDelivery\": {\n \"pickup\": {\n \"deliveryDay\": \"2025-07-03\",\n \"deliveryProvider\": \"OWN_DRIVER\",\n \"windowId\": 98,\n \"totalDeliveryCost\": 0,\n \"courierTip\": 0\n },\n \"delivery\": {\n \"deliveryDay\": \"2025-07-06\",\n \"deliveryProvider\": \"ON_DEMAND\",\n \"windowId\": 101,\n \"totalDeliveryCost\": 0,\n \"courierTip\": 0,\n \"thirdPartyDeliveryId\": \"id from nash window\"\n }\n },\n \"returnMethod\": \"DELIVERY\",\n \"bagCount\": 2,\n \"storeId\": 339,\n \"orderServices\": [\n {\n \"servicePriceId\": 23,\n \"serviceModifierIds\": [\n 58\n ],\n \"serviceNotes\": null\n }\n ],\n \"hasDryCleaning\": false,\n \"isHangDrySelected\": true,\n \"turnAroundInHours\": 48,\n \"paymentToken\": \"token from stripe\",\n \"subscription\": {\n \"interval\": 2\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("fwdorigin", "<fwdorigin>")
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://api3.trycents.com/api/v1/common/service-order")
.header("fwdorigin", "<fwdorigin>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customerAddressId\": 74,\n \"orderDelivery\": {\n \"pickup\": {\n \"deliveryDay\": \"2025-07-03\",\n \"deliveryProvider\": \"OWN_DRIVER\",\n \"windowId\": 98,\n \"totalDeliveryCost\": 0,\n \"courierTip\": 0\n },\n \"delivery\": {\n \"deliveryDay\": \"2025-07-06\",\n \"deliveryProvider\": \"ON_DEMAND\",\n \"windowId\": 101,\n \"totalDeliveryCost\": 0,\n \"courierTip\": 0,\n \"thirdPartyDeliveryId\": \"id from nash window\"\n }\n },\n \"returnMethod\": \"DELIVERY\",\n \"bagCount\": 2,\n \"storeId\": 339,\n \"orderServices\": [\n {\n \"servicePriceId\": 23,\n \"serviceModifierIds\": [\n 58\n ],\n \"serviceNotes\": null\n }\n ],\n \"hasDryCleaning\": false,\n \"isHangDrySelected\": true,\n \"turnAroundInHours\": 48,\n \"paymentToken\": \"token from stripe\",\n \"subscription\": {\n \"interval\": 2\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api3.trycents.com/api/v1/common/service-order")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["fwdorigin"] = '<fwdorigin>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customerAddressId\": 74,\n \"orderDelivery\": {\n \"pickup\": {\n \"deliveryDay\": \"2025-07-03\",\n \"deliveryProvider\": \"OWN_DRIVER\",\n \"windowId\": 98,\n \"totalDeliveryCost\": 0,\n \"courierTip\": 0\n },\n \"delivery\": {\n \"deliveryDay\": \"2025-07-06\",\n \"deliveryProvider\": \"ON_DEMAND\",\n \"windowId\": 101,\n \"totalDeliveryCost\": 0,\n \"courierTip\": 0,\n \"thirdPartyDeliveryId\": \"id from nash window\"\n }\n },\n \"returnMethod\": \"DELIVERY\",\n \"bagCount\": 2,\n \"storeId\": 339,\n \"orderServices\": [\n {\n \"servicePriceId\": 23,\n \"serviceModifierIds\": [\n 58\n ],\n \"serviceNotes\": null\n }\n ],\n \"hasDryCleaning\": false,\n \"isHangDrySelected\": true,\n \"turnAroundInHours\": 48,\n \"paymentToken\": \"token from stripe\",\n \"subscription\": {\n \"interval\": 2\n }\n}"
response = http.request(request)
puts response.read_body123"Store is not found"