Abandon an Order
curl --request POST \
--url https://public-api.stora.co/2025-09/orders/{order_id}/abandon \
--header 'Authorization: Bearer <token>'import requests
url = "https://public-api.stora.co/2025-09/orders/{order_id}/abandon"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://public-api.stora.co/2025-09/orders/{order_id}/abandon', 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://public-api.stora.co/2025-09/orders/{order_id}/abandon",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://public-api.stora.co/2025-09/orders/{order_id}/abandon"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://public-api.stora.co/2025-09/orders/{order_id}/abandon")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.stora.co/2025-09/orders/{order_id}/abandon")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"order": {
"id": "order_942ae99a1fdc940e",
"billing_period": "monthly",
"contact": {
"id": "con_0ac0514ed0711462"
},
"contract_template": null,
"coupon": null,
"created_at": "2025-02-22T14:41:00Z",
"email_notifications": {
"booking_confirmation": true,
"move_in_day": true,
"payment_details": false
},
"line_items": [],
"metadata": {},
"one_time_total": {
"amount": 0,
"currency": "GBP",
"formatted": "£0.00"
},
"one_time_total_excluding_tax": {
"amount": 0,
"currency": "GBP",
"formatted": "£0.00"
},
"payment_method": "card",
"payment_url": null,
"purchase_order_number": null,
"site": {
"id": "site_14b419f1096013f1"
},
"source": "public_api",
"starts_at": "2025-02-23T14:41:00Z",
"status": "abandoned",
"subscription": null,
"subtotal": {
"amount": 0,
"currency": "GBP",
"formatted": "£0.00"
},
"tax": {
"amount": 0,
"currency": "GBP",
"formatted": "£0.00"
},
"tenancy": null,
"total": {
"amount": 0,
"currency": "GBP",
"formatted": "£0.00"
},
"total_discount": {
"amount": 0,
"currency": "GBP",
"formatted": "£0.00"
},
"total_excluding_tax": {
"amount": 0,
"currency": "GBP",
"formatted": "£0.00"
},
"updated_at": "2025-02-22T14:41:00Z"
},
"meta": {
"request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
"curies": [
{
"name": "bo",
"href": "https://app.stora.test{rel}",
"templated": true,
"title": "Backoffice"
},
{
"name": "sf",
"href": "https://subdomain.stora.test{rel}",
"templated": true,
"title": "Storefront"
}
]
}
}Orders
Abandon an Order
Abandon an order that the customer is no longer expected to complete.
Intended for customer-driven abandonment: use it to signal that the customer has not returned to complete an order they began. It is at the operator’s discretion when to treat an order as abandoned — whether after hours, days, or weeks. It must not be used for operator-driven cancellations; a dedicated cancellation endpoint will be provided for that purpose.
Only orders in the draft or finalized status can be abandoned.
Required authorization scope: public.order:write
POST
/
2025-09
/
orders
/
{order_id}
/
abandon
Abandon an Order
curl --request POST \
--url https://public-api.stora.co/2025-09/orders/{order_id}/abandon \
--header 'Authorization: Bearer <token>'import requests
url = "https://public-api.stora.co/2025-09/orders/{order_id}/abandon"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://public-api.stora.co/2025-09/orders/{order_id}/abandon', 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://public-api.stora.co/2025-09/orders/{order_id}/abandon",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://public-api.stora.co/2025-09/orders/{order_id}/abandon"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://public-api.stora.co/2025-09/orders/{order_id}/abandon")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.stora.co/2025-09/orders/{order_id}/abandon")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"order": {
"id": "order_942ae99a1fdc940e",
"billing_period": "monthly",
"contact": {
"id": "con_0ac0514ed0711462"
},
"contract_template": null,
"coupon": null,
"created_at": "2025-02-22T14:41:00Z",
"email_notifications": {
"booking_confirmation": true,
"move_in_day": true,
"payment_details": false
},
"line_items": [],
"metadata": {},
"one_time_total": {
"amount": 0,
"currency": "GBP",
"formatted": "£0.00"
},
"one_time_total_excluding_tax": {
"amount": 0,
"currency": "GBP",
"formatted": "£0.00"
},
"payment_method": "card",
"payment_url": null,
"purchase_order_number": null,
"site": {
"id": "site_14b419f1096013f1"
},
"source": "public_api",
"starts_at": "2025-02-23T14:41:00Z",
"status": "abandoned",
"subscription": null,
"subtotal": {
"amount": 0,
"currency": "GBP",
"formatted": "£0.00"
},
"tax": {
"amount": 0,
"currency": "GBP",
"formatted": "£0.00"
},
"tenancy": null,
"total": {
"amount": 0,
"currency": "GBP",
"formatted": "£0.00"
},
"total_discount": {
"amount": 0,
"currency": "GBP",
"formatted": "£0.00"
},
"total_excluding_tax": {
"amount": 0,
"currency": "GBP",
"formatted": "£0.00"
},
"updated_at": "2025-02-22T14:41:00Z"
},
"meta": {
"request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
"curies": [
{
"name": "bo",
"href": "https://app.stora.test{rel}",
"templated": true,
"title": "Backoffice"
},
{
"name": "sf",
"href": "https://subdomain.stora.test{rel}",
"templated": true,
"title": "Storefront"
}
]
}
}Authorizations
BearerOAuth2
Bearer Token necessary to use API
Path Parameters
The ID of the order to abandon
Query Parameters
This endpoint supports expandable responses. For more, see the documentation page.
Was this page helpful?
⌘I