Delivery Notes
Dispatch Delivery Note
Dispatch a delivery note: deduct the linked outbound shipment’s lines from stock (FEFO across available lots) via the shared movement writer.
The delivery note itself carries no stock references, so the linked shipment’s line items (org-scoped, with item ids + qty + uom) are the source of truth for what leaves the warehouse. All-or-nothing: any shortfall aborts the dispatch with a per-line breakdown.
POST
/
delivery-notes
/
{note_id}
/
dispatch
Dispatch Delivery Note
curl --request POST \
--url https://vinmake-erp.onrender.com/delivery-notes/{note_id}/dispatch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"stockLocationId": "<string>",
"notes": "<string>"
}
'import requests
url = "https://vinmake-erp.onrender.com/delivery-notes/{note_id}/dispatch"
payload = {
"stockLocationId": "<string>",
"notes": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({stockLocationId: '<string>', notes: '<string>'})
};
fetch('https://vinmake-erp.onrender.com/delivery-notes/{note_id}/dispatch', 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://vinmake-erp.onrender.com/delivery-notes/{note_id}/dispatch",
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([
'stockLocationId' => '<string>',
'notes' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://vinmake-erp.onrender.com/delivery-notes/{note_id}/dispatch"
payload := strings.NewReader("{\n \"stockLocationId\": \"<string>\",\n \"notes\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://vinmake-erp.onrender.com/delivery-notes/{note_id}/dispatch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"stockLocationId\": \"<string>\",\n \"notes\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://vinmake-erp.onrender.com/delivery-notes/{note_id}/dispatch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"stockLocationId\": \"<string>\",\n \"notes\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"note": {
"id": "<string>",
"documentId": "<string>",
"salesOrderId": "<string>",
"clientId": "<string>",
"clientName": "<string>",
"dropNumber": 123,
"shippingDate": "<string>",
"actualShipDate": "<string>",
"carrier": "<string>",
"trackingNumber": "<string>",
"destinationAddress": "<string>",
"status": "<string>",
"notes": "<string>",
"shipmentId": "<string>",
"deliveryId": "<string>",
"paymentTerms": "<string>",
"paymentDueDate": "<string>",
"createdAt": "<string>",
"lineItems": []
},
"movementGroupId": "<string>",
"lines": [
{
"shipmentLineItemId": "<string>",
"qtyRequested": 123,
"qtyDispatched": 123,
"lots": [
{
"stockLotId": "<string>",
"stockLocationId": "<string>",
"qty": 123,
"stockLotDocumentId": "<string>",
"uom": "<string>"
}
],
"description": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
Path Parameters
⌘I
Dispatch Delivery Note
curl --request POST \
--url https://vinmake-erp.onrender.com/delivery-notes/{note_id}/dispatch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"stockLocationId": "<string>",
"notes": "<string>"
}
'import requests
url = "https://vinmake-erp.onrender.com/delivery-notes/{note_id}/dispatch"
payload = {
"stockLocationId": "<string>",
"notes": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({stockLocationId: '<string>', notes: '<string>'})
};
fetch('https://vinmake-erp.onrender.com/delivery-notes/{note_id}/dispatch', 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://vinmake-erp.onrender.com/delivery-notes/{note_id}/dispatch",
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([
'stockLocationId' => '<string>',
'notes' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://vinmake-erp.onrender.com/delivery-notes/{note_id}/dispatch"
payload := strings.NewReader("{\n \"stockLocationId\": \"<string>\",\n \"notes\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://vinmake-erp.onrender.com/delivery-notes/{note_id}/dispatch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"stockLocationId\": \"<string>\",\n \"notes\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://vinmake-erp.onrender.com/delivery-notes/{note_id}/dispatch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"stockLocationId\": \"<string>\",\n \"notes\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"note": {
"id": "<string>",
"documentId": "<string>",
"salesOrderId": "<string>",
"clientId": "<string>",
"clientName": "<string>",
"dropNumber": 123,
"shippingDate": "<string>",
"actualShipDate": "<string>",
"carrier": "<string>",
"trackingNumber": "<string>",
"destinationAddress": "<string>",
"status": "<string>",
"notes": "<string>",
"shipmentId": "<string>",
"deliveryId": "<string>",
"paymentTerms": "<string>",
"paymentDueDate": "<string>",
"createdAt": "<string>",
"lineItems": []
},
"movementGroupId": "<string>",
"lines": [
{
"shipmentLineItemId": "<string>",
"qtyRequested": 123,
"qtyDispatched": 123,
"lots": [
{
"stockLotId": "<string>",
"stockLocationId": "<string>",
"qty": 123,
"stockLotDocumentId": "<string>",
"uom": "<string>"
}
],
"description": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}