Delphi DLL EasyPost: Create an Insurance

Back to Index

Create an insurance object.

Documentation: https://www.easypost.com/docs/api#insurance

CURL Command

curl -X POST https://api.easypost.com/v2/insurances \
  -u <YOUR_TEST/PRODUCTION_API_KEY>: \
  -d 'insurance[to_address][id]=adr_...' \
  -d 'insurance[from_address][id]=adr_...' \
  -d 'insurance[tracking_code]=9400110898825022579493' \
  -d 'insurance[carrier]=USPS' \
  -d 'insurance[reference]=insuranceRef1' \
  -d 'insurance[amount]=100.00'

Delphi DLL Example

var
rest: HCkRest;
success: Boolean;
bTls: Boolean;
port: Integer;
bAutoReconnect: Boolean;
strResponseBody: PWideChar;
jsonResponse: HCkJsonObject;
id: PWideChar;
object: PWideChar;
mode: PWideChar;
reference: Boolean;
status: PWideChar;
amount: PWideChar;
provider: PWideChar;
provider_id: Integer;
to_addressId: PWideChar;
to_addressObject: PWideChar;
to_addressCreated_at: PWideChar;
to_addressUpdated_at: PWideChar;
to_addressName: PWideChar;
to_addressCompany: Boolean;
to_addressStreet1: PWideChar;
to_addressStreet2: PWideChar;
to_addressCity: PWideChar;
to_addressState: PWideChar;
to_addressZip: PWideChar;
to_addressCountry: PWideChar;
to_addressPhone: PWideChar;
to_addressEmail: Boolean;
to_addressMode: PWideChar;
to_addressCarrier_facility: Boolean;
to_addressResidential: Boolean;
to_addressFederal_tax_id: Boolean;
to_addressState_tax_id: Boolean;
to_addressVerificationsDeliverySuccess: Boolean;
to_addressVerificationsDeliveryDetailsLatitude: Integer;
to_addressVerificationsDeliveryDetailsLongitude: Integer;
from_addressId: PWideChar;
from_addressObject: PWideChar;
from_addressCreated_at: PWideChar;
from_addressUpdated_at: PWideChar;
from_addressName: Boolean;
from_addressCompany: PWideChar;
from_addressStreet1: PWideChar;
from_addressStreet2: PWideChar;
from_addressCity: PWideChar;
from_addressState: PWideChar;
from_addressZip: PWideChar;
from_addressCountry: PWideChar;
from_addressPhone: PWideChar;
from_addressEmail: Boolean;
from_addressMode: PWideChar;
from_addressCarrier_facility: Boolean;
from_addressResidential: Boolean;
from_addressFederal_tax_id: Boolean;
from_addressState_tax_id: Boolean;
from_addressVerificationsDeliverySuccess: Boolean;
from_addressVerificationsDeliveryDetailsLongitude: Integer;
from_addressVerificationsDeliveryDetailsLatitude: Integer;
shipment_id: Boolean;
trackerId: PWideChar;
trackerObject: PWideChar;
trackerMode: PWideChar;
trackerTracking_code: PWideChar;
trackerStatus: PWideChar;
trackerCreated_at: PWideChar;
trackerUpdated_at: PWideChar;
trackerSigned_by: Boolean;
trackerWeight: Boolean;
trackerEst_delivery_date: PWideChar;
trackerShipment_id: PWideChar;
trackerCarrier: PWideChar;
trackerCarrier_detailObject: PWideChar;
trackerCarrier_detailService: PWideChar;
trackerCarrier_detailContainer_type: Boolean;
trackerCarrier_detailEst_delivery_date_local: Boolean;
trackerCarrier_detailEst_delivery_time_local: Boolean;
trackerCarrier_detailOrigin_location: PWideChar;
trackerCarrier_detailDestination_location: PWideChar;
trackerPublic_url: PWideChar;
tracking_code: PWideChar;
feeObject: PWideChar;
feeType: PWideChar;
feeAmount: PWideChar;
feeCharged: Boolean;
feeRefunded: Boolean;
created_at: PWideChar;
updated_at: PWideChar;
i: Integer;
count_i: Integer;

begin
rest := CkRest_Create();

//  URL: https://api.easypost.com/v2/insurances
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,'insurance[to_address][id]','adr_...');
CkRest_AddQueryParam(rest,'insurance[from_address][id]','adr_...');
CkRest_AddQueryParam(rest,'insurance[tracking_code]','9400110898825022579493');
CkRest_AddQueryParam(rest,'insurance[carrier]','USPS');
CkRest_AddQueryParam(rest,'insurance[reference]','insuranceRef1');
CkRest_AddQueryParam(rest,'insurance[amount]','100.00');

strResponseBody := CkRest__fullRequestFormUrlEncoded(rest,'POST','/v2/insurances');
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');
reference := CkJsonObject_IsNullOf(jsonResponse,'reference');
status := CkJsonObject__stringOf(jsonResponse,'status');
amount := CkJsonObject__stringOf(jsonResponse,'amount');
provider := CkJsonObject__stringOf(jsonResponse,'provider');
provider_id := CkJsonObject_IntOf(jsonResponse,'provider_id');
to_addressId := CkJsonObject__stringOf(jsonResponse,'to_address.id');
to_addressObject := CkJsonObject__stringOf(jsonResponse,'to_address.object');
to_addressCreated_at := CkJsonObject__stringOf(jsonResponse,'to_address.created_at');
to_addressUpdated_at := CkJsonObject__stringOf(jsonResponse,'to_address.updated_at');
to_addressName := CkJsonObject__stringOf(jsonResponse,'to_address.name');
to_addressCompany := CkJsonObject_IsNullOf(jsonResponse,'to_address.company');
to_addressStreet1 := CkJsonObject__stringOf(jsonResponse,'to_address.street1');
to_addressStreet2 := CkJsonObject__stringOf(jsonResponse,'to_address.street2');
to_addressCity := CkJsonObject__stringOf(jsonResponse,'to_address.city');
to_addressState := CkJsonObject__stringOf(jsonResponse,'to_address.state');
to_addressZip := CkJsonObject__stringOf(jsonResponse,'to_address.zip');
to_addressCountry := CkJsonObject__stringOf(jsonResponse,'to_address.country');
to_addressPhone := CkJsonObject__stringOf(jsonResponse,'to_address.phone');
to_addressEmail := CkJsonObject_IsNullOf(jsonResponse,'to_address.email');
to_addressMode := CkJsonObject__stringOf(jsonResponse,'to_address.mode');
to_addressCarrier_facility := CkJsonObject_IsNullOf(jsonResponse,'to_address.carrier_facility');
to_addressResidential := CkJsonObject_BoolOf(jsonResponse,'to_address.residential');
to_addressFederal_tax_id := CkJsonObject_IsNullOf(jsonResponse,'to_address.federal_tax_id');
to_addressState_tax_id := CkJsonObject_IsNullOf(jsonResponse,'to_address.state_tax_id');
to_addressVerificationsDeliverySuccess := CkJsonObject_BoolOf(jsonResponse,'to_address.verifications.delivery.success');
to_addressVerificationsDeliveryDetailsLatitude := CkJsonObject_IntOf(jsonResponse,'to_address.verifications.delivery.details.latitude');
to_addressVerificationsDeliveryDetailsLongitude := CkJsonObject_IntOf(jsonResponse,'to_address.verifications.delivery.details.longitude');
from_addressId := CkJsonObject__stringOf(jsonResponse,'from_address.id');
from_addressObject := CkJsonObject__stringOf(jsonResponse,'from_address.object');
from_addressCreated_at := CkJsonObject__stringOf(jsonResponse,'from_address.created_at');
from_addressUpdated_at := CkJsonObject__stringOf(jsonResponse,'from_address.updated_at');
from_addressName := CkJsonObject_IsNullOf(jsonResponse,'from_address.name');
from_addressCompany := CkJsonObject__stringOf(jsonResponse,'from_address.company');
from_addressStreet1 := CkJsonObject__stringOf(jsonResponse,'from_address.street1');
from_addressStreet2 := CkJsonObject__stringOf(jsonResponse,'from_address.street2');
from_addressCity := CkJsonObject__stringOf(jsonResponse,'from_address.city');
from_addressState := CkJsonObject__stringOf(jsonResponse,'from_address.state');
from_addressZip := CkJsonObject__stringOf(jsonResponse,'from_address.zip');
from_addressCountry := CkJsonObject__stringOf(jsonResponse,'from_address.country');
from_addressPhone := CkJsonObject__stringOf(jsonResponse,'from_address.phone');
from_addressEmail := CkJsonObject_IsNullOf(jsonResponse,'from_address.email');
from_addressMode := CkJsonObject__stringOf(jsonResponse,'from_address.mode');
from_addressCarrier_facility := CkJsonObject_IsNullOf(jsonResponse,'from_address.carrier_facility');
from_addressResidential := CkJsonObject_BoolOf(jsonResponse,'from_address.residential');
from_addressFederal_tax_id := CkJsonObject_IsNullOf(jsonResponse,'from_address.federal_tax_id');
from_addressState_tax_id := CkJsonObject_IsNullOf(jsonResponse,'from_address.state_tax_id');
from_addressVerificationsDeliverySuccess := CkJsonObject_BoolOf(jsonResponse,'from_address.verifications.delivery.success');
from_addressVerificationsDeliveryDetailsLongitude := CkJsonObject_IntOf(jsonResponse,'from_address.verifications.delivery.details.longitude');
from_addressVerificationsDeliveryDetailsLatitude := CkJsonObject_IntOf(jsonResponse,'from_address.verifications.delivery.details.latitude');
shipment_id := CkJsonObject_IsNullOf(jsonResponse,'shipment_id');
trackerId := CkJsonObject__stringOf(jsonResponse,'tracker.id');
trackerObject := CkJsonObject__stringOf(jsonResponse,'tracker.object');
trackerMode := CkJsonObject__stringOf(jsonResponse,'tracker.mode');
trackerTracking_code := CkJsonObject__stringOf(jsonResponse,'tracker.tracking_code');
trackerStatus := CkJsonObject__stringOf(jsonResponse,'tracker.status');
trackerCreated_at := CkJsonObject__stringOf(jsonResponse,'tracker.created_at');
trackerUpdated_at := CkJsonObject__stringOf(jsonResponse,'tracker.updated_at');
trackerSigned_by := CkJsonObject_IsNullOf(jsonResponse,'tracker.signed_by');
trackerWeight := CkJsonObject_IsNullOf(jsonResponse,'tracker.weight');
trackerEst_delivery_date := CkJsonObject__stringOf(jsonResponse,'tracker.est_delivery_date');
trackerShipment_id := CkJsonObject__stringOf(jsonResponse,'tracker.shipment_id');
trackerCarrier := CkJsonObject__stringOf(jsonResponse,'tracker.carrier');
trackerCarrier_detailObject := CkJsonObject__stringOf(jsonResponse,'tracker.carrier_detail.object');
trackerCarrier_detailService := CkJsonObject__stringOf(jsonResponse,'tracker.carrier_detail.service');
trackerCarrier_detailContainer_type := CkJsonObject_IsNullOf(jsonResponse,'tracker.carrier_detail.container_type');
trackerCarrier_detailEst_delivery_date_local := CkJsonObject_IsNullOf(jsonResponse,'tracker.carrier_detail.est_delivery_date_local');
trackerCarrier_detailEst_delivery_time_local := CkJsonObject_IsNullOf(jsonResponse,'tracker.carrier_detail.est_delivery_time_local');
trackerCarrier_detailOrigin_location := CkJsonObject__stringOf(jsonResponse,'tracker.carrier_detail.origin_location');
trackerCarrier_detailDestination_location := CkJsonObject__stringOf(jsonResponse,'tracker.carrier_detail.destination_location');
trackerPublic_url := CkJsonObject__stringOf(jsonResponse,'tracker.public_url');
tracking_code := CkJsonObject__stringOf(jsonResponse,'tracking_code');
feeObject := CkJsonObject__stringOf(jsonResponse,'fee.object');
feeType := CkJsonObject__stringOf(jsonResponse,'fee.type');
feeAmount := CkJsonObject__stringOf(jsonResponse,'fee.amount');
feeCharged := CkJsonObject_BoolOf(jsonResponse,'fee.charged');
feeRefunded := CkJsonObject_BoolOf(jsonResponse,'fee.refunded');
created_at := CkJsonObject__stringOf(jsonResponse,'created_at');
updated_at := CkJsonObject__stringOf(jsonResponse,'updated_at');
i := 0;
count_i := CkJsonObject_SizeOfArray(jsonResponse,'to_address.verifications.delivery.errors');
while i < count_i do
  begin
CkJsonObject_putI(jsonResponse,i);
    i := i + 1;
  end;

i := 0;
count_i := CkJsonObject_SizeOfArray(jsonResponse,'from_address.verifications.delivery.errors');
while i < count_i do
  begin
CkJsonObject_putI(jsonResponse,i);
    i := i + 1;
  end;

i := 0;
count_i := CkJsonObject_SizeOfArray(jsonResponse,'tracker.tracking_details');
while i < count_i do
  begin
CkJsonObject_putI(jsonResponse,i);
    i := i + 1;
  end;

i := 0;
count_i := CkJsonObject_SizeOfArray(jsonResponse,'tracker.fees');
while i < count_i do
  begin
CkJsonObject_putI(jsonResponse,i);
    i := i + 1;
  end;

i := 0;
count_i := CkJsonObject_SizeOfArray(jsonResponse,'messages');
while i < count_i do
  begin
CkJsonObject_putI(jsonResponse,i);
    i := i + 1;
  end;

CkRest_Dispose(rest);
CkJsonObject_Dispose(jsonResponse);

Sample JSON Response Body

{
  "id": "ins_...",
  "object": "Insurance",
  "mode": "test",
  "reference": null,
  "status": "pending",
  "amount": "101.00000",
  "provider": "pip",
  "provider_id": 1,
  "to_address": {
    "id": "adr_...",
    "object": "Address",
    "created_at": "2016-07-22T00:09:34Z",
    "updated_at": "2016-07-22T00:09:34Z",
    "name": "DR. STEVE BRULE",
    "company": null,
    "street1": "179 N HARBOR DR",
    "street2": "",
    "city": "REDONDO BEACH",
    "state": "CA",
    "zip": "90277-2506",
    "country": "US",
    "phone": "3108085555",
    "email": null,
    "mode": "test",
    "carrier_facility": null,
    "residential": false,
    "federal_tax_id": null,
    "state_tax_id": null,
    "verifications": {
      "delivery": {
        "success": true,
        "errors": [
        ],
        "details": {
          "latitude": 33.84446,
          "longitude": -118.39275
        }
      }
    }
  },
  "from_address": {
    "id": "adr_...",
    "object": "Address",
    "created_at": "2016-07-22T00:09:34Z",
    "updated_at": "2016-07-22T00:09:34Z",
    "name": null,
    "company": "EASYPOST",
    "street1": "417 MONTGOMERY ST FL 5",
    "street2": "",
    "city": "SAN FRANCISCO",
    "state": "CA",
    "zip": "94104",
    "country": "US",
    "phone": "4155555555",
    "email": null,
    "mode": "test",
    "carrier_facility": null,
    "residential": false,
    "federal_tax_id": null,
    "state_tax_id": null,
    "verifications": {
      "delivery": {
        "success": true,
        "errors": [
        ],
        "details": {
          "longitude": -122.0,
          "latitude": 37.0
        }
      }
    }
  },
  "shipment_id": null,
  "tracker": {
    "id": "trk_...",
    "object": "Tracker",
    "mode": "test",
    "tracking_code": "EZ2000000002",
    "status": "in_transit",
    "created_at": "2016-07-22T00:09:34Z",
    "updated_at": "2016-07-22T03:09:34Z",
    "signed_by": null,
    "weight": null,
    "est_delivery_date": "2014-08-27T00:00:00Z",
    "shipment_id": "",
    "carrier": "USPS",
    "tracking_details": [
    ],
    "carrier_detail": {
      "object": "CarrierDetail",
      "service": "First-Class Package Service",
      "container_type": null,
      "est_delivery_date_local": null,
      "est_delivery_time_local": null,
      "origin_location": "HOUSTON TX, 77001",
      "destination_location": "CHARLESTON SC, 29401"
    },
    "public_url": "https://track.easypost.com/djE...",
    "fees": [
    ]
  },
  "tracking_code": "EZ2000000002",
  "fee": {
    "object": "Fee",
    "type": "InsuranceFee",
    "amount": "1.01000",
    "charged": true,
    "refunded": false
  },
  "messages": [
  ],
  "created_at": "2016-07-22T00:09:34Z",
  "updated_at": "2016-07-22T00:10:35Z"
}