curl --request POST \
--url https://api.exowpee.com/v1/order/orders/{order}/pre-update \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.exowpee.com/v1/order/orders/{order}/pre-update"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.exowpee.com/v1/order/orders/{order}/pre-update', 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.exowpee.com/v1/order/orders/{order}/pre-update",
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://api.exowpee.com/v1/order/orders/{order}/pre-update"
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://api.exowpee.com/v1/order/orders/{order}/pre-update")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exowpee.com/v1/order/orders/{order}/pre-update")
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{
"id": "<string>",
"number": 123,
"customer_id": "<string>",
"customer_name": "<string>",
"currency_code": "<string>",
"items_net_total": 123,
"items_tax_total": 123,
"items_gross_total": 123,
"discount": 123,
"charge": 123,
"order_tax_total": 123,
"total": 123,
"discount_applications": [
"<unknown>"
],
"status": "<string>",
"payment_status": "<string>",
"seller_id": "<string>",
"cash_register_id": "<string>",
"cashier_id": "<string>",
"confirmed_cashier_shift_id": "<string>",
"confirmed_cash_register_instance_id": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"cancelled_at": "2023-11-07T05:31:56Z",
"rejected_at": "2023-11-07T05:31:56Z",
"approved_by": "<string>",
"rejected_by": "<string>",
"approved_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"tax_lines": "<array>",
"items": "<array>",
"payments": "<array>",
"seller": {},
"cash_register": {},
"cashier": {},
"is_credit": true,
"credit_detail": {},
"rendered_html": "<string>"
}Put an order in editing mode
The seller who created a pending or unapproved order opens it for changes. This must be done before saving new content with the update action.
curl --request POST \
--url https://api.exowpee.com/v1/order/orders/{order}/pre-update \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.exowpee.com/v1/order/orders/{order}/pre-update"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.exowpee.com/v1/order/orders/{order}/pre-update', 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.exowpee.com/v1/order/orders/{order}/pre-update",
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://api.exowpee.com/v1/order/orders/{order}/pre-update"
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://api.exowpee.com/v1/order/orders/{order}/pre-update")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exowpee.com/v1/order/orders/{order}/pre-update")
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{
"id": "<string>",
"number": 123,
"customer_id": "<string>",
"customer_name": "<string>",
"currency_code": "<string>",
"items_net_total": 123,
"items_tax_total": 123,
"items_gross_total": 123,
"discount": 123,
"charge": 123,
"order_tax_total": 123,
"total": 123,
"discount_applications": [
"<unknown>"
],
"status": "<string>",
"payment_status": "<string>",
"seller_id": "<string>",
"cash_register_id": "<string>",
"cashier_id": "<string>",
"confirmed_cashier_shift_id": "<string>",
"confirmed_cash_register_instance_id": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"cancelled_at": "2023-11-07T05:31:56Z",
"rejected_at": "2023-11-07T05:31:56Z",
"approved_by": "<string>",
"rejected_by": "<string>",
"approved_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"tax_lines": "<array>",
"items": "<array>",
"payments": "<array>",
"seller": {},
"cash_register": {},
"cashier": {},
"is_credit": true,
"credit_detail": {},
"rendered_html": "<string>"
}- Only the seller who created the order can do it.
- The order must be pending or unapproved.
- The order must be editable: created today unless the caller holds the update-past-data permission.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Identifier of the order.
Query Parameters
Response mode. Default none; none answers 204 No Content.
none, resource Comma-separated JSON keys of the root resource (id is always rendered). Available: id, number, customer_id, customer_name, currency_code, items_net_total, items_tax_total, items_gross_total, discount, charge, order_tax_total, total, discount_applications, status, payment_status, seller_id, cash_register_id, cashier_id, confirmed_cashier_shift_id, confirmed_cash_register_instance_id, completed_at, cancelled_at, rejected_at, approved_by, rejected_by, approved_at, created_at, updated_at, is_credit, credit_detail, rendered_html.
Comma-separated include paths, each optionally followed by its fields in parentheses: units(id,sku),units.uomUnit(id,name). Max depth 6, max 40 paths. Available: items, items.taxLines, items.allocations, taxLines, payments, seller, cashRegister, cashier.
Response
Resource (only with response=resource).
Identifier of the order (27-character KSUID string).
Sequential order number inside the company, allocated by the server at creation (last number plus one).
Identifier of the customer, or null for an anonymous sale.
Customer name kept on the order: copied from the stored customer when customer_id is set, otherwise the free text sent.
ISO 4217 currency code of the order, copied from the company settings.
Sum of the lines before tax, after discounts, in major units of currency_code (stored in minor units and divided by 10 to the power of the currency exponent).
Sum of the taxes of the lines, in major units of currency_code.
items_net_total plus items_tax_total, in major units of currency_code.
Total discount applied to the order, in major units of currency_code.
Extra charge added to the order, in major units of currency_code. The server currently always computes 0.
Taxes applied on the whole order rather than on lines, in major units of currency_code.
Amount to pay: items_gross_total plus order_tax_total plus charge, in major units of currency_code.
Discounts applied to the order, one entry per campaign, code or manual discount, with amounts in major units and the allocation to each item. On create and update it is the computed breakdown (ttc_saving filled); on later reads it is the stored record (ttc_saving is null). Null when none is available.
Life-cycle status: pending (waiting for payment), awaiting_approval, approved, unapproved, updating (opened for changes), rejected, completed (cashed) or cancelled. Set by the server.
unpaid, partially_paid or paid. Set by the server at confirmation from the payments received against the total; unpaid before.
Identifier of the seller record that created the order.
Identifier of the register of the order: at creation, the seller's register, or for a direct seller the register sent in the request; once confirmed, the cashier's register. Null for a direct seller who sent no register, until confirmation.
Identifier of the cashier record that confirmed the sale. Null until confirmation.
Identifier of the register session in which the sale was confirmed. Null until confirmation.
Identifier of the cash register computer used by the register session when the sale was confirmed. Null until confirmation.
Time of confirmation, ISO 8601. Null until confirmed.
Time of cancellation, ISO 8601. Null unless cancelled.
Time the cashier rejected the order, ISO 8601. Cleared when the order returns to pending.
Identifier of the agent account or user profile who approved the order. Null when not approved.
Reserved: the reject action does not fill it, so it is normally null.
Time of approval, ISO 8601. Null when not approved or after the approval was withdrawn.
Date and time the record was created (ISO 8601, UTC).
Date and time the record was last changed (ISO 8601, UTC).
Taxes applied at order level (not on a line). Only present when requested with include.
Lines of the order. Only present when requested with include.
Payments recorded when the sale was confirmed. Empty until then. Only present when requested with include.
Summary of the seller record. Only present when requested with include.
Summary of the register. Only present when requested with include.
Summary of the cashier who confirmed the sale. Only present when requested with include.
True for a credit sale, where the customer may leave part or all of the total unpaid and owes it as a debt. A credit sale needs a customer.
Credit sale detail: id, total_amount, remaining_amount, paid_amount (major units), due_date and ask_approval. Null for a cash sale or when the detail is missing. total_amount is set when the order is saved; remaining_amount stays 0 until confirmation, which sets it to the unpaid part.
Invoice rendered at confirmation as HTML. Present only in the response of the confirm action.