Rates API

Show customers their shipping cost before they buy. Get quotes based on destination and package size - the same prices you'd see in your panel.


POST/orders/quote

Get a shipping quote

Get prices for all available services based on where you're shipping and package size.

Request Body

  • Name
    sender_locality_id
    Type
    integer
    Description

    ID of the sender's locality. Required.

  • Name
    recipient_locality_id
    Type
    integer
    Description

    ID of the recipient's locality. Required.

  • Name
    weight
    Type
    number
    Description

    Package weight in kilograms. Required.

  • Name
    height
    Type
    number
    Description

    Package height in centimeters. Required.

  • Name
    width
    Type
    number
    Description

    Package width in centimeters. Required.

  • Name
    length
    Type
    number
    Description

    Package length in centimeters. Required.

  • Name
    service_id
    Type
    integer
    Description

    Specific service ID to quote. If omitted, returns quotes for all available services.

Response Fields

  • Name
    quotes
    Type
    array
    Description

    Array of available service quotes.

  • Name
    volumetric_weight
    Type
    number
    Description

    Calculated volumetric weight based on dimensions.

  • Name
    billable_weight
    Type
    number
    Description

    Weight used for billing (higher of actual or volumetric).

POST
/orders/quote
curl -X POST https://api.4nortes.app/api/v1/orders/quote \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "sender_locality_id": 1,
    "recipient_locality_id": 45,
    "weight": 2.5,
    "height": 10,
    "width": 20,
    "length": 30
  }'

Response

{
  "success": true,
  "message": "Quote generated successfully",
  "data": {
    "quotes": [
      {
        "service_id": 1,
        "service_name": "NextDay Express",
        "service_code": "EXPRESS",
        "price": 0,
        "currency": "CLP",
        "estimated_delivery": "2025-02-04",
        "estimated_days": 1
      },
      {
        "service_id": 2,
        "service_name": "NextDay Standard",
        "service_code": "STANDARD",
        "price": 0,
        "currency": "CLP",
        "estimated_delivery": "2025-02-05",
        "estimated_days": 2
      },
      {
        "service_id": 3,
        "service_name": "NextDay Economy",
        "service_code": "ECONOMY",
        "price": 0,
        "currency": "CLP",
        "estimated_delivery": "2025-02-06",
        "estimated_days": 3
      }
    ],
    "package": {
      "actual_weight": 2.5,
      "volumetric_weight": 1.2,
      "billable_weight": 2.5,
      "dimensions": "10x20x30 cm"
    }
  },
  "timestamp": "2025-02-03T10:00:00.000000Z"
}

Error - No service available

{
  "success": false,
  "message": "No services available for this route",
  "errors": {
    "route": ["The specified route is not currently serviced"]
  }
}

How pricing works

Volumetric weight

We calculate volumetric weight based on package size:

Volumetric Weight (kg) = (Height × Width × Length) / 5000

Where dimensions are in centimeters.

What you're charged for

You're billed for whichever is higher:

  • The actual weight
  • The volumetric weight

This way, light but bulky packages are priced fairly.

Example

For a package with:

  • Actual weight: 2.5 kg
  • Dimensions: 40 × 30 × 20 cm
Volumetric Weight = (40 × 30 × 20) / 5000 = 4.8 kg
Billable Weight = max(2.5, 4.8) = 4.8 kg

Was this page helpful?