Skip to main content

Tenant Configuration

2 API calls in this section.

APIs for managing tenant-specific express shipping configuration

Get Tenant Configuration​

Express Shipping / Configuration / Tenant Configuration
GET/express-shipping/config

API: Get Tenant Configuration

Endpoint

GET /express-shipping/config

Purpose

Retrieve current express shipping configuration for the authenticated tenant. Returns pricing, service settings, and operational parameters.

  • Bearer token: Authorization: Bearer {{access_token}} (required)

  • API Key: X-API-Key: {{api_key}} (alternative authentication method)

Business Logic

  1. Validate tenant authentication and permissions

  2. Retrieve current express shipping configuration

  3. Return comprehensive configuration settings

  4. Include service status and pricing information

Error Responses

401 - Unauthorized

403 - Forbidden

500 - Internal Server Error

Query parameters

ParameterTypeDescription
languageOptionalstring

(string, optional): Preferred language for response messages (en, ar, ku)

Example: en

Headers

ParameterTypeDescription
AuthorizationRequiredstring

Bearer token authentication (required)

Example: Bearer {{access_token}}

Staging
Request
curl
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/express-shipping/config?language=en" \2  --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"

Response examples

200OK
Response body
json
1{2  "success": true,3  "data": {4    "tenant_id": "tenant_12345",5    "service_enabled": true,6    "configuration": {7      "pricing": {8        "base_price_per_kg": 10,9        "minimum_price": 5,10        "currency": "USD",11        "price_calculation_method": "weight_based",12        "free_shipping_threshold": 10013      },14      "service_settings": {15        "max_package_weight_kg": 30,16        "max_package_dimensions_cm": {17          "length": 120,18          "width": 80,19          "height": 8020        },21        "delivery_time_days": {22          "express": "3-5",23          "economy": "7-14"24        },25        "supported_countries": [26          "US",27          "CA",28          "GB",29          "DE",30          "FR"31        ],32        "restricted_items": [33          "batteries",34          "liquids",35          "fragile_electronics"36        ]37      },38      "operational": {39        "auto_confirm_orders": false,40        "require_customer_verification": true,41        "send_sms_notifications": true,42        "send_email_notifications": true,43        "tracking_updates_frequency": "real_time"44      },45      "integration": {46        "api_keys": {47          "tracking_provider": "configured",48          "sms_provider": "configured",49          "email_provider": "configured"50        },51        "webhook_endpoints": {52          "status_updates": "https://your-domain.com/webhooks/express-shipping",53          "delivery_confirmations": "https://your-domain.com/webhooks/deliveries"54        }55      }56    },57    "last_updated": "2024-01-27T10:00:00Z",58    "created_at": "2024-01-01T00:00:00Z"59  }60}

Update Tenant Configuration​

Express Shipping / Configuration / Tenant Configuration
PUT/express-shipping/config

API: Update Tenant Configuration

Endpoint

PUT /express-shipping/config

Purpose

Update express shipping configuration for the authenticated tenant. Allows modification of pricing, service settings, and operational parameters.

  • Bearer token: Authorization: Bearer {{access_token}} (required)

  • API Key: X-API-Key: {{api_key}} (alternative authentication method)

  • Requires admin permissions for the tenant

Business Logic

  1. Validate tenant authentication and admin permissions

  2. Validate configuration parameters and constraints

  3. Update configuration settings (partial update supported)

  4. Validate pricing and service settings for consistency

  5. Return updated configuration

Error Responses

400 - Invalid Configuration

403 - Insufficient Permissions

404 - Configuration Not Found

500 - Update Failed

Query parameters

ParameterTypeDescription
languageOptionalstring

Preferred language for response messages (en, ar, ku) (string, optional): Preferred language for response messages

Example: en

Headers

ParameterTypeDescription
AuthorizationRequiredstring

Bearer token authentication (required)

Example: Bearer {{access_token}}

Content-Typestring

Example: application/json

Body parameters

ParameterTypeDescription
configurationRequiredobject

(object, required): Configuration object to update

configuration.pricingOptionalobject

(object, optional): Pricing configuration

configuration.pricing.base_price_per_kgnumber

(number): Base price per kilogram

configuration.pricing.minimum_pricenumber

(number): Minimum shipping price

configuration.pricing.currencystring

(string): Currency code (USD, EUR, etc.)

configuration.pricing.price_calculation_methodstring

(string): 'weight_based' or 'fixed_rate'

configuration.pricing.free_shipping_thresholdnumber

(number): Order value for free shipping

configuration.service_settingsOptionalobject

(object, optional): Service limitation settings

configuration.service_settings.max_package_weight_kgnumber

(number): Maximum package weight in kg

configuration.service_settings.max_package_dimensions_cmobject

(object): Maximum dimensions

configuration.service_settings.max_package_dimensions_cm.lengthnumber

(number): Maximum length in cm

configuration.service_settings.max_package_dimensions_cm.widthnumber

(number): Maximum width in cm

Show 16 more body fields

Additional body parameters

ParameterTypeDescription
configuration.service_settings.max_package_dimensions_cm.heightnumber

(number): Maximum height in cm

configuration.service_settings.delivery_time_daysobject

(object): Estimated delivery times

configuration.service_settings.delivery_time_days.expressstring

(string): Express delivery time range

configuration.service_settings.delivery_time_days.economystring

(string): Economy delivery time range

configuration.service_settings.supported_countriesarray<string>

(array): List of supported country codes

configuration.service_settings.restricted_itemsarray<string>

(array): List of restricted item categories

configuration.operationalOptionalobject

(object, optional): Operational settings

configuration.operational.auto_confirm_ordersboolean

(boolean): Auto-confirm orders without review

configuration.operational.require_customer_verificationboolean

(boolean): Require customer phone verification

configuration.operational.send_sms_notificationsboolean

(boolean): Enable SMS notifications

configuration.operational.send_email_notificationsboolean

(boolean): Enable email notifications

configuration.operational.tracking_updates_frequencystring

(string): 'real_time', 'hourly', 'daily'

configuration.integrationOptionalobject

(object, optional): Integration settings

configuration.integration.webhook_endpointsobject

(object): Webhook URLs

configuration.integration.webhook_endpoints.status_updatesstring

(string): URL for status update webhooks

configuration.integration.webhook_endpoints.delivery_confirmationsstring

(string): URL for delivery confirmation webhooks

Staging
Request
curl
1curl --globoff --request PUT "https://staging-api.ondi.io/functions/v1/express-shipping/config?language=en" \2  --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3  --header "Content-Type: application/json" \4  --data-raw '{5  "configuration": {6    "pricing": {7      "base_price_per_kg": 12,8      "minimum_price": 6,9      "currency": "USD",10      "price_calculation_method": "weight_based",11      "free_shipping_threshold": 15012    },13    "service_settings": {14      "max_package_weight_kg": 25,15      "max_package_dimensions_cm": {16        "length": 100,17        "width": 70,18        "height": 7019      },20      "delivery_time_days": {21        "express": "2-4",22        "economy": "5-10"23      },24      "supported_countries": [25        "US",26        "CA",27        "GB",28        "DE",29        "FR",30        "IT"31      ],32      "restricted_items": [33        "batteries",34        "liquids",35        "fragile_electronics",36        "hazardous_materials"37      ]38    },39    "operational": {40      "auto_confirm_orders": true,41      "require_customer_verification": true,42      "send_sms_notifications": true,43      "send_email_notifications": true,44      "tracking_updates_frequency": "hourly"45    },46    "integration": {47      "webhook_endpoints": {48        "status_updates": "https://your-domain.com/webhooks/express-shipping-v2",49        "delivery_confirmations": "https://your-domain.com/webhooks/deliveries-v2"50      }51    }52  }53}'

Response examples

200OK
Response body
json
1{2  "success": true,3  "data": {4    "tenant_id": "tenant_12345",5    "service_enabled": true,6    "configuration": {7      "pricing": {8        "base_price_per_kg": 12,9        "minimum_price": 6,10        "currency": "USD",11        "price_calculation_method": "weight_based",12        "free_shipping_threshold": 15013      },14      "service_settings": {15        "max_package_weight_kg": 25,16        "max_package_dimensions_cm": {17          "length": 100,18          "width": 70,19          "height": 7020        },21        "delivery_time_days": {22          "express": "2-4",23          "economy": "5-10"24        },25        "supported_countries": [26          "US",27          "CA",28          "GB",29          "DE",30          "FR",31          "IT"32        ],33        "restricted_items": [34          "batteries",35          "liquids",36          "fragile_electronics",37          "hazardous_materials"38        ]39      },40      "operational": {41        "auto_confirm_orders": true,42        "require_customer_verification": true,43        "send_sms_notifications": true,44        "send_email_notifications": true,45        "tracking_updates_frequency": "hourly"46      }47    },48    "last_updated": "2024-01-27T15:30:00Z",49    "created_at": "2024-01-01T00:00:00Z"50  },51  "message": "Configuration updated successfully"52}