Skip to content

Repository files navigation

trackingmore-sdk-java

The Java SDK of TrackingMore API

Contact: manage@trackingmore.org

Official document

Document

Index

  1. Installation
  2. Testing
  3. Error Handling
  4. SDK
    1. Couriers
    2. Trackings
    3. Air Waybill

Installation

Maven

<dependency>
<groupId>io.github.trackingmores</groupId>
<artifactId>trackingmore-sdk-java</artifactId>
<version>1.0.4</version>
</dependency>

Gradle

implementation "io.github.trackingmores:trackingmore-sdk-java:1.0.4"

Quick Start

packagecom.trackingmore.example.courier;
importcom.trackingmore.TrackingMore;
importcom.trackingmore.exception.TrackingMoreException;
importcom.trackingmore.model.TrackingMoreResponse;
importcom.trackingmore.model.courier.Courier;
importjava.io.IOException;
importjava.util.List;
publicclassDetectCourierExample {
publicstaticvoidmain(String[] args) {
try {
StringapiKey = "your api key";
TrackingMoretrackingMore = newTrackingMore(apiKey);
TrackingMoreResponse<List<Courier>> result = trackingMore.couriers.getAllCouriers();
System.out.println(result.getMeta().getCode());
List<Courier> couriers = result.getData();
for (Couriercourier : couriers) {
StringcourierName = courier.getCourierName();
StringcourierCode = courier.getCourierCode();
System.out.println(courierName+"---"+courierCode);
}
} catch (TrackingMoreExceptione) {
System.err.println("error:" + e.getMessage());
} catch (IOExceptione) {
System.err.println("error:" + e.getMessage());
}
}
}

Testing

mvn test or ./gradlew test

Error handling

Throw by the new SDK client

try {
StringapiKey = "";
TrackingMoretrackingMore = newTrackingMore(apiKey);
} catch (TrackingMoreExceptione) {
System.err.println("error:" + e.getMessage());
} /*API Key is missing*/

Throw by the parameter validation in function

try {
StringapiKey = "your api key";
TrackingMoretrackingMore = newTrackingMore(apiKey);
DetectParamsdetectParams = newDetectParams();
detectParams.setTrackingNumber("");
TrackingMoreResponse<List<Courier>> result = trackingMore.couriers.detect(detectParams);
} catch (TrackingMoreExceptione) {
System.err.println("error:" + e.getMessage());
} catch (IOExceptione) {
System.err.println("error:" + e.getMessage());
}
/*Tracking number cannot be empty*/

Examples

Couriers

Return a list of all supported couriers.

https://api.trackingmore.com/v4/couriers/all

try {
StringapiKey = "your api key";
TrackingMoretrackingMore = newTrackingMore(apiKey);
TrackingMoreResponse<List<Courier>> result = trackingMore.couriers.getAllCouriers();
System.out.println(result.getMeta().getCode());
List<Courier> couriers = result.getData();
for (Couriercourier : couriers) {
StringcourierName = courier.getCourierName();
StringcourierCode = courier.getCourierCode();
System.out.println(courierName+"---"+courierCode);
}
} catch (TrackingMoreExceptione) {
System.err.println("error:" + e.getMessage());
} catch (IOExceptione) {
System.err.println("error:" + e.getMessage());
}
Return a list of matched couriers based on submitted tracking number.

https://api.trackingmore.com/v4/couriers/detect

try {
StringapiKey = "your api key";
TrackingMoretrackingMore = newTrackingMore(apiKey);
DetectParamsdetectParams = newDetectParams();
detectParams.setTrackingNumber("92642903289511563030094932");
TrackingMoreResponse<List<Courier>> result = trackingMore.couriers.detect(detectParams);
System.out.println(result.getMeta().getCode());
List<Courier> couriers = result.getData();
for (Couriercourier : couriers) {
StringcourierName = courier.getCourierName();
StringcourierCode = courier.getCourierCode();
System.out.println(courierName+"---"+courierCode);
}
} catch (TrackingMoreExceptione) {
System.err.println("error:" + e.getMessage());
} catch (IOExceptione) {
System.err.println("error:" + e.getMessage());
}

Trackings

Create a tracking.

https://api.trackingmore.com/v4/trackings/create

try {
StringapiKey = "your api key";
TrackingMoretrackingMore = newTrackingMore(apiKey);
CreateTrackingParamscreateTrackingParams = newCreateTrackingParams();
createTrackingParams.setTrackingNumber("92612903029511573030094537");
createTrackingParams.setCourierCode("usps");
TrackingMoreResponse<Tracking> result = trackingMore.trackings.CreateTracking(createTrackingParams);
System.out.println(result.getMeta().getCode());
if(result.getData() != null){
Trackingtrackings = result.getData();
System.out.println(trackings);
System.out.println(trackings.getTrackingNumber());
}
} catch (TrackingMoreExceptione) {
System.err.println("error:" + e.getMessage());
} catch (IOExceptione) {
System.err.println("error:" + e.getMessage());
}
Get tracking results of multiple trackings.

https://api.trackingmore.com/v4/trackings/get

try {
StringapiKey = "your api key";
TrackingMoretrackingMore = newTrackingMore(apiKey);
GetTrackingResultsParamstrackingParams = newGetTrackingResultsParams();
trackingParams.setTrackingNumbers("92612903029511573030094537,92612903029511573030094531");
trackingParams.setCourierCode("usps");
trackingParams.setCreatedDateMin("2023-08-23T06:00:00+00:00");
trackingParams.setCreatedDateMax("2023-09-18T06:00:00+00:00");
TrackingMoreResponse<List<Tracking>> result = trackingMore.trackings.GetTrackingResults(trackingParams);
System.out.println(result.getMeta().getCode());
List<Tracking> trackings = result.getData();
for (Trackingtracking : trackings) {
StringtrackingNumber = tracking.getTrackingNumber();
StringcourierCode = tracking.getCourierCode();
System.out.println("Tracking Number: " + trackingNumber);
System.out.println("Courier Code: " + courierCode);
}
} catch (TrackingMoreExceptione) {
System.err.println("error:" + e.getMessage());
} catch (IOExceptione) {
System.err.println("error:" + e.getMessage());
}
Create multiple trackings (Max. 40 tracking numbers create in one call).

https://api.trackingmore.com/v4/trackings/batch

try {
StringapiKey = "your api key";
TrackingMoretrackingMore = newTrackingMore(apiKey);
List<CreateTrackingParams> paramsList = newArrayList<>();
CreateTrackingParamscreateTrackingParams1 = newCreateTrackingParams();
createTrackingParams1.setTrackingNumber("92632903279511573030094832");
createTrackingParams1.setCourierCode("usps");
CreateTrackingParamscreateTrackingParams2 = newCreateTrackingParams();
createTrackingParams2.setTrackingNumber("92642903289511563039994932");
createTrackingParams2.setCourierCode("usps");
paramsList.add(createTrackingParams1);
paramsList.add(createTrackingParams2);
TrackingMoreResponse<BatchResults> result = trackingMore.trackings.BatchCreateTrackings(paramsList);
System.out.println(result.getMeta().getCode());
BatchResultsbatchResults = result.getData();
if(result.getData() != null){
System.out.println(batchResults);
for (BatchItembatchItem : batchResults.getSuccess()) {
StringtrackingNumber = batchItem.getTrackingNumber();
StringcourierCode = batchItem.getCourierCode();
System.out.println("Tracking Number: " + trackingNumber);
System.out.println("Courier Code: " + courierCode);
}
for (BatchItembatchItem : batchResults.getError()) {
StringtrackingNumber = batchItem.getTrackingNumber();
StringcourierCode = batchItem.getCourierCode();
System.out.println("Tracking Number: " + trackingNumber);
System.out.println("Courier Code: " + courierCode);
}
}
} catch (TrackingMoreExceptione) {
System.err.println("error:" + e.getMessage());
} catch (IOExceptione) {
System.err.println("error:" + e.getMessage());
}
Update a tracking by ID.

https://api.trackingmore.com/v4/trackings/update/{id}

try {
StringapiKey = "your api key";
TrackingMoretrackingMore = newTrackingMore(apiKey);
StringidString = "9a035f5cdd0437c55d48e223c705a66c";
UpdateTrackingParamsupdateTrackingParams = newUpdateTrackingParams();
updateTrackingParams.setCustomerName("New name");
updateTrackingParams.setNote("New tests order note");
TrackingMoreResponse<UpdateTracking> result = trackingMore.trackings.UpdateTrackingByID(idString, updateTrackingParams);
System.out.println(result.getMeta().getCode());
System.out.println(result.getData());
if(result.getData() != null){
UpdateTrackingupdateTracking= result.getData();
System.out.println(updateTracking);
System.out.println(updateTracking.getTrackingNumber());
}
} catch (TrackingMoreExceptione) {
System.err.println("error:" + e.getMessage());
} catch (IOExceptione) {
System.err.println("error:" + e.getMessage());
}
Delete a tracking by ID.

https://api.trackingmore.com/v4/trackings/delete/{id}

try {
StringapiKey = "your api key";
TrackingMoretrackingMore = newTrackingMore(apiKey);
StringidString = "9a28d8ba030596de70c1b0134cdc8b0d";
TrackingMoreResponse<Tracking> result = trackingMore.trackings.DeleteTrackingByID(idString);
System.out.println(result);
System.out.println(result.getMeta().getCode());
if(result.getData() != null) {
Trackingtrackings = result.getData();
System.out.println(trackings);
System.out.println(trackings.getTrackingNumber());
}
} catch (TrackingMoreExceptione) {
System.err.println("error:" + e.getMessage());
} catch (IOExceptione) {
System.err.println("error:" + e.getMessage());
}
Retrack expired tracking by ID.

https://api.trackingmore.com/v4/trackings/retrack/{id}

try {
StringapiKey = "your api key";
TrackingMoretrackingMore = newTrackingMore(apiKey);
StringidString = "9a035f5cdd0437c55d48e223c705a66c";
TrackingMoreResponse<Tracking> result = trackingMore.trackings.RetrackTrackingByID(idString);
System.out.println(result);
System.out.println(result.getMeta().getCode());
if(result.getData() != null){
Trackingtracking= result.getData();
System.out.println(tracking);
System.out.println(tracking.getTrackingNumber());
}
} catch (TrackingMoreExceptione) {
System.err.println("error:" + e.getMessage());
} catch (IOExceptione) {
System.err.println("error:" + e.getMessage());
}

Air Waybill

Create an air waybill.

https://api.trackingmore.com/v4/awb

try {
StringapiKey = "your api key";
TrackingMoretrackingMore = newTrackingMore(apiKey);
AirWaybillParamsairWaybillParams = newAirWaybillParams();
airWaybillParams.setAwbNumber("235-69030430");
TrackingMoreResponseresult = trackingMore.airWaybills.CreateAnAirWayBill(airWaybillParams);
System.out.println(result.getMeta().getCode());
if(result.getData() != null){
AirWaybillairWaybills = (AirWaybill) result.getData();
System.out.println(airWaybills);
System.out.println(airWaybills.getAwbNumber());
System.out.println(airWaybills.getAirlineInfo().getName());
System.out.println(airWaybills.getFlightInfo().get("TK0721").getDepartStation());
}
} catch (TrackingMoreExceptione) {
System.err.println("error:" + e.getMessage());
} catch (IOExceptione) {
System.err.println("error:" + e.getMessage());
}

Response Code

Trackingmore uses conventional HTTP response codes to indicate success or failure of an API request. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that resulted from the provided information (e.g. a required parameter was missing, a charge failed, etc.), and codes in the 5xx range indicate an TrackingMore's server error.

Http CODEMETA CODETYPEMESSAGE
200200SuccessRequest response is successful
400400BadRequestRequest type error. Please check the API documentation for the request type of this API.
4004101BadRequestTracking No. already exists.
4004102BadRequestTracking No. no exists. Please use 「Create a tracking」 API first to create shipment.
4004103BadRequestYou have exceeded the shipment quantity of API call. The maximum quantity is 40 shipments per call.
4004110BadRequestThe value of tracking_number is invalid.
4004111BadRequestTracking_number is required.
4004112BadRequestInvalid Tracking ID.
4004113BadRequestRetrack is not allowed. You can only retrack an expired tracking.
4004120BadRequestThe value of courier_code is invalid.
4004121BadRequestCannot detect courier.
4004122BadRequestMissing or invalid value of the special required fields for this courier.
4004130BadRequestThe format of Field name is invalid.
4004160BadRequestThe awb_number is required or invaild format.
4004161BadRequestThe awb airline does not support yet.
4004190BadRequestYou are reaching the maximum quota limitation, please upgrade your current plan.
401401UnauthorizedAuthentication failed or has no permission. Please check and ensure your API Key is correct.
403403ForbiddenAccess prohibited. The request has been refused or access is not allowed.
404404NotFoundPage does not exist. Please check and ensure your link is correct.
429429TooManyRequestsExceeded API request limits, please try again later. Please check the API documentation for the limit of this API.
500511ServerErrorServer error. Please contact us: service@trackingmore.org.
500512ServerErrorServer error. Please contact us: service@trackingmore.org.
500513ServerErrorServer error. Please contact us: service@trackingmore.org.

About

The Java SDK of TrackingMore API

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages