Delphi DLL EasyPost: Create EasyPost Address

Back to Index

Create an Address.

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

CURL Command

curl -X POST https://api.easypost.com/v2/addresses \
  -u EASYPOST_API_KEY: \
  -d "address[street1]=417 MONTGOMERY ST" \
  -d "address[street2]=FLOOR 5" \
  -d "address[city]=SAN FRANCISCO" \
  -d "address[state]=CA" \
  -d "address[zip]=94104" \
  -d "address[country]=US" \
  -d "address[company]=EasyPost" \
  -d "address[phone]=415-123-4567"

Delphi DLL Example

var
rest: HCkRest;
success: Boolean;
bTls: Boolean;
port: Integer;
bAutoReconnect: Boolean;
strResponseBody: PWideChar;
jsonResponse: HCkJsonObject;
id: PWideChar;
object: PWideChar;
created_at: PWideChar;
updated_at: PWideChar;
name: Boolean;
company: PWideChar;
street1: PWideChar;
street2: PWideChar;
city: PWideChar;
state: PWideChar;
zip: PWideChar;
country: PWideChar;
phone: PWideChar;
email: Boolean;
mode: PWideChar;
carrier_facility: Boolean;
residential: Boolean;
federal_tax_id: Boolean;
state_tax_id: Boolean;

begin
rest := CkRest_Create();

//  URL: https://api.easypost.com/v2/addresses
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,'EASYPOST_API_KEY','');

CkRest_AddQueryParam(rest,'address[street1]','417 MONTGOMERY ST');
CkRest_AddQueryParam(rest,'address[street2]','FLOOR 5');
CkRest_AddQueryParam(rest,'address[city]','SAN FRANCISCO');
CkRest_AddQueryParam(rest,'address[state]','CA');
CkRest_AddQueryParam(rest,'address[zip]','94104');
CkRest_AddQueryParam(rest,'address[country]','US');
CkRest_AddQueryParam(rest,'address[company]','EasyPost');
CkRest_AddQueryParam(rest,'address[phone]','415-123-4567');

strResponseBody := CkRest__fullRequestFormUrlEncoded(rest,'POST','/v2/addresses');
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');
created_at := CkJsonObject__stringOf(jsonResponse,'created_at');
updated_at := CkJsonObject__stringOf(jsonResponse,'updated_at');
name := CkJsonObject_IsNullOf(jsonResponse,'name');
company := CkJsonObject__stringOf(jsonResponse,'company');
street1 := CkJsonObject__stringOf(jsonResponse,'street1');
street2 := CkJsonObject__stringOf(jsonResponse,'street2');
city := CkJsonObject__stringOf(jsonResponse,'city');
state := CkJsonObject__stringOf(jsonResponse,'state');
zip := CkJsonObject__stringOf(jsonResponse,'zip');
country := CkJsonObject__stringOf(jsonResponse,'country');
phone := CkJsonObject__stringOf(jsonResponse,'phone');
email := CkJsonObject_IsNullOf(jsonResponse,'email');
mode := CkJsonObject__stringOf(jsonResponse,'mode');
carrier_facility := CkJsonObject_IsNullOf(jsonResponse,'carrier_facility');
residential := CkJsonObject_IsNullOf(jsonResponse,'residential');
federal_tax_id := CkJsonObject_IsNullOf(jsonResponse,'federal_tax_id');
state_tax_id := CkJsonObject_IsNullOf(jsonResponse,'state_tax_id');

CkRest_Dispose(rest);
CkJsonObject_Dispose(jsonResponse);

Sample JSON Response Body

{
  "id": "adr_8fed7308e695441ebba969415fe43507",
  "object": "Address",
  "created_at": "2018-01-21T18:06:24Z",
  "updated_at": "2018-01-21T18:06:24Z",
  "name": null,
  "company": "EasyPost",
  "street1": "417 MONTGOMERY ST",
  "street2": "FLOOR 5",
  "city": "SAN FRANCISCO",
  "state": "CA",
  "zip": "94104",
  "country": "US",
  "phone": "4151234567",
  "email": null,
  "mode": "test",
  "carrier_facility": null,
  "residential": null,
  "federal_tax_id": null,
  "state_tax_id": null,
  "verifications": {}
}