Skip to content

Create Quote

Quotes Write

Price a shipment request and receive AAJ-generated rates plus eligible partner courier quotes. Returns comprehensive pricing with taxes, surcharges, FX conversions, and ETAs.

Returns

Multiple rate options

Auth

Bearer token required

Use cases

Rate shopping · Price comparison · Sales tools


Endpoint overview

POST Authenticated

URL: {{base_url}}/quote

  • Returns AAJ rates plus third-party carrier options when available.
  • Includes real-time FX conversions for USD, GBP, EUR.
  • Calculates ETA based on origin, destination, and service type.

Required headers

Header Value
Authorization Bearer {{token}}
Content-Type application/json
Accept application/json

Request body structure

Field Type Required Description
sender.addressDetails.country string Yes Full country name for origin
sender.addressDetails.countryCode string Yes ISO 3166-1 alpha-2 code (e.g., NG)
sender.addressDetails.stateOrProvinceCode string Yes State/province code
sender.addressDetails.state string Yes State/province name
sender.addressDetails.postalCode string Yes Postal/ZIP code
sender.addressDetails.city string Yes City name
receiver.addressDetails.country string Yes Full country name for destination
receiver.addressDetails.countryCode string Yes ISO 3166-1 alpha-2 code (e.g., US)
receiver.addressDetails.stateOrProvinceCode string Yes State/province code
receiver.addressDetails.state string Yes State/province name
receiver.addressDetails.postalCode string Yes Postal/ZIP code
receiver.addressDetails.city string Yes City name
serviceType string Yes Service tier (e.g., AIR_EXPORT)
carrier string Yes Primary carrier code (e.g., AAJ)
tplService string No Specific third-party logistics service
packages.itemsValue number Yes Total declared value of items
packages.packageType string Yes Package profile (regular, document, etc.)
packages.packages[] array Yes Array of package definitions
packages.packages[].actualWeight number Yes Actual weight in kg
packages.packages[].predefinedDimension string No Reference ID to saved dimension profile
packages.packages[].items[] array No Line items for customs and insurance
deliveryMode string Yes DOOR_STEP or TERMINAL
optionalTplRates[] array No Third-party providers to include (e.g., ["FDX", "DHL", "UPS"])

Sample request

{
  "sender": {
    "addressDetails": {
      "country": "Nigeria",
      "countryCode": "NG",
      "stateOrProvinceCode": "lagos",
      "state": "lagos",
      "postalCode": "100123",
      "city": "lagos"
    }
  },
  "receiver": {
    "addressDetails": {
      "country": "United States",
      "countryCode": "US",
      "stateOrProvinceCode": "AL",
      "postalCode": "29620",
      "state": "Alabama",
      "city": "Abbeville"
    }
  },
  "serviceType": "AIR_EXPORT",
  "carrier": "AAJ",
  "packages": {
    "itemsValue": 100000,
    "packageType": "regular",
    "packages": [
      {
        "actualWeight": 7.5,
        "predefinedDimension": "68fb3fa3bec965665202ead1",
        "items": [
          {
            "id": "68c2d050dbcf02dd65903cda",
            "quantity": 100,
            "price": 1000
          }
        ]
      }
    ]
  },
  "deliveryMode": "DOOR_STEP"
}

Response

{
  "success": true,
  "message": "quote created",
  "data": {
    "quotes": [
      {
        "subTotal": 32010,
        "addons": {
          "total_addons_price": 0,
          "addons": []
        },
        "extraCharges": {
          "fuel_surcharge": {
            "value": 0,
            "type": "percentage",
            "amount": 0
          },
          "on_shipping_fee": 32010,
          "packaging_fee": {
            "value": 0,
            "type": "price",
            "amount": 0
          },
          "home_delivery_fee": 0
        },
        "shippingFee": 32010,
        "total": 34411,
        "tax": 2400.75,
        "discounts": {
          "discounts_total": 0
        },
        "booking": "688c943e639d2d6c59b1bdaa",
        "shipTo": "73 HOLBURN STREET",
        "weight": 2,
        "rate": "SR",
        "insurance": {
          "type": "FR",
          "fee": 0
        },
        "vat": 7.5,
        "packages": {
          "packages": [
            {
              "actualWeight": 2,
              "packageDimension": {
                "length": 1,
                "width": 1,
                "height": 1,
                "weight": 0,
                "price": 0,
                "id": "688c943e639d2d6c59b1bdac"
              },
              "unitMeasurement": "KGS",
              "id": "688c943e639d2d6c59b1bdab"
            }
          ],
          "itemsValue": 3500,
          "packageType": "regular",
          "addOns": [],
          "items": []
        },
        "senderCountry": "Nigeria, NG",
        "receiverCountry": "United Kingdom, GB",
        "carrier": "AAJ",
        "tplService": "",
        "eta": {
          "number_of_days": 5,
          "date_of_arrival": "2025-08-06T10:17:34.000000+01:00"
        },
        "fx": [
          {
            "rate": 1600,
            "currency": "USD",
            "amount": 21.507
          },
          {
            "rate": 2070,
            "currency": "GBP",
            "amount": 16.624
          },
          {
            "rate": 1750,
            "currency": "EUR",
            "amount": 19.663
          }
        ],
        "dateRaised": "2025-08-01T10:17:34.500Z",
        "currency": "NGN",
        "hasCompleteBooking": false
      }
    ],
    "courier_rates": [
      {
        "network": {
          "networkCode": "1^11",
          "networkDescription": "DPD TWO DAY"
        },
        "isLiabilityAllowed": false,
        "invoiceRequired": false,
        "product": {
          "productCode": "1^1",
          "productDescription": "Parcel"
        },
        "service": {
          "serviceCode": "1^1",
          "serviceDescription": "Dpd Two Day"
        },
        "amount": 34411,
        "currency": "NGN",
        "image": "",
        "provider": "DPD UK",
        "servicelevel": {
          "token": "DPD TWO DAY",
          "name": "DPD UK",
          "description": "DPD TWO DAY"
        },
        "object_id": "1^11"
      },
      {
        "network": {
          "networkCode": "1^12",
          "networkDescription": "DPD NEXT DAY"
        },
        "isLiabilityAllowed": false,
        "invoiceRequired": false,
        "product": {
          "productCode": "1^1",
          "productDescription": "Parcel"
        },
        "service": {
          "serviceCode": "1^2",
          "serviceDescription": "Dpd Next Day"
        },
        "amount": 34411,
        "currency": "NGN",
        "image": "",
        "provider": "DPD UK",
        "servicelevel": {
          "token": "DPD NEXT DAY",
          "name": "DPD UK",
          "description": "DPD NEXT DAY"
        },
        "object_id": "1^12"
      }
    ]
  }
}

Key response fields

Field Type Description
success boolean Whether the quote request was successful
data.quotes[] array AAJ-issued quote options with pricing, taxes, FX, and ETAs
data.quotes[].total number Total amount payable including surcharges and tax
data.quotes[].subTotal number Base price before taxes and fees
data.quotes[].tax number Tax amount (VAT)
data.quotes[].vat number VAT percentage applied
data.quotes[].shippingFee number Base shipping fee
data.quotes[].extraCharges object Breakdown of surcharges (fuel, packaging, delivery)
data.quotes[].eta object Estimated delivery: number_of_days and date_of_arrival
data.quotes[].fx[] array Foreign exchange conversions (USD, GBP, EUR)
data.quotes[].booking string Reference booking ID for converting to confirmed shipment
data.quotes[].insurance object Insurance type and fee
data.courier_rates[] array Alternative partner courier rates when available
data.courier_rates[].amount number Partner courier price
data.courier_rates[].provider string Carrier providing the quoted service

Error responses

Invalid Address

{
  "success": false,
  "status": 400,
  "message": "Invalid destination address",
  "errors": [
    {
      "field": "receiver.addressDetails.postalCode",
      "message": "Postal code not found for specified city/state"
    }
  ]
}

Tip: If predefinedDimension is not available, include an explicit packageDimension block with length, width, height, and unitMeasurement for each package. See Predefined Dimensions for standard sizes.