Drop developers

Create an order

Use one Orders API for website, app, POS, marketplace and social orders. The pickup store belongs to your verified merchant account; the request supplies the recipient and delivery details.

Endpoint

POST https://api.dropsa.co.za/v1/orders

Required scope

orders:create

Request body

json
{
  "reference": "ORD-100245",
  "channel": "web",
  "sellerType": "merchant",
  "fulfilmentType": "on_demand",
  "originSystem": "shopify-storefront",
  "serviceType": "SAME_DAY",
  "pickup": { "storeId": "store_jhb_001" },
  "dropoff": {
    "name": "Lebo Ndlovu",
    "phone": "+27821234567",
    "addressLine1": "45 Oxford Road",
    "addressLine2": "Rosebank",
    "city": "Johannesburg",
    "country": "ZA",
    "latitude": -26.1367,
    "longitude": 28.0416,
    "email": "lebo@example.com"
  },
  "package": { "size": "SMALL", "weightKg": 1.2, "category": "standard" },
  "amount": 499.99,
  "currency": "ZAR",
  "notes": "Leave at reception.",
  "metadata": { "cart_id": "cart_123", "customer_id": "cust_456" }
}

201 Created

json
{
  "request_id": "req_01HXYZ...",
  "order": {
    "id": "ord_01HXYZ...",
    "reference": "ORD-100245",
    "status": "VALIDATED",
    "deliveryPrice": 89.5,
    "currency": "ZAR"
  },
  "dispatch": { "id": "job_01HXYZ..." }
}

cURL

bash
curl -X POST https://api.dropsa.co.za/v1/orders \
  -H "Authorization: Bearer <access_token>" \
  -H "Idempotency-Key: checkout-ORD-100245" \
  -H "Content-Type: application/json" \
  -d '{
  "reference": "ORD-100245",
  "channel": "web",
  "sellerType": "merchant",
  "fulfilmentType": "on_demand",
  "originSystem": "shopify-storefront",
  "serviceType": "SAME_DAY",
  "pickup": { "storeId": "store_jhb_001" },
  "dropoff": {
    "name": "Lebo Ndlovu",
    "phone": "+27821234567",
    "addressLine1": "45 Oxford Road",
    "addressLine2": "Rosebank",
    "city": "Johannesburg",
    "country": "ZA",
    "latitude": -26.1367,
    "longitude": 28.0416,
    "email": "lebo@example.com"
  },
  "package": { "size": "SMALL", "weightKg": 1.2, "category": "standard" },
  "amount": 499.99,
  "currency": "ZAR",
  "notes": "Leave at reception.",
  "metadata": { "cart_id": "cart_123", "customer_id": "cust_456" }
}'

Implementation notes

  • Idempotency-Key is required. Reusing the same key with the same payload returns the original result.
  • Coordinates are required so Drop can price and route the delivery correctly.
  • Order acceptance still follows the merchant account, quote, billing and delivery rules configured in Drop.