Create an EasyPost order.
curl -X POST https://api.easypost.com/v2/orders \
-u <YOUR_TEST/PRODUCTION_API_KEY>: \
-d "order[to_address][id]=adr_..." \
-d "order[from_address][id]=adr_..." \
-d "order[shipments][0][parcel][predefined_package]=FedExBox" \
-d "order[shipments][0][parcel][weight]=10.2" \
-d "order[shipments][1][parcel][predefined_package]=FedExBox" \
-d "order[shipments][1][parcel][weight]=17.5"
var
rest: HCkRest;
success: Boolean;
bTls: Boolean;
port: Integer;
bAutoReconnect: Boolean;
strResponseBody: PWideChar;
jsonResponse: HCkJsonObject;
id: PWideChar;
mode: PWideChar;
reference: Boolean;
is_return: Boolean;
optionsCurrency: PWideChar;
optionsLabel_date: Boolean;
created_at: PWideChar;
updated_at: PWideChar;
customs_info: Boolean;
object: PWideChar;
i: Integer;
count_i: Integer;
status: PWideChar;
tracking_code: Boolean;
batch_id: Boolean;
batch_status: Boolean;
batch_message: Boolean;
parcelId: PWideChar;
parcelObject: PWideChar;
parcelLength: Integer;
parcelWidth: Integer;
parcelHeight: Integer;
parcelPredefined_package: Boolean;
parcelWeight: Integer;
parcelCreated_at: PWideChar;
parcelUpdated_at: PWideChar;
postage_label: Boolean;
refund_status: Boolean;
scan_form: Boolean;
selected_rate: Boolean;
tracker: Boolean;
j: Integer;
count_j: Integer;
created_at_bool: Boolean;
updated_at_bool: Boolean;
service: PWideChar;
carrier: PWideChar;
rate: PWideChar;
currency: PWideChar;
retail_rate: Boolean;
retail_currency: Boolean;
list_rate: Boolean;
list_currency: Boolean;
delivery_days: Integer;
delivery_date: PWideChar;
delivery_date_guaranteed: Boolean;
est_delivery_days: Boolean;
shipment_id: PWideChar;
carrier_account_id: PWideChar;
begin
rest := CkRest_Create();
// URL: https://api.easypost.com/v2/orders
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,'order[to_address][id]','adr_...');
CkRest_AddQueryParam(rest,'order[from_address][id]','adr_...');
CkRest_AddQueryParam(rest,'order[shipments][0][parcel][predefined_package]','FedExBox');
CkRest_AddQueryParam(rest,'order[shipments][0][parcel][weight]','10.2');
CkRest_AddQueryParam(rest,'order[shipments][1][parcel][predefined_package]','FedExBox');
CkRest_AddQueryParam(rest,'order[shipments][1][parcel][weight]','17.5');
strResponseBody := CkRest__fullRequestFormUrlEncoded(rest,'POST','/v2/orders');
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');
mode := CkJsonObject__stringOf(jsonResponse,'mode');
reference := CkJsonObject_IsNullOf(jsonResponse,'reference');
is_return := CkJsonObject_BoolOf(jsonResponse,'is_return');
optionsCurrency := CkJsonObject__stringOf(jsonResponse,'options.currency');
optionsLabel_date := CkJsonObject_IsNullOf(jsonResponse,'options.label_date');
created_at := CkJsonObject__stringOf(jsonResponse,'created_at');
updated_at := CkJsonObject__stringOf(jsonResponse,'updated_at');
customs_info := CkJsonObject_IsNullOf(jsonResponse,'customs_info');
object := CkJsonObject__stringOf(jsonResponse,'object');
i := 0;
count_i := CkJsonObject_SizeOfArray(jsonResponse,'messages');
while i < count_i do
begin
CkJsonObject_putI(jsonResponse,i);
i := i + 1;
end;
i := 0;
count_i := CkJsonObject_SizeOfArray(jsonResponse,'shipments');
while i < count_i do
begin
CkJsonObject_putI(jsonResponse,i);
id := CkJsonObject__stringOf(jsonResponse,'shipments[i].id');
created_at := CkJsonObject__stringOf(jsonResponse,'shipments[i].created_at');
updated_at := CkJsonObject__stringOf(jsonResponse,'shipments[i].updated_at');
is_return := CkJsonObject_BoolOf(jsonResponse,'shipments[i].is_return');
mode := CkJsonObject__stringOf(jsonResponse,'shipments[i].mode');
optionsCurrency := CkJsonObject__stringOf(jsonResponse,'shipments[i].options.currency');
optionsLabel_date := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].options.label_date');
reference := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].reference');
status := CkJsonObject__stringOf(jsonResponse,'shipments[i].status');
tracking_code := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].tracking_code');
batch_id := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].batch_id');
batch_status := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].batch_status');
batch_message := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].batch_message');
parcelId := CkJsonObject__stringOf(jsonResponse,'shipments[i].parcel.id');
parcelObject := CkJsonObject__stringOf(jsonResponse,'shipments[i].parcel.object');
parcelLength := CkJsonObject_IntOf(jsonResponse,'shipments[i].parcel.length');
parcelWidth := CkJsonObject_IntOf(jsonResponse,'shipments[i].parcel.width');
parcelHeight := CkJsonObject_IntOf(jsonResponse,'shipments[i].parcel.height');
parcelPredefined_package := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].parcel.predefined_package');
parcelWeight := CkJsonObject_IntOf(jsonResponse,'shipments[i].parcel.weight');
parcelCreated_at := CkJsonObject__stringOf(jsonResponse,'shipments[i].parcel.created_at');
parcelUpdated_at := CkJsonObject__stringOf(jsonResponse,'shipments[i].parcel.updated_at');
customs_info := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].customs_info');
postage_label := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].postage_label');
refund_status := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].refund_status');
scan_form := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].scan_form');
selected_rate := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].selected_rate');
tracker := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].tracker');
object := CkJsonObject__stringOf(jsonResponse,'shipments[i].object');
j := 0;
count_j := CkJsonObject_SizeOfArray(jsonResponse,'shipments[i].messages');
while j < count_j do
begin
CkJsonObject_putJ(jsonResponse,j);
j := j + 1;
end;
j := 0;
count_j := CkJsonObject_SizeOfArray(jsonResponse,'shipments[i].rates');
while j < count_j do
begin
CkJsonObject_putJ(jsonResponse,j);
id := CkJsonObject__stringOf(jsonResponse,'shipments[i].rates[j].id');
object := CkJsonObject__stringOf(jsonResponse,'shipments[i].rates[j].object');
created_at_bool := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].rates[j].created_at');
updated_at_bool := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].rates[j].updated_at');
mode := CkJsonObject__stringOf(jsonResponse,'shipments[i].rates[j].mode');
service := CkJsonObject__stringOf(jsonResponse,'shipments[i].rates[j].service');
carrier := CkJsonObject__stringOf(jsonResponse,'shipments[i].rates[j].carrier');
rate := CkJsonObject__stringOf(jsonResponse,'shipments[i].rates[j].rate');
currency := CkJsonObject__stringOf(jsonResponse,'shipments[i].rates[j].currency');
retail_rate := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].rates[j].retail_rate');
retail_currency := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].rates[j].retail_currency');
list_rate := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].rates[j].list_rate');
list_currency := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].rates[j].list_currency');
delivery_days := CkJsonObject_IntOf(jsonResponse,'shipments[i].rates[j].delivery_days');
delivery_date := CkJsonObject__stringOf(jsonResponse,'shipments[i].rates[j].delivery_date');
delivery_date_guaranteed := CkJsonObject_BoolOf(jsonResponse,'shipments[i].rates[j].delivery_date_guaranteed');
est_delivery_days := CkJsonObject_IsNullOf(jsonResponse,'shipments[i].rates[j].est_delivery_days');
shipment_id := CkJsonObject__stringOf(jsonResponse,'shipments[i].rates[j].shipment_id');
carrier_account_id := CkJsonObject__stringOf(jsonResponse,'shipments[i].rates[j].carrier_account_id');
j := j + 1;
end;
j := 0;
count_j := CkJsonObject_SizeOfArray(jsonResponse,'shipments[i].forms');
while j < count_j do
begin
CkJsonObject_putJ(jsonResponse,j);
j := j + 1;
end;
j := 0;
count_j := CkJsonObject_SizeOfArray(jsonResponse,'shipments[i].fees');
while j < count_j do
begin
CkJsonObject_putJ(jsonResponse,j);
j := j + 1;
end;
i := i + 1;
end;
i := 0;
count_i := CkJsonObject_SizeOfArray(jsonResponse,'rates');
while i < count_i do
begin
CkJsonObject_putI(jsonResponse,i);
id := CkJsonObject__stringOf(jsonResponse,'rates[i].id');
object := CkJsonObject__stringOf(jsonResponse,'rates[i].object');
created_at_bool := CkJsonObject_IsNullOf(jsonResponse,'rates[i].created_at');
updated_at_bool := CkJsonObject_IsNullOf(jsonResponse,'rates[i].updated_at');
mode := CkJsonObject__stringOf(jsonResponse,'rates[i].mode');
service := CkJsonObject__stringOf(jsonResponse,'rates[i].service');
carrier := CkJsonObject__stringOf(jsonResponse,'rates[i].carrier');
rate := CkJsonObject__stringOf(jsonResponse,'rates[i].rate');
currency := CkJsonObject__stringOf(jsonResponse,'rates[i].currency');
retail_rate := CkJsonObject_IsNullOf(jsonResponse,'rates[i].retail_rate');
retail_currency := CkJsonObject_IsNullOf(jsonResponse,'rates[i].retail_currency');
list_rate := CkJsonObject_IsNullOf(jsonResponse,'rates[i].list_rate');
list_currency := CkJsonObject_IsNullOf(jsonResponse,'rates[i].list_currency');
delivery_days := CkJsonObject_IntOf(jsonResponse,'rates[i].delivery_days');
delivery_date := CkJsonObject__stringOf(jsonResponse,'rates[i].delivery_date');
delivery_date_guaranteed := CkJsonObject_BoolOf(jsonResponse,'rates[i].delivery_date_guaranteed');
est_delivery_days := CkJsonObject_IsNullOf(jsonResponse,'rates[i].est_delivery_days');
shipment_id := CkJsonObject__stringOf(jsonResponse,'rates[i].shipment_id');
carrier_account_id := CkJsonObject__stringOf(jsonResponse,'rates[i].carrier_account_id');
i := i + 1;
end;
CkRest_Dispose(rest);
CkJsonObject_Dispose(jsonResponse);
{
"id": "order_b39d44e7059a46c8a787174e8320bf1c",
"mode": "test",
"reference": null,
"is_return": false,
"options": {
"currency": "USD",
"label_date": null
},
"messages": [
],
"created_at": "2016-02-17T02:51:04Z",
"updated_at": "2016-02-17T02:51:04Z",
"customs_info": null,
"to_address": {},
"from_address": {},
"buyer_address": {},
"return_address": {},
"shipments": [
{
"id": "shp_7a387659db374a8ea197d7bba3009d5d",
"created_at": "2016-02-17T02:51:04Z",
"updated_at": "2016-02-17T02:51:10Z",
"is_return": false,
"messages": [
],
"mode": "test",
"options": {
"currency": "USD",
"label_date": null
},
"reference": null,
"status": "unknown",
"tracking_code": null,
"batch_id": null,
"batch_status": null,
"batch_message": null,
"parcel": {
"id": "prcl_071994637e1046ab98a79f96d8b26488",
"object": "Parcel",
"length": 20.2,
"width": 10.9,
"height": 5.0,
"predefined_package": null,
"weight": 17.5,
"created_at": "2013-04-22T05:39:57Z",
"updated_at": "2013-04-22T05:39:57Z"
},
"customs_info": null,
"to_address": {},
"from_address": {},
"buyer_address": {},
"return_address": {},
"postage_label": null,
"rates": [
{
"id": "rate_1f168714581b40af965dd740ddf35f69",
"object": "Rate",
"created_at": null,
"updated_at": null,
"mode": "test",
"service": "PRIORITY_OVERNIGHT",
"carrier": "FedEx",
"rate": "47.36",
"currency": "USD",
"retail_rate": null,
"retail_currency": null,
"list_rate": null,
"list_currency": null,
"delivery_days": 1,
"delivery_date": "2016-02-18T10:30:00Z",
"delivery_date_guaranteed": true,
"est_delivery_days": null,
"shipment_id": "shp_b701a9da21424a5f85a09530c9f924aa",
"carrier_account_id": "ca_f02596dcabbb46a8ba823280efc277bb"
},
{
"id": "rate_1567998062c445ab909daf872461d15e",
"object": "Rate",
"created_at": null,
"updated_at": null,
"mode": "test",
"service": "STANDARD_OVERNIGHT",
"carrier": "FedEx",
"rate": "118.00",
"currency": "USD",
"retail_rate": null,
"retail_currency": null,
"list_rate": null,
"list_currency": null,
"delivery_days": 1,
"delivery_date": "2016-02-18T15:00:00Z",
"delivery_date_guaranteed": true,
"est_delivery_days": null,
"shipment_id": "shp_b701a9da21424a5f85a09530c9f924aa",
"carrier_account_id": "ca_f02596dcabbb46a8ba823280efc277bb"
},
{
"id": "rate_f9a9706f99754609a60b2ec512e82cbf",
"object": "Rate",
"created_at": null,
"updated_at": null,
"mode": "test",
"service": "FEDEX_GROUND",
"carrier": "FedEx",
"rate": "17.96",
"currency": "USD",
"retail_rate": null,
"retail_currency": null,
"list_rate": null,
"list_currency": null,
"delivery_days": 4,
"delivery_date": null,
"delivery_date_guaranteed": false,
"est_delivery_days": null,
"shipment_id": "shp_b701a9da21424a5f85a09530c9f924aa",
"carrier_account_id": "ca_f02596dcabbb46a8ba823280efc277bb"
}
],
"refund_status": null,
"scan_form": null,
"selected_rate": null,
"tracker": null,
"forms": [
],
"fees": [
],
"object": "Shipment"
},
{
"id": "shp_b25c22b64a7f45bd859e826d3701471c",
"created_at": "2016-02-17T02:51:04Z",
"updated_at": "2016-02-17T02:51:10Z",
"is_return": false,
"messages": [
],
"mode": "test",
"options": {
"currency": "USD",
"label_date": null
},
"reference": null,
"status": "unknown",
"tracking_code": null,
"batch_id": null,
"batch_status": null,
"batch_message": null,
"parcel": {
"id": "prcl_307ea2f3486544e58d5496fc840f6376",
"object": "Parcel",
"length": 7.2,
"width": 1.9,
"height": 1.0,
"predefined_package": null,
"weight": 10.8,
"created_at": "2013-04-22T05:39:57Z",
"updated_at": "2013-04-22T05:39:57Z"
},
"customs_info": null,
"to_address": {},
"from_address": {},
"buyer_address": {},
"return_address": {},
"postage_label": null,
"rates": [
],
"refund_status": null,
"scan_form": null,
"selected_rate": null,
"tracker": null,
"forms": [
],
"fees": [
],
"object": "Shipment"
}
],
"rates": [
{
"id": "rate_1f168714581b40af965dd740ddf35f69",
"object": "Rate",
"created_at": null,
"updated_at": null,
"mode": "test",
"service": "PRIORITY_OVERNIGHT",
"carrier": "FedEx",
"rate": "47.36",
"currency": "USD",
"retail_rate": null,
"retail_currency": null,
"list_rate": null,
"list_currency": null,
"delivery_days": 1,
"delivery_date": "2016-02-18T10:30:00Z",
"delivery_date_guaranteed": true,
"est_delivery_days": null,
"shipment_id": "shp_7a387659db374a8ea197d7bba3009d5d",
"carrier_account_id": "ca_f02596dcabbb46a8ba823280efc277bb"
},
{
"id": "rate_1567998062c445ab909daf872461d15e",
"object": "Rate",
"created_at": null,
"updated_at": null,
"mode": "test",
"service": "STANDARD_OVERNIGHT",
"carrier": "FedEx",
"rate": "118.00",
"currency": "USD",
"retail_rate": null,
"retail_currency": null,
"list_rate": null,
"list_currency": null,
"delivery_days": 1,
"delivery_date": "2016-02-18T15:00:00Z",
"delivery_date_guaranteed": true,
"est_delivery_days": null,
"shipment_id": "shp_7a387659db374a8ea197d7bba3009d5d",
"carrier_account_id": "ca_f02596dcabbb46a8ba823280efc277bb"
},
{
"id": "rate_f9a9706f99754609a60b2ec512e82cbf",
"object": "Rate",
"created_at": null,
"updated_at": null,
"mode": "test",
"service": "FEDEX_GROUND",
"carrier": "FedEx",
"rate": "17.96",
"currency": "USD",
"retail_rate": null,
"retail_currency": null,
"list_rate": null,
"list_currency": null,
"delivery_days": 4,
"delivery_date": null,
"delivery_date_guaranteed": false,
"est_delivery_days": null,
"shipment_id": "shp_7a387659db374a8ea197d7bba3009d5d",
"carrier_account_id": "ca_f02596dcabbb46a8ba823280efc277bb"
}
],
"object": "Order"
}