Storefront Delivery Configuration
6 API calls in this section.
Get Delivery Config
/storefront/delivery-configFetch current tenant delivery configuration. Response: { success, config: { mode, status, external_base_url, timeout_ms, retries, last_tested_at, test_result, webhook_secret, webhook_url } }
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/storefront/delivery-config" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"Response examples
1{2 "success": true,3 "config": {4 "mode": "external",5 "status": "active",6 "external_base_url": "https://example.com/functions/v1",7 "timeout_ms": 15000,8 "retries": 2,9 "last_tested_at": "2025-10-31T12:00:00.000Z",10 "test_result": {},11 "webhook_secret": "{{storefront_webhook_secret}}",12 "webhook_url": "{{base_url}}/storefront/hooks/delivery-status"13 }14}Update Delivery Config (Internal)
/storefront/delivery-configSwitches to internal mode and saves with status=inactive. Response: { success, message, config } with webhook fields null.
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Content-Type | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
mode | string | — |
timeout_ms | number | — |
retries | number | — |
1curl --globoff --request PUT "https://staging-api.ondi.io/functions/v1/storefront/delivery-config" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json" \4 --data-raw '{5 "mode": "internal",6 "timeout_ms": 15000,7 "retries": 28}'Response examples
1{2 "success": true,3 "message": "delivery_integration_updated_successfully",4 "config": {5 "mode": "internal",6 "status": "inactive",7 "external_base_url": null,8 "timeout_ms": 15000,9 "retries": 2,10 "last_tested_at": null,11 "test_result": null,12 "webhook_secret": null,13 "webhook_url": null14 }15}Test & Activate External Delivery Config
/storefront/delivery-config/testTests external using request body only. On success: saves and activates, returns { success, status, test_result, config } (with webhook_secret and webhook_url). Errors: external_health_check_error (400), external_health_check_timeout (408).
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Content-Type | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
mode | string | — |
external_base_url | string | — |
external_api_key | string | — |
1curl --globoff --request POST "https://staging-api.ondi.io/functions/v1/storefront/delivery-config/test" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json" \4 --data-raw '{5 "mode": "external",6 "external_base_url": "{{external_base_url}}",7 "external_api_key": "{{external_api_key}}"8}'Replace {{placeholders}} with your own values before sending.
Response examples
1{2 "success": true,3 "status": "active",4 "test_result": {},5 "config": {6 "mode": "external",7 "status": "active",8 "external_base_url": "{{external_base_url}}",9 "timeout_ms": null,10 "retries": null,11 "last_tested_at": null,12 "test_result": null,13 "webhook_secret": "{{storefront_webhook_secret}}",14 "webhook_url": "{{base_url}}/storefront/hooks/delivery-status"15 }16}Disable External (Back to Internal)
/storefront/delivery-configDisables external and switches configuration back to internal with status=inactive.
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Content-Type | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
mode | string | — |
status | string | — |
1curl --globoff --request PUT "https://staging-api.ondi.io/functions/v1/storefront/delivery-config" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json" \4 --data-raw '{5 "mode": "external",6 "status": "disabled"7}'Response examples
1{2 "success": true,3 "message": "delivery_integration_updated_successfully",4 "config": {5 "mode": "internal",6 "status": "inactive",7 "external_base_url": null,8 "timeout_ms": null,9 "retries": null,10 "last_tested_at": null,11 "test_result": null,12 "webhook_secret": null,13 "webhook_url": null14 }15}Inbound Delivery Status Webhook (Test Receiver)
/storefront/hooks/delivery-statusWebhook endpoint to receive delivery status updates. Provide the generated webhook secret in X-API-Key.
Headers
| Parameter | Type | Description |
|---|---|---|
X-API-Key | string | Example: |
Content-Type | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
delivery_id | string | — |
status | string | — |
1curl --globoff --request POST "https://staging-api.ondi.io/functions/v1/storefront/hooks/delivery-status" \2 --header "X-API-Key: ${STOREFRONT_WEBHOOK_SECRET}" \3 --header "Content-Type: application/json" \4 --data-raw '{5 "delivery_id": "EXT-DEL-123",6 "status": "in_transit"7}'Response examples
No saved response example. Use Try it to inspect a staging response.
List Delivery Services
/storefront/stores/{{market_id}}/delivery-servicesList delivery services for the storefront tenant. Only works if delivery integration is enabled (status='active'). Supports both internal and external modes:
Internal mode: Queries
delivery_servicestable directlyExternal mode: Proxies request to external delivery module API
Response
{ success: true, deliveryServices: [...], page: number, limit: number, total: number }
Path parameters
| Parameter | Type | Description |
|---|---|---|
market_idRequired | string | Variable used inside the request path. |
store_id | string | ( |
Query parameters
| Parameter | Type | Description |
|---|---|---|
delivery_type_codeOptional | string | Filter by delivery type code ( Example: |
activeOptional | string | Filter by active status (default: true) Example: |
searchOptional | string | Search by name or code |
pageOptional | string | Page number (default: 1) Example: |
limitOptional | string | Items per page (default: 10) Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/storefront/stores/${MARKET_ID}/delivery-services?delivery_type_code=on_demand&active=true&search=&page=1&limit=10" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"Response examples
1{2 "success": true,3 "deliveryServices": [4 {5 "id": "service-uuid",6 "name": "Standard Delivery",7 "code": "standard",8 "description": "Standard delivery service",9 "service_level": "standard",10 "default_price": 5,11 "estimated_delivery_time_min": 30,12 "estimated_delivery_time_max": 60,13 "service_options": {14 "signature_required": false,15 "insurance_available": true16 },17 "unit_min": 1,18 "unit_max": 10,19 "active": true,20 "delivery_type": {21 "id": "type-uuid",22 "code": "on_demand",23 "name": "On Demand"24 }25 }26 ],27 "page": 1,28 "limit": 10,29 "total": 130}