Create an EasyPost tracker.
curl -X POST https://api.easypost.com/v2/trackers \
-u <YOUR_TEST/PRODUCTION_API_KEY>: \
-d 'tracker[tracking_code]=9400110898825022579493' \
-d 'tracker[carrier]=USPS'
var
rest: HCkRest;
success: Boolean;
bTls: Boolean;
port: Integer;
bAutoReconnect: Boolean;
strResponseBody: PWideChar;
jsonResponse: HCkJsonObject;
id: PWideChar;
object: PWideChar;
mode: PWideChar;
tracking_code: PWideChar;
status: PWideChar;
created_at: PWideChar;
updated_at: PWideChar;
signed_by: Boolean;
weight: Boolean;
est_delivery_date: Boolean;
shipment_id: Boolean;
carrier: PWideChar;
public_url: PWideChar;
carrier_detail: Boolean;
i: Integer;
count_i: Integer;
message: PWideChar;
datetime: PWideChar;
source: PWideChar;
tracking_locationObject: PWideChar;
tracking_locationCity: PWideChar;
tracking_locationState: PWideChar;
tracking_locationCountry: Boolean;
tracking_locationZip: PWideChar;
type: PWideChar;
amount: PWideChar;
charged: Boolean;
refunded: Boolean;
begin
rest := CkRest_Create();
// URL: https://api.easypost.com/v2/trackers
bTls := True;
port := 443;
bAutoReconnect := True;
success := CkRest_Connect(rest,'api.easypost.com',port,bTls,bAutoReconnect);
if (success <> True) then
begin
Memo1.Lines.Add('ConnectFailReason: ' + IntToStr(CkRest_getConnectFailReason(rest)));
Memo1.Lines.Add(CkRest__lastErrorText(rest));
Exit;
end;
CkRest_SetAuthBasic(rest,'<YOUR_TEST/PRODUCTION_API_KEY>','');
CkRest_AddQueryParam(rest,'tracker[tracking_code]','9400110898825022579493');
CkRest_AddQueryParam(rest,'tracker[carrier]','USPS');
strResponseBody := CkRest__fullRequestFormUrlEncoded(rest,'POST','/v2/trackers');
if (CkRest_getLastMethodSuccess(rest) <> True) then
begin
Memo1.Lines.Add(CkRest__lastErrorText(rest));
Exit;
end;
jsonResponse := CkJsonObject_Create();
CkJsonObject_Load(jsonResponse,strResponseBody);
id := CkJsonObject__stringOf(jsonResponse,'id');
object := CkJsonObject__stringOf(jsonResponse,'object');
mode := CkJsonObject__stringOf(jsonResponse,'mode');
tracking_code := CkJsonObject__stringOf(jsonResponse,'tracking_code');
status := CkJsonObject__stringOf(jsonResponse,'status');
created_at := CkJsonObject__stringOf(jsonResponse,'created_at');
updated_at := CkJsonObject__stringOf(jsonResponse,'updated_at');
signed_by := CkJsonObject_IsNullOf(jsonResponse,'signed_by');
weight := CkJsonObject_IsNullOf(jsonResponse,'weight');
est_delivery_date := CkJsonObject_IsNullOf(jsonResponse,'est_delivery_date');
shipment_id := CkJsonObject_IsNullOf(jsonResponse,'shipment_id');
carrier := CkJsonObject__stringOf(jsonResponse,'carrier');
public_url := CkJsonObject__stringOf(jsonResponse,'public_url');
carrier_detail := CkJsonObject_IsNullOf(jsonResponse,'carrier_detail');
i := 0;
count_i := CkJsonObject_SizeOfArray(jsonResponse,'tracking_details');
while i < count_i do
begin
CkJsonObject_putI(jsonResponse,i);
object := CkJsonObject__stringOf(jsonResponse,'tracking_details[i].object');
message := CkJsonObject__stringOf(jsonResponse,'tracking_details[i].message');
status := CkJsonObject__stringOf(jsonResponse,'tracking_details[i].status');
datetime := CkJsonObject__stringOf(jsonResponse,'tracking_details[i].datetime');
source := CkJsonObject__stringOf(jsonResponse,'tracking_details[i].source');
tracking_locationObject := CkJsonObject__stringOf(jsonResponse,'tracking_details[i].tracking_location.object');
tracking_locationCity := CkJsonObject__stringOf(jsonResponse,'tracking_details[i].tracking_location.city');
tracking_locationState := CkJsonObject__stringOf(jsonResponse,'tracking_details[i].tracking_location.state');
tracking_locationCountry := CkJsonObject_IsNullOf(jsonResponse,'tracking_details[i].tracking_location.country');
tracking_locationZip := CkJsonObject__stringOf(jsonResponse,'tracking_details[i].tracking_location.zip');
i := i + 1;
end;
i := 0;
count_i := CkJsonObject_SizeOfArray(jsonResponse,'fees');
while i < count_i do
begin
CkJsonObject_putI(jsonResponse,i);
object := CkJsonObject__stringOf(jsonResponse,'fees[i].object');
type := CkJsonObject__stringOf(jsonResponse,'fees[i].type');
amount := CkJsonObject__stringOf(jsonResponse,'fees[i].amount');
charged := CkJsonObject_BoolOf(jsonResponse,'fees[i].charged');
refunded := CkJsonObject_BoolOf(jsonResponse,'fees[i].refunded');
i := i + 1;
end;
CkRest_Dispose(rest);
CkJsonObject_Dispose(jsonResponse);
{
"id": "trk_c8e0edb5bb284caa934a0d3db23a148z",
"object": "Tracker",
"mode": "test",
"tracking_code": "9400110898825022579493",
"status": "in_transit",
"created_at": "2016-01-13T21:52:28Z",
"updated_at": "2016-01-13T21:52:32Z",
"signed_by": null,
"weight": null,
"est_delivery_date": null,
"shipment_id": null,
"carrier": "USPS",
"public_url": "https://track.easypost.com/djE6...",
"tracking_details": [
{
"object": "TrackingDetail",
"message": "Shipping Label Created",
"status": "pre_transit",
"datetime": "2015-12-31T15:58:00Z",
"source": "USPS",
"tracking_location": {
"object": "TrackingLocation",
"city": "FOUNTAIN VALLEY",
"state": "CA",
"country": null,
"zip": "92708"
}
},
{
"object": "TrackingDetail",
"message": "Arrived at Post Office",
"status": "in_transit",
"datetime": "2016-01-07T06:58:00Z",
"source": "USPS",
"tracking_location": {
"object": "TrackingLocation",
"city": "FOUNTAIN VALLEY",
"state": "CA",
"country": null,
"zip": "92728"
}
}
],
"carrier_detail": null,
"fees": [
{
"object": "Fee",
"type": "TrackerFee",
"amount": "0.00000",
"charged": true,
"refunded": false
}
]
}