curl --request PUT \
--url https://api.exowpee.com/v1/catalog/purchase-deliveries/{purchase_delivery} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.exowpee.com/v1/catalog/purchase-deliveries/{purchase_delivery}"
headers = {"Authorization": "Bearer <token>"}
response = requests.put(url, headers=headers)
print(response.text)const options = {method: 'PUT', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.exowpee.com/v1/catalog/purchase-deliveries/{purchase_delivery}', 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/catalog/purchase-deliveries/{purchase_delivery}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
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/catalog/purchase-deliveries/{purchase_delivery}"
req, _ := http.NewRequest("PUT", 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.put("https://api.exowpee.com/v1/catalog/purchase-deliveries/{purchase_delivery}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exowpee.com/v1/catalog/purchase-deliveries/{purchase_delivery}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"type": "<string>",
"purchase_id": "<string>",
"cash_register_id": "<string>",
"reference": "<string>",
"status": "<string>",
"additional_cost_strategy": "<string>",
"delivery_rate_id": "<string>",
"delivery_fee": 123,
"delivery_fee_label": "<string>",
"delivery_fee_paid_by_company": true,
"purchase_cost_leftover": 123,
"received_at": "2023-11-07T05:31:56Z",
"expected_at": "2023-12-25",
"notes": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"items": "<array>",
"costs": "<array>"
}{
"message": "<string>",
"errors": {}
}Edit a purchase delivery
Changes reference, notes, expected date or cost sharing of a delivery that is not yet confirmed.
curl --request PUT \
--url https://api.exowpee.com/v1/catalog/purchase-deliveries/{purchase_delivery} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.exowpee.com/v1/catalog/purchase-deliveries/{purchase_delivery}"
headers = {"Authorization": "Bearer <token>"}
response = requests.put(url, headers=headers)
print(response.text)const options = {method: 'PUT', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.exowpee.com/v1/catalog/purchase-deliveries/{purchase_delivery}', 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/catalog/purchase-deliveries/{purchase_delivery}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
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/catalog/purchase-deliveries/{purchase_delivery}"
req, _ := http.NewRequest("PUT", 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.put("https://api.exowpee.com/v1/catalog/purchase-deliveries/{purchase_delivery}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exowpee.com/v1/catalog/purchase-deliveries/{purchase_delivery}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"type": "<string>",
"purchase_id": "<string>",
"cash_register_id": "<string>",
"reference": "<string>",
"status": "<string>",
"additional_cost_strategy": "<string>",
"delivery_rate_id": "<string>",
"delivery_fee": 123,
"delivery_fee_label": "<string>",
"delivery_fee_paid_by_company": true,
"purchase_cost_leftover": 123,
"received_at": "2023-11-07T05:31:56Z",
"expected_at": "2023-12-25",
"notes": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"items": "<array>",
"costs": "<array>"
}{
"message": "<string>",
"errors": {}
}purchase_deliveries.update
Conditions
- The delivery must still be editable: a draft delivery or a delivery marked in transit. A confirmed one is refused.
- reference, when sent, must not already be used by another reception of the company (the reception itself is ignored).
- cash_register_id, when sent, must be a cash register of the company that has a cash account.
- items and costs cannot be sent here; use the line and cost endpoints.
- recoverable_vat_total and vat_total are refused.
- delivery_rate_id, when sent, must be an active delivery rate of the purchase’s supplier; delivery_fee and delivery_fee_label are refused in the same request.
- delivery_fee_label alone is refused with 422 when the delivery uses a predefined rate (the label is a snapshot), and when no custom fee amount is sent or already set it cannot be given a label.
- Sending delivery_rate_id and delivery_fee both as null clears the fee and makes the delivery free.
- Replaces only the fields that are sent; fields left out keep their value.
- Changing delivery_rate_id re-copies the new rate’s amount and label as a snapshot; sending a custom delivery_fee removes the link to the predefined rate.
- Nothing else changes; costs are spread over the lines only at confirmation.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Identifier of the purchase delivery (27-character KSUID).
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, type, purchase_id, cash_register_id, reference, status, additional_cost_strategy, delivery_rate_id, delivery_fee, delivery_fee_label, delivery_fee_paid_by_company, purchase_cost_leftover, received_at, expected_at, notes, created_at, updated_at.
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.item, items.damageStockableUnit, costs.
Response
Resource (only with response=resource).
Identifier of the reception (27-character KSUID).
Kind of reception: "delivery" here. Set by the server from the route.
Identifier of the purchase this reception brings goods for. Set at creation and not changeable.
Cash register recorded on the reception, or null. It must belong to the current company and organization and have a cash account. It is only stored.
Optional free reference, unique among the company's receptions (pickups and deliveries together). Null when none.
State of the reception: draft (being prepared), in_transit (deliveries only: the supplier's truck is on its way, still editable) or confirmed (goods received, stock added). Set by the server.
How the extra costs are spread over the lines at confirmation: average (equally) or prorata (in proportion to each line's base cost).
Identifier of the supplier's predefined delivery rate the fee was copied from, or null for a custom fee or a free delivery.
Delivery fee in major units, copied from the rate or entered as a custom fee. Null when the delivery is free. It is added to the landed cost spread over the lines at confirmation.
Label of the delivery fee (copied from the rate, or custom), or null.
true (default) when the company pays the fee itself; false when the fee is owed to the supplier and added to the purchase's payable once the delivery is confirmed.
Rounding leftover of the purchase's cost that was added to this reception's lines at confirmation, in major units. 0 until the reception is confirmed.
Date and time of confirmation (ISO 8601). Null until the reception is confirmed.
Date the goods are expected (YYYY-MM-DD), or null.
Free notes, or null.
Date and time the record was created (ISO 8601, UTC).
Date and time the record was last changed (ISO 8601, UTC).
Lines of the reception. Present only when requested with include=items.
Extra costs of the reception. Present only when requested with include=costs.