Skip to content

Pricing

API endpoints for Pricing management in LSP.

Add pricing rule

http
POST /v1/lsp/pricing/rules

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Request Body

json
{
    "code": "A10",
    "name": "Distribution Shipping Pricing",
    "version": "1.0",
    "model": "DISTANCE_BASED",
    "currency": {
        "name": "Ghana Cedis",
        "code": "GHS",
        "symbol": "GH₵"
    },
    "baseRate": 10,
    "effective": {
        "timestamp": {{$timestamp}},
        "timezone": "Africa/Accra"
    }
}

Get pricing rule

http
GET /v1/lsp/pricing/rules/:id

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Get all pricing rules

http
GET /v1/lsp/pricing/rules

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Update pricing rule

http
PATCH /v1/lsp/pricing/rules/:id

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Request Body

json
{
    "version": "1.1",
    "baseRate": 25,
    "effective": {
        "timestamp": {{$timestamp}},
        "timezone": "Africa/Accra"
    },
    "tags": ["low-rate"]
}

Delete pricing rule

http
DELETE /v1/lsp/pricing/rules/:id

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Add pricing rule tier

http
POST /v1/lsp/pricing/rules/:id/tiers

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Request Body

typescript
interface Add pricing rule tierRequest {
  type: string;
  category: string;
  title: string;
  minThreshold: number;
  maxThreshold: number;
  unit: string;
  rate: number;
  isOptional: boolean;
}

Example:

json
{
  "type": "HANDLING_FEE",
  "category": "TRANSPORTATION",
  "title": "Duration Based fee",
  "minThreshold": 3,
  "maxThreshold": 10,
  "unit": "min",
  "rate": 5,
  "isOptional": false
}

Update pricing rule tier

http
PATCH /v1/lsp/pricing/rules/:id/tiers/:index

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Request Body

typescript
interface Update pricing rule tierRequest {
  minThreshold: number;
  multipliers: {
    timeSlot: string;
    minimumFee: number;
    minimumHours: number;
    multiplier: number
  }[];
}

Example:

json
{
  "minThreshold": 5,
  "multipliers": [
    {
      "timeSlot": "PEAK_HOURS",
      "minimumFee": 20,
      "minimumHours": 2,
      "multiplier": 1.4
    }
  ]
}

Delete pricing rule tier

http
DELETE /v1/lsp/pricing/rules/:id/tiers/:index

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Request Body

typescript
interface Delete pricing rule tierRequest {
  minThreshold: number;
  multipliers: {
    timeSlot: string;
    minimumFee: number;
    minimumHours: number;
    multiplier: number
  }[];
}

Example:

json
{
  "minThreshold": 5,
  "multipliers": [
    {
      "timeSlot": "PEAK_HOURS",
      "minimumFee": 20,
      "minimumHours": 2,
      "multiplier": 1.4
    }
  ]
}

Add pricing rule seasonal adjustments

http
POST /v1/lsp/pricing/rules/:id/adjustments

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Request Body

json
{
    "start": {
        "timestamp": {{$timestamp}},
        "timezone": "Africa/Accra"
    },
    "end": {
        "timestamp": {{$timestamp}},
        "timezone": "Africa/Accra"
    },
    "category": "TRANSPORTATION",
    "adjustmentType": "MULTIPLIER",
    "value": 1.2,
    "description": "Chistmas Time"
}

Delete pricing rule seasonal adjustments

http
DELETE /v1/lsp/pricing/rules/:id/adjustments/:index

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Request Body

typescript
interface Delete pricing rule seasonal adjustmentsRequest {
  minThreshold: number;
  multipliers: {
    timeSlot: string;
    minimumFee: number;
    minimumHours: number;
    multiplier: number
  }[];
}

Example:

json
{
  "minThreshold": 5,
  "multipliers": [
    {
      "timeSlot": "PEAK_HOURS",
      "minimumFee": 20,
      "minimumHours": 2,
      "multiplier": 1.4
    }
  ]
}

Add pricing rule contract terms

http
POST /v1/lsp/pricing/rules/:id/contract

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Request Body

json
{
    "type": "CONTRACT", // SPOT, CONTRACT, FRAMEWORK
    "minimumVolume": {
        "quantity": 2400,
        "unit": "orders",
        "period": "monthly" // 'monthly', 'quarterly', 'annually'
    },
    "currency": {
        "name": "Ghana Cedis",
        "code": "GHS",
        "symbol": "GH₵"
    },
    "payment": {
        "net": 25, // Default: 30
        "invoiceFrequency": "monthly"
    },
    "sla": {
        "onTimeDelivery": 75, // percentage
        "damageRate": 10, // percentage
        "lossRate": 0, // percentage
        "penalties": [
            {
                "metric": "Delayed delivery",
                "threshold": 10,
                "penalty": 120,
                "unit": "order"
            },
            {
                "metric": "Damaged packages",
                "threshold": 5,
                "penalty": 200,
                "unit": "package"
            }
        ]
    },
    "liabilityLimits": {
        "maxLiabilityPerShipment": 3,
        "maxLiabilityPerIncident": 5
    }
}

Update pricing rule contract terms

http
PATCH /v1/lsp/pricing/rules/:id/contract

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Request Body

json
{
    "minimumVolume": {
        "quantity": 500,
        "unit": "orders",
        "period": "monthly" // 'monthly', 'quarterly', 'annually'
    },
    "payment.net": 30,
    "sla.onTimeDelivery": 65 // percentage
}

Get all pricing templates

http
GET /v1/lsp/pricing/templates?category=TRANSPORTATION&tag=low-rate

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Create pricing rule from a template

http
POST /v1/lsp/pricing/templates

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Request Body

json
{
    "templateId": "{{LSPPricingTemplateId}}", // SPOT, CONTRACT, FRAMEWORK
    "code": "A11",
    "name": "Wild Dispatch Pricing",
    "customizations": {
        "version": "1.0",
        "model": "DISTANCE_BASED",
        "currency": {
            "name": "Ghana Cedis",
            "code": "GHS",
            "symbol": "GH₵"
        }
    }
}

Validate pricing rule

http
POST /v1/lsp/pricing/utils/rules/:id/validate

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Request Body

json
[
    {
        "description": "",
        "input": {
            "kg": 10,
            "km": 31
            // "cbm": 40,
            // "pallet": 4,
            // "shipment": 1,
            // "sqm": 200,
            // "units": 5,
            // "orders": 1
        },
        "expectedOutput": 50
    }
]

Update bulk pricing rules by category

http
PATCH /v1/lsp/pricing/utils/bulk/update

Headers

  • de-user-agent (required)
  • de-auth-token (required)
  • de-auth-device (required)

Request Body

typescript
interface Update bulk pricing rules by categoryRequest {
  category: string;
  updates: {
    version: string;
    multiplier: number;
    additionalFee: number;
    tags: string
  };
  filters: {
    tags: string[];
    model: string
  };
}

Example:

json
{
  "category": "TRANSPORTATION",
  "updates": {
    "version": "2.0",
    "multiplier": 1.2,
    "additionalFee": 20,
    "tags": "fuel-raise"
  },
  "filters": {
    "tags": [
      "low-rate"
    ],
    "model": "DISTANCE_BASED"
  }
}