Customer Portal Settings
2 API calls in this section.
Get Customer Portal Settings
/delivery/customer-portal/settings?language=enReturns the effective Customer Portal settings for delivery creation for the authenticated tenant. Tenant ID is derived from req.context.tenantId (JWT / auth). No tenant ID in URL. Access - Tenant admin with manage:tenant, manage:operations:tenant, or manage:module:delivery. Response data includes { options, values }. values.support_ticket_settings.support_users includes the selected support users with their names.
1curl --request GET "$ONDI_BASE_URL/delivery/customer-portal/settings?language=en" \2 --header "Authorization: Bearer {{access_token}}"Query parameters
languageOptionalen
Language code for response localization (Optional, default: en)
Headers
AuthorizationOptionalBearer {{access_token}}
Responses
1{2 "success": true,3 "data": {4 "options": {5 "pickup_settings": {6 "modes": [7 "fixed_default",8 "select_from_list",9 "predefined_only",10 "any_address"11 ],12 "allowed_address_types": [13 "pickup",14 "warehouse",15 "branch"16 ]17 },18 "wallet_settings": {19 "allowed_payout_user_types": [20 "individual",21 "business"22 ]23 }24 },25 "values": {26 "pickup_settings": {27 "mode": "fixed_default",28 "allow_change": false,29 "default_pickup_address_id": "uuid",30 "allowed_pickup_address_ids": []31 },32 "delivery_service_settings": {33 "default_delivery_service_id": "uuid",34 "allowed_delivery_service_ids": []35 },36 "cod_settings": {37 "enabled": true,38 "required": false,39 "allow_zero": true,40 "min": 0,41 "max": null42 },43 "delivery_creation_fields": {44 "reference_id_enabled": true,45 "invoicing_enabled": false,46 "custom_shipment_label_enabled": false47 },48 "package_settings": {49 "multipart_enabled": true50 },51 "visibility_settings": {52 "driver_info": {53 "show_driver_info": true,54 "show_driver_phone": true55 },56 "tracking": {57 "realtime_tracking_enabled": true58 },59 "chat": {60 "support_chat_enabled": true,61 "driver_chat_enabled": false62 }63 },64 "support_ticket_settings": {65 "enabled": true,66 "allow_customer_close": true,67 "support_user_ids": [68 "uuid",69 "uuid"70 ],71 "support_users": [72 {73 "id": "uuid",74 "full_name": "Support User One"75 },76 {77 "id": "uuid",78 "full_name": "Support User Two"79 }80 ],81 "default_priority": "medium",82 "auto_assign_on_first_reply": false83 },84 "wallet_settings": {85 "allowed_payout_user_types": [86 "business"87 ]88 },89 "brand_settings": {90 "brand": {91 "name": {92 "en": "",93 "ar": "",94 "ku": ""95 },96 "page_title": ""97 },98 "assets": {99 "favicon_url": "",100 "logo_url": ""101 },102 "theme": {103 "colors": {104 "primary": "#2B14DA",105 "primary2": "#000000",106 "misGrey": "#F7F8FA",107 "misGrey2": "#F3F5F9",108 "blueBigOrder": "#2B7FFF",109 "orangeBgTransit": "#FF6B2B",110 "yellowBgPending": "#E6C718",111 "greenBgDelivered": "#19B53B",112 "redBgDropOff": "#F40909",113 "selectedColor": "rgba(43, 20, 218, 0.05)",114 "activeTextColor": "rgba(0, 0, 0, 1)",115 "iconRestState": "rgba(105, 98, 98, 1)",116 "textRestState": "rgba(105, 98, 98, 1)",117 "characterDisabled": "rgba(0, 0, 0, 0.2)",118 "buttonTextColor": "rgba(255, 255, 255, 1)",119 "overlaysDefault": "rgba(0, 0, 0, 0.2)",120 "neutralStroke": "rgba(217, 217, 217, 1)",121 "backgroundColorWhite": "rgba(255, 255, 255, 1)",122 "borderColor": "rgba(243, 243, 243, 1)"123 }124 }125 }126 }127 }128}Update Customer Portal Settings
/delivery/customer-portal/settings?language=enUpserts tenant customer portal settings for delivery creation. Tenant ID is derived from req.context.tenantId. No tenant ID in URL. Access - Tenant admin with manage:tenant, manage:operations:tenant, or manage:module:delivery. Validation - Pickup address/service IDs must belong to the tenant. - predefined_only requires allowed_pickup_address_ids. - fixed_default requires default_pickup_address_id. - any_address: no restrictions; customer provides pickup (address_id or location JSON) at order creation. support_ticket_settings (optional): - enabled: enable or disable customer support tickets. - allow_customer_close: allow customers to close their own tickets. - support_user_ids: array of tenant support user ids for the shared queue. Each must be an active tenant user in the same tenant. - support_users: optional frontend object list; if sent, its ids are also validated. - users with the driver tenant role are not allowed as support users. - default_priority: low | medium | high | urgent. - auto_assign_on_first_reply: when true, the first support reply to an unassigned ticket claims it automatically. brand_settings.theme.colors (partial update supported; defaults for omitted keys): - primary: #2B14DA | primary2: #000000 | misGrey: #F7F8FA | misGrey2: #F3F5F9 - blueBigOrder: #2B7FFF | orangeBgTransit: #FF6B2B | yellowBgPending: #E6C718 | greenBgDelivered: #19B53B | redBgDropOff: #F40909 - selectedColor: rgba(43, 20, 218, 0.05) | activeTextColor: rgba(0, 0, 0, 1) - iconRestState: rgba(105, 98, 98, 1) | textRestState: rgba(105, 98, 98, 1) | characterDisabled: rgba(0, 0, 0, 0.2) - buttonTextColor: rgba(255, 255, 255, 1) | overlaysDefault: rgba(0, 0, 0, 0.2) - neutralStroke: rgba(217, 217, 217, 1) | backgroundColorWhite: rgba(255, 255, 255, 1) | borderColor: rgba(243, 243, 243, 1) wallet_settings (optional): - allowed_payout_user_types: array of "individual" and/or "business" - which customer types can request payouts from customer portal. Default: ["business"]. Enterprise users are treated as business. track_orders (optional): - enable: enable or disable order tracking. - track_url: tracking application URL.
1curl --request PUT "$ONDI_BASE_URL/delivery/customer-portal/settings?language=en" \2 --header "Authorization: Bearer {{access_token}}" \3 --header "Content-Type: application/json" \4 --header "Content-Type: application/json" \5 --data '{6 "pickup_settings": {7 "mode": "predefined_only",8 "default_pickup_address_id": "uuid",9 "allowed_pickup_address_ids": [10 "uuid"11 ]12 },13 "delivery_service_settings": {14 "default_delivery_service_id": "uuid",15 "allowed_delivery_service_ids": []16 },17 "cod_settings": {18 "enabled": true,19 "required": false,20 "allow_zero": true,21 "min": 0,22 "max": 50000023 },24 "delivery_creation_fields": {25 "reference_id_enabled": true,26 "invoicing_enabled": false,27 "custom_shipment_label_enabled": false28 },29 "package_settings": {30 "multipart_enabled": true31 },32 "visibility_settings": {33 "driver_info": {34 "show_driver_info": true,35 "show_driver_phone": false36 },37 "tracking": {38 "realtime_tracking_enabled": true39 },40 "chat": {41 "support_chat_enabled": true,42 "driver_chat_enabled": false43 }44 },45 "support_ticket_settings": {46 "enabled": true,47 "allow_customer_close": true,48 "support_user_ids": [49 "uuid",50 "uuid"51 ],52 "default_priority": "medium",53 "auto_assign_on_first_reply": true54 },55 "wallet_settings": {56 "allowed_payout_user_types": [57 "individual",58 "business"59 ]60 },61 "track_orders": {62 "enable": true,63 "track_url": "https://staging-app.ondi.io/tracking"64 },65 "brand_settings": {66 "brand": {67 "name": {68 "en": "Acme",69 "ar": "",70 "ku": ""71 },72 "page_title": "Acme Tracking"73 },74 "assets": {75 "favicon_url": "https://...",76 "logo_url": "https://..."77 },78 "theme": {79 "colors": {80 "primary": "#2B14DA",81 "primary2": "#000000",82 "misGrey": "#F7F8FA",83 "misGrey2": "#F3F5F9",84 "blueBigOrder": "#2B7FFF",85 "orangeBgTransit": "#FF6B2B",86 "yellowBgPending": "#E6C718",87 "greenBgDelivered": "#19B53B",88 "redBgDropOff": "#F40909",89 "selectedColor": "rgba(43, 20, 218, 0.05)",90 "activeTextColor": "rgba(0, 0, 0, 1)",91 "iconRestState": "rgba(105, 98, 98, 1)",92 "textRestState": "rgba(105, 98, 98, 1)",93 "characterDisabled": "rgba(0, 0, 0, 0.2)",94 "buttonTextColor": "rgba(255, 255, 255, 1)",95 "overlaysDefault": "rgba(0, 0, 0, 0.2)",96 "neutralStroke": "rgba(217, 217, 217, 1)",97 "backgroundColorWhite": "rgba(255, 255, 255, 1)",98 "borderColor": "rgba(243, 243, 243, 1)"99 }100 }101 }102}'1{2 "pickup_settings": {3 "mode": "predefined_only",4 "default_pickup_address_id": "uuid",5 "allowed_pickup_address_ids": [6 "uuid"7 ]8 },9 "delivery_service_settings": {10 "default_delivery_service_id": "uuid",11 "allowed_delivery_service_ids": []12 },13 "cod_settings": {14 "enabled": true,15 "required": false,16 "allow_zero": true,17 "min": 0,18 "max": 50000019 },20 "delivery_creation_fields": {21 "reference_id_enabled": true,22 "invoicing_enabled": false,23 "custom_shipment_label_enabled": false24 },25 "package_settings": {26 "multipart_enabled": true27 },28 "visibility_settings": {29 "driver_info": {30 "show_driver_info": true,31 "show_driver_phone": false32 },33 "tracking": {34 "realtime_tracking_enabled": true35 },36 "chat": {37 "support_chat_enabled": true,38 "driver_chat_enabled": false39 }40 },41 "support_ticket_settings": {42 "enabled": true,43 "allow_customer_close": true,44 "support_user_ids": [45 "uuid",46 "uuid"47 ],48 "default_priority": "medium",49 "auto_assign_on_first_reply": true50 },51 "wallet_settings": {52 "allowed_payout_user_types": [53 "individual",54 "business"55 ]56 },57 "track_orders": {58 "enable": true,59 "track_url": "https://staging-app.ondi.io/tracking"60 },61 "brand_settings": {62 "brand": {63 "name": {64 "en": "Acme",65 "ar": "",66 "ku": ""67 },68 "page_title": "Acme Tracking"69 },70 "assets": {71 "favicon_url": "https://...",72 "logo_url": "https://..."73 },74 "theme": {75 "colors": {76 "primary": "#2B14DA",77 "primary2": "#000000",78 "misGrey": "#F7F8FA",79 "misGrey2": "#F3F5F9",80 "blueBigOrder": "#2B7FFF",81 "orangeBgTransit": "#FF6B2B",82 "yellowBgPending": "#E6C718",83 "greenBgDelivered": "#19B53B",84 "redBgDropOff": "#F40909",85 "selectedColor": "rgba(43, 20, 218, 0.05)",86 "activeTextColor": "rgba(0, 0, 0, 1)",87 "iconRestState": "rgba(105, 98, 98, 1)",88 "textRestState": "rgba(105, 98, 98, 1)",89 "characterDisabled": "rgba(0, 0, 0, 0.2)",90 "buttonTextColor": "rgba(255, 255, 255, 1)",91 "overlaysDefault": "rgba(0, 0, 0, 0.2)",92 "neutralStroke": "rgba(217, 217, 217, 1)",93 "backgroundColorWhite": "rgba(255, 255, 255, 1)",94 "borderColor": "rgba(243, 243, 243, 1)"95 }96 }97 }98}Query parameters
languageOptionalen
Language code for response localization (Optional, default: en)
Request body fields
pickup_settingsExampleExample field from the request body.
pickup_settings.modeExampleExample field from the request body.
pickup_settings.default_pickup_address_idExampleExample field from the request body.
pickup_settings.allowed_pickup_address_idsExampleExample field from the request body.
delivery_service_settingsExampleExample field from the request body.
delivery_service_settings.default_delivery_service_idExampleExample field from the request body.
delivery_service_settings.allowed_delivery_service_idsExampleExample field from the request body.
cod_settingsExampleExample field from the request body.
cod_settings.enabledExampleExample field from the request body.
cod_settings.requiredExampleExample field from the request body.
cod_settings.allow_zeroExampleExample field from the request body.
cod_settings.minExampleExample field from the request body.
cod_settings.maxExampleExample field from the request body.
delivery_creation_fieldsExampleExample field from the request body.
delivery_creation_fields.reference_id_enabledExampleExample field from the request body.
delivery_creation_fields.invoicing_enabledExampleExample field from the request body.
delivery_creation_fields.custom_shipment_label_enabledExampleExample field from the request body.
package_settingsExampleExample field from the request body.
package_settings.multipart_enabledExampleExample field from the request body.
visibility_settingsExampleExample field from the request body.
visibility_settings.driver_infoExampleExample field from the request body.
visibility_settings.driver_info.show_driver_infoExampleExample field from the request body.
visibility_settings.driver_info.show_driver_phoneExampleExample field from the request body.
visibility_settings.trackingExampleExample field from the request body.
visibility_settings.tracking.realtime_tracking_enabledExampleExample field from the request body.
visibility_settings.chatExampleExample field from the request body.
visibility_settings.chat.support_chat_enabledExampleExample field from the request body.
visibility_settings.chat.driver_chat_enabledExampleExample field from the request body.
support_ticket_settingsExampleExample field from the request body.
support_ticket_settings.enabledExampleExample field from the request body.
support_ticket_settings.allow_customer_closeExampleExample field from the request body.
support_ticket_settings.support_user_idsExampleExample field from the request body.
support_ticket_settings.default_priorityExampleExample field from the request body.
support_ticket_settings.auto_assign_on_first_replyExampleExample field from the request body.
wallet_settingsExampleExample field from the request body.
wallet_settings.allowed_payout_user_typesExampleExample field from the request body.
track_ordersExampleExample field from the request body.
track_orders.enableExampleExample field from the request body.
track_orders.track_urlExampleExample field from the request body.
brand_settingsExampleExample field from the request body.
brand_settings.brandExampleExample field from the request body.
brand_settings.brand.nameExampleExample field from the request body.
brand_settings.brand.page_titleExampleExample field from the request body.
brand_settings.assetsExampleExample field from the request body.
brand_settings.assets.favicon_urlExampleExample field from the request body.
brand_settings.assets.logo_urlExampleExample field from the request body.
brand_settings.themeExampleExample field from the request body.
brand_settings.theme.colorsExampleExample field from the request body.
Headers
AuthorizationOptionalBearer {{access_token}}
Content-TypeOptionalapplication/json
Responses
1{2 "success": true,3 "message": "Tenant Setting Updated Successfully",4 "data": {5 "options": {6 "pickup_settings": {7 "modes": [8 "fixed_default",9 "select_from_list",10 "predefined_only",11 "any_address"12 ],13 "allowed_address_types": [14 "pickup",15 "warehouse",16 "branch"17 ]18 },19 "wallet_settings": {20 "allowed_payout_user_types": [21 "individual",22 "business"23 ]24 }25 },26 "values": {27 "pickup_settings": {28 "mode": "predefined_only",29 "allow_change": true,30 "default_pickup_address_id": "uuid",31 "allowed_pickup_address_ids": [32 "uuid"33 ]34 },35 "brand_settings": {36 "brand": {37 "name": {38 "en": "Acme",39 "ar": "",40 "ku": ""41 },42 "page_title": "Acme Tracking"43 },44 "assets": {45 "favicon_url": "https://...",46 "logo_url": "https://..."47 },48 "theme": {49 "colors": {50 "primary": "#2B14DA",51 "primary2": "#000000",52 "misGrey": "#F7F8FA",53 "misGrey2": "#F3F5F9",54 "blueBigOrder": "#2B7FFF",55 "orangeBgTransit": "#FF6B2B",56 "yellowBgPending": "#E6C718",57 "greenBgDelivered": "#19B53B",58 "redBgDropOff": "#F40909",59 "selectedColor": "rgba(43, 20, 218, 0.05)",60 "activeTextColor": "rgba(0, 0, 0, 1)",61 "iconRestState": "rgba(105, 98, 98, 1)",62 "textRestState": "rgba(105, 98, 98, 1)",63 "characterDisabled": "rgba(0, 0, 0, 0.2)",64 "buttonTextColor": "rgba(255, 255, 255, 1)",65 "overlaysDefault": "rgba(0, 0, 0, 0.2)",66 "neutralStroke": "rgba(217, 217, 217, 1)",67 "backgroundColorWhite": "rgba(255, 255, 255, 1)",68 "borderColor": "rgba(243, 243, 243, 1)"69 }70 }71 }72 }73 }74}