Skip to main content

Tracking AWB

Overview​

The Tracking AWB endpoint allows you to retrieve real-time shipment status using an airwaybill (AWB) number from supported couriers. This feature is essential for merchants and customers who want to monitor delivery progress, identify delays, or confirm successful delivery.

Tracking can be done for both domestic and international shipments, depending on the courier’s support.

Key Feature​

  • 🚚 Real-Time Tracking Updates
  • πŸ“¦ Supports Multiple Couriers
  • πŸ” Current and Historical Statuses
  • πŸ“ Location-based Tracking Events
  • πŸ•’ Estimated Delivery Time Insight

How it Works​

  1. The client sends a POST request to the tracking endpoint.
  2. The API forwards the request to RajaOngkir, which queries the courier’s system.
  3. A structured response is returned containing:
    • Shipment summary (status, service, origin, destination)
    • History of tracking events
    • Delivery status and receiver (if available)

Request Body​

curl --location --globoff --request POST 'https://rajaongkir.komerce.id/api/v1/track/waybill?awb={{%20awb_number%20}}&courier={{%20courier_name%20}}' \
--header 'key: inputapikey'

Query Parameter​

Headers​

KeyTypeDescription
key*stringthis Value contain an secret APIKEY identic for Shipping Cost API

Body x-www-form-urlencode​

KeyTypeDescription
awb*stringthis Value contain awb number
courier*stringthis Value contain the courier service
danger

For each header and parameter that has a * sign, it is a parameter that must be Required when making a request, otherwise there will be a system error that will warn the user regarding the request made.

Response​

Response Structure​

KeyValue (Description)
meta.messageResponse for searching address.
meta.codeAny response have different code.
meta.statusBoolean status for checking address.
data.deliveredBoolean indicating if the shipment has been delivered.
data.summary.courier_codeCode of the courier service (e.g. jne, sicepat).
data.summary.courier_nameFull name of the courier.
data.summary.waybill_numberThe shipment's tracking number (AWB).
data.summary.service_codeShipping service type code.
data.summary.waybill_dateDate the waybill was created.
data.summary.shipper_nameName of the sender.
data.summary.receiver_nameName of the receiver.
data.summary.originOrigin location (e.g., city or district).
data.summary.destinationDestination location.
data.summary.statusCurrent shipment status.
data.details.waybill_numberTracking number.
data.details.waybill_dateDate the shipment was created.
data.details.waybill_timeTime the shipment was created.
data.details.weightPackage weight.
data.details.originOrigin location.
data.details.destinationDestination location.
data.details.shipper_nameSender's name.
data.details.shipper_address1Sender address line 1.
data.details.shipper_address2Sender address line 2.
data.details.shipper_address3Sender address line 3.
data.details.shipper_citySender's city.
data.details.receiver_nameReceiver's name.
data.details.receiver_address1Receiver address line 1.
data.details.receiver_address2Receiver address line 2.
data.details.receiver_address3Receiver address line 3.
data.details.receiver_cityReceiver's city.
data.delivery_status.statusFinal delivery status (e.g., DELIVERED).
data.delivery_status.pod_receiverName of the person who received the package.
data.delivery_status.pod_dateDate the package was delivered.
data.delivery_status.pod_timeTime the package was delivered.
data.manifest[].manifest_codeCode indicating the manifest event.
data.manifest[].manifest_descriptionDescription of the event (e.g., "Package received").
data.manifest[].manifest_dateDate of the manifest event.
data.manifest[].manifest_timeTime of the manifest event.
data.manifest[].city_nameCity where the event occurred.

Success Respons for Tracking AWB​

{
"meta": {
"message": "{{ message }}",
"code": {{ code }},
"status": "{{ status }}"
},
"data": {
"delivered": {{ delivery_status }},
"summary": {
"courier_code": "{{ courier.code }}",
"courier_name": "{{ courier_name }}",
"waybill_number": "{{ awb.number }}",
"service_code": "{{ service.code }}",
"waybill_date": "{{ awb.date.created }}",
"shipper_name": "{{ shipper.name }}",
"receiver_name": "{{ receiver.name }}",
"origin": "{{ origin.location }}",
"destination": "{{ destination.location }}",
"status": "{{ status }}"
},
"details": {
"waybill_number": "{{ awb.number }}",
"waybill_date": "{{ awb.date.created }}",
"waybill_time": "{{ awb.time.created }}",
"weight": "{{ package.weight }}",
"origin": "{{origin.location }}",
"destination": "{{ destination.location }}",
"shipper_name": "{{ shipper.name }}",
"shipper_address1": "{{ shipper.address1 }}",
"shipper_address2": "{{ shipper.address2 }}",
"shipper_address3": "{{ shipper.address3 }}",
"shipper_city": "{{ shipper.city_name }}",
"receiver_name": "{{ receiver.name }}",
"receiver_address1": "{{ receiver.address1 }}",
"receiver_address2": "{{ receiver.address2 }}",
"receiver_address3": "{{ receiver.address3 }}",
"receiver_city": "{{ receiver.city_name }}"
},
"delivery_status": {
"status": "{{ delivery.status }}",
"pod_receiver": "{{ info.pod_receiver }}",
"pod_date": "{{ pod.date }}",
"pod_time": "{{ pod.time }}"
},
"manifest": [
{
"manifest_code": "{{ manifest.code }}",
"manifest_description": "{{ manifest.desc }}",
"manifest_date": "{{ manifest.date }}",
"manifest_time": "{{ manifest.time }}",
"city_name": "{{ point.city_name }}"
}
]
}
}

Error Respons for Tracking AWB​

{
"meta": {
"message": "{{ message }}",
"code": {{ code }},
"status": "{{ status }}"
},
"data": null
}

Status Code​

CodeStatusDescriptionHow to Fix
200Success
400ErrorMissing ParamsMake sure the request parameters that are sent match the required parameters.
404ErrorChecking AWB not foundThis error is unavoidable because the awb number to provide the desired data.

Tips to Avoid Error​

  • βœ… Double-check the AWB number β€” it must be valid and issued by the specified courier.
  • πŸ“¦ Ensure the courier supports tracking β€” not all partners provide real-time updates.
  • πŸ” Use the correct API Key β€” unauthorized or expired keys will result in a 401 error.
  • πŸ”„ Retry smartly β€” sometimes couriers may have delay in updating status. Implement retries with delay.
  • ⏳ Allow processing time β€” recently generated AWB might take a few minutes before it’s trackable.