Skip to Content
Welcome to Zendera Knowledge Hub
For DevelopersOrder Summary

Order Summary API

v2

Retrieve comprehensive order information including status, locations, package details, and the recommended status-feed sync pattern.

Where this fits in your operation

This is how order progress flows back into your systems without anyone re-keying it:

  • Keep your ERP in sync: poll the status feed and update each sales order as it moves through pickup and delivery.
  • Trigger downstream processes on completion: when the feed reports an order delivered, your system can release the invoice or close the work order.
  • Answer “where is order X?” in your own customer portal by reading the summary by your internal order number.

Interactive API Explorer

Loading API Documentation...

Authentication

Authorization: apikey YOUR_API_KEY_HERE

Base URLs

  • Production: https://app.zenderatms.com/api/
  • Staging: https://staging.zenderatms.com/api/

Endpoints

Get Order by Internal Number

Retrieve a specific order using your internal order number. Returns an OrderSummary for one order, looked up by the internalOrderNumber you used when importing it.

GET /v2/orders/summary/internal/{internalOrderNumber}

Parameters:

  • internalOrderNumber (path): Your internal order identifier

Response:

{ "internalOrderNumber": "ORDER_123", "order": { "orderId": 12345, "orderSerial": 67890, "internalOrderNumber": "ORDER_123", "orderDetails": { "organizationId": 1, "orderId": 12345, "statusId": 6, "statusName": "complete", "customerDetails": { "id": 123, "name": "Customer Name" }, "orderTypeId": 2, "orderTypeName": "Delivery", "vehicleTypeId": 5, "vehicleTypeName": "Van", "reference": "Customer Reference" }, "pickup": { "details": { "id": 1001, "name": "Warehouse", "statusName": "complete", "earliest": "2024-01-15T08:00:00Z", "latest": "2024-01-15T10:00:00Z", "arrivedAt": "2024-01-15T08:30:00Z", "completedAt": "2024-01-15T09:00:00Z" }, "address": { "address1": "Main Street 123", "city": "Oslo", "postalCode": "0123", "country": "Norway", "latitude": "59.9139", "longitude": "10.7522" } }, "delivery": { "details": { "id": 1002, "name": "Customer Location", "statusName": "complete", "completedAt": "2024-01-15T15:30:00Z" } }, "driverDetails": { "id": 456, "name": "Driver Name", "internalDriverNumber": "DRV_001" }, "packageDetails": { "quantityColli": 2, "totalWeightKg": 21.0, "totalVolumeLitre": 30.0 } } }

List Orders by Date

Get orders filtered by date and status.

GET /v2/orders/summary/listbydate

Parameters:

  • date (query): Date filter in “YYYY-MM-DD” format (defaults to today)
  • timezone (query): Timezone (e.g., “Europe/Oslo”, defaults to organization timezone)
  • statuses (query): Comma-separated status list

Available Statuses:

  • complete
  • delivered
  • in_transit
  • arrived
  • dispatched
  • planned
  • unassigned
  • cancelled

Response:

{ "orders": [ { "...": "OrderSummary..." } ], "date": "2024-01-15", "timezone": "Europe/Oslo", "statusFilters": ["complete", "delivered"] }

Order Status Feed

Get a paginated feed of order status changes for real-time monitoring. This is the recommended sync pattern — if you want to mirror Zendera order state into your own system, don’t poll the orders list, use the status feed so you only ever fetch deltas regardless of order volume.

GET /v2/orders/summary/orderstatusfeed

Parameters:

  • token (query): Base64 pagination token. Pass empty (?token=) on your very first call; Zendera uses a sane default starting point. On every subsequent call, pass the nextToken from the previous response.
  • pageSize (query): Number of items per page

With pagination token:

Response:

The status changes are returned in the response array (not orders). Each item is an order-status feed item:

{ "response": [ { "orderId": 12345, "internalOrderNumber": "ORDER_123", "statusUpdatedAt": "2026-04-19T08:30:00Z", "orderStatusId": 6, "orderStatusName": "complete" } ], "nextToken": "eyJzaW5jZSI6IjIwMjYtMDQtMTlUMDg6MzA6MDBaIn0=" }

Pattern:

  1. First call: ?token=&pageSize=100.
  2. Save nextToken from each successful response.
  3. Next call: ?token=<savedNextToken>&pageSize=100.
  4. Re-poll on whatever cadence works for you — every 30–60 seconds is typical.

Response Fields Explained

Order Details

  • orderId: Zendera internal order ID
  • orderSerial: Sequential order number
  • internalOrderNumber: Your external order identifier
  • statusId/statusName: Current order status
  • reference: Customer reference number

Status Feed Item

  • orderId: Zendera internal order ID
  • internalOrderNumber: Your external order identifier
  • statusUpdatedAt: Timestamp the status changed (ISO 8601)
  • orderStatusId/orderStatusName: The new order status
  • pickupInformation/deliveryInformation: Stop information for each leg
  • orderTrackingToken/orderTrackingExpires: Tracking token data when present

Location Details

  • earliest/latest: Scheduled time windows (ISO 8601 format)
  • arrivedAt: Actual arrival timestamp
  • completedAt: Actual completion timestamp
  • statusName: Location-specific status

Address Information

  • Standard address fields with optional GPS coordinates
  • latitude/longitude: GPS coordinates if available

Package Summary

  • quantityColli: Number of colli/packages
  • totalWeightKg: Total weight in kilograms
  • totalVolumeLitre: Total volume in liters

Driver Information

  • id: Driver ID in Zendera system
  • name: Driver name
  • internalDriverNumber: Your driver identifier
Last updated on