Aramex Shipping API
Complete reference guide for integrating with Aramex SOAP-based shipping services. Covers shipment creation, tracking, rate calculation, and location services.
Overview
Aramex provides SOAP-based web services for shipping, tracking, rate calculation, and location services. The API is organized into four main services:
| Service | Operations | Use Case |
|---|
| Shipping | CreateShipments, PrintLabel, CreatePickup, CancelPickup | Create shipments and schedule pickups |
| Tracking | TrackShipments | Track shipment status by AWB |
| Rates | CalculateRate | Get shipping cost estimates |
| Location | ValidateAddress, FetchCountries, FetchCities, FetchOffices | Address validation and reference data |
Authentication
All Aramex API requests require a ClientInfo object in the SOAP request body.
ClientInfo Object
| Field | Type | Required | Description |
|---|
UserName | string | Yes | Aramex account username |
Password | string | Yes | Aramex account password |
Version | string | Yes | API version (e.g., "v1.0") |
AccountNumber | string | Yes | Aramex account number |
AccountPin | string | Yes | Account PIN |
AccountEntity | string | Yes | Account entity code (e.g., "AMM" for Amman) |
AccountCountryCode | string | Yes | 2-letter country code (e.g., "JO") |
Common Data Types
Address
| Field | Type | Required | Description |
|---|
Line1 | string | Yes | Address line 1 |
Line2 | string | No | Address line 2 |
Line3 | string | No | Address line 3 |
City | string | Yes | City name |
StateOrProvinceCode | string | No | State/province code |
PostCode | string | Yes | Postal/ZIP code |
CountryCode | string | Yes | 2-letter ISO country code |
Contact
| Field | Type | Required | Description |
|---|
PersonName | string | Yes | Contact person name |
CompanyName | string | No | Company name |
PhoneNumber1 | string | Yes | Primary phone |
CellPhone | string | No | Mobile number |
EmailAddress | string | No | Email address |
Weight
| Field | Type | Description |
|---|
Unit | string | "KG" or "LB" |
Value | double | Weight value |
Dimensions
| Field | Type | Description |
|---|
Length | double | Length |
Width | double | Width |
Height | double | Height |
Unit | string | "CM" or "IN" |
Money
| Field | Type | Description |
|---|
CurrencyCode | string | 3-letter currency code (e.g., "USD", "AED") |
Value | double | Amount |
1. Shipping Services API
Endpoint: https://ws.aramex.net/shippingapi/shipping/service_1_0.svc
POSTCreateShipments
Creates one or more shipments and returns AWB numbers and labels.
Request: ShipmentCreationRequest
| Field | Type | Required | Description |
|---|
ClientInfo | ClientInfo | Yes | Authentication |
Shipments | Shipment[] | Yes | Array of shipments to create |
LabelInfo | LabelInfo | No | Label configuration |
Shipment Object
| Field | Type | Required | Description |
|---|
Reference1 | string | No | Your shipment reference |
Shipper | Party | Yes | Shipper details (Address + Contact) |
Consignee | Party | Yes | Recipient details (Address + Contact) |
ShippingDateTime | dateTime | Yes | Shipping date/time |
Details | ShipmentDetails | Yes | Package details |
ShipmentDetails Object
| Field | Type | Required | Description |
|---|
ActualWeight | Weight | Yes | Actual weight |
DescriptionOfGoods | string | Yes | Contents description |
NumberOfPieces | int | Yes | Number of pieces |
ProductGroup | string | Yes | "EXP" (Express) or "DOM" (Domestic) |
ProductType | string | Yes | Service type (see below) |
PaymentType | string | Yes | "P" (Prepaid), "C" (Collect), "3" (Third Party) |
CashOnDeliveryAmount | Money | No | COD amount |
Product Types
| Code | Description | Group |
|---|
PDX | Priority Document Express | EXP |
PPX | Priority Parcel Express | EXP |
PLX | Priority Letter Express | EXP |
DDX | Deferred Document Express | EXP |
DPX | Deferred Parcel Express | EXP |
OND | Overnight Domestic | DOM |
LabelInfo Object
| Field | Type | Description |
|---|
ReportID | int | Label template ID (9201 = A4, 9729 = A6) |
ReportType | string | "URL" or "RPT" |
Response: ShipmentCreationResponse
| Field | Type | Description |
|---|
HasErrors | boolean | True if errors occurred |
Notifications | Notification[] | Warnings/errors |
Shipments | ProcessedShipment[] | Created shipments |
ProcessedShipment Object
| Field | Type | Description |
|---|
ID | string | AWB number |
Reference1 | string | Your reference |
ShipmentLabel.LabelURL | string | URL to download label |
ShipmentLabel.LabelFileContents | base64 | Label file as base64 |
POSTPrintLabel
Retrieves a label for an existing shipment.
Request: LabelPrintingRequest
| Field | Type | Required | Description |
|---|
ClientInfo | ClientInfo | Yes | Authentication |
ShipmentNumber | string | Yes | AWB number |
ProductGroup | string | Yes | "EXP" or "DOM" |
OriginEntity | string | Yes | Origin entity code |
LabelInfo | LabelInfo | Yes | Label configuration |
POSTCreatePickup
Schedules a pickup for shipments.
Pickup Object
| Field | Type | Required | Description |
|---|
PickupAddress | Address | Yes | Pickup location address |
PickupContact | Contact | Yes | Pickup contact |
PickupLocation | string | Yes | Location description |
PickupDate | dateTime | Yes | Date for pickup |
ReadyTime | dateTime | Yes | When shipment is ready |
LastPickupTime | dateTime | Yes | Latest pickup time |
ClosingTime | dateTime | Yes | Location closing time |
PickupItems | PickupItemDetail[] | Yes | Pickup item details |
Response: ProcessedPickup
| Field | Type | Description |
|---|
ID | string | Pickup ID |
GUID | guid | Pickup GUID (use for cancellation) |
POSTCancelPickup
Cancels a scheduled pickup.
Request: PickupCancelationRequest
| Field | Type | Required | Description |
|---|
ClientInfo | ClientInfo | Yes | Authentication |
PickupGUID | string | Yes | Pickup GUID to cancel |
Comments | string | No | Cancellation reason |
2. Tracking API
Endpoint: https://ws.aramex.net/shippingapi/tracking/service_1_0.svc
POSTTrackShipments
Tracks one or more shipments by AWB number.
Request: ShipmentTrackingRequest
| Field | Type | Required | Description |
|---|
ClientInfo | ClientInfo | Yes | Authentication |
Shipments | string[] | Yes | Array of AWB numbers |
GetLastTrackingUpdateOnly | boolean | No | If true, only returns latest update |
Response: TrackingResult
| Field | Type | Description |
|---|
WaybillNumber | string | AWB number |
UpdateCode | string | Status code |
UpdateDescription | string | Status description |
UpdateDateTime | dateTime | Event timestamp |
UpdateLocation | string | Event location |
ProblemCode | string | Problem code (if any) |
3. Rate Calculator API
Endpoint: https://ws.aramex.net/shippingapi/ratecalculator/service_1_0.svc
POSTCalculateRate
Calculates shipping rates for a shipment.
Request: RateCalculatorRequest
| Field | Type | Required | Description |
|---|
ClientInfo | ClientInfo | Yes | Authentication |
OriginAddress | Address | Yes | Origin address |
DestinationAddress | Address | Yes | Destination address |
ShipmentDetails | ShipmentDetails | Yes | Package details |
Response: RateCalculatorResponse
| Field | Type | Description |
|---|
HasErrors | boolean | Error flag |
Notifications | Notification[] | Warnings/errors |
TotalAmount | Money | Calculated shipping rate |
4. Location API
Endpoint: https://ws.aramex.net/shippingapi/location/service_1_0.svc
POSTValidateAddress
Validates an address and returns suggestions.
Request
| Field | Type | Required | Description |
|---|
ClientInfo | ClientInfo | Yes | Authentication |
Address | Address | Yes | Address to validate |
Response
| Field | Type | Description |
|---|
HasErrors | boolean | Error flag |
SuggestedAddresses | Address[] | Suggested valid addresses |
POSTFetchCountries
Retrieves list of all countries supported by Aramex.
Response: Country Object
| Field | Type | Description |
|---|
Code | string | 2-letter Aramex code |
Name | string | Country name |
IsoCode | string | ISO country code |
StateRequired | boolean | Whether state is required |
PostCodeRequired | boolean | Whether postal code is required |
POSTFetchCities
Retrieves cities for a country/state.
Request
| Field | Type | Required | Description |
|---|
CountryCode | string | Yes | Country code |
State | string | No | State/province code |
NameStartsWith | string | No | Filter by city name prefix |
Response
Cities: string[] — List of city names
POSTFetchOffices
Retrieves Aramex office locations for a country.
Response: Office Object
| Field | Type | Description |
|---|
Entity | string | Office entity code |
EntityDescription | string | Entity description |
Address | Address | Office address |
Telephone | string | Phone number |
WorkingDays | string | Working days |
WorkingHours | string | Working hours |
Latitude | decimal | GPS latitude |
Longtitude | decimal | GPS longitude |
Error Handling
All responses include:
HasErrors (boolean) — True if the request failedNotifications (array) — Contains error/warning messages
Important: Always check HasErrors first. If true, iterate through Notifications to get error details.
Common Error Codes
| Code | Description |
|---|
ERR01 | Invalid credentials |
ERR02 | Account not active |
ERR03 | Missing required field |
ERR04 | Invalid field value |
ERR05 | Service not available |
Environments
| Service | Production | Test/Dev |
|---|
| Shipping | ws.aramex.net | ws.dev.aramex.net |
| Tracking | ws.aramex.net | ws.dev.aramex.net |
| Rates | ws.aramex.net | ws.dev.aramex.net |
| Location | ws.aramex.net | ws.dev.aramex.net |
Note: All endpoints use HTTPS and follow the path pattern: /shippingapi/{service}/service_1_0.svc