curl --request POST \
--url https://developer.haulstow.co/v1/deliveries/bulk \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"deliveries": [
{
"external_id": "shop-order-1842",
"recipient": {
"name": "Ama Mensah",
"phone_number": "+233245412312",
"address": {
"label": "Home",
"address": "15 Independence Avenue, Accra",
"latitude": 5.56,
"longitude": -0.2057,
"municipality": "Accra Metropolitan"
}
},
"pickup": {
"name": "Osu Store",
"contact": "+233200000001",
"address": "Oxford Street, Osu, Accra",
"latitude": 5.556,
"longitude": -0.182
},
"payment": {
"type": "cod",
"goods_value": 185
},
"vehicle_type": "bike"
},
{
"external_id": "shop-order-1843",
"recipient_id": "rcp_3f1a821cdb58498cbb52f4706545a089",
"recipient_address_id": "adr_78de60204f574a64be88ba9bd94a049f",
"pickup": {
"name": "Osu Store",
"contact": "+233200000001",
"address": "Oxford Street, Osu, Accra",
"latitude": 5.556,
"longitude": -0.182
},
"payment": {
"type": "delivery_only"
},
"vehicle_type": "bike"
}
]
}
'import requests
url = "https://developer.haulstow.co/v1/deliveries/bulk"
payload = { "deliveries": [
{
"external_id": "shop-order-1842",
"recipient": {
"name": "Ama Mensah",
"phone_number": "+233245412312",
"address": {
"label": "Home",
"address": "15 Independence Avenue, Accra",
"latitude": 5.56,
"longitude": -0.2057,
"municipality": "Accra Metropolitan"
}
},
"pickup": {
"name": "Osu Store",
"contact": "+233200000001",
"address": "Oxford Street, Osu, Accra",
"latitude": 5.556,
"longitude": -0.182
},
"payment": {
"type": "cod",
"goods_value": 185
},
"vehicle_type": "bike"
},
{
"external_id": "shop-order-1843",
"recipient_id": "rcp_3f1a821cdb58498cbb52f4706545a089",
"recipient_address_id": "adr_78de60204f574a64be88ba9bd94a049f",
"pickup": {
"name": "Osu Store",
"contact": "+233200000001",
"address": "Oxford Street, Osu, Accra",
"latitude": 5.556,
"longitude": -0.182
},
"payment": { "type": "delivery_only" },
"vehicle_type": "bike"
}
] }
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
deliveries: [
{
external_id: 'shop-order-1842',
recipient: {
name: 'Ama Mensah',
phone_number: '+233245412312',
address: {
label: 'Home',
address: '15 Independence Avenue, Accra',
latitude: 5.56,
longitude: -0.2057,
municipality: 'Accra Metropolitan'
}
},
pickup: {
name: 'Osu Store',
contact: '+233200000001',
address: 'Oxford Street, Osu, Accra',
latitude: 5.556,
longitude: -0.182
},
payment: {type: 'cod', goods_value: 185},
vehicle_type: 'bike'
},
{
external_id: 'shop-order-1843',
recipient_id: 'rcp_3f1a821cdb58498cbb52f4706545a089',
recipient_address_id: 'adr_78de60204f574a64be88ba9bd94a049f',
pickup: {
name: 'Osu Store',
contact: '+233200000001',
address: 'Oxford Street, Osu, Accra',
latitude: 5.556,
longitude: -0.182
},
payment: {type: 'delivery_only'},
vehicle_type: 'bike'
}
]
})
};
fetch('https://developer.haulstow.co/v1/deliveries/bulk', 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://developer.haulstow.co/v1/deliveries/bulk",
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([
'deliveries' => [
[
'external_id' => 'shop-order-1842',
'recipient' => [
'name' => 'Ama Mensah',
'phone_number' => '+233245412312',
'address' => [
'label' => 'Home',
'address' => '15 Independence Avenue, Accra',
'latitude' => 5.56,
'longitude' => -0.2057,
'municipality' => 'Accra Metropolitan'
]
],
'pickup' => [
'name' => 'Osu Store',
'contact' => '+233200000001',
'address' => 'Oxford Street, Osu, Accra',
'latitude' => 5.556,
'longitude' => -0.182
],
'payment' => [
'type' => 'cod',
'goods_value' => 185
],
'vehicle_type' => 'bike'
],
[
'external_id' => 'shop-order-1843',
'recipient_id' => 'rcp_3f1a821cdb58498cbb52f4706545a089',
'recipient_address_id' => 'adr_78de60204f574a64be88ba9bd94a049f',
'pickup' => [
'name' => 'Osu Store',
'contact' => '+233200000001',
'address' => 'Oxford Street, Osu, Accra',
'latitude' => 5.556,
'longitude' => -0.182
],
'payment' => [
'type' => 'delivery_only'
],
'vehicle_type' => 'bike'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$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://developer.haulstow.co/v1/deliveries/bulk"
payload := strings.NewReader("{\n \"deliveries\": [\n {\n \"external_id\": \"shop-order-1842\",\n \"recipient\": {\n \"name\": \"Ama Mensah\",\n \"phone_number\": \"+233245412312\",\n \"address\": {\n \"label\": \"Home\",\n \"address\": \"15 Independence Avenue, Accra\",\n \"latitude\": 5.56,\n \"longitude\": -0.2057,\n \"municipality\": \"Accra Metropolitan\"\n }\n },\n \"pickup\": {\n \"name\": \"Osu Store\",\n \"contact\": \"+233200000001\",\n \"address\": \"Oxford Street, Osu, Accra\",\n \"latitude\": 5.556,\n \"longitude\": -0.182\n },\n \"payment\": {\n \"type\": \"cod\",\n \"goods_value\": 185\n },\n \"vehicle_type\": \"bike\"\n },\n {\n \"external_id\": \"shop-order-1843\",\n \"recipient_id\": \"rcp_3f1a821cdb58498cbb52f4706545a089\",\n \"recipient_address_id\": \"adr_78de60204f574a64be88ba9bd94a049f\",\n \"pickup\": {\n \"name\": \"Osu Store\",\n \"contact\": \"+233200000001\",\n \"address\": \"Oxford Street, Osu, Accra\",\n \"latitude\": 5.556,\n \"longitude\": -0.182\n },\n \"payment\": {\n \"type\": \"delivery_only\"\n },\n \"vehicle_type\": \"bike\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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://developer.haulstow.co/v1/deliveries/bulk")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"deliveries\": [\n {\n \"external_id\": \"shop-order-1842\",\n \"recipient\": {\n \"name\": \"Ama Mensah\",\n \"phone_number\": \"+233245412312\",\n \"address\": {\n \"label\": \"Home\",\n \"address\": \"15 Independence Avenue, Accra\",\n \"latitude\": 5.56,\n \"longitude\": -0.2057,\n \"municipality\": \"Accra Metropolitan\"\n }\n },\n \"pickup\": {\n \"name\": \"Osu Store\",\n \"contact\": \"+233200000001\",\n \"address\": \"Oxford Street, Osu, Accra\",\n \"latitude\": 5.556,\n \"longitude\": -0.182\n },\n \"payment\": {\n \"type\": \"cod\",\n \"goods_value\": 185\n },\n \"vehicle_type\": \"bike\"\n },\n {\n \"external_id\": \"shop-order-1843\",\n \"recipient_id\": \"rcp_3f1a821cdb58498cbb52f4706545a089\",\n \"recipient_address_id\": \"adr_78de60204f574a64be88ba9bd94a049f\",\n \"pickup\": {\n \"name\": \"Osu Store\",\n \"contact\": \"+233200000001\",\n \"address\": \"Oxford Street, Osu, Accra\",\n \"latitude\": 5.556,\n \"longitude\": -0.182\n },\n \"payment\": {\n \"type\": \"delivery_only\"\n },\n \"vehicle_type\": \"bike\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.haulstow.co/v1/deliveries/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"deliveries\": [\n {\n \"external_id\": \"shop-order-1842\",\n \"recipient\": {\n \"name\": \"Ama Mensah\",\n \"phone_number\": \"+233245412312\",\n \"address\": {\n \"label\": \"Home\",\n \"address\": \"15 Independence Avenue, Accra\",\n \"latitude\": 5.56,\n \"longitude\": -0.2057,\n \"municipality\": \"Accra Metropolitan\"\n }\n },\n \"pickup\": {\n \"name\": \"Osu Store\",\n \"contact\": \"+233200000001\",\n \"address\": \"Oxford Street, Osu, Accra\",\n \"latitude\": 5.556,\n \"longitude\": -0.182\n },\n \"payment\": {\n \"type\": \"cod\",\n \"goods_value\": 185\n },\n \"vehicle_type\": \"bike\"\n },\n {\n \"external_id\": \"shop-order-1843\",\n \"recipient_id\": \"rcp_3f1a821cdb58498cbb52f4706545a089\",\n \"recipient_address_id\": \"adr_78de60204f574a64be88ba9bd94a049f\",\n \"pickup\": {\n \"name\": \"Osu Store\",\n \"contact\": \"+233200000001\",\n \"address\": \"Oxford Street, Osu, Accra\",\n \"latitude\": 5.556,\n \"longitude\": -0.182\n },\n \"payment\": {\n \"type\": \"delivery_only\"\n },\n \"vehicle_type\": \"bike\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"statusCode": 201,
"message": "Deliveries created",
"data": {
"created": 1,
"failed": 0,
"results": [
{
"index": 0,
"status": "created",
"delivery": {
"id": "dlv_3f1a821cdb58498cbb52f4706545a089",
"external_id": "shop-order-1842",
"reference": "H-RS83223",
"environment": "live",
"simulated": false,
"status": "booked",
"recipient": {
"id": "rcp_3f1a821cdb58498cbb52f4706545a089",
"name": "Ama Mensah",
"phone_number": "+233245412312"
},
"pickup": {
"name": "Osu Store",
"contact": "+233200000001",
"address": "Oxford Street, Osu, Accra",
"latitude": 5.556,
"longitude": -0.182
},
"dropoff": {
"id": "adr_78de60204f574a64be88ba9bd94a049f",
"label": "Home",
"address": "15 Independence Avenue, Accra",
"latitude": 5.56,
"longitude": -0.2057,
"municipality": "Accra Metropolitan"
},
"payment": {
"type": "cod",
"goods_value": 185
},
"vehicle_type": "bike",
"currency": "GHS",
"delivery_fee": 20,
"requires_custom_quote": false,
"tracking_url": "https://track.haulstow.co/H-RS83223",
"created_at": "2026-08-20T14:20:00Z",
"updated_at": "2026-08-20T14:20:00Z"
}
}
]
}
}Create deliveries in bulk
Creates 1–100 deliveries in one request. Each item in deliveries is
exactly the POST /deliveries request body and follows the same rules.
Works on both the live and sandbox servers; the environment still comes
from the host and key.
The request runs in two phases:
- Validation (all-or-nothing). Every item is validated with the
single-create rules, and
external_idvalues must be unique within the request. If any item is invalid, nothing is created and the API returns422 BULK_VALIDATION_FAILEDwith one entry per problem inerror.details.errors. A count outside 1–100 returns422 VALIDATION_ERROR. - Creation (per item). Valid items are created one at a time in
request order. Each is an independent delivery with its own
delivery.createdwebhook. One item failing at creation, such as an unavailable quote or anexternal_idused by an earlier request, does not stop the others.
data.results holds one result per input item in input order. The
status is 201 when every item was created and 207 when at least one
item failed, including when every item failed at creation.
The complete response, including per-item failures, is stored under the
one Idempotency-Key and replayed on retry. To retry only failed items,
send a new request containing just those items with a new key. One bulk
call counts as a single request against the per-key and per-business
rate limits.
Each item may carry its own sandbox object on the sandbox server. If
any item sends sandbox with a live key, the whole request returns
400 SANDBOX_ONLY_FIELD and nothing is created. A sandbox item whose
scenario cannot start fails on its own with SIMULATION_NOT_APPLICABLE
or SIMULATION_LIMIT in its result.
curl --request POST \
--url https://developer.haulstow.co/v1/deliveries/bulk \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"deliveries": [
{
"external_id": "shop-order-1842",
"recipient": {
"name": "Ama Mensah",
"phone_number": "+233245412312",
"address": {
"label": "Home",
"address": "15 Independence Avenue, Accra",
"latitude": 5.56,
"longitude": -0.2057,
"municipality": "Accra Metropolitan"
}
},
"pickup": {
"name": "Osu Store",
"contact": "+233200000001",
"address": "Oxford Street, Osu, Accra",
"latitude": 5.556,
"longitude": -0.182
},
"payment": {
"type": "cod",
"goods_value": 185
},
"vehicle_type": "bike"
},
{
"external_id": "shop-order-1843",
"recipient_id": "rcp_3f1a821cdb58498cbb52f4706545a089",
"recipient_address_id": "adr_78de60204f574a64be88ba9bd94a049f",
"pickup": {
"name": "Osu Store",
"contact": "+233200000001",
"address": "Oxford Street, Osu, Accra",
"latitude": 5.556,
"longitude": -0.182
},
"payment": {
"type": "delivery_only"
},
"vehicle_type": "bike"
}
]
}
'import requests
url = "https://developer.haulstow.co/v1/deliveries/bulk"
payload = { "deliveries": [
{
"external_id": "shop-order-1842",
"recipient": {
"name": "Ama Mensah",
"phone_number": "+233245412312",
"address": {
"label": "Home",
"address": "15 Independence Avenue, Accra",
"latitude": 5.56,
"longitude": -0.2057,
"municipality": "Accra Metropolitan"
}
},
"pickup": {
"name": "Osu Store",
"contact": "+233200000001",
"address": "Oxford Street, Osu, Accra",
"latitude": 5.556,
"longitude": -0.182
},
"payment": {
"type": "cod",
"goods_value": 185
},
"vehicle_type": "bike"
},
{
"external_id": "shop-order-1843",
"recipient_id": "rcp_3f1a821cdb58498cbb52f4706545a089",
"recipient_address_id": "adr_78de60204f574a64be88ba9bd94a049f",
"pickup": {
"name": "Osu Store",
"contact": "+233200000001",
"address": "Oxford Street, Osu, Accra",
"latitude": 5.556,
"longitude": -0.182
},
"payment": { "type": "delivery_only" },
"vehicle_type": "bike"
}
] }
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
deliveries: [
{
external_id: 'shop-order-1842',
recipient: {
name: 'Ama Mensah',
phone_number: '+233245412312',
address: {
label: 'Home',
address: '15 Independence Avenue, Accra',
latitude: 5.56,
longitude: -0.2057,
municipality: 'Accra Metropolitan'
}
},
pickup: {
name: 'Osu Store',
contact: '+233200000001',
address: 'Oxford Street, Osu, Accra',
latitude: 5.556,
longitude: -0.182
},
payment: {type: 'cod', goods_value: 185},
vehicle_type: 'bike'
},
{
external_id: 'shop-order-1843',
recipient_id: 'rcp_3f1a821cdb58498cbb52f4706545a089',
recipient_address_id: 'adr_78de60204f574a64be88ba9bd94a049f',
pickup: {
name: 'Osu Store',
contact: '+233200000001',
address: 'Oxford Street, Osu, Accra',
latitude: 5.556,
longitude: -0.182
},
payment: {type: 'delivery_only'},
vehicle_type: 'bike'
}
]
})
};
fetch('https://developer.haulstow.co/v1/deliveries/bulk', 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://developer.haulstow.co/v1/deliveries/bulk",
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([
'deliveries' => [
[
'external_id' => 'shop-order-1842',
'recipient' => [
'name' => 'Ama Mensah',
'phone_number' => '+233245412312',
'address' => [
'label' => 'Home',
'address' => '15 Independence Avenue, Accra',
'latitude' => 5.56,
'longitude' => -0.2057,
'municipality' => 'Accra Metropolitan'
]
],
'pickup' => [
'name' => 'Osu Store',
'contact' => '+233200000001',
'address' => 'Oxford Street, Osu, Accra',
'latitude' => 5.556,
'longitude' => -0.182
],
'payment' => [
'type' => 'cod',
'goods_value' => 185
],
'vehicle_type' => 'bike'
],
[
'external_id' => 'shop-order-1843',
'recipient_id' => 'rcp_3f1a821cdb58498cbb52f4706545a089',
'recipient_address_id' => 'adr_78de60204f574a64be88ba9bd94a049f',
'pickup' => [
'name' => 'Osu Store',
'contact' => '+233200000001',
'address' => 'Oxford Street, Osu, Accra',
'latitude' => 5.556,
'longitude' => -0.182
],
'payment' => [
'type' => 'delivery_only'
],
'vehicle_type' => 'bike'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$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://developer.haulstow.co/v1/deliveries/bulk"
payload := strings.NewReader("{\n \"deliveries\": [\n {\n \"external_id\": \"shop-order-1842\",\n \"recipient\": {\n \"name\": \"Ama Mensah\",\n \"phone_number\": \"+233245412312\",\n \"address\": {\n \"label\": \"Home\",\n \"address\": \"15 Independence Avenue, Accra\",\n \"latitude\": 5.56,\n \"longitude\": -0.2057,\n \"municipality\": \"Accra Metropolitan\"\n }\n },\n \"pickup\": {\n \"name\": \"Osu Store\",\n \"contact\": \"+233200000001\",\n \"address\": \"Oxford Street, Osu, Accra\",\n \"latitude\": 5.556,\n \"longitude\": -0.182\n },\n \"payment\": {\n \"type\": \"cod\",\n \"goods_value\": 185\n },\n \"vehicle_type\": \"bike\"\n },\n {\n \"external_id\": \"shop-order-1843\",\n \"recipient_id\": \"rcp_3f1a821cdb58498cbb52f4706545a089\",\n \"recipient_address_id\": \"adr_78de60204f574a64be88ba9bd94a049f\",\n \"pickup\": {\n \"name\": \"Osu Store\",\n \"contact\": \"+233200000001\",\n \"address\": \"Oxford Street, Osu, Accra\",\n \"latitude\": 5.556,\n \"longitude\": -0.182\n },\n \"payment\": {\n \"type\": \"delivery_only\"\n },\n \"vehicle_type\": \"bike\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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://developer.haulstow.co/v1/deliveries/bulk")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"deliveries\": [\n {\n \"external_id\": \"shop-order-1842\",\n \"recipient\": {\n \"name\": \"Ama Mensah\",\n \"phone_number\": \"+233245412312\",\n \"address\": {\n \"label\": \"Home\",\n \"address\": \"15 Independence Avenue, Accra\",\n \"latitude\": 5.56,\n \"longitude\": -0.2057,\n \"municipality\": \"Accra Metropolitan\"\n }\n },\n \"pickup\": {\n \"name\": \"Osu Store\",\n \"contact\": \"+233200000001\",\n \"address\": \"Oxford Street, Osu, Accra\",\n \"latitude\": 5.556,\n \"longitude\": -0.182\n },\n \"payment\": {\n \"type\": \"cod\",\n \"goods_value\": 185\n },\n \"vehicle_type\": \"bike\"\n },\n {\n \"external_id\": \"shop-order-1843\",\n \"recipient_id\": \"rcp_3f1a821cdb58498cbb52f4706545a089\",\n \"recipient_address_id\": \"adr_78de60204f574a64be88ba9bd94a049f\",\n \"pickup\": {\n \"name\": \"Osu Store\",\n \"contact\": \"+233200000001\",\n \"address\": \"Oxford Street, Osu, Accra\",\n \"latitude\": 5.556,\n \"longitude\": -0.182\n },\n \"payment\": {\n \"type\": \"delivery_only\"\n },\n \"vehicle_type\": \"bike\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.haulstow.co/v1/deliveries/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"deliveries\": [\n {\n \"external_id\": \"shop-order-1842\",\n \"recipient\": {\n \"name\": \"Ama Mensah\",\n \"phone_number\": \"+233245412312\",\n \"address\": {\n \"label\": \"Home\",\n \"address\": \"15 Independence Avenue, Accra\",\n \"latitude\": 5.56,\n \"longitude\": -0.2057,\n \"municipality\": \"Accra Metropolitan\"\n }\n },\n \"pickup\": {\n \"name\": \"Osu Store\",\n \"contact\": \"+233200000001\",\n \"address\": \"Oxford Street, Osu, Accra\",\n \"latitude\": 5.556,\n \"longitude\": -0.182\n },\n \"payment\": {\n \"type\": \"cod\",\n \"goods_value\": 185\n },\n \"vehicle_type\": \"bike\"\n },\n {\n \"external_id\": \"shop-order-1843\",\n \"recipient_id\": \"rcp_3f1a821cdb58498cbb52f4706545a089\",\n \"recipient_address_id\": \"adr_78de60204f574a64be88ba9bd94a049f\",\n \"pickup\": {\n \"name\": \"Osu Store\",\n \"contact\": \"+233200000001\",\n \"address\": \"Oxford Street, Osu, Accra\",\n \"latitude\": 5.556,\n \"longitude\": -0.182\n },\n \"payment\": {\n \"type\": \"delivery_only\"\n },\n \"vehicle_type\": \"bike\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"statusCode": 201,
"message": "Deliveries created",
"data": {
"created": 1,
"failed": 0,
"results": [
{
"index": 0,
"status": "created",
"delivery": {
"id": "dlv_3f1a821cdb58498cbb52f4706545a089",
"external_id": "shop-order-1842",
"reference": "H-RS83223",
"environment": "live",
"simulated": false,
"status": "booked",
"recipient": {
"id": "rcp_3f1a821cdb58498cbb52f4706545a089",
"name": "Ama Mensah",
"phone_number": "+233245412312"
},
"pickup": {
"name": "Osu Store",
"contact": "+233200000001",
"address": "Oxford Street, Osu, Accra",
"latitude": 5.556,
"longitude": -0.182
},
"dropoff": {
"id": "adr_78de60204f574a64be88ba9bd94a049f",
"label": "Home",
"address": "15 Independence Avenue, Accra",
"latitude": 5.56,
"longitude": -0.2057,
"municipality": "Accra Metropolitan"
},
"payment": {
"type": "cod",
"goods_value": 185
},
"vehicle_type": "bike",
"currency": "GHS",
"delivery_fee": 20,
"requires_custom_quote": false,
"tracking_url": "https://track.haulstow.co/H-RS83223",
"created_at": "2026-08-20T14:20:00Z",
"updated_at": "2026-08-20T14:20:00Z"
}
}
]
}
}Authorizations
A business-bound HaulStow API key. Send
Authorization: Bearer hsg_live_key_... to the live server or a
hsg_test_key_... key to the sandbox server. Never expose this key in a browser.
Headers
Optional caller correlation ID. Use 1–128 ASCII letters, digits, ., _,
-, or :. Invalid values are replaced. The accepted/generated value is
returned in the response.
1 - 128^[A-Za-z0-9._:-]+$A unique key for this logical mutation. Retained for 24 hours.
8 - 255Body
The deliveries to create, in order. Each item is exactly the
POST /deliveries request body. external_id values must be unique
within the request.
1 - 100 elements- Inline pickup
- Saved pickup location
- Inline pickup
- Saved pickup location
Show child attributes
Show child attributes
