{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"09de7c83-8f0e-430e-b7a8-c3aa43dc40cf","name":"Rendr API Documentation","description":"# **🆕 New AI-Powered Docs Available**\n\n#### We've launched a new documentation site with AI search , better examples, and up-to-date implementation guides.\n\n#### [<b>Visit the new docs at docs.rendr.delivery →</b>](https://docs.rendr.delivery/)\n\nRendr is a delivery orchestration platform that enables merchants to unify, automate, and optimise their delivery operations. Our platform connects seamlessly with carriers, in-store teams, and internal systems to ensure that every order is fulfilled efficiently, cost-effectively, and with a great customer experience.\n\nYou can access Rendr’s capabilities through the Rendr Dashboard or programmatically via the Rendr API, which allows you to create, manage, and track deliveries; configure stores and networks; and build workflows that integrate directly into your commerce stack.\n\n---\n\n## How it works\n\nTo get the most value from Rendr, it is important to understand the key features that make up our orchestration platform:\n\n- **Location Management**  \n    Define and manage your store network, including address, operating hours, and courier pickup availability. Each location goes through a pending → active approval process to ensure quality and compliance.\n    \n- **Order Ingestion**  \n    Submit orders directly to Rendr via the API, Dashboard, or integrations. Rendr validates the details and provides allocation logic across carriers or your own fleet.\n    \n- **Delivery Orchestration**  \n    Use Rendr’s allocation engine to automatically route orders to the best provider based on cost, speed, service levels, and business rules.\n    \n- **Automations & Rules**  \n    Dynamic business rules to handle scenarios such as delivery cut-offs, order types, or regulated items (e.g., prescriptions, alcohol).\n    \n- **Notifications & Tracking**  \n    Customise customer-facing communications and branded live tracking experiences. Receive operational updates via webhooks to power real-time workflows.\n    \n- **Analytics & Oversight**  \n    Access reporting and monitoring tools to evaluate DIFOT (Delivered In Full On Time), carrier performance, cost efficiency, and exception management.\n    \n\n## General Workflow\n\n1. **Authenticate** – Connect securely with your API key.\n    \n2. **Create & Manage Locations** – Register your stores with addresses, pickup hours, and geo-coordinates.\n    \n3. **Quote** – (Optional) Retrieve availble service options; Rendr’s orchestration engine selects the best provider.\n    \n4. **Create Orders** – Submit orders including customer and delivery details.\n    \n5. **Track Deliveries** – Monitor real-time delivery status updates.\n    \n6. **Manage Exceptions** – Handle address corrections, delivery failures, or customer reschedules.\n    \n7. **Analyse Performance** – Use reporting metrics and dashboards to track delivery SLAs and costs.\n    \n\n## Webhook Overview\n\nRendr supports webhooks to provide merchants with real-time delivery status updates. Webhooks enable seamless system-to-system communication by automatically sending event data to a merchant-defined endpoint whenever a delivery progresses through key lifecycle stages.\n\nWhen a delivery transitions between states, such as booked, assigned, collected, or delivered**,** Rendr generates a structured JSON payload and delivers it via an HTTP `POST` request to the configured webhook URL.\n\nThis mechanism ensures merchants receive immediate, machine-readable notifications that can be used to:\n\n- Trigger internal workflows (e.g., order management updates, CRM notifications).\n    \n- Synchronize delivery status across eCommerce, ERP, and customer-facing systems.\n    \n- Enhance customer communication and visibility in real time.\n    \n\nTo learn more about webhooks and configure them for your business, please contact your Rendr Account Manager.\n\n## Getting Connected\n\nConsumers of the API can be configured with access scoped to either a brand/organisation as a whole OR a brand/organisation and store combination.\n\nThis access level is set via the `tenant_id` attribute and accommodates both `brand_id` and `store_id` variables combined.\n\nFor example:\n\n`brand_id` -> `brandname`  \n`store_id` -> `brandname-storename`  \n`tenant_id` -> `brandname` OR `brandname-storename`\n\n## Delivery Types\n\nSeveral delivery types are offered by Rendr. The definition of each of those is described here.\n\n| Delivery type name | Delivery type description |\n| --- | --- |\n| `fast` | A delivery service with a 3hr pick-up and delivery window. |\n| `flexible` | A delivery service with a same day pick-up and delivery window. |\n| `standard` | A delivery service with a minimum overnight and potentially multi day pick-up and delivery window. |\n\nPlease note: All prices quoted are GST inclusive.\n\n**Delivery Entity Attributes**\n\n| Field name | Type | Description |\n| --- | --- | --- |\n| `data.reference` | String | A unique identifier that you use to refer to the booking. This may correspond with an order number in your OMS/POS. |\n| `data.id` | String | the unique ID used by the Rendr platform to identify this booked delivery. While this is an additional unique identifier, the Get request utilises your own `reference` for ease of integration. |\n| `data.store_handle` | String | The handle of the delivery pickup store/location which is preconfigured by your Rendr implementation partner. |\n| `data.ready_for_pickup_at` | String | The earliest time/date that the order can be collected from the pickup store/location. If you require a minimum amount of time to pick/pack orders this buffer should be accounted for within the earliest time/date value. The time/date format complies with ISO 8601 |\n| `data.address.business` | Boolean | Whether the delivery address is a business address. |\n| `data.address.company_name` | String | The name of the business to which the delivery is to be made. |\n| `data.address.address` | String | The street address of the delivery address. this comprises \\[Unit Number/Street Number\\] \\[Street Name\\] \\[Street Type\\] - e.g. 3/20 Smith Street |\n| `data.address.city` | String | The city, town, or village of the delivery address. |\n| `data.address.state` | String | The state in which the delivery address exists. Must be state abbreviated i.e VIC, NSW |\n| `data.address.post_code` | String | The Australian Post Code of the delivery address. |\n| `data.customer.first_name` | String | The first name of the person associated with the delivery. This should be the person who will be receiving/accepting the delivery. |\n| `data.customer.last_name` | String | The last name of the person associated with the delivery. This should be the person who will be receiving/accepting the delivery. |\n| `data.customer.phone` | String | The phone number of the person who will be receiving/accepting the delivery. |\n| `data.customer.email` | String | The email address of the customer for whom the delivery is being made. This is typically the person who completed the purchase transaction. |\n| `data.line_items` | Array | An array of the line items comprising the delivery. |\n| `data.line_items.code` | String | The SKU code for the given delivery line item that is presented to both the customer, brand fulfilment team and delivery driver. |\n| `data.line_items.name` | String | (Optional) The name for the given delivery line item that is presented to both the customer, brand fulfilment team and delivery driver. |\n| `data.line_items.price_cents` | Number | (Optional) The price in cents for the given delivery line item, being the price per qty of that line item, that is presented to both the customer and brand fulfilment team. |\n| `data.line_items.quantity` | Number | Used to determine the total size and weight of the line items and is present to both the customer, brand fulfilment team and delivery driver. |\n| `data.parcels` | Array | An array of the parcels comprising the delivery. |\n| `data.parcels.reference` | String | A reference that can be used to identify the parcel when packing and delivering. |\n| `data.parcels.description` | String | (Optional) A description/instruction that is presented on the Store Portal to assist those packing. |\n| `data.parcels.type` | String (Optional) | Applicable parcel type. If not defined parcel will be set by default. Options include: carton, crate, hanging_bag, length, pallet, satchel, skid |\n| `data.parcels.length_cm` | Number | Used to determine the total size of the parcel. |\n| `data.parcels.width_cm` | Number | Used to determine the total size of the parcel. |\n| `data.parcels.height_cm` | Number | Used to determine the total size of the parcel. |\n| `data.parcels.weight_kg` | Number | Used to determine the total weight of the parcel. |\n| `data.consignment_number` | String | An additional unique booking identifier which is unused at this time, however will support additional future functionality. |\n| `data.status` | String | The current status of the delivery. Status values include: `booked`(a driver is assigned and will pickup the order at or after the earliest pickup time) `ready_for_pickup` (a status used to indicate the next pick/packing tasks to be completed by store team members) `in_transit` (the order has been collected and is with the driver for delivery) `delivered` (the order has been delivered) `cancelled` (the order/delivery has been cancelled). |\n| `data.created_at` | String | The time time/date that the delivery was booked. The time/date format complies with ISO 8601. |\n\n**Error Entity Attributes**\n\n| **Field Name** | **Type** | **Description** |\n| --- | --- | --- |\n| `request_id` | String | A unique ID generated with the response to assist with investigations of a reported issue. |\n| `code` | Integer | HTTP response code |\n| `title` | String | Error title |\n| `message` | String | Error description. Where possible, the message will be simple and descriptive so that it may be used in user error messages. |\n| `errors` | Array | Machine readable error payload. Payload structure and content will vary based on the error case. |\n| `details` | String | A flat, technical description of the errors payload for use in logging and with systems which cannot support data structures. |\n\n**Example Error Responses**\n\n| Title | Code | Message | Details |\n| --- | --- | --- | --- |\n| Invalid delivery payload | 400 | The data format of your delivery request is incorrect. Please review the payload and re-request the delivery. | Invalid format or missing fields in delivery payload. |\n| Invalid delivery address | 400 | The address provided for the delivery is invalid. Please review the destination address and re-request the delivery | Incomplete or improperly formatted delivery address details. |\n| Empty quote | 400 | The quote you are requesting has no results available. Please review the payload or contact Rendr for support. | The quote you are requesting has no results available. |\n| Distance calculation | 400 | The delivery distance is outside of the defined range. Please review the payload or contact Rendr for support. | The delivery distance is outside of the defined range. |\n| Distance configuration | 400 | The distance configuration for your location prevents quotes from being returned. Please review the payload or contact Rendr for support. | The distance configuration for your location prevents quotes from being returned. |\n| Weight configuration | 400 | The configuration of your dead weight rules prevent quotes from being returned. Please review the payload or contact Rendr for support. | The configuration of your dead weight rules prevent quotes from being returned. |\n| Cubic weight configuration | 400 | The configuration of your cubic weight rules prevent quotes from being returned. Please review the payload or contact Rendr for support. | The configuration of your cubic weight rules prevent quotes from being returned |\n| Location configuration | 400 | The requested store is not active. Please contact Rendr for support | The requested store is not active. |\n| Service configuration | 400 | The quote you are requesting has no results available. Please review the payload or contact Rendr for support. | The quote you are requesting has no results available. |\n| Freight profile configuration | 400 | The configuration of your freight profile prevent quotes from being returned. Please review the payload or contact Rendr for support. | The configuration of your freight profile prevent quotes from being returned. |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"12638497","collectionId":"09de7c83-8f0e-430e-b7a8-c3aa43dc40cf","publishedId":"TVeiEX6c","public":true,"publicUrl":"https://docs.api.rendr.delivery","privateUrl":"https://go.postman.co/documentation/12638497-09de7c83-8f0e-430e-b7a8-c3aa43dc40cf","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2026-02-24T01:22:11.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/94b185ef1f21017c13e9622d060cc1bb490255d2831e5f7e5570890a7a4ac2ad","favicon":"https://rendr.delivery/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://docs.api.rendr.delivery/view/metadata/TVeiEX6c"}